Fast checkout. Honest stock. Clear reports.
Role-based sales, products, customers and JasperReports invoices on a local MySQL database.
A pre-packaged standalone Windows binary with embedded JRE runtime is available directly in the Releases:
- Download:
POS-Windows-v1.0.0.zip(Standalone Windows Bundle). - Database: Ensure your local MySQL service has the schema from
database/POS_DB.sqlimported. - Launch: Extract the zip and double-click
POS.exeto run the application immediately!
| Account Type | Password | Role | |
|---|---|---|---|
| System Admin | admin@pos.com |
admin123 |
Administrator |
| Manager / Cashier | damsara@pos.com |
pass123 |
Active Staff |
-
🔐 Authentication & Role Management
- Secure login with role-based permissions (
Admin,Cashier). - User status controls (
Active,Inactive) to restrict disabled accounts. - Full user management interface to create, edit, activate, or deactivate accounts.
- Secure login with role-based permissions (
-
📦 Product & Inventory Tracking
- Manage product catalogs with names, descriptions, unit prices, and stock quantities.
- Categorize products dynamically into custom categories.
- Instant search, filtering, and real-time stock updates upon purchase.
-
👥 Customer Management
- Register and maintain customer records with contact numbers and emails.
- Link customer profiles to orders for billing history and analytics.
-
🧾 Order Processing & POS Billing
- Intuitive, fast checkout interface with dynamic cart tables.
- Automatic invoice number generation (
Bill-XXXXXXXX). - Total calculations with instant payment tracking and receipt printing.
- Real-time stock decrement upon order completion.
-
📄 Reporting & PDF Generation
- Built-in JasperReports templates (
.jrxml&.jasper). - Export customer summary reports and user activity reports to PDF.
- Instant digital invoice viewer and thermal receipt layout support.
- Built-in JasperReports templates (
-
🎨 Modern Dark/Flat UI
- Styled with FlatLaf 3.6 for clean modern aesthetics.
- Custom rounded cards (
PanelRound), smooth scrollbars (ScrollBar), and styled data tables. - Flexible layout powered by MigLayout.
| Component | Technology / Library |
|---|---|
| Language | Java (JDK 8+) |
| GUI Framework | Java Swing & AWT |
| Look & Feel | FlatLaf 3.6 & Custom Swing Components |
| Layout Manager | MigLayout 5.3 & AbsoluteLayout |
| Database | MySQL 8.0 / MariaDB (JDBC Connector 8.0.18) |
| Reporting Engine | JasperReports 6.21.5 & OpenPDF / iText |
| Build System | Apache Ant (NetBeans project structure) |
POS/
├── database/ # Database SQL schema, seed data, and report compilation utility
│ ├── POS_DB.sql # Complete MySQL schema & initial seed data
│ └── CompileReports.java # Helper script to compile JasperReports (.jrxml -> .jasper)
├── Documentation/ # Project documentation generators (SRS & Report scripts)
├── lib/ # All required JAR dependencies (FlatLaf, JasperReports, MySQL, etc.)
├── nbproject/ # NetBeans project configuration and Ant build targets
├── src/ # Java source code
│ └── JIAT/
│ ├── Common/ # PDF generator & opener utilities
│ ├── Component/ # Reusable modern UI components (Buttons, Panels, Tables, Scrollbars)
│ ├── Connetion/ # MySQL JDBC connection provider & inventory utilities
│ ├── Images/ # Application icons and graphic assets
│ ├── Logger/ # Application logging utilities
│ ├── Login/ # Main application forms (Login, Home, ManageProduct, ManageOrder, etc.)
│ └── Report/ # JasperReports templates (.jrxml and compiled .jasper)
├── build.xml # Apache Ant master build file
├── manifest.mf # Application JAR manifest
└── README.md
- Java Development Kit (JDK): Version 8 or higher (JDK 17+ recommended).
- MySQL Server: Version 5.7 or 8.0+.
- IDE (Optional): Apache NetBeans, IntelliJ IDEA, or Eclipse.
- Start your local MySQL service.
- Open your favorite database management tool (MySQL Workbench, phpMyAdmin, DBeaver, or terminal).
- Import and execute the SQL script located at:
This will create the database
database/POS_DB.sqlPOS_DBand populate initial tables and seed data.
- Email:
admin@pos.com - Password:
admin123
Open src/JIAT/Connetion/ConnetionProvider.java and adjust your MySQL connection parameters:
private final String server = "localhost";
private final String port = "3306";
private final String database = "pos_system"; // or "POS_DB" based on your schema name
private final String userName = "root";
private final String password = "YOUR_DB_PASSWORD"; // Update with your local MySQL password- Open NetBeans IDE.
- Go to File > Open Project... and select this repository folder.
- Right-click the project and select Clean and Build.
- Right-click the project and select Run (Main class:
JIAT.Login.Login).
# Clean and compile the project
ant clean compile
# Run the application
ant runThis project is open-source and available under the MIT License.