Skip to content

Conversation

@Monster0506
Copy link
Member

This pull request introduces a comprehensive overhaul to the data model and supporting components to enable project tracks, judging criteria, and a flexible judging system, along with improvements to Svelte UI components for better flexibility and usability. The most significant changes are the introduction of new database tables and Prisma models for projects, tracks, judging assignments, and criteria, as well as enhancements to form and modal components to support richer interactions.

Database and Prisma Model Enhancements:

  • Added new tables and relations for project, track, judging_criterion, judge_assignment, judgement, and judgement_score to support a flexible project and judging system, including foreign keys, unique indexes, and appropriate constraints. (prisma/migrations/20260124034356_add_tracks_and_criteria/migration.sql)
  • Updated prisma/schema.prisma to define new models (Project, Track, JudgingCriterion, JudgeAssignment, Judgement, JudgementScore) and their relations, and extended the User and Application models to connect users and applications to projects and judgements. [1] [2]

Seed Data for Tracks and Criteria:

  • Added a new prisma/seed.ts script to populate the database with default tracks and judging criteria using Prisma's upsert functionality.

Svelte Component Improvements:

  • Refactored Datalist.svelte to support both string and object options, improved value-label mapping, enhanced keyboard navigation, and allowed custom input handling for better form usability. [1] [2] [3] [4] [5] [6] [7]
  • Updated Input.svelte to allow value to be string, number, or undefined/null for greater flexibility in form inputs.

UI/UX Component Flexibility:

  • Enhanced Modal.svelte to support custom children content, configurable confirm/cancel button text, and improved prop typing for more flexible modal dialogs. [1] [2]
  • Improved typing and prop handling in Divider.svelte, Highlight.svelte, and NavbarItem.svelte to better support children and attributes in Svelte components. [1] [2] [3]

PR Description as per Mason product of Copilot, and fully unreviewed, look at the code please.

@YoyoJesus
Copy link
Member

Can you implement a system to allow us to do a few different things:

  • email all teams with their judge score info (strip out judge names)
  • give us the ability to assign team numbers to judges (some judges will have specialties)
  • allow us to curve a specific judge's score (as we have particularly harsh judges before)
  • potentially allow judges to manually enter a team number in case of problems
  • move the comment stuff to the bottom of the first form, it's a little complex at this moment

The other issue is going to be authentication for judges, some will not want to log into the site so we need a solution for that

@Monster0506
Copy link
Member Author

Monster0506 commented Jan 25, 2026

@Struck713
Copy link
Collaborator

Idea for judges to login: maybe a shared link with a OTP would do the trick for this? You issue a link to their email with the OTP and they sign in with that? If they need to re-login (hopefully not), they could enter their name in and have it re-issued to their email (that they provided to us)

@Monster0506 Monster0506 marked this pull request as draft January 25, 2026 23:55
@Monster0506
Copy link
Member Author

Monster0506 commented Jan 26, 2026

Email all teams with their judge score info (strip out judge names)

#90

If we want to improve the format later, this template is in the same location as the accepted email template

@Monster0506
Copy link
Member Author

Monster0506 commented Jan 26, 2026

Move the comment stuff to the bottom of the first form, it's a little complex at this moment

#91

@Monster0506
Copy link
Member Author

Monster0506 commented Jan 26, 2026

Give us the ability to assign team numbers to judges, and judges can only judge teams they are assigned (other than manual input override)

#92

#94

Move comments into the main form instead of two pages.
@Monster0506 Monster0506 mentioned this pull request Jan 26, 2026
6 tasks
@Monster0506
Copy link
Member Author

potentially allow judges to manually enter a team number in case of problems

#93

@Monster0506
Copy link
Member Author

The other issue is going to be authentication for judges, some will not want to log into the site so we need a solution for that

#96

@Monster0506
Copy link
Member Author

allow us to curve a specific judge's score

#97

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants