This is a comprehensive documentation for the Ecommerce project, a web application that allows users to buy and manage products, place orders, and receive notifications. The project is built using Spring Boot, Spring Security, Spring Data JPA, Hibernate, RabbitMQ for notifications, Stripe for payment processing, Cloudinary for image storage, GitHub Actions for continuous integration, and Swagger for API documentation.
- Build frontend with React
- Implement user authentication and authorization
- Add product management functionality
- Configure payment gateway with Stripe
- Create API documentation using Swagger
- Implement push notifications with RabbitMQ
- Implement cron jobs for automatic balance reports
- Set up Docker containerization for the application
-
Clone the repository from GitHub.
git clone https://github.com/htunkhainglynn/ecommerce.git
-
Configure your application properties, including database settings, Stripe API keys, Cloudinary credentials, and RabbitMQ configuration.
-
Run the application using
mvn spring-boot:run
. -
Access the application at
http://localhost:8080
. -
Login as Admin using admin@gmail.com, password.
-
Login as User using user@gmail.com, password.
-
Clone the repository from GitHub.
git clone https://github.com/htunkhainglynn/ecommerce.git
-
Create a Docker images using the Dockerfiles.
cd ecommerce cd custom-rabbitmq-image docker build -t custom-rabbitmq-image . cd ../ docker build -t ecommerce-image .
-
Run the docker compose file.
docker-compose up
-
Access the application at
http://localhost:8080
. -
Access API documentation at
http://localhost:8080/swagger-ui/index.html
. -
Postman file for testing is in /postman.
-
Login as Admin using admin@gmail.com, password.
-
Login as User using user@gmail.com, password.
Ensure you have set up the project, and the application is running. Users and admins can access the application and its features as described below:
-
Product Management: Create, update, delete, and read products and their variants. Manage product categories.
-
Order Management: View and manage orders. receive order placement notifications.
-
Notification Management: Receive order placement notifications.
-
User Management: View and manage users.
-
Dashboard: Access the dashboard to view order statistics, user statistics, product information, and purchase price timeline.
-
Order Placement: Create orders, select products, and pay using Stripe.
-
Order History: View past orders and order details.
-
Notifications: Receive notifications when products are delivered.
The dashboard provides a visual overview of key statistics:
- Total orders placed.
- Active user count.
- Total products available.
- Product purchase price timeline to aid in decision-making.
Cron jobs automatically generate balance reports, including income, expenses, and profits, at scheduled intervals.
API documentation is available using Swagger. Access the documentation at /swagger-ui.html
when the application is running.