A responsive, full-stack web application designed to centralize community event management. This project replaces manual registration with a digital ecosystem for tracking participants, managing payments, and facilitating community discussions using a "Clean Hybrid" UI theme.
Users can register for events, upload payment receipts, scan QR codes for attendance, and discuss local issues via a built-in forum.
This application was developed as a group project for the Web Technology (KP34903) course at Universiti Malaysia Sabah (UMS).
It demonstrates a complete MVC-style architecture using native PHP, featuring Role-Based Access Control (RBAC) for Residents, Organizers, and Administrators.
- RBAC System: Distinct dashboards for Admins (System oversight), Organizers (Event creators), and Residents (Participants).
- Secure Auth: Hashed passwords and session management.
- Event Creation: Organizers can set limits (max slots), prices, and locations.
- QR Code Scanner: Integrated
html5-qrcodelibrary allows organizers to scan user tickets for real-time attendance tracking. - Search & Filter: AJAX-based search bar for instant event filtering.
- Payment Workflow: Users upload receipt images -> Organizers view proofs -> Approve/Reject.
- Revenue Tracking: Admin dashboard calculates total income and active registrations.
- Forum: Threaded discussions for "Safety Alerts", "Marketplace", and "General" topics.
- Moderation: Reporting system allowing admins to flag and delete inappropriate content.
- Notifications: Real-time alerts when payments are approved or forum topics get replies.
| User Landing Page | Admin Dashboard |
|---|---|
![]() |
![]() |
- PHP (Native)
- MySQL (Relational Database)
- JavaScript (Vanilla + AJAX)
- HTML5 / CSS3 (Custom "Clean Hybrid" Design)
- Library:
html5-qrcode(Scanner)
JiranHub/
├── admin/ # Backend management (Dashboard, Users, Reports)
├── api/ # AJAX handlers for search and updates
├── assets/ # CSS styles and static images
├── includes/ # Reusable components (Navbar, Footer)
├── uploads/ # Storage for user banners, receipts, and profiles
│ ├── .gitkeep # Preserves folder structure on GitHub
├── db.php # Database connection settings
├── jiranhub_db.sql # Database import file (Structure + Sample Data)
├── index.php # Landing page
├── README.md # This file
└── ... # Other core files (Login, Register, Events)
- Clone this repository:
git clone https://github.com/anake-an/JiranHub.git
- Move the folder to your server directory (e.g., htdocs in XAMPP or www in WAMP).
- Open phpMyAdmin and create a database named jiranhub_db.
- Import the jiranhub_db.sql file located in the root directory.
- Check db.php to ensure connection settings match your server (Default is root/empty).
- Open your browser and go to http://localhost/JiranHub.
Since the database does not contain pre-filled users, follow these steps to create an Admin account:
- Go to the website and click Sign Up to create a new account.
- Go to phpMyAdmin > Select jiranhub_db > Open the users table.
- Find your newly created user row.
- Manually change the role column value from resident to admin.
- Log out and Log back in. You will now have access to the Admin Dashboard.
This project was originally developed as a group assignment for the KP34903 Web Technology course (Group 7).
| Name | Profile Link |
|---|---|
| Aniq Najmuddin Bin Sharifuddin | |
| Muhammad Faris Bin Huzaimi | |
| Muhammad Isyraf Ahnaf Bin M. Zamri | |
| Muhammad Saifullah Bin Rosman |

