A full-featured, modern event management platform built with Java Servlets, JSP, and MySQL. This application allows users to discover, create, and manage events through a sleek, dark-themed user interface inspired by modern web platforms like Luma.
- Modern UI/UX: A responsive, dark, and glossy theme applied consistently across all pages.
- User Authentication: Secure user registration and login system.
- Role-Based Access: Clear distinction between "Attendee" and "Organizer" roles with different permissions.
- Dynamic Event Discovery: A visually rich homepage displaying upcoming events with square banner images, dates, categories, and organizer details.
- Create Events: A sophisticated event creation form with a two-column layout.
- Live Image Preview: The banner image is instantly shown on a preview card when selected, before uploading.
- Event Management: Organizers can edit and delete the events they have created.
- Error Handling: Users are prompted with clear error messages, such as when they forget to upload an image.
- Event Registration: Attendees can register and unregister for events with a single click.
- View Attendees: See a list of all users registered for a specific event.
- Backend: Java, Java Servlets, JSP, JSTL
- Frontend: HTML, Inline CSS, JavaScript
- Database: MySQL
- Web Server: Apache Tomcat
- Build Tool: Apache Maven
Follow these steps to get the project running on your local machine.
- Java Development Kit (JDK) 8 or higher
- Apache Maven
- Apache Tomcat 9 or higher
- MySQL Server
git clone https://github.com/RustyLegend/EventApp.git
cd EventApp-
Open MySQL Workbench or your preferred SQL client.
-
Create a new database (schema).
CREATE DATABASE event_app;
-
Run the SQL scripts below to create the necessary tables.
-- Create the 'users' table CREATE TABLE users ( user_id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255) NOT NULL, email VARCHAR(255) NOT NULL UNIQUE, password VARCHAR(255) NOT NULL, role ENUM('attendee', 'organizer') NOT NULL ); -- Create the 'categories' table CREATE TABLE categories ( category_id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255) NOT NULL UNIQUE ); -- Create the 'events' table CREATE TABLE events ( event_id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(255) NOT NULL, description TEXT, event_datetime DATETIME NOT NULL, venue VARCHAR(255), image_url VARCHAR(255), organizer_id INT, category_id INT, FOREIGN KEY (organizer_id) REFERENCES users(user_id), FOREIGN KEY (category_id) REFERENCES categories(category_id) );
- Database Connection: Open
src/main/java/com/eventmanager/util/DBUtil.javaand update the database URL, username, and password to match your local MySQL setup. - Image Upload Path: The application saves uploaded images to a folder specified in
CreateEventServlet.java. By default, this is a folder likeC:\EventAppImages. Ensure this directory exists and is writable by the Tomcat user.
- Build the project using Maven:
mvn clean install
- This will generate a
EventApp.warfile in thetarget/directory. - Deploy the
.warfile to your Apache Tomcat server.
You can now access the application at http://localhost:8080/EventApp/.
Thank you for checking out!!!!