A Cyber-Themed registration system for the Inovasi KKTM PJ competition. Built with 💻 PHP, 🐘 MySQL, and 💌 PHPMailer.
- Form handling & Sanitization
- File Upload Logic ( PDF, DOC, DOCX )
- Multiple E-Mail validation
- Sends multiple emails to:
- 👨🏫 Lecturer(s) - About the New Registration
- 👥 Participant(s) - Confirmation email [ Approved / Not Approved ]
- Log every registration to a file:
$log_entry = "[" . date('Y-m-d H:i:s') . "] $team_name | $full_name | $email_combined | $phone_number | $category" . PHP_EOL; file_put_contents('logs/registration.log', $log_entry, FILE_APPEND);
- Configured via Gmail SMTP
- Email styling using uses HTML with headings, strong elements, and clean formatting
$participantMail->isSMTP();
$participantMail->Host = 'smtp.gmail.com';
$participantMail->SMTPAuth = true;
$participantMail->Username = $config['EMAIL_USERNAME'];
$participantMail->Password = $config['EMAIL_APP_PASSWORD'];
$participantMail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
$participantMail->Port = xxx;
$participantMail->setFrom($config['EMAIL_FROM'], $config['EMAIL_FROM_NAME']);
$participantMail->addAddress($participantEmail);
- Login System, ( Currently hardcoded or session-based )
- Approve/Rejected status for Participants
- Pagination, CSV Export, and stats
- Using Orbitron Font for futuristic vibe
- Cyber-Style elements: neon borders, AOS scroll animations.
- Fully responsive with Bootstrap 5.
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!)
│
├── innovation_db.sql # Database dump (optional, add if needed)
│
└── README.md # This file
git clone https://github.com/AmcaQt/Competition-Registration-System.git
- Download or Git Clone
PHPMailer - Upload PHPMailer to
rootfolder (public_html, www, htdocs) - Import or Create you database into local MySQL/MariaDB server
- Locate the
config.phpfile, update it according to your setup - Publish it to your Live Server
- Does this work only on MySQL and MariaDB ?
- It's built for MySQL, but it can work with other DB's with some changes:
- Right now Im using this which is specified to MySQL / MariaDB:
$conn = new mysqli( $config['DB_HOST'], $config['DB_USER'], $config['DB_PASS'], $config['DB_NAME'], ); - If you wanted to use another :
- PostgreSQL -> you can switch to
pg_connect()or usePDO ( PHP Data Objects ). - PDO also work with SQLite.
- PostgreSQL -> you can switch to
- Right now Im using this which is specified to MySQL / MariaDB:
- It's built for MySQL, but it can work with other DB's with some changes:
- It doesn't work on my Server, how can I fix it.
- Check if your server supports
PHP + MySQL - Check if you upload the file on the right folder (
public_html/,htdocs/,wwwdepends on the host ). - Update the DB Credentials on
config.phpto match the Live Server DB. - Check if your
SMTP (PHPMailer)setup is correct and the server allowsoutbound SMTP traffic( Some shared hosts block ). P/S : Check it Out here
- Check if your server supports
- Capture Log
- Log every new Registration
- Registration Page for Jury
- Calling for jury that open for Public who have experience
- Google reCAPTCHA
- Notification System ( WhatsApp ) ( Maybe ?? )
Need help or want to Contribute ? Reach out via E-Mail or Instagram or open an Issue
Made with 💙 by Fahim Amsyar for Kolej Kemahiran Tinggi Mara Petaling Jaya ( KKTM PJ )
