Welcome to ShoppingSystem, an advanced full-stack application designed to enhance the shopping experience. While the project is still in development, it demonstrates significant potential. This document serves as a comprehensive guide to the system’s features, functionalities, and instructions for getting started.
Your feedback is highly valued, and we encourage you to explore, test, and contribute to the project to help refine and improve the application.
ShoppingSystem is designed to provide a seamless and engaging shopping experience. The application consists of two primary components:
- Frontend: A responsive and user-friendly interface developed using React.
- Backend: A robust and scalable backend powered by Java Spring Boot.
The system follows the Model-View-Controller (MVC) architecture, utilizing a four-layered structure: Controller, Service, Repository, and Model.
To run this project, the following software must be installed on your system:
- React.js – For the frontend.
- Java JDK – For the backend.
- Maven – For managing Java dependencies.
- Modern Web Browser – For exploring the application.
-
Clone the repository.
-
Make Changes on postgresql database name as well as username and password - application.properties
📂 File Located : Spring Projects\Shopping-System\ShoppingBackend\src\main\resources
spring.datasource.url=jdbc:postgresql://localhost:5432/ShoppingSystemDB spring.datasource.username= add your username which associated with your postgresql spring.datasource.password= add your password as well
-
Navigate to the frontend directory and install the required dependencies:
cd ShoppingFrontend npm install
Perform all operations that are available only within the admin panel.
Note: Preloaded data is available in the DataInitializer.java file. Product images are in byte format so that it will not include in preload file, and also you can add or update images via the admin dashboard.
Implemented the Product entity, along with repository, service, and controller layers.
Developed APIs to:
- Fetch all products.
- Retrieve product details by ID.
Created the homepage using React, incorporating React hooks for state and effect management. Integrated React Router to facilitate navigation between pages.
Enhanced functionality:
- Added product submission forms with image upload support.
- Established routing for the following key pages:
/– Homepage/product/:id– Product Details/product/add– Add New Product
Expanded API functionality to include:
- GET, UPDATE, and DELETE operations for products.
Improved the user interface:
- Implemented a search bar with category filters.
- Added actionable buttons for product update and deletion.
- Migrated the database from H2 to PostgreSQL.
- Developed an Admin Dashboard for efficient management of users, orders, and products.
- Introduced role-based access control:
- Admin – Manages system settings (without the ability to make purchases).
- User – Adds items to the cart, manages profiles, and processes orders.
- Integrated Docker for simplified deployment.
- Resolved various server-side issues, including HTTP status errors (500, 403, 401).
- 🔒 User Authentication – Secure login and registration processes.
- 🛍️ Product Management – Add, update, and delete products.
- 🏷️ Deals Management – Schedule, add, update, and delete promotional deals.
- 📜 Admin Dashboard – Comprehensive system management tools.
- 🛒 Shopping Cart – Add and remove products, and view summaries.
The following features are planned for future releases:
- 💳 Order Processing – Secure checkout and payment gateway integration.
- 💸 Payment Gateway Integration – Integration with payment platforms such as PayPal and Razorpay.
To deploy the project, follow these steps:
- Start the backend application by executing
ShoppingBackendApplication.java. - Launch the frontend:
npm run dev
- We have already done 1 admin and 1 user to manage or test application
i) Add new employees through the dashboard. ii) Assign admin privileges to employees as needed.
- Admin
i) Username - admin. ii) Password - adminPassword.
- Then make registration and test application.
We encourage you to explore, test, and contribute to ShoppingSystem to help enhance its functionality and user experience. Thank you for your participation, and happy coding! 🚀