Welcome to the E-commerce CRUD project! This application is a portfolio project built with Spring Boot, PostgreSQL, and Docker, focusing on creating a robust backend system for managing an e-commerce platform.
This project implements a backend for an e-commerce application, featuring:
- 📦 Product Management: Handle parent and child products with attributes like size, color, price, images and stock.
- 🛒 Order System: Manage orders and associated items.
- 👤 User Profiles: Store user data, including personal information.
- 🚚 Address System: Manage user addresses for diferent orders.
- 🔒 Relationships: Ensure proper data linkage between tables for consistency and efficiency.
- Spring Boot: Framework for building Java applications.
- PostgreSQL: Relational database.
- Spring Data JPA: ORM for database interactions.
- Docker: Containerization for database setup.
- Create and manage parent products with shared attributes.
- Create child products with variations (e.g., size, color, price).
- Create and track user orders.
- Add multiple items to each order.
- Add any address registered for the user.
- Manage user profiles with essential details like name, email, and document number.
- Manage multiple addresses.
The application follows a relational database structure:
- Brands
- Categories
- Parent Products
- Product Images
- Child Products
- Users
- User Addresses
- Orders
- Order Items
Check it out on the dbdiagram.io.
- Java 17+
- Docker
- PostgreSQL
- Maven
-
Clone the Repository:
git clone https://github.com/your-username/ecommerce-crud.git cd ecommerce-crud
-
Start the Database:
docker run --name ecommerce-db -e POSTGRES_USER=admin -e POSTGRES_PASSWORD=admin -e POSTGRES_DB=ecommerce -p 5432:5432 -d postgres
-
Run the Application:
./mvnw spring-boot:run
-
Access the application at
http://localhost:8080
.
- Add user authentication and authorization.
- Implement a frontend interface.
- Add more advanced product filtering and searching.
- Introduce payment gateway integration.
Feel free to fork the repository, make improvements, and submit pull requests. All contributions are welcome!
For any questions or suggestions, reach out at [email protected].