Eventix is a centralized event registration system designed to seamlessly manage sports and non-sports events for all participants. It replaces manual tracking with a clean, user-friendly, and scalable digital solution.
- Multi-role system: Admin, Event Head (Organizer), and Participant
- Session-based authentication with role protection on all pages
- Forgot password flow β OTP-based email verification and password reset
- Account recovery β participants can submit recovery requests reviewed by Admin
- π Centralized Registration β Manage all events in one place
- π Supports Sports & Non-Sports β From tournaments to seminars
- π₯ Inclusive Design β Easy to use for all participants
- π Smart Scheduling β Auto-assigns participants to tables upon registration
- π Registration Guard β Blocks registration for past/ended events automatically
- Event Head enables table management per event with optional gender separation
- Configure number of tables and seats per table from the Table Management page
- System auto-assigns participants using a fill-first algorithm β fills one table completely before opening the next
- Gender routing β male participants go to male tables, female to female tables automatically
- Event Head can manually reassign participants via a click-to-open modal per table
- Unassigned participants appear in a warning box for manual assignment
- Live capacity calculator β shows if table seats match event capacity
- Printable table layout for physical venue setup
- Admin creates volunteer events with title, description, date, and location
- Define roles per event: Ushering, Admin, Technical β each with an assigned team lead
- System generates a unique QR code per volunteer event for sign-up
- Volunteers scan the QR code, log in if needed, and choose their role
- If not logged in β system saves the redirect and returns them after login
- Admin views all volunteers organized by role on the event detail page
- Participants can view their assignments in My Volunteer Events dashboard
- Volunteer link only appears in sidebar when the user has at least one sign-up
- Admin Dashboard β Real-time insights on events, users, and participants
- Event Head Hub β Quick-action cards for managing events, reports, and announcements
- Participant Dashboard β Personal event overview with QR code access
- Create, edit, and delete events
- View attendance reports, participant engagement, and inactive tracking
- Send email reminders (3-day, 1-day, day-of) to registered participants
- Send custom announcements to all confirmed participants with history log
- View announcement history per event
- Check-in / Check-out per event with time tracking
- Auto-close missed checkouts β if a participant checked in but never checked out before the event ended, the system automatically sets check-out time to the event end time and marks a note: "Left without checking out"
- Attendance locked for participants who never checked in to ended events (marked absent)
- Status cards: β
Complete,
β οΈ Left without checking out, π Absent/Locked
- Monthly calendar view with event pills per day
- Click any event to view details in a modal
- Previous / Next month navigation
- Filter dropdown on Browse Events, My Events, and Attendance pages β filter by All / Upcoming / Past
- Real-time search bar β filters cards instantly by event name and venue (no page reload)
- No-results state with contextual empty message
- Fully responsive across all device sizes: large desktop, laptop (1024px), tablet, phone, and small phone (320px)
- Sidebar, banners, cards, tables, modals, and filter controls all adapt cleanly
- Hamburger menu on screens below 1280px for admin pages
- Admin sidebar dropdown (Maintenance) scrolls properly on mobile when expanded
- Each registration generates a unique QR code
- QR codes are disabled for past events β replaced with a locked placeholder and status badge
- Participants can view and download their QR code from My Events
- Volunteer events generate a separate shareable QR code for sign-up
- Automated reminders sent at 3 days, 1 day, and day-of the event
- Custom announcement emails composed and sent by Event Heads
- Deduplication via
email_logtable β no duplicate reminders sent - Announcements tracked separately in
announcementtable with full history
- User Promotions β change user roles and set custom permissions per user or per event
- Backup & Restore β create, download, and restore database backups with activity log
- Recovery Requests β review and respond to account recovery submissions
- Volunteer Management β create and manage volunteer events, roles, and team leads
- All Events β view and manage every event in the system
- Attendance β view attendance per event across all organizers
| Table | Purpose |
|---|---|
user |
Stores all users with role (admin, event_head, participant) |
role |
Role definitions and role-permission mappings |
permission |
System permission definitions |
user_permission |
Custom per-user permission overrides |
event |
Event details β title, venue, times, capacity, has_tables, gender_separated |
venue |
Venue names and addresses linked to events |
organizer |
Organizer profiles linked to event heads |
event_category |
Event categories (Sports / Non-Sports) |
event_table |
Table definitions per event β number, capacity, gender assignment |
registration |
Participant registrations per event with table number and status |
attendance |
Check-in/check-out times, status, and notes per registration |
volunteer_event |
Volunteer event details with unique QR token |
volunteer_role_type |
Role definitions per volunteer event (Ushering/Admin/Technical) |
volunteer_member |
Volunteer sign-ups per role with status |
otp_code |
OTP codes for registration, login, and password reset |
otp_log |
OTP usage history |
email_log |
Tracks sent reminder emails to prevent duplicates |
announcement |
Sent announcements per event with subject, message, and sender |
account_recovery_request |
Account recovery submissions reviewed by admin |
backup_log |
Admin database backup and restore activity log |
permission_audit_log |
Tracks permission changes made by admin |
event_access |
Per-event access grants for users with specific permissions |
trusted_device |
Trusted device tokens per user for login |
- Project Timeline: Eventix - Project Timeline
The administrative interface can be accessed at:
localhost/Registration-System/eventsys/codes/php/admin/admin-login.php
-
Clone this repository:
git clone "git@github.com:relente-patriciajoy/Registration-System.git" -
Place the project folder inside
htdocs(XAMPP):C:/xampp/htdocs/Registration-System/ -
Import the database:
- Open phpMyAdmin β Create database
event_registration - Import
event_registration.sql
- Open phpMyAdmin β Create database
-
Start Apache and MySQL in XAMPP Control Panel
-
Open in your browser:
http://localhost/Registration-System/eventsys/codes/php/
Registration-System/
βββ eventsys/
βββ codes/
βββ assets/ # Images and logos
βββ backups/ # Database backup files (.sql)
βββ css/ # style.css, sidebar.css, calendar.css, event_head.css,
β # management.css, auth.css, volunteer.css
βββ includes/ # db.php, session.php, role_protection.php,
β # qr_function.php, permission_functions.php,
β # notification_function.php
βββ js/ # calendar.js and other scripts
βββ libraries/ # phpqrcode library
βββ qr_codes/ # Generated QR code PNG files
βββ php/
βββ admin/ # Admin dashboard, all events, attendance,
β β # user promotions, backup & restore, recovery requests
β βββ volunteer/ # Volunteer management (index, create, detail, serve_qr)
βββ auth/ # Login, register, logout, forgot password,
β # reset password, volunteer signup
βββ calendar/ # calendar.php, get_events.php
βββ components/ # sidebar.php, landing_page.php
βββ dashboard/ # events.php, my_events.php, attendance.php,
β # home.php, my_volunteer_events.php
βββ event/ # event_register.php, manage_events.php,
β # table_management.php, table_autoassign.php,
β # get_table_participants.php, announcement.php,
β # view_attendance.php, reports.php,
β # participant_engagement.php, inactive_tracking.php
βββ qr/ # view_qr.php, generate_qr.php
This project is the original work of Patricia Joy Relente.
Licensed under the GNU General Public License v3.0.
Copyright Β© 2026 Patricia Joy Relente
Note to Users: This license protects the originality of the project. You are free to use, modify, and distribute the code, but you must keep the original author's credit and any derivative work must remain open-source under the same GPLv3 terms.
| Avatar | Name | Role |
|---|---|---|
![]() |
Patricia Joy Relente |
Designed, built, and maintained entirely by Patricia Joy Relente β from database schema and backend logic to frontend UI and responsive design.

