- Overview
- Key Features
- User Roles
- Tech Stack
- Project Structure
- Architecture
- Getting Started
- Database Setup
- Screenshots
- Future Improvements
- Author
Event Registration and Ticket Management System is an integrated Java (Swing) desktop application for managing event registration and ticket generation, backed by a MySQL database (designed in MySQL Workbench).
The system provides three separate dashboards, each tailored to a specific role in the event lifecycle — from attendees browsing and registering for events, to organizers managing their own events, to admins overseeing the entire system.
- 🔐 Secure authentication — login and signup with password hashing (
HashUtil) - 🎫 Event registration & ticket generation for attendees
- 📅 Event management (create, update, oversee) for organizers
- 📊 System oversight & reporting for admins (
admin_report.txtoutput) - 🖥️ Role-based dashboards built with Java Swing, each with its own frame/UI
- 🗄️ Persistent storage via a dedicated MySQL connection layer (
DBConnection) - 🧩 Clean separation between UI frames, business logic, and data access
| Role | Capabilities |
|---|---|
| 🧑💻 Attendee | Register for events, browse available events, view/manage their tickets |
| 🗂️ Organizer | Create and manage events, track registrations |
| 🛡️ Admin | Oversee the system, manage users/events, generate reports |
Each role has a dedicated dashboard frame:
AttendeeDashboardFrameOrganizerDashboardFrameAdminDashboardFrame
| Layer | Technology |
|---|---|
| Language | Java |
| UI Framework | Java Swing |
| Database | MySQL (schema designed in MySQL Workbench) |
| Build Tool | Apache Ant (NetBeans project) |
| IDE | Apache NetBeans |
Event-Registration-and-Ticket-Management-System/
│
├── src/
│ ├── LoginFrame.java -- Login screen & authentication
│ ├── SignupFrame.java -- New user registration screen
│ ├── HashUtil.java -- Password hashing utility
│ ├── DBConnection.java -- MySQL database connection handler
│ ├── Event_project.java -- Main application entry point
│ ├── AttendeeDashboardFrame.java -- Attendee dashboard UI
│ ├── OrganizerDashboardFrame.java -- Organizer dashboard UI
│ └── AdminDashboardFrame.java -- Admin dashboard UI
│
├── build.xml -- Ant build script
├── build-impl.xml -- NetBeans-generated build implementation
├── manifest.mf -- JAR manifest
├── project.xml / project.properties -- NetBeans project configuration
├── private.xml / private.properties -- Local NetBeans settings
├── genfiles.properties -- Ant/NetBeans generated files tracking
├── admin_report.txt -- Sample admin report output
└── README.md
💡 Tip: Consider adding a
.gitignorefor NetBeans/Ant build artifacts (*.class,build/,dist/,nbproject/private/) so only source files are tracked in version control — this keeps the repo clean and diff-friendly.
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ LoginFrame / │──────▶│ Role Dashboards │──────▶│ DBConnection │
│ SignupFrame │ │ (Attendee / │ │ (MySQL Access) │
│ │ │ Organizer / │ │ │
│ HashUtil for │ │ Admin) │ │ Event_project │
│ password hash │ │ │ │ (entry point) │
└─────────────────┘ └──────────────────┘ └─────────────────┘
- Event_project launches the application and opens
LoginFrame. - Users authenticate or sign up (
SignupFrame) — passwords are hashed viaHashUtilbefore being stored/verified throughDBConnection. - Based on the user's role, the appropriate dashboard (
Attendee/Organizer/Admin) is loaded. - All dashboards communicate with the MySQL database through the shared
DBConnectionclass.
- Java JDK 8+
- MySQL Server + MySQL Workbench
- Apache NetBeans IDE (recommended, since the project includes NetBeans project files)
- Clone the repository
git clone https://github.com/buduraljohani/Event-Registration-and-Ticket-Management-System.git
- Open in NetBeans
File → Open Project→ select the cloned folder.
- Set up the database (see Database Setup below).
- Configure the connection in
DBConnection.javawith your MySQL host, username, and password. - Build & Run
- Right-click the project →
Clean and Build, thenRun.
- Right-click the project →
- Open MySQL Workbench and create a new schema (e.g.
event_management_db). - Create the required tables (Users/Roles, Events, Registrations/Tickets) matching the fields referenced in
DBConnection.javaand the dashboard classes. - Update the JDBC connection string, username, and password inside
DBConnection.javato point to your local schema. - Run the application — new signups and events will populate the database automatically.
📌 If you have the original MySQL Workbench
.mwbfile or SQL export for this schema, add it to a/databasefolder in the repo and link it here for full reproducibility.
Add screenshots of the Login screen, Signup screen, and each dashboard here for a stronger presentation, e.g.:
   
- Add input validation and error handling across all forms
- Encrypt/secure database credentials (avoid hardcoding in
DBConnection) - Export tickets as PDF (QR-coded) instead of plain text reports
- Add unit tests for
HashUtiland database operations - Migrate build to Maven/Gradle for easier dependency management outside NetBeans
Budur Aljohani — @buduraljohani AND Others students
If you found this project useful, consider giving it a ⭐!