Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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: 21 days 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 (5 months ago)
- Default Branch: main
- Last Pushed: 2024-10-24T07:52:50.000Z (2 months ago)
- Last Synced: 2024-10-25T04:10:46.356Z (2 months 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](https://socialify.git.ci/ngntu10/Optimart/image?description=1&font=Bitter&forks=1&issues=1&language=1&logo=https%3A%2F%2Fi.ibb.co%2FyYDzpBG%2Fngntu1.jpg&name=1&owner=1&pattern=Floating%20Cogs&stargazers=1&theme=Dark)
# ποΈ OptimartBackend system provides restful API for web.
[//]: # ([![CircleCI](https://circleci.com/gh/piomin/sample-spring-microservices-new.svg?style=svg)](https://sonarcloud.io/project/issues?resolved=false&id=hoangtien2k3_ecommerce-microservices))
[![SonarCloud](https://sonarcloud.io/images/project_badges/sonarcloud-black.svg)](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)[//]: # (![1715441188385](https://github.com/user-attachments/assets/ea07616a-5404-4ccd-bab0-b472b67a061a))
## API Documentation
Document the API endpoints and their functionalities. You can use tools like `Swagger` for
automated `API documentation`.## Star History
[![Star History Chart](https://api.star-history.com/svg?repos=ngntu10/Optimart&type=Date)](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.
![Alt](https://repobeats.axiom.co/api/embed/fd7fd76dafe452bdb7c2bc12856bd45c277ee732.svg "Repobeats analytics image")
## LicenseThis project is licensed under the [`Apache License`](LICENSE).
```text
Apache License
Copyright (c) 2024 Pham Nguyen Tu
```