This is a backend ecommerce application built with Spring Boot. It manages products, users, categories, orders, addresses, and payments for an online store.
-
🔐 User Registration & Authentication
Robust and secure signup, login, and logout functionality ensuring user data protection. -
📦 Comprehensive Product Management
Intuitive full lifecycle management — create, read, update, and delete products effortlessly. -
🗂️ Dynamic Category Management
Seamlessly add, update, and organize categories for smooth navigation. -
🏠 Flexible Address Management
Empower users to add and manage multiple shipping addresses with ease. -
🛒 Efficient Order Processing & Real-Time Tracking
Streamlined order placement coupled with transparent status updates. -
💳 Seamless & Secure Payment Processing
Reliable payment integration designed for a smooth and trustworthy checkout experience. -
📸 Advanced Image Upload & Handling
User-friendly image upload system with optimized media management for quick loading and display. -
👥 Granular Role-Based Access Control
Fine-tuned permissions distinguishing Admin and User capabilities to maintain system security. -
📊 Actuator Integration
Spring Boot Actuator endpoints are enabled to expose health, metrics, and other diagnostic information.Example Endpoints:
/actuator/health/actuator/metrics/actuator/info
The project is Dockerized with docker-compose to enable easy local setup with isolated containers:
ecommerce-app– Spring Boot backend container.mysql-db– MySQL 8 container with persistent storage.
All services communicate over a custom Docker bridge network (ecommerce-network), enabling secure and seamless service discovery (e.g., using the mysql-db hostname).
MySQL data is stored in a named Docker volume (mysql-data) to preserve database content even after container restarts.
- Backend: Java, Spring Boot
- Database: MySQL / H2 (JPA/Hibernate)
- Build Tool: Maven
- Authentication: Spring Security
- Image Storage: Local filesystem / Cloudinary (optional)
- Monitoring & Metrics: Spring Boot Actuator
- Containerization: Docker, Docker Compose