Project Summary
This project is a custom desktop management system developed from scratch for a local billiards cafe that was forced to run its operations with pen and paper due to the inflexibility of off-the-shelf software like Akınsoft. By analyzing the client's specific pain points, I set out to deliver a tailor-made, user-friendly, fast, and fully customizable solution. I personally managed the entire project lifecycle—from ideation and development to testing, deployment (creating an .exe installer), and final delivery to the client—which was concluded successfully.
Highlighted Features
This management system was designed to cover all the needs of a billiards cafe:
Visual Table Management
- A central dashboard for live tracking of all tables (3-Cushion, American Pool) with color-coded status indicators (Available/Occupied)
- Second-by-second updates of elapsed time and current cost on each table's card
- A dynamic side panel that displays detailed session information upon clicking a table
Flexible Pricing & Session Control
- Ability to define different pricing tariffs for various table types (3-Cushion, American Pool)
- Support for both fixed-game pricing (for 3-Cushion) and progressive hourly rates (for American Pool)
- Automatic surcharge calculation for American Pool tables based on the number of players (2, 3, or 4+)
- Functionality to manually edit the start time of an ongoing session
Integrated Order & Expense Management
- Seamlessly add products (drinks, food, etc.) to active sessions
- Ability to add "Extra Charges" to a bill for non-standard items, such as a broken cue stick
- A detailed list of all orders and extra charges is displayed in the details panel
"Open Tab" System
- Create and manage "Open Tabs" (customer accounts) for regular patrons
- Transfer an entire bill from an occupied table to an open tab with a single click
- Move an open tab to a vacant table to continue the session there
Comprehensive Reporting & Analytics
- Revenue Reports: Analyze total revenue, table income, and product sales for custom date ranges or daily business cycles, visualized with pie charts
- Expense Reports: Log, manage, and report all business expenses
- All reports can be examined in a detailed, sortable table format
Full Customization & Settings
- A dedicated settings panel for the business owner to manage all products, their prices, and categories
- An intuitive interface to easily update all pricing tariffs (minute/price tiers)
Professional Deployment & Data Handling
- The application was packaged into a single .exe installer using install4j
- The database is stored in a secure user location (%APPDATA%) and is created automatically on the application's first launch
Technical Details & Architecture
- Language & Platform: Java 17, JavaFX
- UI (User Interface): Modular and responsive interfaces designed with FXML and styled with CSS
- Database: Embedded SQLite. The database schema is created and updated programmatically
- Architecture: The Model-View-Controller (MVC) design pattern was used to ensure a clear separation of concerns
- Build & Deployment: Project and dependency management handled with Maven. The maven-shade-plugin was used to package all dependencies into a single executable JAR. install4j created a professional Windows installer for the end-user
- Performance Optimization: Implemented an in-memory HashMap to cache and manage active sessions. This prevents constant database queries for the real-time updates on the main screen, significantly improving performance
- Data Integrity: Critical operations, such as transferring accounts, were made atomic by using SQL transactions (commit, rollback)
Project Outcomes & Personal Growth
This project provided me with invaluable experience in transforming a business need into an end-to-end commercial product. Beyond just writing code, I honed my skills in client communication, requirements gathering, designing a flexible database schema, creating user-friendly interfaces, and packaging a product for easy installation by a non-technical user.