A complete, full-stack web application for managing events, venues, organizers, and attendees. This project is built with a Python and Flask backend, a MySQL database, and a vanilla HTML, CSS, and JavaScript frontend.
The application is designed to be a comprehensive solution for event administrators, providing full CRUD (Create, Read, Update, Delete) functionality for all major components of an event lifecycle.
- Full CRUD Operations: Create, read, update, and delete Events, Venues, Organizers, and Attendees.
- Relational Management: Manage complex relationships, such as event schedules and attendee registrations for specific events.
- Dynamic Ticketing: A dynamic pricing system where ticket prices can be set for events, with different tiers (e.g., Regular, VIP). Updating an event's price automatically recalculates the price for existing tickets.
- Data Exploration: View detailed pages for attendees and organizers to see all events they are associated with.
- Search Functionality: Easily find events by name/city and attendees by name/email.
- Responsive Design: A clean, modern UI that is fully responsive and functional on desktop, tablet, and mobile devices.
- Backend: Python 3 with the Flask web framework.
- Database: MySQL 8.0.
- Frontend: Vanilla HTML5, CSS3, and modern JavaScript (ES6+).
- Python Libraries: Flask, Flask-Cors, PyMySQL.
Follow these instructions to set up and run the project on your local machine.
Before you begin, ensure you have the following installed on your system:
- Python 3: You can download it from python.org.
- MySQL Server & Workbench: The application is built using MySQL 8.0. You can download it from the official MySQL website.
Python (Windows): For a step-by-step guide on installing Python 3 on Windows, you can watch this video tutorial by Tech With Tim.
MySQL & Workbench (Windows): For a complete walkthrough of installing both the MySQL Server and Workbench, this video tutorial from Amigoscode is excellent.
(Note: While specific version numbers in the videos may differ, the installation process is generally the same.)
The Python backend requires the following libraries:
FlaskFlask-CorsPyMySQL
These will be installed in a later step.
Clone this project to your local machine using Git.
git clone https://github.com/MichaelFirstAC/EventManager.git
cd EventManagerPro
Open MySQL Workbench and connect to your local MySQL server.
Create a new database schema. You can do this by running the first two lines from your original SQL script:
CREATE DATABASE EventManagementSystem;
USE EventManagementSystem;
Run the SQL Scripts.
schema
- Navigate to the project's root directory (EventManagerPro) in your terminal.
- Create and activate a Python virtual environment.
(This is recommended but not required. If you want to skip this, immediately go to step 3.)
- Install the required Python packages:
pip install Flask
pip install Flask-Cors
pip install PyMySQL
Open the folder 'EventManagerPro' and locate app.py file in your code editor.
Find the db_config dictionary at the top and update it with your personal MySQL credentials (username, password, and port).
This is what it looks like: (Currently, the files uploaded consist of MY SQL configs. Do change it with your own.)
db_config = { 'host': 'localhost', 'port': YOUR_PORT, 'user': 'YOUR_USERNAME', 'password': 'YOUR_PASSWORD', 'database': 'eventmanagementsystem', 'cursorclass': DictCursor }P.S. Your username is usually 'root' if you haven't changed it, and if you're new in SQL Workbench, the port is usually '3306'.
Replace the necessary configs according to your own SQL server. Make changes if needed.
You will need to run two servers in two separate terminals.
- Terminal 1: Start the Backend Server
Make sure you are in the project's root directory (EventManagerPro) and your virtual environment is activated.
Run the Flask application:
python app.py
- The backend will start running on http://127.0.0.1:5000.
- Terminal 2: Start the Frontend Server
- Navigate into the frontend directory:
cd frontend
- Use Python's built-in web server to serve the HTML, CSS, and JS files:
python -m http.server 8000
- The frontend will start running on http://localhost:8000.
Open your web browser and navigate to:
http://localhost:8000
You should now see the Event Management System homepage, fully functional and connected to your database.
- Catherine Isabelle Ong
- Michael Arianno Chandrarieta
- Farrell Raffelino Sunarman
- Yiyang Liu