 
Full-Stack Angular E-Commerce Application
Final Project for Route Academy - Frontend Angular Developer Course
FreshCart is a production-ready e-commerce platform built with Angular 20, PrimeNG, and Tailwind CSS. The application delivers a complete shopping experienceβfrom browsing products and managing wishlists to secure checkout with multiple payment methodsβwhile showcasing enterprise-grade Angular development patterns including signal-based state management, comprehensive i18n with RTL support, dynamic theming, and optimized performance architecture.
Developed as the final project for Route Academy's Frontend Angular Developer course, FreshCart demonstrates real-world e-commerce functionality through standalone components, reactive programming, and a scalable feature-based architecture designed for production environments.
- β‘ Angular 20.3.0 - Modern reactive framework with standalone components and signals
- π¨ PrimeNG 20.2.0 - Enterprise UI component library with 80+ components
- π¨ Tailwind CSS 4.1.13 - Utility-first CSS framework for rapid UI development
- π ngx-translate 17.0.0 - Internationalization library with multi-language support
- π @ngrx/signals 20.0.1 - Signal-based state management for reactive stores
- π RxJS 7.8.0 - Reactive programming library for async operations
| Product Catalog Browse paginated products, advanced search with filters, product details with image gallery, category & brand filtering | Shopping Cart Add/remove/update items, guest cart with localStorage sync, persistent cart state, real-time badge updates | ||
| Checkout Process Cash on delivery & Stripe payment, address selector with saved addresses, order confirmation pages | Wishlist Add/remove favorite products, guest wishlist support, sync on login, visual indicators in product cards | ||
| Authentication JWT-based auth with custom token header, login/register forms with validation, auth guards for protected routes | User Profile Dashboard with stats, order history & details, address management, profile & password update | ||
| Internationalization English & Arabic (472+ translations), full RTL/LTR support, runtime language switching, PrimeNG i18n sync | Theme System 4 PrimeNG presets (Fresh, Premium, Vibrant, Natural), dark/light mode toggle, runtime theme switching | ||
| Categories & Brands Category list with subcategories, brand showcase, dedicated detail pages, filter products by category/brand | Responsive Design Mobile-first with breakpoints, PrimeNG MenuBar (desktop) & Drawer (mobile), Tailwind responsive utilities | ||
| Performance Lazy-loaded feature routes, OnPush change detection, signal-based stores, optimized with computed signals | State Management Signal stores for cart & wishlist, computed properties for derived state, guest state with localStorage persistence | 
- π¨ 4 Custom PrimeNG Presets: Fresh (Teal) β’ Premium (Indigo) β’ Vibrant (Orange) β’ Natural (Emerald)
- π Dark/Light Mode: Each theme supports both color schemes
- β‘ Real-time Switching: Instant theme changes without page reload
- πΎ Persistent Preferences: Automatically saves user's theme choice
- π RTL Compatible: Works seamlessly with Arabic layout
- π Bilingual Support: English (LTR) and Arabic Ψ§ΩΨΉΨ±Ψ¨ΩΨ© (RTL)
- π 472+ Translations: Comprehensive language coverage
- β‘ Runtime Switching: Change language without page reload
- π― Context-Aware: Dynamic translations based on application state
- πΎ Persistent Selection: Saves user's language preference
π¦ FreshCart
 β£ π src
 β β£ π app
 β β β£ π core                    # Core functionality
 β β β β£ π constants             # App-wide constants
 β β β β£ π guards                # Route guards (auth, guest)
 β β β β£ π interceptors          # HTTP interceptors
 β β β β£ π layout                # Layout components (header, footer)
 β β β β£ π models                # Core data models
 β β β β π services              # Core services (API, theme, i18n)
 β β β£ π features                # Feature modules
 β β β β£ π auth                  # Authentication
 β β β β£ π products              # Product catalog
 β β β β£ π cart                  # Shopping cart
 β β β β£ π checkout              # Checkout process
 β β β β£ π wishlist              # User wishlist
 β β β β£ π categories            # Category browsing
 β β β β£ π brands                # Brand browsing
 β β β β£ π profile               # User profile
 β β β β π home                  # Home page
 β β β£ π shared                  # Shared components & utilities
 β β β β£ π components            # Reusable components
 β β β β£ π pipes                 # Custom pipes
 β β β β£ π validators            # Form validators
 β β β β π utils                 # Utility functions
 β β β£ π theme                   # PrimeNG theme presets
 β β β£ π app.config.ts           # App configuration
 β β β£ π app.routes.ts           # Route configuration
 β β β π app.ts                  # Root component
 β β£ π assets                    # Static assets
 β β£ π environments              # Environment configs
 β β π styles.scss               # Global styles
 β£ π public
 β β π i18n                      # Translation files
 β   β£ π en.json                 # English translations
 β   β π ar.json                 # Arabic translations
 β£ π angular.json                # Angular CLI config
 β£ π package.json                # Dependencies
 β£ π tailwind.config.js          # Tailwind configuration
 β π tsconfig.json               # TypeScript config
Before you begin, ensure you have the following installed:
- Node.js: v18.0.0 or later
- npm: v9.0.0 or later (comes with Node.js)
- Angular CLI: v20.3.3 or later
npm install -g @angular/cli 
- 
Clone the repository git clone https://github.com/MohamedV0/angular-ecommerce.git 
- 
Navigate to the project directory cd angular-ecommerce
- 
Install dependencies npm install 
- 
Start the development server npm start # or ng serve
- 
Open your browser Navigate to http://localhost:4200/
Note: The backend API is already configured and provided by Route Academy at
https://ecommerce.routemisr.com/api/v1. No additional API configuration or keys are required.
This project demonstrates proficiency in:
- β Angular Framework - Advanced concepts and patterns
- β TypeScript - Strong typing and modern features
- β State Management - Signals and RxJS
- β Component Design - Reusable, composable architecture
- β Responsive Design - Mobile-first approach
- β Internationalization - Multi-language support
- β Theming - Advanced customization
- β API Integration - RESTful services
- β Form Handling - Reactive forms with validation
- β Routing - Lazy loading and guards
- β Performance - Optimization techniques
- β Accessibility - WCAG compliance
Developed by Mohamed Ashraf as part of Route Academy - Frontend Angular Developer Course
