A full-stack e-commerce application built with Angular 18 frontend and Spring Boot microservices architecture.
βββββββββββββββββββ ββββββββββββββββββββ βββββββββββββββββββββββ
β Angular 18 β β API Gateway β β Microservices β
β Frontend βββββΊβ (Port 9090) βββββΊβ Ecosystem β
β (Port 4200) β β β β β
βββββββββββββββββββ ββββββββββββββββββββ βββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Microservices β
βββββββββββββββ¬ββββββββββββββ¬ββββββββββββββ¬ββββββββββββββ€
β User Serviceβ Product β Cart Serviceβ Order β
β (Port 8089) β Catalog β (Port 8085) β Management β
β β (Port 8082) β β (Port 8084) β
βββββββββββββββ΄ββββββββββββββ΄ββββββββββββββ΄ββββββββββββββ
β
βΌ
βββββββββββββββββββββββ
β MySQL Database β
β (Port 3306) β
βββββββββββββββββββββββ
- User Management: Registration, Login, Profile Management
- Product Catalog: Browse products, categories, search, reviews
- Shopping Cart: Add/remove items, quantity management
- Order Management: Place orders, order history, tracking
- Payment Processing: Multiple payment methods (Card, UPI, COD, BNPL)
- Address Management: Multiple shipping addresses
- Inventory Management: Real-time stock tracking
- Microservices Architecture: Scalable, maintainable service separation
- API Gateway: Centralized routing and load balancing
- Service Communication: Feign clients for inter-service communication
- Database Per Service: Independent data management
- Responsive UI: Mobile-first Angular application
- Real-time Updates: Dynamic cart and inventory updates
- Angular 18 - Modern web framework
- TypeScript - Type-safe JavaScript
- Tailwind CSS - Utility-first CSS framework
- RxJS - Reactive programming
- Angular Router - Client-side routing
- Spring Boot 3.x - Java microservices framework
- Spring Cloud Gateway - API Gateway
- Spring Data JPA - Data persistence
- OpenFeign - Service-to-service communication
- MySQL - Relational database
- Maven - Dependency management
- Java 17+
- Node.js 18+
- MySQL 8.0+
- Maven 3.6+
- Angular CLI 18+
CREATE DATABASE Training;
-- Run seed.sql from product-catalog service# Start services in order:
cd oss-backend/eureka-server && mvn spring-boot:run
cd oss-backend/api-gateway && mvn spring-boot:run
cd oss-backend/user-service && mvn spring-boot:run
cd oss-backend/product-catalog && mvn spring-boot:run
cd oss-backend/cart-service && mvn spring-boot:run
cd oss-backend/order-management-master && mvn spring-boot:runcd oss-frontend
npm install
npm start- Frontend: http://localhost:4200
- API Gateway: http://localhost:9090
| Service | Port | Purpose |
|---|---|---|
| Frontend | 4200 | Angular Application |
| API Gateway | 9090 | Request Routing |
| User Service | 8089 | User Management |
| Product Catalog | 8082 | Product Management |
| Cart Service | 8085 | Shopping Cart |
| Order Management | 8084 | Order Processing |
| Eureka Server | 8761 | Service Discovery |
- Registration/Login β User Service
- Browse Products β Product Catalog Service
- Add to Cart β Cart Service
- Checkout Process β Multiple Services
- Place Order β Order Management Service
- Inventory Update β Product Catalog Service
Frontend β API Gateway β Microservice β Database
β β
βββββββββ Response ββββββββββββββββββββ
βββ oss-frontend/ # Angular Frontend
β βββ src/app/
β β βββ pages/ # Page Components
β β βββ services/ # API Services
β β βββ shared/ # Shared Components
βββ oss-backend/ # Spring Boot Backend
β βββ api-gateway/ # API Gateway Service
β βββ user-service/ # User Management
β βββ product-catalog/ # Product Management
β βββ cart-service/ # Shopping Cart
β βββ order-management-master/ # Order Processing
β βββ eureka-server/ # Service Discovery
βββ docs/ # Documentation
Currently uses localStorage-based session management:
- Simple token storage for development
- User data persisted in browser storage
- No JWT implementation (suitable for demo/development)
cd oss-frontend
npm testcd oss-backend/[service-name]
mvn test- All services run locally
- MySQL database on localhost
- Frontend served by Angular CLI
- Containerize services with Docker
- Use Kubernetes for orchestration
- Implement proper JWT authentication
- Add monitoring and logging
- Set up CI/CD pipelines
- Fork the repository
- Create feature branch (
git checkout -b feature/AmazingFeature) - Commit changes (
git commit -m 'Add AmazingFeature') - Push to branch (
git push origin feature/AmazingFeature) - Open Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Frontend: Angular 18, TypeScript, Tailwind CSS
- Backend: Spring Boot, Microservices, MySQL
- Architecture: API Gateway, Service Discovery, Inter-service Communication
For support and questions:
- Create an issue in the repository
- Check documentation in
/docsfolder - Review API endpoints in service documentation
Built with β€οΈ using modern web technologies and microservices architecture