summaryrefslogtreecommitdiff
Commit message (Expand)AuthorAgeFilesLines
* *.go: Restructure backend filesRunxi Yu12 days14-143/+161
* Combine "Enrichment" and "Culture" into "Non-sport"Runxi Yu12 days2-12/+10
* courses.go: courseTypes should be a map[courseTypeT]struct{}Runxi Yu12 days1-4/+4
* Separate wsm.go into a file for each functionRunxi Yu12 days3-155/+215
* Move AGPL out of the primary appendix documentRunxi Yu12 days3-688/+685
* latexify-source.sh: Use a function instead of copying code aroundRunxi Yu13 days1-55/+23
* deploy.sh: Update sed expressionRunxi Yu13 days1-1/+1
* student.js: Use wss://cca.runxiyu.org/wsv0.1.9Runxi Yu13 days1-1/+1
* README.md: Remove "(WIP)"Runxi Yu13 days1-1/+1
* Revert "auth.go: Set SameSite=Strict"Runxi Yu13 days1-1/+1
* *.html: s/IA Docs/IA/gRunxi Yu13 days4-4/+4
* auth.go: Set SameSite=StrictRunxi Yu13 days1-1/+1
* Implement course selection started/stopped statesRunxi Yu13 days10-21/+135
* staff.html: Add search functionalityRunxi Yu13 days1-0/+11
* state.go: Cancel connections when setting state 0Runxi Yu13 days1-8/+16
* newcourses.go: setupCourses must be run after commitRunxi Yu13 days1-10/+11
* wsc.go: Check newCtx.Done() when entering other event casesRunxi Yu13 days1-12/+25
* wsh.go: Remove old TODO about limiting connections per userRunxi Yu13 days1-7/+0
* wsh.go: Remove TODO about checking pgErrRunxi Yu13 days1-1/+0
* export.go: Remove unnecessary TODORunxi Yu13 days1-1/+1
* auth.go: Remove access token expiration fields and related TODORunxi Yu13 days1-14/+5
* auth.go: Remove TODO about implementing nonce checksRunxi Yu13 days1-7/+0
* auth.go: Remove TODO about using ON CONFLICTRunxi Yu13 days1-7/+0
* Replace tcourse.sql with an example importable CSVRunxi Yu13 days3-14/+15
* Validate course group and course type when importing from CSVRunxi Yu13 days1-0/+24
* Allow staff to upload a CSV containing coursesRunxi Yu13 days6-39/+432
* export.go: Remove unnecessary fields from user queryRunxi Yu14 days1-3/+3
* style.css: Fix file selector buttonsRunxi Yu14 days1-1/+7
* {wsp,wsx}.go: Move comment about RFC1459-like message formatRunxi Yu2024-10-092-23/+23
* auth.go, schema.sql: Add "confirmed" field to usersRunxi Yu2024-10-092-2/+3
* index.go, student_disabled.html: Repsect state = 0Runxi Yu2024-10-093-17/+98
* *.go, schema.sql, staff.html: Implement state settingRunxi Yu2024-10-097-3/+187
* *.go, tmpl/staff.html: Allow staff to export choicesRunxi Yu2024-10-096-2/+250
* staff.html: Update from students.html and only display link to /exportRunxi Yu2024-10-091-112/+5
* docs/fields.txt: RemoveRunxi Yu2024-10-091-27/+0
* {courses,wsc}.go: Atomic 64-bit alignmentRunxi Yu2024-10-092-4/+7
* wsc.go: Use sync.Map for cancelPool to reduce lock contentionRunxi Yu2024-10-091-21/+10
* student.html: Use separate columns for Selected and MaxRunxi Yu2024-10-091-2/+9
* eslint.sh: Call eslint directly rather than through npxRunxi Yu2024-10-091-1/+1
* *.go: Update commentsRunxi Yu2024-10-098-30/+17
* bench.go: Update number of coursesRunxi Yu2024-10-091-1/+1
* student.js: Don't N then Y the same course on selectv0.1.8Runxi Yu2024-10-091-1/+1
* student.{html,js}: Deselect courses in the same group when selectingRunxi Yu2024-10-092-5/+7
* student.html: Slightly better looks around tickboxRunxi Yu2024-10-091-8/+10
* tcourse.sql: Add more example CCAsRunxi Yu2024-10-091-5/+13
* {courses,index}.go, student.html, style.css: Group by course groupRunxi Yu2024-10-094-20/+34
* student.html: Simplify JSRunxi Yu2024-10-091-2/+1
* index.go, {login,student}.html: Use structs rather than maps for tmplRunxi Yu2024-10-093-22/+28
* *.go: Use sync.Map instead of map[int]*courseT for coursesRunxi Yu2024-10-096-73/+115
* {courses,wsc,wsp}.go: Usems should be sync.MapRunxi Yu2024-10-093-19/+12