summaryrefslogtreecommitdiff
Commit message (Expand)AuthorAgeFilesLines
* docs/.gitignore: Delete because emptyRunxi Yu11 days1-0/+0
* wsm.go: Check course group constraint first when choosingRunxi Yu11 days1-13/+15
* {courses,wsc,wsm,wsp}.go: Send course number immediately on user interactionRunxi Yu11 days4-14/+42
* main.go: Don't embed LaTeX aux/log/etc files for iadocsRunxi Yu11 days1-2/+2
* main.go: Reorder startup eventsRunxi Yu11 days1-16/+16
* Makefile, main.go: Add go.* to the served sourcesRunxi Yu11 days2-2/+2
* bench.go: Use deadlock instead of timed exitRunxi Yu11 days1-10/+7
* bench: Fix timerRunxi Yu11 days1-2/+2
* *: Overhaul structure again and embed everythingRunxi Yu11 days32-151/+144
* Makefile: Add tmpl to .PHONYv0.1.4Runxi Yu12 days1-1/+1
* */Makefile: Update againRunxi Yu12 days6-14/+45
* *: Further restructuringRunxi Yu12 days11-7/+66
* *.go: Move to backendRunxi Yu12 days18-2/+4
* iadocs: Update IA documentationRunxi Yu12 days10-44/+279
* docs: max-width: 50rem;Runxi Yu12 days1-1/+1
* docs/admin: Document database setupRunxi Yu12 days1-1/+10
* docs/admin: Update protocol informationRunxi Yu12 days1-3/+2
* iadocs: Cover page updateRunxi Yu12 days1-5/+5
* {,u}sem.go, ws*.go: Restructure filesRunxi Yu12 days5-235/+319
* {config,main}.go: Enhance configuration file processingRunxi Yu12 days2-8/+124
* bench.go: ReformatRunxi Yu12 days1-2/+2
* bench.go: Separate connection stage from selection stagev0.1.3Runxi Yu12 days1-2/+10
* bench.go: More realistic benchmark for one course onlyRunxi Yu12 days1-9/+18
* Makefile: BSD Make also supports wildcards in targetsRunxi Yu12 days1-1/+1
* Makefile: Add sem.go to source file listRunxi Yu12 days1-1/+1
* {config,ws}.go, cca.scfg.example: Add perf.course_update_intervalRunxi Yu12 days3-6/+14
* {courses,wsm}.go: Use in-memory structure to fetch cgroup, not SQLRunxi Yu12 days2-26/+18
* {config,ws}.go, cca.scfg.example: Remove chanPool/SendQRunxi Yu12 days3-59/+0
* ws.go: &usemT{} //exhaustruct:ignoreRunxi Yu12 days1-1/+1
* ws.go: Check error of populateUserCourseGroupsRunxi Yu12 days1-1/+4
* wsm.go: Omit comparison to bool constantRunxi Yu12 days1-1/+1
* wsm.go: Report error when course doesn't existRunxi Yu12 days1-0/+8
* {courses,sem,ws,wsm}.go: Second step towards an efficient state propagatorRunxi Yu12 days4-16/+24
* {courses,sem,ws}.go: First step towards an efficient state propagatorRunxi Yu12 days3-6/+110
* go.sum: go mod tidy (removing old checksums)Runxi Yu12 days1-6/+0
* ws.go: Index chanPool by userID, rather than session cookieRunxi Yu12 days1-5/+2
* {main,utils,ws}.go: Initialize cancelPool directly tooRunxi Yu12 days3-25/+1
* Bump dependenciesRunxi Yu12 days2-3/+9
* {main,ws}.go: Initialize chanPool directly instead of setupChanPool()Runxi Yu12 days2-22/+1
* courses.go: ReformatRunxi Yu12 days1-1/+1
* {courses,wsm}.go: Add getCourseByIDRunxi Yu12 days2-10/+8
* {courses,wsm}.go: Add (*courseT).decrementSelectedAndPropagateRunxi Yu12 days2-24/+15
* {courses,ws,wsm}.go: Update userCourseGroups during choose/unchooseRunxi Yu12 days3-12/+51
* config.go: Emit warning when fake auth is enabledRunxi Yu12 days1-0/+2
* bench.go: Don't close request bodyRunxi Yu12 days1-6/+0
* {courses,ws}.go: Populate userCourseGroups in a separate functionRunxi Yu12 days2-32/+35
* {courses,ws}.go: Populate userCourseGroups for each connectionRunxi Yu12 days2-5/+63
* courses.go, schema.sql: Validate course{Type,Group} in server, not SQLRunxi Yu12 days4-30/+45
* *.sql: New schema with ctypes and cgroupsRunxi Yu12 days3-18/+39
* drop.sql: New SQL script to drop all tablesRunxi Yu13 days1-0/+3