HACKPORTAL
PROJECTSOPEN SOURCE

HACKPORTAL

Open-source hackathon management system

hackathonnext.jstypescriptopen source

HackPortal handles the full lifecycle of a hackathon: participant registration, team formation, project submission, judge scoring, and live leaderboard. It's built to be self-hosted by any student organisation — deploy to Vercel, connect a Supabase project, and you're running in under an hour. Over a dozen universities have used it to run their own events.

Participant Registration Flow

Participants register with email magic link authentication — no passwords to forget. After verifying their email, they complete a profile form covering their skills, dietary requirements, and T-shirt size. They can either create a new team (generating a six-character invite code) or join an existing team using a code from a friend. The team dashboard shows real-time roster updates when new members join.

Project Submission

At submission time, each team fills out a form with their project title, description, GitHub repository URL, demo URL, and the track they're competing in. Submissions are timestamped and locked at the deadline — organisers set the close time in the admin dashboard and the UI automatically updates to show the countdown. Late submissions require an organiser override.

Judging System

Judges are assigned a subset of teams to review, reducing cognitive load and preventing conflicts of interest. Each judge scores on four criteria (innovation, technical execution, design, impact) with a 1–10 scale and an optional notes field. The leaderboard aggregates scores in real time as judges submit. Organisers can flag submissions for re-review and override scores with a full audit trail.

Self-Hosting Guide

Fork the repo on GitHub. Create a Supabase project and run the migration file in the `supabase/migrations/` directory. Set the environment variables in a `.env.local` file (Supabase URL, anon key, service role key). Deploy to Vercel with one click. Customise the event name, dates, and branding in `config/event.ts`. Full setup instructions are in the README — we've had teams up and running in 45 minutes.

Rotating vector

JOIN US

Privacy policy

Cookie policy

Terms & Conditions

2024 DevSoc