Skip to content

Optimart: A full-stack e-commerce platform with a Spring Boot backend and Next.js frontend for a modern, scalable user experience.

License

Notifications You must be signed in to change notification settings

ngntu10/OptiMart

Repository files navigation

Optimart

🛍️ Optimart

Backend system provides restful API for web.

SonarCloud

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

   git clone https://github.com/ngntu10/OptiMart.git

1. Navigate to the project directory:

  cd Optimart

2. Build the project:

  # Using Maven
  mvn clean install

3. Configure the environments:

  • Update application.properties or application.yml with your environments details.

4. Run the application:

  # Using Maven
  mvn spring-boot:run

Method 2: Run the Application Using Docker Compose

   git clone https://github.com/ngntu10/OptiMart.git

1. Navigate to the project directory:

  cd Optimart

2. Build and start the containers using Docker Compose:

  docker-compose -f docker-compose.yml up --build

API Documentation

Document the API endpoints and their functionalities. You can use tools like Swagger for automated API documentation.

Star History

Star History Chart

Contributing

If you would like to contribute to the development of this project, please follow our contribution guidelines.

Alt

License

This project is licensed under the Apache License.

Apache License
Copyright (c) 2024 Pham Nguyen Tu

Releases

No releases published

Packages

No packages published

Languages