/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

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

/course/                    CourseListR       GET
!/course/new                CourseNewR        GET POST
!/course/#TermId            CourseListTermR   GET

-- /course/#TermId/#Text CourseR !tag:
--   /edit   CourseEditR GET POST
--   /show   CourseShowR GET POST      -- CourseR tid csh CourseShowR
--   /ex/#Text SheetR: !registered
--     /show
--     /edit                           -- CourseR tid csg (SheetR csh SheetEditR)
--     /delete

/course/#TermId/#Text/edit  CourseEditR       GET
/course/#TermId/#Text/show  CourseShowR       GET POST



/course/#TermId/#Text/ex/                SheetListR   GET
/course/#TermId/#Text/ex/#Text/show      SheetShowR   GET
/course/#TermId/#Text/ex/#Text/#SheetFileType/#FilePath SheetFileR  GET
/course/#TermId/#Text/ex/new             SheetNewR   GET POST
/course/#TermId/#Text/ex/#Text/edit      SheetEditR  GET POST
/course/#TermId/#Text/ex/#Text/delete    SheetDelR   GET POST

/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
