# rayhan-bin-maleque/campus-event-management-system architecture

> Architecture diagram of the GitHub repository rayhan-bin-maleque/campus-event-management-system, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-30). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/rayhan-bin-maleque/campus-event-management-system
- Repository: https://github.com/rayhan-bin-maleque/campus-event-management-system

## Overview

This is a PHP/MySQL campus event management system. The main user journey is student event discovery and registration, followed by payment and ticketing; staff verify tickets and record attendance. Separate role workflows cover event creation and approval, administrative user/report/log management, and AJAX search. The map follows the documented MVC routing and sampled controller calls. Several feature paths are documented but their implementations were not sampled, so those branches are included without speculative internal call links.

Main entry points: [`index.php`](https://github.com/rayhan-bin-maleque/campus-event-management-system/blob/main/index.php) (Request router), [`config/database.php`](https://github.com/rayhan-bin-maleque/campus-event-management-system/blob/main/config/database.php) (MySQL database), [`controllers/organizer_controller.php`](https://github.com/rayhan-bin-maleque/campus-event-management-system/blob/main/controllers/organizer_controller.php) (Organizer events), [`controllers/student_controller.php`](https://github.com/rayhan-bin-maleque/campus-event-management-system/blob/main/controllers/student_controller.php) (Student participation)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Web entry"]
  node_router["Request router<br/>[index.php]"]
  node_ajax["Dynamic search"]
end

subgraph group_roles["Role workflows"]
  node_auth["Authentication"]
  node_admin["Admin management"]
  node_organizer["Organizer events"]
  node_student["Student participation"]
  node_staff["Staff attendance"]
  node_auth_views["Login and registration<br/>[login.php]"]
  node_admin_views["Admin screens<br/>[dashboard.php]"]
  node_organizer_views["Organizer screens<br/>[dashboard.php]"]
  node_student_views["Student screens<br/>[dashboard.php]"]
  node_staff_views["Staff screens<br/>[verify_ticket.php]"]
end

subgraph group_domain["Event operations"]
  node_event_model["Event operations<br/>[event_model.php]"]
  node_registration_model["Registrations"]
  node_payment_model["Payments and revenue<br/>[payment_model.php]"]
  node_ticket_model["Ticketing<br/>[ticket_model.php]"]
  node_attendance_model["Attendance"]
  node_finance_model["Event finances<br/>[finance_model.php]"]
end

subgraph group_data["Data and security"]
  node_user_model["User records<br/>[user_model.php]"]
  node_log_model["Activity logs<br/>[log_model.php]"]
  node_database[("MySQL database<br/>[database.php]")]
  node_shared["Session and access helpers<br/>[functions.php]"]
end

node_visitor(("Browser user"))

node_visitor -->|"requests pages"| node_router
node_router -->|"loads helpers"| node_shared
node_router -->|"opens connection"| node_database
node_router -->|"routes auth"| node_auth
node_router -->|"routes admin"| node_admin
node_router -->|"routes organizer"| node_organizer
node_router -->|"routes student"| node_student
node_router -->|"routes staff"| node_staff
node_router -->|"routes AJAX"| node_ajax
node_auth -->|"authenticates users"| node_user_model
node_auth -->|"records activity"| node_log_model
node_auth -->|"renders forms"| node_auth_views
node_admin -->|"manages users"| node_user_model
node_admin -->|"approves events"| node_event_model
node_admin -->|"exports revenue"| node_payment_model
node_admin -.->|"reviews activity"| node_log_model
node_admin -.->|"renders screens"| node_admin_views
node_organizer -->|"manages events"| node_event_model
node_organizer -.->|"tracks expenses"| node_finance_model
node_organizer -->|"reads revenue"| node_payment_model
node_organizer -->|"reads attendance"| node_attendance_model
node_organizer -->|"records changes"| node_log_model
node_organizer -->|"renders dashboard"| node_organizer_views
node_student -->|"lists events"| node_event_model
node_student -->|"registers students"| node_registration_model
node_student -->|"creates payments"| node_payment_model
node_student -.->|"creates tickets"| node_ticket_model
node_student -.->|"records activity"| node_log_model
node_student -.->|"renders screens"| node_student_views
node_staff -->|"lists events"| node_event_model
node_staff -->|"creates attendance"| node_attendance_model
node_staff -->|"looks up tickets"| node_ticket_model
node_staff -->|"updates payment"| node_payment_model
node_staff -->|"records activity"| node_log_model
node_staff -.->|"renders verification"| node_staff_views
node_ajax -.->|"searches users"| node_user_model
node_ajax -.->|"searches events"| node_event_model
node_ajax -.->|"searches attendance"| node_attendance_model
node_ajax -->|"searches logs"| node_log_model
node_event_model -.->|"queries"| node_database
node_registration_model -.->|"queries"| node_database
node_payment_model -.->|"queries"| node_database
node_ticket_model -.->|"queries"| node_database
node_attendance_model -.->|"queries"| node_database
node_finance_model -.->|"queries"| node_database
node_user_model -.->|"queries"| node_database
node_log_model -.->|"queries"| node_database

click node_router "https://github.com/rayhan-bin-maleque/campus-event-management-system/blob/main/index.php"
click node_auth "https://github.com/rayhan-bin-maleque/campus-event-management-system/blob/main/controllers/auth_controller.php"
click node_admin "https://github.com/rayhan-bin-maleque/campus-event-management-system/blob/main/controllers/admin_controller.php"
click node_organizer "https://github.com/rayhan-bin-maleque/campus-event-management-system/blob/main/controllers/organizer_controller.php"
click node_student "https://github.com/rayhan-bin-maleque/campus-event-management-system/blob/main/controllers/student_controller.php"
click node_staff "https://github.com/rayhan-bin-maleque/campus-event-management-system/blob/main/controllers/staff_controller.php"
click node_ajax "https://github.com/rayhan-bin-maleque/campus-event-management-system/blob/main/controllers/ajax_controller.php"
click node_event_model "https://github.com/rayhan-bin-maleque/campus-event-management-system/blob/main/models/event_model.php"
click node_registration_model "https://github.com/rayhan-bin-maleque/campus-event-management-system/blob/main/models/registration_model.php"
click node_payment_model "https://github.com/rayhan-bin-maleque/campus-event-management-system/blob/main/models/payment_model.php"
click node_ticket_model "https://github.com/rayhan-bin-maleque/campus-event-management-system/blob/main/models/ticket_model.php"
click node_attendance_model "https://github.com/rayhan-bin-maleque/campus-event-management-system/blob/main/models/attendance_model.php"
click node_finance_model "https://github.com/rayhan-bin-maleque/campus-event-management-system/blob/main/models/finance_model.php"
click node_user_model "https://github.com/rayhan-bin-maleque/campus-event-management-system/blob/main/models/user_model.php"
click node_log_model "https://github.com/rayhan-bin-maleque/campus-event-management-system/blob/main/models/log_model.php"
click node_database "https://github.com/rayhan-bin-maleque/campus-event-management-system/blob/main/config/database.php"
click node_shared "https://github.com/rayhan-bin-maleque/campus-event-management-system/blob/main/config/functions.php"
click node_auth_views "https://github.com/rayhan-bin-maleque/campus-event-management-system/blob/main/views/auth/login.php"
click node_admin_views "https://github.com/rayhan-bin-maleque/campus-event-management-system/blob/main/views/admin/dashboard.php"
click node_organizer_views "https://github.com/rayhan-bin-maleque/campus-event-management-system/blob/main/views/organizer/dashboard.php"
click node_student_views "https://github.com/rayhan-bin-maleque/campus-event-management-system/blob/main/views/student/dashboard.php"
click node_staff_views "https://github.com/rayhan-bin-maleque/campus-event-management-system/blob/main/views/staff/verify_ticket.php"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_router,node_ajax,node_visitor toneBlue
class node_auth,node_admin,node_organizer,node_student,node_staff,node_auth_views,node_admin_views,node_organizer_views,node_student_views,node_staff_views toneAmber
class node_event_model,node_registration_model,node_payment_model,node_ticket_model,node_attendance_model,node_finance_model toneMint
class node_user_model,node_log_model,node_database,node_shared toneRose
```

## Components

### Web entry

- [Request router](https://github.com/rayhan-bin-maleque/campus-event-management-system/blob/main/index.php): `index.php`
- [Dynamic search](https://github.com/rayhan-bin-maleque/campus-event-management-system/blob/main/controllers/ajax_controller.php): `controllers/ajax_controller.php`

### Role workflows

- [Authentication](https://github.com/rayhan-bin-maleque/campus-event-management-system/blob/main/controllers/auth_controller.php): `controllers/auth_controller.php`
- [Admin management](https://github.com/rayhan-bin-maleque/campus-event-management-system/blob/main/controllers/admin_controller.php): `controllers/admin_controller.php`
- [Organizer events](https://github.com/rayhan-bin-maleque/campus-event-management-system/blob/main/controllers/organizer_controller.php): `controllers/organizer_controller.php`
- [Student participation](https://github.com/rayhan-bin-maleque/campus-event-management-system/blob/main/controllers/student_controller.php): `controllers/student_controller.php`
- [Staff attendance](https://github.com/rayhan-bin-maleque/campus-event-management-system/blob/main/controllers/staff_controller.php): `controllers/staff_controller.php`
- [Login and registration](https://github.com/rayhan-bin-maleque/campus-event-management-system/blob/main/views/auth/login.php): `views/auth/login.php`
- [Admin screens](https://github.com/rayhan-bin-maleque/campus-event-management-system/blob/main/views/admin/dashboard.php): `views/admin/dashboard.php`
- [Organizer screens](https://github.com/rayhan-bin-maleque/campus-event-management-system/blob/main/views/organizer/dashboard.php): `views/organizer/dashboard.php`
- [Student screens](https://github.com/rayhan-bin-maleque/campus-event-management-system/blob/main/views/student/dashboard.php): `views/student/dashboard.php`
- [Staff screens](https://github.com/rayhan-bin-maleque/campus-event-management-system/blob/main/views/staff/verify_ticket.php): `views/staff/verify_ticket.php`

### Event operations

- [Event operations](https://github.com/rayhan-bin-maleque/campus-event-management-system/blob/main/models/event_model.php): `models/event_model.php`
- [Registrations](https://github.com/rayhan-bin-maleque/campus-event-management-system/blob/main/models/registration_model.php): `models/registration_model.php`
- [Payments and revenue](https://github.com/rayhan-bin-maleque/campus-event-management-system/blob/main/models/payment_model.php): `models/payment_model.php`
- [Ticketing](https://github.com/rayhan-bin-maleque/campus-event-management-system/blob/main/models/ticket_model.php): `models/ticket_model.php`
- [Attendance](https://github.com/rayhan-bin-maleque/campus-event-management-system/blob/main/models/attendance_model.php): `models/attendance_model.php`
- [Event finances](https://github.com/rayhan-bin-maleque/campus-event-management-system/blob/main/models/finance_model.php): `models/finance_model.php`

### Data and security

- [User records](https://github.com/rayhan-bin-maleque/campus-event-management-system/blob/main/models/user_model.php): `models/user_model.php`
- [Activity logs](https://github.com/rayhan-bin-maleque/campus-event-management-system/blob/main/models/log_model.php): `models/log_model.php`
- [MySQL database](https://github.com/rayhan-bin-maleque/campus-event-management-system/blob/main/config/database.php): `config/database.php`
- [Session and access helpers](https://github.com/rayhan-bin-maleque/campus-event-management-system/blob/main/config/functions.php): `config/functions.php`

### Other components

- **Browser user**

## Connections

- Browser user → Request router: requests pages (evidence: `README.md`)
- Request router → Session and access helpers: loads helpers (evidence: `index.php`)
- Request router → MySQL database: opens connection (evidence: `index.php`)
- Request router → Authentication: routes auth (evidence: `index.php`)
- Request router → Admin management: routes admin (evidence: `index.php`)
- Request router → Organizer events: routes organizer (evidence: `index.php`)
- Request router → Student participation: routes student (evidence: `index.php`)
- Request router → Staff attendance: routes staff (evidence: `index.php`)
- Request router → Dynamic search: routes AJAX (evidence: `index.php`)
- Authentication → User records: authenticates users (evidence: `controllers/auth_controller.php`)
- Authentication → Activity logs: records activity (evidence: `controllers/auth_controller.php`)
- Authentication → Login and registration: renders forms (evidence: `controllers/auth_controller.php`)
- Admin management → User records: manages users (evidence: `controllers/admin_controller.php`)
- Admin management → Event operations: approves events (evidence: `controllers/admin_controller.php`)
- Admin management → Payments and revenue: exports revenue (evidence: `controllers/admin_controller.php`)
- Admin management → Activity logs: reviews activity
- Admin management → Admin screens: renders screens
- Organizer events → Event operations: manages events (evidence: `controllers/organizer_controller.php`)
- Organizer events → Event finances: tracks expenses
- Organizer events → Payments and revenue: reads revenue (evidence: `controllers/organizer_controller.php`)
- Organizer events → Attendance: reads attendance (evidence: `controllers/organizer_controller.php`)
- Organizer events → Activity logs: records changes (evidence: `controllers/organizer_controller.php`)
- Organizer events → Organizer screens: renders dashboard (evidence: `controllers/organizer_controller.php`)
- Student participation → Event operations: lists events (evidence: `controllers/student_controller.php`)
- Student participation → Registrations: registers students (evidence: `controllers/student_controller.php`)
- Student participation → Payments and revenue: creates payments (evidence: `controllers/student_controller.php`)
- Student participation → Ticketing: creates tickets
- Student participation → Activity logs: records activity
- Student participation → Student screens: renders screens
- Staff attendance → Event operations: lists events (evidence: `controllers/staff_controller.php`)
- Staff attendance → Attendance: creates attendance (evidence: `controllers/staff_controller.php`)
- Staff attendance → Ticketing: looks up tickets (evidence: `controllers/staff_controller.php`)
- Staff attendance → Payments and revenue: updates payment (evidence: `controllers/staff_controller.php`)
- Staff attendance → Activity logs: records activity (evidence: `controllers/staff_controller.php`)
- Staff attendance → Staff screens: renders verification
- Dynamic search → User records: searches users
- Dynamic search → Event operations: searches events
- Dynamic search → Attendance: searches attendance
- Dynamic search → Activity logs: searches logs (evidence: `controllers/ajax_controller.php`)
- Event operations → MySQL database: queries
- Registrations → MySQL database: queries
- Payments and revenue → MySQL database: queries
- Ticketing → MySQL database: queries
- Attendance → MySQL database: queries
- Event finances → MySQL database: queries
- User records → MySQL database: queries
- Activity logs → MySQL database: queries
