Ticket Tracking System
A modern Java Swing-based Ticket Management System designed for IT departments and organizations to efficiently manage support requests, asset inventories, and technician assignments. Built with a glass UI effect, gradient backgrounds, and responsive layout, this app features role-based access for Admins, Technicians, and Users.
ADMIN PANEL • View and manage all tickets created by users. • Assign tickets to technicians. • Track Date Received, Date Assigned, and Status. • Manage pending account requests (approve or reject). • Access company asset inventory with:
- Item Name
- Inventory Number
- Shelf / Location
- Status (Working / Defective)
- Assigned To
TECHNICIAN PANEL • View tickets assigned to that technician. • Update ticket status (In Progress, Fixed, Closed). • See assigned time and date.
USER PANEL • Create and view personal tickets. • Each ticket includes ID, Title, Description, Progress. • Track updates in real time.
SYSTEM & UI FEATURES • Role-based dashboards (Admin, Tech, User, Head IT) • Collapsible sidebar with logout and settings buttons • Dark / Light Mode toggle • Sound toggle in settings • Tinted glass-like UI inspired by macOS • Background image support (customizable) • Responsive layout that adapts to window resizing
src/ └── main/ ├── java/ │ └── com/example/ticketstracker/ │ ├── controller/ - logic (Auth, Ticket, Account, Theme) │ ├── model/ - data classes (User, Ticket, Role) │ └── ui/ - all Swing panels └── resources/ - images and assets
• Java 17 or higher • Gradle build system • IntelliJ IDEA (recommended)
To check versions: java -version gradle -v
Expected: openjdk version "17.0.11" Gradle 8.7
-
Clone the repository: git clone https://github.com//TicketsTracker.git
-
Open in IntelliJ IDEA. IntelliJ will automatically detect Gradle.
-
Build the project: ./gradlew build
-
Run the app: Run Main.java in src/main/java/com/example/ticketstracker/ui/
Admin | admin | admin Head IT | headit | headit Technician 1 | tech1 | tech1 Technician 2 | tech2 | tech2 Technician 3 | tech3 | tech3 Technician 4 | tech4 | tech4 User 1–4 | user1–4 | same as username
Background Image: Replace the file in src/main/resources/background.jpg
Style Customization: Edit Style.java to adjust fonts, colors, button gradients, and transparency.
plugins { id("java") application }
java { toolchain.languageVersion.set(JavaLanguageVersion.of(17)) }
application { mainClass.set("com.example.ticketstracker.ui.Main") }
repositories { mavenCentral() }
dependencies { implementation("org.swinglabs:swingx:1.6.1") }
• Database integration (SQLite / MySQL) • Email or push notifications • Export reports (PDF, Excel) • Analytics dashboard for ticket metrics • Role-based access logging
David Harris MSc Cyber Security | UWE Bristol Email: davidharris200111@gmail.com
This project is licensed under the MIT License. You are free to use, modify, and distribute this software for personal purposes.