/static StaticR Static appStatic
/auth   AuthR   Auth   getAuth

/favicon.ico FaviconR GET
/robots.txt RobotsR GET

/        HomeR    GET POST
/profile ProfileR GET
/users   UsersR   GET                                         !adminAny

/term                       TermShowR         GET
/term/edit                  TermEditR         GET POST        !adminAny
/term/#TermId/edit          TermEditExistR    GET             !adminAny

/course/                    CourseListR       GET
!/course/new                CourseNewR        GET POST        !lecturerAny
!/course/#TermId            CourseListTermR   GET
/course/#TermId/#Text CourseR:
  /show                       CourseShowR GET POST
  /edit                       CourseEditR GET POST            !lecturer

  /ex SheetR                                                  !registered:
    /                               SheetListR GET
    /#Text/show                     SheetShowR GET            !time
    /#Text/#SheetFileType/#FilePath SheetFileR GET            !time
    /new                            SheetNewR  GET POST       !lecturer
    /#Text/edit                     SheetEditR GET POST       !lecturer
    /#Text/delete                   SheetDelR  GET POST       !lecturer


-- TODO below
/submission                 SubmissionListR GET POST
/submission/#CryptoUUIDSubmission SubmissionR GET POST
/submissions.zip SubmissionDownloadMultiArchiveR POST
!/submission/archive/#FilePath SubmissionDownloadArchiveR GET
!/submission/#CryptoUUIDSubmission/#FilePath SubmissionDownloadSingleR GET

!/#UUID CryptoUUIDDispatchR GET

-- For demonstration
/course/#CryptoUUIDCourse/edit CourseEditIDR GET
