Skip to content

relente-patriciajoy/Capstone-CCF-BIGSports-Eventix

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

263 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Typing SVG


Eventix Cover

ONE PLACE FOR EVERY PURPOSE

divider


πŸ“Œ About the Project

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.


✨ Features

πŸ” Authentication & Roles

  • 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

πŸ“‹ Event Registration

  • πŸ”— 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

πŸͺ‘ Table Management & Seating Assignment (New)

  • 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

πŸ™‹ Volunteer Management (New)

  • 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

πŸ“Š Dashboards

  • 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

πŸ“… Event Management (Event Head)

  • 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

βœ… Attendance System

  • 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

πŸ“† Event Calendar

  • Monthly calendar view with event pills per day
  • Click any event to view details in a modal
  • Previous / Next month navigation

πŸ” Filter & Search

  • 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

πŸ“± Responsive Design

  • 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

🎫 QR Code System

  • 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

πŸ“§ Email Notification System (PHPMailer + Gmail SMTP)

  • 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_log table β€” no duplicate reminders sent
  • Announcements tracked separately in announcement table with full history

πŸ›‘οΈ Admin Panel

  • 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

🧰 Tech Stack

Backend

PHP JavaScript

Frontend

HTML5 CSS3 JavaScript

Database

MySQL

Tools

XAMPP PhpMyAdmin PHPMailer phpqrcode


πŸ—‚οΈ Database Tables

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


πŸ›οΈ Admin Access

The administrative interface can be accessed at:

localhost/Registration-System/eventsys/codes/php/admin/admin-login.php

⚑ Installation / Usage

  1. Clone this repository:

    git clone "git@github.com:relente-patriciajoy/Registration-System.git"
  2. Place the project folder inside htdocs (XAMPP):

    C:/xampp/htdocs/Registration-System/
    
  3. Import the database:

    • Open phpMyAdmin β†’ Create database event_registration
    • Import event_registration.sql
  4. Start Apache and MySQL in XAMPP Control Panel

  5. Open in your browser:

    http://localhost/Registration-System/eventsys/codes/php/
    

πŸ“ Project Structure

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

πŸ“œ License & Ownership

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.


πŸ‘€ Developer

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.


divider

Built with πŸ’™ by Patricia Joy Relente