Building a New Judging App for AppJam+


Dreams for Schools holds programs like AppJam+ which let participating teams build their apps and bring them to special events to demonstrate them to judges. During these events, judges walk around booths to try out the apps created by the teams and then give scores to each team. I worked with a team to design and program an all-new judging app for Dreams for Schools. With the help of this app, it’s made efficient for event holders to gather scores from judges and sum them up to determine the winners of the program.

An AppJam+ judging event held at Newkirk Alumni Center.

The entire flow for an event holder (admin) to utilize this app starts from the creation of an event as well as the judges and the teams under it. The admin could choose to either paste CSV/TSV or upload a .csv/.xlsx file. They can also add a single judge or team using the input boxes on the interface.

The view for an admin to manage judges. It allows an admin to add a single judge, view existing judges, and import judges from files.

The view for an admin to manage teams. It allows an admin to add a single team, view existing teams, and import teams from files.

After judges and teams are created, the admin needs to assign several teams to each judge. The app offers a table interface that clearly shows which teams are assigned to which judges. The admin can click on a checkbox to assign or unassigned a team to a judge. To help expedite the assignment process, the app offers an “Auto Assign” feature that allows judges to enter the times each team needs to be judged (no more than the total number of judges) to have the system automatically perform the assignment.

The view for an admin to assign teams. It allows an admin to either manually pair judges up with teams or have the app automatically perform the assignment.

Now judges would be good to log in to their accounts and start entering scores. They will see a list of teams being assigned to them on the left side of the app. After a score is submitted for a team, the circle next to the team will show a checkmark inside so that the judge could quickly tell which teams are already judged and which are not.

The view for a judge to enter scores for a team.

After judges enter their scores for the teams, the admin can then see them in the app. The app also calculates normalized scores and ranks all teams by their total scores so that the admin can determine the winners. The admin can choose to export these data as .csv files.

The view for an admin to view total scores gotten by teams.

The view for an admin to view and export raw scores, normalized scores, and winner data.

Our team spent about two months to finish designing and building the app. After that, we got invited to four consecutive AppJam+ judging events held by Dreams for Schools to provide on-site technical support for both admins and judges, as well as to observe judges using the app to see if the experience of the app could be further improved. We were glad that there weren’t any critical issues that occurred during these events, but we did notice some minor issues, with one of them being that some judges submitted scores for the wrong teams. To mitigate the problem, we added a dialog box showing the name of the current team to confirm with them before the system records their scores.

A judge using the app.

A judge using the app.

A judge using the app.

A judge using the app.