Project Name: EventFlow
Description: A professional, role-based event management system built with Java. It handles comprehensive event operations including user roles, registration, task management, notifications, and schedule adjustments. It provides a robust backend with session management, role-based access control, and a clean, responsive UI.
Features:
- Role-Based Access Control: Secure portal for Admins, Organizers, Volunteers, and Students.
- Event Management: Create, update, and monitor live event operations.
- Task Orchestration: Assign and track tasks with dependencies and real-time updates.
- Attendance & Registration: Seamless student registration and check-in flow.
- Dashboard Analytics: Live metrics, operations pulse, and assignment momentum.
- Dark/Light Mode: Integrated theme toggle for an enhanced user experience.
- Frontend: HTML5, CSS3 (Custom Design System / Tokens), JavaScript, JSP (JavaServer Pages)
- Backend: Java 17, Jakarta Servlet API, MVC Architecture
- Database: MySQL 8.x
- Build Tool: Maven (Wrapper)
- Server: Apache Tomcat 10.x
Note: This project is a monolithic Java Web Application, meaning the frontend and backend run together on the Apache Tomcat server rather than as separate Node.js/React applications.
git clone <repo-link>
cd eventflowEnsure you have MySQL installed and running.
-
MySQL username: root
-
Password: 2592
-
Execute the database creation script or run manually:
CREATE DATABASE eventflow CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-
Seed the database using the provided PowerShell script (Windows) or Bash script (Mac/Linux):
.\scripts\seed-local-db.ps1
Since this is a unified Java project, you package the backend and frontend together into a .war file using Maven.
# Build the application using Maven Wrapper
.\mvnw.cmd -q -DskipTests packageDeploy the generated target/event-flow.war to your local Apache Tomcat 10.x server's webapps directory.
You can also use the automated bootstrap script which seeds the DB, builds the WAR, and deploys it automatically:
.\scripts\bootstrap-local.ps1- Application URL: http://localhost:8080/event-flow/login.jsp (Runs combined on port 8080 via Tomcat)
| Role | Password | |
|---|---|---|
| Admin | admin@eventflow.local |
Admin123! |
| Organizer | organizer@eventflow.local |
Organizer123! |
| Volunteer | volunteer@eventflow.local |
Volunteer123! |
| Student | student@eventflow.local |
Student123! |
- Module not found / Build failures:
Ensure you are using Java 17. Run
java -versionto verify. Use.\mvnw.cmd clean packageto clear cache and rebuild. - DB connection error:
Verify your MySQL credentials. By default, the app connects using
rootand2592. Ensure theeventflowdatabase was created and seeded correctly. If you get connection refused, make sure the MySQL service is running on port 3306. - Port issues:
If port 8080 is already in use, you can change the Tomcat server port in
conf/server.xmlwithin your Tomcat installation directory. Find<Connector port="8080" ... />and change8080to another port like8081. - Blank pages or 404s after deploy:
Clear your Tomcat cache by deleting the contents of
work/Catalina/localhostandtemp/directories inside your Tomcat folder, then restart Tomcat.
To get a live link for your GitHub portfolio, you can deploy this application for free using Render (for the Java app) and TiDB Serverless (for the MySQL database).
- Go to TiDB Cloud and create a free account.
- Create a new Serverless Tier cluster (this provides a generous free MySQL-compatible database without region limits).
- Click "Connect" and get your connection details: Host, Port, User, and Password.
We have included a Dockerfile that packages the application into an executable Tomcat container.
- Create a free account on Render.
- Click New + and select Web Service.
- Connect your GitHub repository.
- Render will automatically detect the Dockerfile.
- Scroll down to Environment Variables and add these so the app can connect to your database:
EVENTFLOW_APP_ENVIRONMENT=productionEVENTFLOW_DB_URL=jdbc:mysql://<your-tidb-host>:<port>/test?useSSL=trueEVENTFLOW_DB_USERNAME=<your-tidb-user>EVENTFLOW_DB_PASSWORD=<your-tidb-password>
- Click Create Web Service. Render will build the image and give you a live
.onrender.comURL!