Laya Bill System
Hybrid Cloud Solution
A high-performance Desktop POS (Point of Sale) ecosystem integrated with a remote Cloud Database infrastructure. Engineered for Laya Hotels to provide seamless real-time billing across geographically distributed departments. Validated by over Million LKR in processed turnover with 99.9% network reliability.
Strategic Architecture
The Laya Bill System ( Version 3 | "Extended" ) is not a traditional standalone application. It was designed as a Hybrid Cloud Solution to solve the challenges of modern hotel management. While the user interface runs as a high-performance Java Desktop Application on selected authorized terminals, the data resides on a secure Cloud-hosted MySQL Database.
This architecture provides the "best of both worlds": the raw processing power and low-latency UI of a native desktop app, combined with the centralized data management and global accessibility of the cloud. This setup allows management to access real-time financial data while POS operators enjoy an uninterrupted, high-speed experience even during heavy traffic.
MVC Pattern Implementation
To maintain a codebase that supports in turnover, I strictly adhered to the Model-View-Controller design pattern to ensure scalability and isolation of concerns.
The Model
POJO classes (ItemData, Items) and
specialized utility models (MySQL.java) represent the data layer and remote state.
The View
Custom Swing JFrames (Billing_page,
Room_billing) enhanced with FlatLaf for a modern, enterprise-grade
aesthetic.
The Controller
Logic layers within GUI classes and Functions.java manage
the flow between UI events and Remote Cloud transactions.
Restricted Terminal Access
The system is deployed exclusively on authorized hardware IDs within the organization. This ensures that even though the database is on the cloud, only selected, high-security desktops can initiate billing transactions, preventing unauthorized external access.
Cloud Latency Optimization
Interacting with a remote database introduces latency. I solved this by implementing local data
caching using TreeMap for catalogs, reducing the need for repeated remote calls
and ensuring the UI stays responsive at O(log n) speeds.
High-Volume Data Management (DSA)
Efficient Sorting & Retrieval
Used TreeMap<String, Items> to store the product master. This ensures all
items are automatically sorted by their codes, providing O(log n) search
performance essential when dealing with thousands of SKU items in a live billing environment.
Ordered Transaction Processing
The active bill uses a LinkedHashMap<String, Integer>. This preserves the
exact order of item entry (crucial for Auditing against KOT and BOT) while allowing O(1)
time complexity for quantity increments when the same item is scanned multiple times.
Multi-Threaded UI Responsiveness
To prevent the POS from hanging during cloud synchronization, I implemented Java
Multi-Threading. Reports (JasperReports), database heavy-lifts and the real-time clock
(ClockUtil) all run on separate daemon threads, keeping the main Event Dispatch Thread
(EDT) free for user interaction.
Project Metadata
- Launched Date 2024.07.05
- Current Status Live & Operational
-
Processed Value
as of
- Deployment Selected Desktop Nodes
- Database Host Cloud (Remote)
- Architecture Decoupled MVC