The Event Management System is a web-based application built with pure PHP using a custom MVC architecture. This system allows users to create, manage, and participate in events efficiently. The project follows SOLID principles and includes key features such as user authentication, event management, attendee registration, ticket printing, ticket cancellation, report generation with CSV export, and file management.
β User Authentication β Secure login, registration, and type-based access.
β User Management β Super Users can create, edit, and view users.
β Event Management β Users can create, edit, change status, and view events with detailed information.
β Attendee Registration β Registered or guest users can sign up for events while ensuring capacity limits are respected.
β Ticket List & Cancellation β Registered attendees can view, print, and cancel their tickets.
β Ticket Lookup β Anyone can find and print tickets using a Booking Number, email, or mobile number.
β Report Generation β Admins can generate reports using various filters and export them in CSV format.
β File Management β Securely upload and manage event-related files and user profile pictures.
β Host Management β Special privileges for event hosts, allowing them to create and manage events.
β Custom MVC Architecture β A lightweight and minimal MVC structure optimized for performance and flexibility.
β REST API Support β JSON-based API responses for seamless frontend/backend integration.
β Security Features β CSRF protection, secure authentication, and input validation.
Before setting up the Event Management System, ensure your environment meets the following requirements:
- PHP β₯ 8.0
- MySQL / MariaDB
- Apache / Nginx (with
mod_rewriteenabled) - Composer (for autoloading)
git clone https://github.com/naymur92/EventManagementSystem.git
cd EventManagementSystemRename the .env.example file to .env and update it:
cp .env.example .envThen, edit the .env file:
APP_NAME="Your App Name"
APP_URL=http://your-domain.com
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=event_management
DB_USERNAME=root
DB_PASSWORD=your_password
composer dump-autoloadImport the database from the /database/backup.sql folder.
Ensure the public/uploads folder has the proper writable permissions.
Add your host address in the cors-allowed-origins section of the config/config.php file.
Enable error reporting in public/index.php for debugging purposes.
php -S localhost:8000 -t publicVisit http://localhost:8000 in your browser to access the application.
To access the application, use the following test credentials:
π§ Email: superuser@example.com
π Password: abcd1234
β οΈ Note: Do not delete the user withuser_id = 1.
π§ Email: admin@gycm.com, admin@limelight.com, admin@bylc.com
π Password: 12345678
π§ Email: abdrahman@gmail.com
π Password: 12345678
β οΈ Note: You can create additional users through the registration form or directly via the database.
This section provides instructions on how to use the Event Management System effectively.
- Visit the Login Page (
/login). - Enter your email and password.
- Click "Login" to access the dashboard.
- New general and host users can register via the Sign Up/Register page.
- After login, Super Users and Host Users are redirected to the Admin Dashboard, while General Users are redirected to the Home Page.
- After logging in, Super Users and Host Users are redirected to the dashboard.
- The dashboard provides an overview of events, registered attendees, and other key information.
- Create an event using the "Add New Event" button.
- Publish an event.
- Change event status (Pending, Published, Blocked) β Super Users only.
- Edit event information using the Edit option.
- View event details using the View option.
- View and download the attendee list (CSV format) using the Attendee List option.
- Create, edit, update, view, and manage user status from the Auth Users menu.
- Generate, search, and download reports from the Event Report and Attendee Report sections.
- Users can view and update their profile information.
- Change profile pictures.
- Update user details and passwords.
- Displays recent events.
- Users can view events by clicking on the schedule date icons.
- Displays a list of all events.
- Includes search, filtering, and pagination features.
- View event details by clicking on the event name.
- Attendees can register for an event by clicking "Get Your Ticket Now" on the event page.
- The system enforces event capacity limits before allowing registration.
- After successful registration, users can print their tickets.
- Logged-in users can view and cancel their registered tickets under the "My Tickets" section.
- Anyone can search and download tickets from the Find Tickets section using:
- Booking Number
- Mobile Number
The Event Management System is designed to streamline event planning, attendee registration, and ticket management. Built with pure PHP and a custom MVC architecture, it ensures security, flexibility, and efficiency.
Feel free to contribute, report issues, or suggest improvements! π