Competition Registration System
https://petalingjaya.kktm.edu.my/
After weeks of planning, building, and refining β this is the final form of my Competition Registration System developed for Pertandingan Inovasi KKTM Petaling Jaya π»β¨
Project Objective
The main goal was to simplify how participants register for the Innovation Competition. Previously, everything was done through manual Google Forms or spreadsheets, which made it hard to track submissions, manage data, and send out confirmations.
So I built a custom PHP-based web system with the following core features:
- Online Form Submission (with proper input sanitization)
- Document Uploading (PDF/DOC/DOCX proof of registration eg: the receipt of the payment)
- Multiple Email Notification System:
- Lecturers receive alerts when someone registers
- Participants get a confirmation email
- Admin Panel for managing the approval process
- Log System to keep a record of every registration
- Cyber-inspired UI with scroll animations and dark neon aesthetic π§ π‘
How It Works
- Participant fills the registration form with team name, personal info, category, and uploads required docs.
- Backend PHP script processes the data, sanitizes inputs, saves it to a MySQL DB, and stores uploaded files in
/uploads. - It sends an email using PHPMailer:
- One to the lecturer(s)
- One to each participant in the form
- A log entry is created for every registration inside
/logs/registration.log - Admin can view, approve, or reject entries via the Admin Dashboard.
Tech Stack (Why I Chose Them)
| Tech | Reason |
|---|---|
| PHP | Easy deployment on XAMPP + most Malaysian web hosts use it |
| MySQL | Lightweight DB + works seamlessly with PHP |
| PHPMailer | Handles secure Gmail SMTP sending easily |
| Bootstrap + AOS.js | Quick, responsive styling with scroll animation flair |
| Jekyll + GitHub Pages | For documentation like this one π |
Admin Panel Features
Accessible only to the event coordinator(s)
- Login system (for now, itβs basic session-based)
- List of registered participants
- Approve/Reject system with status
- Pagination and CSV Export functionality
- Sends auto-email upon approval or rejection
Folder Structure Overview
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
Innovation.kktmpj.edu.my/
βββ PHPMailer/ # PHPMailer library
β βββ src/
β βββ ...
β
βββ img/ # Images (e.g., logo & banner)
β βββ LOGO-WEBSITE.png
β
βββ uploads/ # Uploaded payment proof documents
β βββ receipt.pdf
β
βββ logs/ # Log folder for participant logs
β βββ registration.log
β
βββ css/ # CSS Folder for UI and Animation
β βββ style.css
β βββ register.css
β βββ about.css
β βββ competition.css
β
βββ index.html # Landing page
β
βββ Register/ # Participant registration form
β βββ index.html
β
βββ About/ # Info of KKTM PJ
β βββ index.html
β
βββ Competition/ # Info About the Competition
β βββ index.html
β
βββ admin/
β βββ dashboard.php # Admin panel interface
β βββ login.php # Admin login page
β βββ manage_participants.php # View & manage participants
β
βββ submit_registration.php # Form handler with email & logging
β
βββ config.php # Config file (DO NOT commit!)
Real-Life Usage
I presented this to my Lecturer before the deployment:
This project wasnβt about coding, this project taught me how to handle backend logic, user experience, email systems, and most importantly, how to build something practical that actually gets used. I had to think about:
- How the admins would filter and approve entries
- How to make email responses feel official and informative
- How to ensure the system works on both localhost and live server
- How to make the site feel modern and techy, not just another bland form.
Future Features
- Registration Form for Jury
- Google reCAPTCHA to avoid spam
- WhatsApp notification bot ( MAYBE ?)
- Role-based access for multi-admin support
What I Learned
- Handling file uploads securely
- Building clean, readable email templates
- Using
PHPMailerfor bulk & multiple recipients - Logging user actions efficiently
- Designing a consistent UI with a βCyber-IoTβ vibe
Have Inquiries or Question ?
Crafted with love, sweat & code, for Kolej Kemahiran Tinggi Mara Petaling Jaya
Thanks for reading! Feel free to explore the source code, give it a β if you found it helpful, or connect with me for any collabs or feedback!

