Skip to content

About

Java desktop app for end-to-end event management. Three roles: Admin owns venues, Organizer runs events, Attendee buys tickets. Features wallet-based ticketing with atomic concurrent purchase protection, full refund on cancellation, real-time Organizer–Admin socket chat, and a JavaFX GUI. Built on strict layered OOP architecture.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Event Management System (EMS)

A JavaFX desktop application for managing events, rooms, categories, tickets, and wallets. Built with a layered architecture (Presentation → Service → Domain Model → Data Access).

Prerequisites

  • JDK 25 installed (matches maven.compiler.release in pom.xml)
  • No Maven installation required — the Maven wrapper (mvnw) is included

Quick Start

Windows

.\run.bat

Linux / macOS

chmod +x run.sh mvnw
./run.sh

Both scripts prompt you to choose:

  1. GUI — launches the JavaFX application (MainApp)
  2. CLI — runs the integration test suite (CliRunner)

Default Admin Credentials

Username Password
admin admin

Register new Organizer and Attendee accounts via the Register screen.

Project Structure

src/main/java/com/ems/
├── db/           # Database singleton with in-memory HashMap stores
├── model/        # Domain models (User, Event, Room, Ticket, Wallet, etc.)
│   ├── enums/    # Gender, Role, EventStatus, TicketStatus
│   ├── event/    # Event, Category
│   ├── financial/# Ticket, Wallet
│   ├── user/     # Authenticatable, User (abstract), Admin, Organizer, Attendee
│   └── venue/    # Room, TimeSlot
├── network/      # ChatServer, ChatClient, MessageHandler, Chateable
├── service/      # AuthService, Manageable, Searchable, Purchasable, …
├── ui/           # JavaFX controllers and MainApp
├── util/         # HashUtil, ValidationUtil
└── exception/    # Custom exceptions

Features

  • Admin: Manage rooms & categories, view all events/users, start chat server
  • Organizer: Create/publish/cancel events with room booking, chat with admin
  • Attendee: Browse published events, buy tickets, view bookings, top-up wallet
  • Concurrency: Thread-safe ticket purchasing and event cancellation with automated refunds
  • Networking: TCP socket-based chat between Organizer and Admin

Building

./mvnw clean package

The compiled JAR is output to target/.

Documentation

About

Java desktop app for end-to-end event management. Three roles: Admin owns venues, Organizer runs events, Attendee buys tickets. Features wallet-based ticketing with atomic concurrent purchase protection, full refund on cancellation, real-time Organizer–Admin socket chat, and a JavaFX GUI. Built on strict layered OOP architecture.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages