A modern Full-Stack E-Commerce Platform developed using Angular, Spring Boot, Spring Cloud Microservices, MySQL, and REST APIs.
This project was developed during my internship at JD Software Pvt. Ltd., Kolapakkam, Chennai, with a focus on building a scalable e-commerce application using a microservices-based architecture.
The Full-Stack E-Commerce Platform provides a complete online shopping experience where users can:
- Register and log in
- Browse products
- Filter products by category
- View product details
- Add products to favorites
- Add products to cart
- Proceed through checkout
- Place and manage orders
- Track order/delivery status
The platform also provides dedicated Admin and Distribution functionalities for managing products, users, orders, and deliveries.
- Build a complete full-stack e-commerce application.
- Implement a scalable microservices architecture.
- Develop a responsive frontend using Angular.
- Develop backend services using Spring Boot.
- Implement RESTful APIs for frontend-backend communication.
- Use MySQL for persistent data storage.
- Implement API Gateway for centralized request routing.
- Implement Eureka Server for service discovery.
- Understand real-world software development and Git/GitHub workflow.
┌──────────────────────┐
│ Angular Frontend │
│ Port: 4200 │
└──────────┬───────────┘
│
▼
┌──────────────────────┐
│ API Gateway │
│ Port: 8080 │
└──────────┬───────────┘
│
┌─────────────────────┼─────────────────────┐
│ │ │
▼ ▼ ▼
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ User Service│ │Product │ │Order Service│
│ :8085 │ │Service :8081 │ │ :8082 │
└──────┬──────┘ └──────┬──────┘ └──────┬──────┘
│ │ │
▼ ▼ ▼
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ MySQL │ │ MySQL │ │ MySQL │
│micro_user_db│ │micro_product│ │Order DB │
└─────────────┘ └─────────────┘ └─────────────┘
┌─────────────────────────────────────┐
│ Eureka Server │
│ Service Discovery │
└─────────────────────────────────────┘
┌─────────────────────────────────────┐
│ Admin Service / Distribution Service│
└─────────────────────────────────────┘
Responsible for user-related operations.
- User registration
- User login
- User management
- User information
- Authentication-related operations
- User order information
Port: 8085
Database: micro_user_db
Responsible for product catalog management.
- Add products
- Update products
- Delete products
- View products
- Product details
- Category management
- Product filtering
Port: 8081
Database: micro_product_db
Responsible for order processing.
- Create orders
- Manage orders
- Retrieve user orders
- Order status management
- Checkout-related operations
Port: 8082
Provides administrative functionalities.
- Manage products
- Manage users
- Manage orders
- Monitor application operations
- Administrative dashboard
Responsible for distribution and delivery-related operations.
- Delivery management
- Distribution workflow
- Delivery status
- Delivery dashboard
The API Gateway acts as the central entry point between the frontend and backend microservices.
Port: 8080
- Request routing
- Centralized API access
- Microservice communication
- Frontend-backend integration
Eureka is used for service discovery in the microservices architecture.
It allows backend services to discover and communicate with each other without depending on hard-coded service locations.
The frontend is developed using Angular and TypeScript.
- Home
- Login
- Signup
- Product Catalog
- Product Details
- Favorites
- Cart
- Checkout
- Orders
- Delivery Dashboard
- Admin Dashboard
- Angular
- TypeScript
- HTML5
- CSS3
- Angular Routing
- REST API Integration
- Responsive Design
The backend is developed using Java and Spring Boot with a microservices architecture.
- Java
- Spring Boot
- Spring Cloud
- Spring Web
- Spring Data JPA
- REST APIs
- Eureka Client
- API Gateway
- Maven
The project uses MySQL for persistent data storage.
micro_user_db
micro_product_db
micro_order_db
Spring Data JPA is used for database interaction.
- User registration
- User login
- Authentication
- Profile management
- Product browsing
- Product catalog
- Category filtering
- Product details
- Add to cart
- Favorites
- Checkout
- Order placement
- Order creation
- Order history
- Order tracking
- Delivery status
- Admin dashboard
- Product management
- User management
- Order management
- Delivery dashboard
- Distribution management
- Delivery status updates
User
│
▼
Angular Frontend
│
▼
API Gateway
│
├──► User Service
│
├──► Product Service
│
├──► Order Service
│
├──► Admin Service
│
└──► Distribution Service
│
▼
MySQL Database
Register / Login
↓
Browse Products
↓
View Product Details
↓
Add to Cart / Favorites
↓
Checkout
↓
Place Order
↓
Order Processing
↓
Distribution
↓
Delivery
ECommerce/
│
├── admin-service/
│
├── api-gateway/
│
├── distribution-service/
│
├── ecommerce-frontend/
│
├── eureka-server/
│
├── order-service/
│
├── product-service/
│
├── user-service/
│
├── screenshots/
│ ├── home.png
│ ├── login.png
│ ├── products.png
│ ├── favorites.png
│ ├── cart.png
│ ├── checkout.png
│ ├── orders.png
│ ├── delivery-dashboard.png
│ └── admin-dashboard.png
│
└── README.md
| Category | Technologies |
|---|---|
| Frontend | Angular, TypeScript, HTML5, CSS3 |
| Backend | Java, Spring Boot |
| Architecture | Microservices |
| API | REST APIs |
| Service Discovery | Eureka |
| Gateway | Spring Cloud Gateway |
| Database | MySQL |
| ORM | Spring Data JPA |
| Build Tool | Maven |
| Version Control | Git, GitHub |
| Containerization | Docker |
Make sure the following are installed:
- Java 21
- Node.js
- npm
- Angular CLI
- MySQL
- Maven
- Git
- IDE such as VS Code / IntelliJ IDEA / Eclipse
git clone https://github.com/BALAMURUGAN-4735/ECommerce.gitcd ECommerceCreate the required databases:
CREATE DATABASE micro_user_db;
CREATE DATABASE micro_product_db;
CREATE DATABASE micro_order_db;Update the MySQL username, password, and database configuration in the respective Spring Boot application.properties files.
Navigate to:
cd eureka-serverRun:
mvn spring-boot:runcd user-service
mvn spring-boot:runUser Service:
http://localhost:8085
cd product-service
mvn spring-boot:runProduct Service:
http://localhost:8081
cd order-service
mvn spring-boot:runOrder Service:
http://localhost:8082
cd admin-service
mvn spring-boot:runcd distribution-service
mvn spring-boot:runcd api-gateway
mvn spring-boot:runAPI Gateway:
http://localhost:8080
Navigate to:
cd ecommerce-frontendInstall dependencies:
npm installStart Angular:
ng serveOpen:
http://localhost:4200
Angular
│
▼
API Gateway
│
├── User Service
├── Product Service
├── Order Service
├── Admin Service
└── Distribution Service
│
▼
MySQL Databases
Eureka Service Discovery helps the microservices locate and communicate with each other.
The application separates frontend and backend responsibilities and uses service-level configuration for:
- Database connection
- Service ports
- Eureka registration
- API Gateway routing
- REST API communication
Sensitive credentials such as database passwords should be stored securely and should not be committed to GitHub.
Build individual Spring Boot services using:
mvn clean installRun tests using:
mvn testBuild the Angular application:
ng build| Feature | Implementation |
|---|---|
| Frontend | Angular |
| Backend | Spring Boot |
| Architecture | Microservices |
| API Communication | REST APIs |
| Service Discovery | Eureka |
| API Routing | API Gateway |
| Database | MySQL |
| ORM | Spring Data JPA |
| Build | Maven |
| Version Control | Git & GitHub |
This project was developed as part of my internship at:
📍 Kolapakkam, Chennai
Full-Stack Web Development & Microservices
During the internship, I worked on frontend development, backend microservices, REST API integration, database connectivity, service discovery, API Gateway configuration, testing, debugging, and Git/GitHub version control.
- Developed Angular frontend modules.
- Created and integrated Spring Boot microservices.
- Implemented REST API communication.
- Integrated Angular with backend APIs.
- Configured MySQL database connectivity.
- Implemented Spring Data JPA.
- Worked with Eureka Service Discovery.
- Configured API Gateway.
- Developed e-commerce workflows.
- Worked on admin and distribution modules.
- Tested and debugged application issues.
- Managed source code using Git and GitHub.
Through this project, I gained practical experience in:
- Angular
- TypeScript
- Java
- Spring Boot
- Spring Cloud
- Microservices Architecture
- REST API Development
- Spring Data JPA
- MySQL
- API Gateway
- Eureka Service Discovery
- Maven
- Git & GitHub
- Full-Stack Application Development
- Debugging and Testing
Possible future improvements include:
- Online payment gateway integration
- JWT-based authentication
- Advanced product search
- Product reviews and ratings
- Email notifications
- Real-time order tracking
- Docker-based deployment
- Cloud deployment
- Redis caching
- CI/CD pipeline
- Advanced analytics dashboard
Computer Science Engineering Student | Full-Stack Developer
GitHub: https://github.com/BALAMURUGAN-4735
Project Repository: https://github.com/BALAMURUGAN-4735/ECommerce
I would like to express my sincere gratitude to JD Software Pvt. Ltd., Kolapakkam, Chennai, for providing me with the opportunity to work on this project and gain valuable practical experience.
Special thanks to:
- Mentor: Rohith Kumar M
- Manager: Arun Balaji
- HR Team: Jaya prakash
Their guidance and support helped me improve my technical knowledge and understand real-world software development practices.
The Full-Stack E-Commerce Platform provided valuable hands-on experience in developing a real-world application using modern frontend, backend, database, and microservices technologies.
The project helped me understand how independent services communicate through REST APIs, how service discovery and API Gateway work together, and how a complete e-commerce workflow can be implemented using a scalable architecture.
If you find this project useful or interesting, consider giving the repository a ⭐ on GitHub.
Thank you for visiting this project!








