This is an Online Store web application built using Java and the Spring Framework. The application provides functionality for customers, shopkeepers, and delivery personnel to interact with the system. It follows a layered architecture with controllers, services, DAOs, and entities. The frontend is implemented using JSP, while the backend leverages Spring MVC and Hibernate.
- Secure login and registration system.
- Role-based authentication for customers, shopkeepers, and delivery personnel.
- Profile management with password updates and personal details.
- Shopkeepers can add, update, and remove products.
- Products can be categorized for easy navigation.
- Customers can browse and filter products by category and tags.
- Customers can place orders and provide delivery details.
- Shopkeepers can process and manage incoming orders.
- Delivery personnel can track and update order statuses.
- Customers can add items to the cart before proceeding to checkout.
- Order summary is displayed before final confirmation.
- Secure payment processing integration (future scope).
- Input validation for user registration, order details, and form submissions.
- Custom exception handling for better error management.
- Secure password storage using encryption.
- Protection against common web vulnerabilities (e.g., SQL injection, CSRF, XSS).
- Role-based access control to prevent unauthorized actions.
- Backend: Java, Spring Boot, Hibernate
- Frontend: JSP, JavaScript, CSS
- Database: SQL (MySQL/PostgreSQL)
- Build Tool: Gradle
- Security: Encryption utilities, authentication filters
.
├── README.md
├── build.gradle
├── settings.gradle
├── db-migration (Database migration scripts)
│ ├── dml.sql
│ └── pre-ddl.sql
├── src
│ ├── main
│ │ ├── java
│ │ │ └── net.therap.onlinestore
│ │ │ ├── controller (Handles HTTP requests)
│ │ │ ├── entity (Database entities)
│ │ │ ├── service (Business logic implementation)
│ │ │ ├── exception (Custom exception handling)
│ │ │ ├── filter (Authentication and request filters)
│ │ │ ├── helper (Utility classes for various functions)
│ │ │ ├── validator (Input validation rules)
│ │ ├── resources
│ │ │ ├── application.properties (Configuration settings)
│ │ │ ├── log4j.properties (Logging configuration)
│ │ │ ├── messages.properties (Internationalization support)
│ │ │ ├── META-INF/persistence.xml (Database configuration)
│ │ ├── webapp
│ │ ├── WEB-INF (Spring MVC and JSP configuration)
│ │ ├── assets (CSS, JavaScript, and images)
- Java 17+
- Gradle
- Database (MySQL/PostgreSQL/SQLite based on configuration)
- Tomcat or any servlet container
- Clone the repository:
git clone https://github.com/Nadim-Mahmud/online-store.git cd online-store-app
- Configure the database in
persistence.xml
. - Build the project using Gradle:
./gradlew build
- Deploy the WAR file to Tomcat or run locally:
./gradlew bootRun
- Access the application at
http://localhost:8080
.