This project is a Book Store Management System built using JavaFX 📱 for the user interface and Hibernate JPA 🗄️ for database connectivity. It supports three main roles: Admin 👑, Employee 🧑💼 (sales staff, cashier, etc.), and Customer 🛒, each with distinct functionalities to manage bookstore operations efficiently.
The following diagram illustrates the relationships between entities in the system, including Account, Employee, Customer, Product, Order, and more.
- 🛠️ Manage employee accounts (create, update, delete).
- 📦 Oversee product inventory (books, toys, stationery).
- 💰 Track incurred costs and salary history of employees.
- 📊 View and manage batch records for stock updates.
- 📈 Access detailed reports on sales and stock levels.
Below is a screenshot of the Admin dashboard, showcasing the management interface for employees and inventory.
- Sales Staff: 🛍️ Manage customer orders, update cart, and process payments.
- Cashier: 💳 Handle transactions, record payment methods, and issue receipts.
- 📦 View and update stock levels for products (books, toys, stationery).
- ⏰ Track working hours and leave hours.
The following screenshot displays the Employee interface for handling sales and stock updates.
- 🔍 Browse and search for products (books, toys, stationery).
- 🛡️ Add items to cart and place orders.
- 📜 View purchase history and order status.
- 🖌️ Update personal information (address, contact details).
This screenshot shows the Customer interface for browsing products and managing orders.
- Frontend: JavaFX 📱 for a responsive and user-friendly interface.
- Backend: Hibernate JPA 🗄️ for ORM (Object-Relational Mapping) to interact with the database.
- Database: Relational database 📋 (schema includes entities like Account, Employee, Customer, Product, Order, etc.).
- Account: Base entity for Admin, Employee, and Customer with fields like phone, email, and password.
- Employee: Tracks salary history, working hours, and leave hours.
- Customer: Manages address, purchase history, and cart.
- Product: Includes subtypes (Book, Toy, Stationery) with specific attributes (e.g., author for Book, brand for Toy).
- Order: Links customers to products with details like total price and payment method.
- IncurredCost and BatchRecord: Used by Admin for financial and stock management.
- Salary calculations for Employee and Cashier roles use a coefficient of 0.8 (as defined in the schema).
- Ensure you have Java 17+ installed ☕.
- Configure Hibernate JPA with your database (update
persistence.xmlwith your database credentials) 🗄️. - Import the project into your IDE (e.g., IntelliJ IDEA, Eclipse) 🖥️.
- Run the JavaFX application using the main class (ensure JavaFX SDK is properly set up) 🚀.
- Admin 👑: Log in with admin credentials to access the management dashboard.
- Employee 🧑💼: Use employee credentials to handle sales, cashier tasks, or stock updates.
- Customer 🛒: Register or log in to browse products, place orders, and view purchase history.
- Ensure the database schema matches the entity relationships defined in the project 📋.
- Salary calculations for employees are based on the defined coefficient (0.8) 💰.
- The application supports basic CRUD operations for all entities 🛠️.














