https://github.com/ngntu10/optimart
Optimart: A full-stack e-commerce platform with a Spring Boot backend and Next.js frontend for a modern, scalable user experience.
https://github.com/ngntu10/optimart
java jwt oauth2 postgresql spring-boot spring-data-jpa spring-security
Last synced: 8 months ago
JSON representation
Optimart: A full-stack e-commerce platform with a Spring Boot backend and Next.js frontend for a modern, scalable user experience.
- Host: GitHub
- URL: https://github.com/ngntu10/optimart
- Owner: ngntu10
- License: apache-2.0
- Created: 2024-07-25T00:51:59.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-10-24T07:52:50.000Z (over 1 year ago)
- Last Synced: 2024-10-25T04:10:46.356Z (over 1 year ago)
- Topics: java, jwt, oauth2, postgresql, spring-boot, spring-data-jpa, spring-security
- Language: Java
- Homepage:
- Size: 365 KB
- Stars: 31
- Watchers: 2
- Forks: 9
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Security: SECURITY.md
Awesome Lists containing this project
README

# 🛍️ Optimart
Backend system provides restful API for web.
[//]: # ([](https://sonarcloud.io/project/issues?resolved=false&id=hoangtien2k3_ecommerce-microservices))
[](https://sonarcloud.io/project/configuration?id=ngntu10_OptiMart)
## Introduction
Welcome to `OptiMart`. This project features a Spring Boot backend combined with a Next.js frontend to deliver a fast, scalable e-commerce platform. The backend handles all business logic and data management, while the frontend ensures a seamless, responsive user experience.
## Prerequisites
Before you begin, ensure you have met the following requirements:
- Java Development Kit `(JDK) 17` or higher installed.
- Build tool (e.g., `Maven`) installed.
- Database system (e.g.,`PostgreSQL`) set up and configured.
- Hibernate, JPA
- Docker with docker-compose build
- Restfull API
- PostMan Testing API and Client.
- Send message and receiver using firebase cloud-messaging.
- Using Redis for data caching
## OptiMart Features
**Permission-based access control system**: Users can be granted specific permissions to perform certain actions, and users with administrative privileges (admins) can precisely assign or restrict access to specific features for other users.
### Admin Features
- **View Financial & Product Statistics**: Admins can access detailed reports on revenue, expenses, and product performance, with the ability to filter by product category or type.
- **Manage Order Statuses**: Admins can view and update the status of all orders, including processing, shipped, completed, or canceled.
- **Edit Reviews & Comments**: Admins have the authority to modify or delete user-generated reviews and comments on products to maintain content quality.
- **Modify User Info & Roles**: Admins can edit user details (e.g., contact information) and change user roles and permissions, such as promoting a user to admin or restricting access to certain features.
### User Features
- **Make Purchases & Payments**: Users can browse and buy products with multiple payment methods, including credit cards, bank transfers, and digital wallets.
- **Comment & Review Products**: Users can leave reviews and ratings on products they’ve purchased, helping other customers make informed decisions.
- **Follow & Like Products**: Users can follow products or product categories to receive updates on new arrivals or promotions and can like products to save them for future reference.
- **View & Edit Order History**: Users can view past orders, track order statuses, and update order details, such as shipping addresses or payment methods.
## Conclusion
OptiMart provides a comprehensive set of features to empower both admins and users, ensuring a flexible and scalable platform for managing e-commerce activities. The permission-based system ensures precise control over who can access and modify different parts of the platform, while the user features offer a seamless shopping experience.
## Getting Started
Follow these steps to set up and run the backend:
### Method 1: Clone the Repository and Run Locally
```bash
git clone https://github.com/ngntu10/OptiMart.git
```
#### 1. Navigate to the project directory:
```bash
cd Optimart
```
#### 2. Build the project:
```bash
# Using Maven
mvn clean install
```
#### 3. Configure the environments:
- Update `application.properties` or `application.yml` with your environments details.
#### 4. Run the application:
```bash
# Using Maven
mvn spring-boot:run
```
### Method 2: Run the Application Using Docker Compose
```bash
git clone https://github.com/ngntu10/OptiMart.git
```
#### 1. Navigate to the project directory:
```bash
cd Optimart
```
#### 2. Build and start the containers using Docker Compose:
```bash
docker-compose -f docker-compose.yml up --build
```
[//]: # ()
[//]: # (## Demo)
[//]: # ()
## API Documentation
Document the API endpoints and their functionalities. You can use tools like `Swagger` for
automated `API documentation`.
## Star History
[](https://star-history.com/#ngntu10/Optimart&Date)
## Contributing
If you would like to contribute to the development of this project, please follow our contribution guidelines.

## License
This project is licensed under the [`Apache License`](LICENSE).
```text
Apache License
Copyright (c) 2024 Pham Nguyen Tu
```