Skip to content

MukundXplore/SuperStoreManagement-Project-OOP-Java

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🏢 Superstore Management System

Java 17 JavaFX 17 Jackson JUnit 5 Maven License: MIT


📌 Project Overview

The Superstore Management System is an Object-Oriented Programming (OOP) course project that implements an intelligent, multi-tier management system for a superstore chain. The application demonstrates modular Java design, a JavaFX client UI, client/server socket networking, role-based access control (RBAC), inventory calculations (EOQ & ROP), and JSON persistence.

The objective is to provide a robust, concurrent, and scalable solution for managing inventory across multiple warehouse locations and retail store outlets.


📊 Core Features & System Capabilities

🔹 Inventory & EOQ/ROP Management

  • Automated Reorder Point (ROP): Calculates reorder triggers based on daily usage, lead time, and safety stock.
  • Economic Order Quantity (EOQ): Determines optimal order quantities to minimize ordering and carrying costs.
  • Inventory Tracking: Real-time quantity adjustments and item categorization.

🔹 Role-Based Access Control (RBAC)

Supports 6 distinct user roles with specific system privileges:

  1. Super User: Manages warehouses, stores, and links store-warehouse mappings.
  2. Warehouse Administrator: Manages warehouse categories/items and processes store orders.
  3. Store Administrator: Places stock requests to warehouses and manages store inventory.
  4. Warehouse Keeper: Handles inventory inwards/outwards within assigned warehouses.
  5. Store Keeper: Manages store inventory inwards/outwards.
  6. End User: Guest access to search, browse, and view store catalog items.

🔹 Network & Persistence

  • Client/Server Architecture: Concurrent multi-client TCP socket connection handling.
  • JSON Data Persistence: Serialization via Jackson with full java.time.LocalDateTime support.

📄 Project Documents & System Design

Design artifacts and specification documents are available in the assets/ directory:


⚙️ Architecture & Design Patterns

  1. Singleton Pattern: Used in FileManager to ensure thread-safe single instance database management.
  2. Model-View-Controller (MVC): Separation of JavaFX FXML view layout, controller logic, and model data structures.
  3. Polymorphism & Inheritance: Abstract User superclass extended by specialized role classes (SuperUser, WarehouseAdmin, StoreAdmin, Keeper, EndUser).
  4. DTO Pattern: Request and Response objects for standardized client-server socket communications.

🧠 Tech Stack

  • Language: Java 17
  • UI Framework: JavaFX 17 (Controls & FXML)
  • JSON Processing: Jackson Databind & Jackson JSR310 (datatype-jsr310)
  • Testing Framework: JUnit 5, Mockito
  • Build Tool: Apache Maven

📁 Project Structure

.
├── assets/                 # Project objectives PDF and UML diagrams
│   ├── objective.pdf
│   ├── UMLdiagram.pdf
│   └── UMLdiagram.png
├── src/
│   ├── main/
│   │   ├── java/com/superstore/
│   │   │   ├── client/     # JavaFX UI, controllers, and scene management
│   │   │   ├── model/      # Domain models (Item, Store, User, Order, etc.)
│   │   │   ├── network/    # Request and Response network DTOs
│   │   │   └── server/     # Multi-threaded TCP server and FileManager
│   │   └── resources/      # JavaFX FXML layouts and stylesheets
│   └── test/               # JUnit 5 automated test suites
├── credentials.txt         # Pre-configured test user credentials
├── database.json          # Main database JSON storage
├── error_log.txt           # Application error log file
├── pom.xml                 # Maven build configuration
└── README.md               # Repository documentation

🚀 Quick Start & Installation

Prerequisites

  • Java 17 JDK (Ensure JAVA_HOME is set)
  • Apache Maven

1️⃣ Build Project

mvn clean package

2️⃣ Run Multi-Threaded Server

mvn exec:java "-Dexec.mainClass=com.superstore.server.Server"

3️⃣ Run JavaFX Client Application

mvn javafx:run

👨‍💻 Contributors

Name Enrollment No. GitHub Profile
Arkodyuti Bhattacharyya SAU/CS/BTECH(CSE)/2024/17 @Ark0B
Tarun Das SAU/CS/DMTECH(CSE)/2024/32 @TheCodeCipher
Mukund Prasad SAU/CS/DMTECH(CSE)/2024/13 @MukundXplore

🎓 Academic Context & Guidance

This project was completed as part of the Object-Oriented Programming (OOP) course requirements:

  • Course Title: Object-Oriented Programming (OOP)
  • Semester: Monsoon Semester
  • Department: Department of Computer Science & Engineering
  • Faculty: Faculty of Engineering & Technology
  • Institution: South Asian University (SAU), New Delhi

👨‍🏫 Course Instructor & Advisor

  • Dr. Shachi Sharma | LinkedIn Profile | Department of Computer Science & Engineering, South Asian University (SAU)

📌 Conclusion

This project demonstrates how object-oriented design patterns, concurrent networking, and modern JavaFX UI can be combined to build an end-to-end enterprise inventory management solution.

Contributors

Languages