Witness is VandyHacks's in-house judging platform. On this platform, hackers can manage their team and submit their project, judges can see a dynamically updating schedule of all their assigned projects and submit feedback for them, and organizers can manage the whole process at a high level and optimally match judges with teams.
- TypeScript
- Next.js
- SWR
- NextAuth.js
- Ant Design
- MongoDB + Mongoose
During judging, each team presents their project once to a panel of 3 judges in one of our preallocated Zoom rooms. To make sure this process is fair, our automated matching process ensures that as few teams as possible share the same set of judges. However, to decrease the overhead of multiple parties leaving and joining Zooms between judging sessions, the process also minimizes room changes for judges. This way, the judging period can proceed smoothly, avoiding delays while minimizing bias for each project.
Witness has distinct view for all parties involved (organizers, judges and hackers) to interface with the platform.
Hackathon organizers can use Witness to manage the judging schedule, assign roles to event participants, and export relevant information to CSV at any point in the judging process.
- The Dashboard page allows organizers to set the initial judging schedule (with this script) and make any necessary modifications by uploading a CSV. In the above example we add a new team to the 10:20 slot in room 3.
- In the Assign Roles page, organizers can assign a role of Hacker, Judge or Organizer to any new users who log in (note: Witness is currently designed to connect with Vaken so that hackers who have applied to the event are automatically marked as hackers).
- The Judgment page allows organizers to view all judge feedback and export to CSV.
- Similarly, the Team page allows organizers to keep track of all created hacker teams.
Witness allows hackathon judges to see their live-updating schedule and easily submit feedback for their assigned teams.
- Judges can see all the information for the team they are currently judging, as well as the team that is up next. They can find the team's feedback page, Devpost link and assigned Zoom room from here. The schedule automatically updates as time passes. Past judging sessions are hidden by default but can be revealed.
- Judges can submit and update their feedback for any team that is participating in the hackathon. Teams assigned to the judge are shown above the list of all teams. Once a judge submits feedback for a team, a green checkmark will show next to that team's name in the menu.
Hackers can use Witness to see when they are scheduled to present and also manage their team and project information.
- Hackers can see when they are scheduled to present, as well as all the information that judges see about them. They can also access their assigned Zoom room from here.
- Hackers can create a team with a name and DevPost link. Once that team is made, Witness generates a join code for that team that can be shared with others. Once in a team, hackers can change their team name, DevPost link or leave.
This project uses Next.js and Yarn. Run the following to set the project up and run a development server.
yarn install
yarn dev
This is an open source project, and we welcome contributions! See our Notion page for documentation and open issues, and check out our Contribution guidelines.
Open http://localhost:3000 with your browser to see the result.
Thanks to Vercel for providing us with an open source sponsorship!