You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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.
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)
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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:
project,track,judging_criterion,judge_assignment,judgement, andjudgement_scoreto support a flexible project and judging system, including foreign keys, unique indexes, and appropriate constraints. (prisma/migrations/20260124034356_add_tracks_and_criteria/migration.sql)prisma/schema.prismato define new models (Project,Track,JudgingCriterion,JudgeAssignment,Judgement,JudgementScore) and their relations, and extended theUserandApplicationmodels to connect users and applications to projects and judgements. [1] [2]Seed Data for Tracks and Criteria:
prisma/seed.tsscript to populate the database with default tracks and judging criteria using Prisma's upsert functionality.Svelte Component Improvements:
Datalist.svelteto 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]Input.svelteto allowvalueto be string, number, or undefined/null for greater flexibility in form inputs.UI/UX Component Flexibility:
Modal.svelteto support custom children content, configurable confirm/cancel button text, and improved prop typing for more flexible modal dialogs. [1] [2]Divider.svelte,Highlight.svelte, andNavbarItem.svelteto 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.