A console-based Java application for managing events and participant registrations. This project demonstrates clean Java architecture using DAO pattern, JDBC, and Oracle Database, with proper separation of configuration and source code. It was developed in Eclipse IDE and later migrated to VS Code, and is version-controlled using Git.
- Create and manage events
- Register participants for events
- View registrations for a specific event
- Cancel registrations
- Mark attendance (present / absent)
- Mark events as completed
- Automatically handles database connectivity using a centralized utility class
- Language: Java
- Database: Oracle XE
- Database Access: JDBC
- Architecture: DAO (Data Access Object) pattern
- IDE: Eclipse (initial), Visual Studio Code
- Version Control: Git & GitHub
EventRegistration/
│
├── src/
│ ├── EventRegistrationPackage/
│ │ ├── DBconnection.java
│ │ ├── EventDAO.java
│ │ ├── RegistrationDAO.java
│ │ ├── menu.java
│ │ └── module-info.java
│
├── config/
│ └── db.properties (ignored in Git)
│
├── .gitignore
└── README.md
The system uses two main tables with a one-to-many relationship.
Stores details about events such as:
- Event name, type, date, and location
- Maximum capacity and registration fees
- Event status (
SCHEDULED,COMPLETED,CANCELLED)
Each event has a unique event_id.
Stores participant registrations for events:
- Participant name and email
- Attendance status (
REGISTERED,ATTENDED,ABSENT) - Registration status (
REGISTERED,CANCELLED)
Each registration is linked to an event using event_id.
- One event can have multiple registrations
- Duplicate registrations for the same event (same email) are prevented
- Attendance can only be marked for registered participants
- Capacity limits are enforced at the application level
Database credentials are not hardcoded in the source code.
They are stored in an external properties file:
jdbc.url=jdbc:oracle:thin:@localhost:1521:XE
jdbc.username=YOUR_USERNAME
jdbc.password=YOUR_PASSWORD📌 This file is intentionally excluded from Git using .gitignore to protect sensitive information.
- Clone the repository
- Create an Oracle database and required tables
- Add
db.propertiesinside theconfig/folder - Ensure Oracle JDBC driver is available in the classpath
- Run
menu.java - Use the console menu to interact with the system
- DAO Pattern used to separate business logic and database access
- Centralized DB Connection management via
DBconnectionclass - Properties-based configuration for environment flexibility
- Clean menu-driven user interaction
- Convert the application into a REST-based backend using Spring Boot
- Build a web-based user interface using React
- Introduce user authentication for administrators and participants
- Add basic email notifications for registration confirmation and event updates
- Generate simple reports such as total registrations and attendance summary
- Explore deployment of the application on a cloud platform for learning purposes
Swarali Mahambare Java | SQL | Backend Development
This project is created for learning and academic purposes, focusing on Java backend fundamentals, database integration, and clean project structure.