A modern, responsive fashion clothing e-commerce storefront built with Angular 18 standalone components. Browse clothing for Men, Women, and Kids across Shirts, T-Shirts, Pants, and Shoes β with an auto-sliding ad carousel, product detail pages, cart functionality, and a polished UI.
Click to expand
|
ποΈ 3 Category Sections Complete product catalogs for Men, Women, and Kids β each with 4 subcategories: Shirts, T-Shirts, Pants, and Shoes. That's 12 product listing pages in total. |
π Auto-Sliding Ad Carousel Home page hero carousel with 3-second auto-advance, next/prev navigation, dot indicators, and hover-to-pause β all built with pure TypeScript, no external carousel library. |
|
π Shopping Cart Service
Injectable |
π± Responsive Design Dual CSS framework approach: TailwindCSS for utility-first styling + Bootstrap 5 for responsive grid and component classes. Hamburger menu for mobile navigation. |
|
π§± Standalone Components Built with Angular 18's modern standalone component architecture β no NgModules required. Each component declares its own imports for maximum encapsulation. |
π Product Details
Dedicated product detail page with image display, description, pricing, Add to Cart button, and Buy Now action β navigated via route parameter |
|
πΈ 200+ Product Images
Full product image library organized by category: |
π Featured Products
Home page showcases 12 featured products in a grid with product cards displaying image, name, and price β each linking to its detail page via |
The application uses Angular 18 Standalone Components with a flat component-based architecture:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β APP SHELL β
β AppComponent (navbar + router-outlet + footer) β
β βββββββββββββββ ββββββββββββββββββββββββ βββββββββββββ β
β β Navbar β β <router-outlet> β β Footer β β
β β Component β β β β Component β β
β βββββββββββββββ β ββββββββββββββββββ β βββββββββββββ β
β β β HomeComponent β β β
β β β Ad Carousel β β β
β β β Product Grid β β β
β β ββββββββββββββββββ β β
β β ββββββββββββββββββ β β
β β β Categories β β β
β β β Men / Women β β β
β β β / Kids Grid β β β
β β ββββββββββββββββββ β β
β β ββββββββββββββββββ β β
β β β ProductDetails β β β
β β β + CartService β β β
β β ββββββββββββββββββ β β
β ββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
| Service | Scope | Methods | Description |
|---|---|---|---|
CartService |
providedIn: 'root' |
addToCart(product), getCart(), clearCart() |
Global singleton managing the shopping cart state in-memory |
ecommerce-angular-store/
β
βββ src/
β βββ app/
β β βββ app.component.ts/html/css # Root shell β navbar, carousel, footer, router-outlet
β β βββ app.routes.ts # Route definitions (16 routes)
β β βββ app.config.ts # App configuration + providers
β β βββ cart.service.ts # Global CartService (add/get/clear)
β β βββ routes.ts # Secondary routes file
β β β
β β βββ π home/ # Home page
β β β βββ home.component.ts/html/css # Featured products grid + ad slider + Special Offers
β β β
β β βββ π Categories/ # Category hub
β β β βββ Categories.component.ts/html # Category cards: Men / Women / Kids Γ Shirts/T-shirts/Pants/Shoes
β β β
β β βββ π product-details/ # Product detail page
β β β βββ product-details.component.* # Image, description, price, Add to Cart, Buy Now
β β β
β β βββ βΉοΈ about/ # About Us page
β β β βββ about.component.ts/html # Company info with images
β β β
β β βββ π§ navbar/ # Navbar component
β β β βββ navbar.component.ts/html/css # Responsive nav with hamburger menu
β β β
β β βββ π’ ad-slider/ # Ad slider component
β β β βββ ad-slider.component.* # Carousel sub-component
β β β
β β βββ π¦Ά footer/ # Footer component
β β β βββ footer.component.ts/html # Quick Links, Services, Social Media
β β β
β β βββ π men/ # Men's product pages
β β β βββ MenShirts/ # 20 shirts with hardcoded product data
β β β βββ men-tshirt/ # T-shirts collection
β β β βββ men-pants/ # Pants collection (16 products)
β β β βββ men-shoes/ # Shoes collection (18 products)
β β β
β β βββ π women/ # Women's product pages
β β β βββ women-shirts/ # 19 shirts
β β β βββ women-tshirts/ # T-shirts collection
β β β βββ women-pants/ # Pants collection (13 products)
β β β βββ women-shoes/ # Shoes collection (9 products)
β β β
β β βββ πΆ kids/ # Kids' product pages
β β βββ kids-shirts/ # 16 shirts
β β βββ kids-tshirts/ # T-shirts collection (10 products)
β β βββ kids-pants/ # Pants collection (8 products)
β β βββ kids-shoes/ # Shoes collection (8 products)
β β
β βββ assets/
β β βββ images/ # 200+ product photos
β β βββ men/ # men-shirts/, men-pants/, men-shoes/, men-t-shirt/
β β βββ women/ # women-shirts/, women-pants/, women-shoes/, women-t-shirt/
β β βββ kids/ # kids-shirts/, kids-pants/, kids-shoes/, kids-t-shirts/
β β βββ ad1.jpg, ad2.jpg, ad4.jpg # Carousel ad banners
β β βββ logo.jpg # Store logo
β β βββ aboutUs.jpeg, aboutUs2.jpg # About page images
β β
β βββ index.html # Entry HTML
β βββ main.ts # Bootstrap standalone AppComponent
β βββ styles.css # Global CSS imports (Tailwind directives)
β
βββ angular.json # Angular CLI workspace config
βββ package.json # Dependencies (Angular 18 + Tailwind + Bootstrap)
βββ tailwind.config.js # TailwindCSS config
βββ postcss.config.js # PostCSS with Tailwind + Autoprefixer
βββ tsconfig.json # TypeScript compiler config
βββ eslint.config.mjs # ESLint flat config
βββ .gitignore
| Category | Technology | Version | Purpose |
|---|---|---|---|
| Framework | Angular | 18.2 | Component-based SPA framework |
| Language | TypeScript | 5.5 | Type-safe JavaScript |
| Styling | TailwindCSS | 3.4 | Utility-first CSS framework |
| UI Library | Bootstrap | 5.3 | Responsive grid + components |
| Routing | @angular/router | 18.2 | Client-side navigation |
| Reactive | RxJS | 7.8 | Observable-based data streams |
| PostCSS | PostCSS + Autoprefixer | 8.4 | CSS processing pipeline |
| Tooltips | @popperjs/core | 2.11 | Bootstrap tooltip positioning |
| Linting | ESLint + typescript-eslint | 9.11 | Code quality enforcement |
| Testing | Karma + Jasmine | 6.4 / 5.2 | Unit testing framework |
| Build | Angular CLI | 18.2.3 | Dev server, build, scaffolding |
- Hero Ad Carousel β 3 promotional banners with auto-slide (3s interval), prev/next arrows, dot indicators
- Special Offers section
- Featured Products Grid β 12 product cards with image, name, price, and "View Details" click navigation
- Responsive layout adapting to mobile/tablet/desktop
- Category Hub β Visual grid with Men, Women, and Kids sections
- Each section shows 4 subcategory links: Shirts, T-Shirts, Pants, Shoes
- Animated category cards with hover effects
Each of the 12 product pages features:
- Hardcoded product arrays with
id,name,price,imageUrl, anddescription - Product cards in a responsive grid layout
- Hover effects on product images
- Sorting/filtering by price (ascending/descending/default)
- Click-to-view product details
| Category | Shirts | T-Shirts | Pants | Shoes |
|---|---|---|---|---|
| Men | 20 products | 11 products | 16 products | 18 products |
| Women | 19 products | 14 products | 13 products | 9 products |
| Kids | 16 products | 10 products | 8 products | 8 products |
- Full-page product view with large image display
- Product name, description, and formatted price
- Add to Cart button β triggers
CartService.addToCart()with confirmation alert - Buy Now button β navigates to checkout flow
- 404 redirect for invalid product IDs
@Injectable({ providedIn: 'root' })
export class CartService {
private cart: Product[] = [];
addToCart(product: Product): void // Push product into cart
getCart(): Product[] // Return all cart items
clearCart(): void // Empty the cart
}- Desktop: Horizontal navbar with Home, Categories, About, Contact links
- Mobile: Hamburger toggle menu with animated show/hide (
isMenuOpenstate) - Active route highlighting with
RouterLinkActive
- Three-column layout: Company Description, Quick Links, Services
- Social media links: Facebook, Twitter, Instagram
- Clean layout with consistent brand styling
| Requirement | Minimum Version | Download |
|---|---|---|
| Node.js | 18.x | nodejs.org |
| npm | 9.x | Bundled with Node.js |
| Angular CLI | 18.x | npm install -g @angular/cli |
# 1. Clone the repository
git clone https://github.com/Jaser1010/ecommerce-angular-store.git
cd ecommerce-angular-store
# 2. Install dependencies
npm install
# 3. Start development server
ng serve
# or
npm start
# 4. Open in browser
# Navigate to http://localhost:4200π‘ Tip: The app auto-reloads when you modify source files.
# Run unit tests
ng test
# Build for production
ng build
# Lint code
ng lintgraph TD
A[AppComponent] --> B[NavbarComponent]
A --> C[RouterOutlet]
A --> D[FooterComponent]
C --> E[HomeComponent]
C --> F[CategoriesComponent]
C --> G[ProductDetailsComponent]
C --> H[AboutComponent]
F --> I[MenShirtsComponent]
F --> J[MenTshirtComponent]
F --> K[MenPantsComponent]
F --> L[MenShoesComponent]
F --> M[WomenShirtsComponent]
F --> N[WomenTshirtsComponent]
F --> O[WomenPantsComponent]
F --> P[WomenShoesComponent]
F --> Q[KidsShirtsComponent]
F --> R[KidsTshirtsComponent]
F --> S[KidsPantsComponent]
F --> T[KidsShoesComponent]
G --> U[CartService]
style A fill:#DD0031,color:white
style U fill:#3178C6,color:white
| Path | Component | Description |
|---|---|---|
/ |
HomeComponent |
Landing page with carousel + featured products |
/Home |
HomeComponent |
Alias for home |
/Categories |
CategoriesComponent |
Category hub with Men/Women/Kids |
/Categories/MenShirts |
MenShirtsComponent |
Men's shirts catalog |
/Categories/MenTshirt |
MenTshirtComponent |
Men's t-shirts catalog |
/Categories/MenPants |
MenPantsComponent |
Men's pants catalog |
/Categories/MenShoes |
MenShoesComponent |
Men's shoes catalog |
/Categories/WomenShirts |
WomenShirtsComponent |
Women's shirts catalog |
/Categories/WomenTshirts |
WomenTshirtsComponent |
Women's t-shirts catalog |
/Categories/WomenPants |
WomenPantsComponent |
Women's pants catalog |
/Categories/WomenShoes |
WomenShoesComponent |
Women's shoes catalog |
/Categories/KidsShirts |
KidsShirtsComponent |
Kids' shirts catalog |
/Categories/KidsTshirts |
KidsTshirtsComponent |
Kids' t-shirts catalog |
/Categories/KidsPants |
KidsPantsComponent |
Kids' pants catalog |
/Categories/KidsShoes |
KidsShoesComponent |
Kids' shoes catalog |
/product-list/:id |
ProductDetailsComponent |
Product detail page |
/about |
AboutComponent |
About the store |
- Angular 18 standalone component architecture
- 12 product category pages (Men/Women/Kids Γ Shirts/T-shirts/Pants/Shoes)
- Product detail page with Add to Cart & Buy Now
- CartService for cart management
- Auto-sliding ad carousel with controls
- Responsive navbar with hamburger toggle
- Footer with Quick Links, Services, Social
- About page
- 200+ real product images
- TailwindCSS + Bootstrap 5 hybrid styling
- Price sorting (ascending/descending)
- ESLint configuration
- π User Authentication β Login/Register with JWT or Firebase Auth
- π³ Checkout Flow β Complete checkout with payment integration (Stripe/PayPal)
- π Cart Page β Dedicated cart page with quantity adjustment and total calculation
- π Search & Filter β Global product search with advanced filtering (size, color, price range)
- ποΈ Backend API β Connect to a real REST API instead of hardcoded product data
- β€οΈ Wishlist β Save favorite products for later
- π± PWA Support β Progressive Web App for offline browsing
- π§ͺ E2E Tests β Cypress or Playwright end-to-end testing
- π³ Docker β Containerized deployment
Contributions are welcome! Fork the repo, create a feature branch, and submit a Pull Request.
git checkout -b feature/amazing-feature
git commit -m "feat: add amazing feature"
git push origin feature/amazing-featureDistributed under the MIT License.
|
Jaser Kasim
Software Engineer |
If you found this project helpful, consider giving it a β
Built with β€οΈ using Angular 18 and TypeScript