Sheet -- exercise sheet for a given course course CourseId name (CI Text) description Html Maybe type SheetType -- Does it count towards overall course grade? grouping SheetGroup -- May participants submit in groups of certain sizes? markingText Html Maybe -- Instructons for correctors, included in marking templates visibleFrom UTCTime Maybe -- Invisible to enrolled participants before activeFrom UTCTime Maybe -- Download of questions and submission is permitted afterwards activeTo UTCTime Maybe -- Submission is only permitted before hintFrom UTCTime Maybe -- Additional files are made available solutionFrom UTCTime Maybe -- Solution is made available submissionMode SubmissionMode -- Submission upload by students and/or through tutors? autoDistribute Bool default=false -- Should correctors be assigned submissions automagically? anonymousCorrection Bool default=true requireExamRegistration ExamId Maybe -- Students may only submit if they are registered for the given exam allowNonPersonalisedSubmission Bool default=true CourseSheet course name deriving Generic SheetEdit -- who edited when a row in table "Course", kept indefinitely user UserId time UTCTime sheet SheetId -- For anonoymous external submissions (i.e. paper submission tracked in uni2work) -- Map pseudonyms to users injectively in the context of a single sheet; for the next sheet all-new pseudonyms need to be created -- Chosen uniformly at random when the submitting user presses a button on the view of a sheet SheetPseudonym sheet SheetId pseudonym Pseudonym -- 24-bit number that should be attached to external submission (i.e. written on the submitted paper); encoded as two english words akin to PGP-Wordlist user UserId UniqueSheetPseudonym sheet pseudonym UniqueSheetPseudonymUser sheet user SheetCorrector -- grant corrector role to user for a sheet user UserId sheet SheetId load Load -- portion of work that will be assigned to this corrector state CorrectorState default='CorrectorNormal' -- whether a corrector is assigned his load this time (e.g. in case of sickness) UniqueSheetCorrector user sheet deriving Show Eq Ord SheetFile -- a file that is part of an exercise sheet sheet SheetId type SheetFileType -- excercise, marking, hint or solution title FilePath content FileContentReference Maybe modified UTCTime UniqueSheetFile sheet type title PersonalisedSheetFile sheet SheetId user UserId type SheetFileType title FilePath content FileContentReference Maybe modified UTCTime UniquePersonalisedSheetFile sheet user type title deriving Eq Ord Read Show Generic Typeable FallbackPersonalisedSheetFilesKey course CourseId index Word24 secret ByteString generated UTCTime UniqueFallbackPersonalisedSheetFilesKey course index