gonito/config/models
Filip Gralinski 36ad24dba5 Add page for a course
Also added a relation between courses and challenges
2022-01-17 21:58:09 +01:00

265 lines
7.1 KiB
Plaintext

User
ident Text
password Text Maybe
UniqueUser ident
name Text Maybe
isAdmin Bool default=False
localId Text Maybe
isAnonymous Bool default=False
avatar ByteString Maybe
verificationKey Text Maybe
keyExpirationDate UTCTime Maybe
triggerToken Text Maybe
altRepoScheme Text Maybe
deriving Typeable
Team
ident Text
avatar ByteString Maybe
UniqueTeam ident
TeamMember
user UserId
team TeamId
isCaptain Bool
TeamLog
stamp UTCTime default=now()
actionType TeamActionType
agens UserId
patiens UserId Maybe
team TeamId Maybe
verificationKey Text Maybe
keyExpirationDate UTCTime Maybe
PublicKey
user UserId
pubkey Text
Email
email Text
user UserId Maybe
verkey Text Maybe
UniqueEmail email
Repo
url Text
branch Text
currentCommit SHA1
owner UserId
ready Bool default=False
stamp UTCTime default=now()
gitAnnexRemote Text Maybe
UniqueUrlBranch url branch
deriving Show
Challenge
publicRepo RepoId
privateRepo RepoId
name Text
UniqueName name
title Text
description Text
stamp UTCTime default=now()
image ByteString Maybe
starred Bool
archived Bool Maybe
version SHA1
sensitive Bool Maybe
-- forces BySubmitter leaderboard style
isCompetition Bool Maybe
-- challenge version
Version
-- introduced later, hence Maybe
-- to be replaced with non-Maybe value later
challenge ChallengeId Maybe
commit SHA1
-- Optional challenge deadline. After the deadline
-- no submission will be accepted, though a new
-- challenge version might be uploaded and then
-- new submissions could be sent. This could be used
-- for organizing a "post-track" after the competition
-- has ended. Note, however, that, when sorting submissions,
-- the ones uploaded under the version with a deadline (i.e. within
-- the main track) will be preferred against the ones
-- uploaded under the version without a deadline (no matter what
-- is the major version).
deadline UTCTime Maybe
major Int
minor Int
patch Int
UniqueVersionByCommit commit
UniqueVersion commit major minor patch
description Text
stamp UTCTime default=now()
phase TagId Maybe
Test
challenge ChallengeId
metric EvaluationScheme
name Text
checksum SHA1
commit SHA1
active Bool default=True
precision Int Maybe
asPercentage Bool Maybe
priority Int Maybe
UniqueChallengeNameMetricChecksum challenge name metric checksum
deriving Show
Submission
repo RepoId
commit SHA1
challenge ChallengeId
description Text
stamp UTCTime default=now()
submitter UserId
isPublic Bool default=False
isHidden Bool default=False
-- challenge version present when the submission was done
version SHA1
team TeamId Maybe
UniqueSubmissionRepoCommitChallenge repo commit challenge
Variant
submission SubmissionId
name Text
UniqueVariantSubmissionName submission name
Parameter
variant VariantId
name Text
value Text
UniqueParameterName variant name
ExternalLink
submission SubmissionId
title Text Maybe
url Text
-- this represents forks, i.e. when a submission for a given challenge
-- was based (in terms of git history) on another submission for the same challenge
-- NOTE: not implemented yet
Fork
source SubmissionId
target SubmissionId
UniqueSourceTarget source target
-- for representing dependencies across challenges;
-- e.g. when a model generated in a submission is used
-- by another submission in another challenge;
-- dependencies are expressed as a relation between
-- commit hashes rather than submissions/repos
-- (can be easily linked to submission via SubmissionCommit link)
Dependency
subRepoCommit SHA1
superRepoCommit SHA1
UniqueSubSuperSubmission subRepoCommit superRepoCommit
Evaluation
test TestId
checksum SHA1
score Double Maybe
errorBound Double Maybe
errorMessage Text Maybe
stamp UTCTime default=now()
-- Should be just SHA1 (without Maybe) - Maybe is just a legacy
version SHA1
UniqueEvaluationTestChecksumVersion test checksum version
deriving Show
Comment
challenge ChallengeId
author UserId
posted UTCTime default=now()
text Textarea
Out
variant VariantId
test TestId
checksum SHA1
UniqueOutVariantTestChecksum variant test checksum
Tag
name Text
description Text Maybe
color Text Maybe
UniqueTagName name
SubmissionTag
submission SubmissionId
tag TagId
accepted Bool Maybe
UniqueSubmissionTag submission tag
-- for machine learning courses
Achievement
name Text
challenge ChallengeId
points Int
description Text Maybe
deadline UTCTime
maxWinners Int Maybe
course CourseId
UniqueAchievementName name
AchievementTag
achievement AchievementId
tag TagId
UniqueAchievementTag achievement tag
WorkingOn
achievement AchievementId
user UserId
finalSubmission SubmissionId Maybe
UniqueWorkingOnAchievementUser achievement user
Course
name Text
code Text
closed Bool
UniqueCourseName name
UniqueCourseCode code
ExtraPoints
points Int
description Text
user UserId
course CourseId
posted UTCTime default=now()
addedBy UserId
Participant
user UserId
course CourseId
UniqueUserCourse user course
Teacher
user UserId
course CourseId
UniqueTeacherCourse user course
CourseChallenge
challenge ChallengeId
course CourseId
UniqueCourseChallenge challenge course
-- for "KPI" dashboard
Indicator
test TestId
filterCondition Text Maybe
targetCondition Text Maybe
Target
indicator IndicatorId
deadline UTCTime
value Double
name Text Maybe
-- for doing manual annotation or human baselines
-- A specific annotation task, related to a specific challenge
AnnotationTask
challenge ChallengeId
added UTCTime default=now()
name Text
UniqueAnnotationTaskName name
-- A possible label that an annotator can use.
-- The labels will be shown as buttons to click for an annotator
AnnotationLabel
annotationTask AnnotationTaskId
-- name to be shown (e.g. as the button label)
name Text
-- value represented by the label (when evaluating the results)
value Text
-- for sorting labels when showing to a user
order Int
UniqueAnnotationLabelName annotationTask name
-- A single item to be annotated.
-- It corresponds to a single line in the in.tsv file. Note that
-- only a subset of lines can be considered here (and covering
-- various test sets)
AnnotationItem
annotationTask AnnotationTaskId
-- the line content (possibly including TABs)
content Text
-- to specify the order in which the items are shown to a user
order Int
-- A decision (annotation) made by a user for a specific item
AnnotationDecision
annotationItem AnnotationItemId
user UserId
-- value selected by the user (cf. value in AnnotationLabel)
value Text
stamp UTCTime default=now()
-- By default this file is used in Model.hs (which is imported by Foundation.hs)