June 16, 2025
I am adding a award/voting system, participants could vote teams who they think who is the best and can cast comments to each other, judges and staff can also (really decide) who is the winner of the prizes.
I also added a Big Screen TV (I think its called BI Screens) to display all the data. Mainly its just a cool feature tho (why not)
I changed the checkin method from scanning a QR-Code to typing a 6 digit OTP, because QR Codes often failed to scan. Also I added a redundant image source
Basically when the main image source fails (it has been provided with an invalid url for demo), it uses hackclub's cdn as a backup source, so the images might load slowly.
Credentials for demo (wkydon.hackclub.app):
Admin account: admin/admin
Staff account: staff/staff
Judge account: judge/judge
Team account: team1/team1, team2/team2, team3/team3, test/test
This is a long devlog because my SoM Account got suspended and now I have to start again....
Challenges I faced: (and fixes)
1. The whole System was not secure enough
I added encryption to all data via a secret key
2. The API Fetch was not fast enough
Turns out this was not an issue - it was just I was running nextjs in development mode so the live render of the API Routes were not fast enough.
3. User Authentication and Pages Permission was a mess
Well I fixed (really fixed) the middleware and it is now SO CLEAN THAT I AM PROUD OF IT
4. Mobile Compatibility
Well I haven't' yet solved this yet because of how complex it is...
5. Data not updating live
I used the method of pulling everything from a set of central API, authenticated by user sessions (with a few exceptions for public viewing)
General Features
- Admins
o General Game Settings, can override almost everything (match results, checkin records)
o Deploy (create) signages*
o Register new item into inventory
- Staffs
o Manual Checkins** (but cannot override)
o Notifications when disputes*** happens or assistance is requested
o Assisted Judging (judge the same match as the judge)
- Judges
o Schedule and Run Matches
o Override predefined “arena screens” and Display robot info via “LocalNetwork Connector****”
- Teams ATTATCHED IS A ONBOARDING VIDEO FOR TEAMS AND THERE IS A FEATURE TOUR (FROM TEAM PERSPECTIVE)
o View upcoming events
o Submit Progress Report
o Sign Contract for Kit
o Approve/Dispute Scores
o Download logs (collected via “LocalNetwork Connector”)
PROUD THINGS
I ACTUALLY ADDED READABLE COMMENTS
I got a CS Award at My School for it.
Well generally I am proud of this project because it is one of my biggest projects and I learnt next.js from nothing (I MUST ADMIT I USED A FEW TEMPLATES)
Basically it is a Particiapant Portal for Robocon Oxfordshire, my club at school. Here are some general functions of the portal: Event Checkin Robocon Control (via a Local Network Connector) Digital Signage Participant Portal (Kit Signout + digital signature) Help Portal *PLANNED FEATURES* Passkey Support Signup Process Email Notificaitons Mobile App??? ⚠️ Credentials for demo (wkydon.hackclub.app): ⚠️ Admin account: admin/admin Staff account: staff/staff Judge account: judge/judge Team account: team1/team1, team2/team2, team3/team3, test/test
Added a scoring system, digital signage and a LocalNetwork Connector (not perfect yet) that is a seperate script that polls the API and the Physical Robots in the local network for stats like livestream from the robot's camera, start/stop the robot, logs... Very big progress and I am actually prould of it! *I also redid the login screen and I feel like its more beautiful now (see for yourselves, Idk how to describe it...)
Added the ability of an SSO Server, providing a unified signin experience for all participants across all the different software they might use
Added Email Newsletter Function using NodeSMTP
Created new HMI Interface for the touchscreen on the panel
Participants are now able to submit progress and points will be given out if they made progress (you know, just to keep them going)
This was widely regarded as a great move by everyone.