Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

Event Registration System

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.


✨ Features

  • 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

🛠️ Tech Stack

  • Language: Java
  • Database: Oracle XE
  • Database Access: JDBC
  • Architecture: DAO (Data Access Object) pattern
  • IDE: Eclipse (initial), Visual Studio Code
  • Version Control: Git & GitHub

📁 Project Structure

EventRegistration/
│
├── src/
│   ├── EventRegistrationPackage/
│   │   ├── DBconnection.java
│   │   ├── EventDAO.java
│   │   ├── RegistrationDAO.java
│   │   ├── menu.java
│   │   └── module-info.java
│
├── config/
│   └── db.properties   (ignored in Git)
│
├── .gitignore
└── README.md

Database Design

The system uses two main tables with a one-to-many relationship.

Event Table

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.

Registration Table

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.

Key Constraints

  • 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 Configuration

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.


▶️ How to Run the Project

  1. Clone the repository
  2. Create an Oracle database and required tables
  3. Add db.properties inside the config/ folder
  4. Ensure Oracle JDBC driver is available in the classpath
  5. Run menu.java
  6. Use the console menu to interact with the system

🧠 Design Highlights

  • DAO Pattern used to separate business logic and database access
  • Centralized DB Connection management via DBconnection class
  • Properties-based configuration for environment flexibility
  • Clean menu-driven user interaction

🚀 Future Scope

  • 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

👩🏻‍💻 Author

Swarali Mahambare Java | SQL | Backend Development


📌 Note

This project is created for learning and academic purposes, focusing on Java backend fundamentals, database integration, and clean project structure.

About

A Java backend learning project implementing an Event Registration System using JDBC, Oracle DB, and DAO pattern with proper configuration management.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages