This project leverages a variety of powerful technologies to create a seamless e-commerce experience:
- Java 17
- Spring Boot 3.2.2
- Spring Data JPA
- Hibernate
- MySQL
- PostgreSQL
- Maven
- Liquibase
- OpenAPI
- Docker
- Spring Data REST
- Test Containers
- Prometheus
- Grafana
- Tempo
Discover the robust features of this e-commerce API:
- Customer Wish List: Easily retrieve and manage customer wish lists.
- Sales Insights: Get total sales for the current day and identify peak sales days.
- Top Selling Items: Fetch top N selling items of all time and for the last month based on sales metrics.
- Integration Testing: Robust integration testing using Test Containers for both MySQL and PostgreSQL databases, ensuring quality across different environments.
- Observability: Monitor application performance with Prometheus, Grafana, and Tempo.
Before you begin, ensure you have the following installed:
- Java 17+
- Docker
Follow these steps to get your local environment up and running:
- Clone the repository:
git clone https://github.com/syedabdullahrahman/e-commerce.git
- Navigate to the project directory:
cd e-commerce
- Build the project using Maven:
mvn clean install
- Run the application:
java -jar target/demo-0.0.1-SNAPSHOT.jar
Run the application using Docker Compose:
docker-compose up
Here’s a glimpse of the application in action:
The database schema is derived from the MySQL Sample Database. Here’s the schema diagram:
We welcome contributions! If you'd like to contribute, please follow these steps:
- Fork the repository.
- Create a new branch (
git checkout -b feature/YourFeature
). - Make your changes and commit them (
git commit -m 'Add some feature'
). - Push to the branch (
git push origin feature/YourFeature
). - Open a pull request.
This project is licensed under the MIT License - see the LICENSE file for details.
Feel free to reach out if you have any questions or suggestions!