Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🏪 Thogakade Shop Management System

Java JavaFX MySQL Maven Architecture

A robust Point of Sale (POS) desktop application designed for wholesale/retail store management. This project strictly follows the Layered Architecture pattern to ensure separation of concerns, utilizing JavaFX for the frontend and MySQL for data persistence.


📖 Table of Contents


🏗 Architecture

The application is decoupled into distinct layers to maintain high cohesion and low coupling:

  1. Controller Layer: Manages UI logic and interacts with the BO layer.
  2. Service / BO Layer (Business Object): Contains all business rules, calculations, and transaction management.
  3. DAO Layer (Data Access Object): Handles raw SQL queries and CRUD operations.
  4. DTO (Data Transfer Object): Transports data between the UI and Service layers.
  5. Entity: Maps directly to database tables.

📂 Project Structure

Thogakade-Shop-Management-Layered-Architect
├── src
│   ├── main
│   │   ├── java
│   │   │   └── lk.ijse.thogakade
│   │   │       ├── bo              # Business Logic Interfaces
│   │   │       │   ├── custom      # Specialized BOs (CustomerBO, ItemBO)
│   │   │       │   └── impl        # BO Implementations
│   │   │       ├── controller      # JavaFX Controllers
│   │   │       ├── dao             # Data Access Interfaces
│   │   │       │   ├── custom      # Specialized DAOs
│   │   │       │   └── impl        # DAO Implementations (SQL)
│   │   │       ├── db              # DBConnection (Singleton)
│   │   │       ├── dto             # Data Transfer Objects
│   │   │       ├── entity          # Database Entities
│   │   │       └── AppInitializer.java
│   │   └── resources
│   │       └── view                # FXML UI Views
│   │           ├── dashboard_form.fxml
│   │           ├── customer_form.fxml
│   │           └── ...
└── pom.xml

🚀 Features

👤 Customer Management

  • Add Customers: Register new customers with validation.
  • Update Details: Modify customer information.
  • Remove Customers: Delete customer records and view history.

📦 Inventory System

  • Stock Management: Monitor and adjust item stock levels.
  • Item Details: Update unit prices and descriptions.
  • Availability: Real-time checks for stock availability during orders.

🛒 Order Processing

  • Place Order: Add items to a cart, calculate totals, and process payments.
  • Transaction Management: Guarantees data integrity (commit/rollback) across Order and OrderDetail tables.
  • Invoice Generation: (Optional) View or print order summaries.

🛠 Technologies

Category Technology
Language Java (JDK 8 / 11)
GUI JavaFX
Build Tool Apache Maven
Database MySQL 8.0
ORM Concept JDBC (Prepared Statements)
Patterns Singleton, DAO, Factory, DTO

🔌 Getting Started

Prerequisites

Installation

  1. Clone the repository

    git clone [https://github.com/rashmiwijemanna/Thogakade-Shop-Management-Layered-Architect.git](https://github.com/rashmiwijemanna/Thogakade-Shop-Management-Layered-Architect.git)
  2. Open in IDE

    • Open the project in IntelliJ IDEA or Eclipse.
    • Allow Maven to load and download dependencies.

🗄 Database Setup

  1. Open your MySQL Client (Workbench, Shell, etc.).
  2. Create the database:
    CREATE DATABASE thogakade;
    USE thogakade;
  3. Configure Connection:
    • Navigate to src/main/java/.../db/DBConnection.java.
    • Update the user and password variables to match your local MySQL credentials.

🤝 Contributing

Contributions, issues, and feature requests are welcome!

  1. Fork the Project.
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature).
  3. Commit your Changes (git commit -m 'Add some AmazingFeature').
  4. Push to the Branch (git push origin feature/AmazingFeature).
  5. Open a Pull Request.

Show your support

Give a ⭐️ if this project helped you!

About

No description, website, or topics provided.

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages