summaryrefslogtreecommitdiff
Commit message (Expand)AuthorAgeFilesLines
...
* wsm.go: "R" on multiple choices in group rather than closing connectionRunxi Yu2024-10-061-4/+5
* Makefile, main.go: Add vendor dependencies to srcFSRunxi Yu2024-10-062-2/+5
* .gitignore: Ignore vendorRunxi Yu2024-10-061-0/+1
* .gitignore: Only ignore dist/build in rootv0.1.5Runxi Yu2024-10-061-2/+2
* docs/.gitignore: Delete because emptyRunxi Yu2024-10-061-0/+0
* wsm.go: Check course group constraint first when choosingRunxi Yu2024-10-061-13/+15
* {courses,wsc,wsm,wsp}.go: Send course number immediately on user interactionRunxi Yu2024-10-064-14/+42
* main.go: Don't embed LaTeX aux/log/etc files for iadocsRunxi Yu2024-10-061-2/+2
* main.go: Reorder startup eventsRunxi Yu2024-10-061-16/+16
* Makefile, main.go: Add go.* to the served sourcesRunxi Yu2024-10-062-2/+2
* bench.go: Use deadlock instead of timed exitRunxi Yu2024-10-061-10/+7
* bench: Fix timerRunxi Yu2024-10-061-2/+2
* *: Overhaul structure again and embed everythingRunxi Yu2024-10-0632-151/+144
* Makefile: Add tmpl to .PHONYv0.1.4Runxi Yu2024-10-051-1/+1
* */Makefile: Update againRunxi Yu2024-10-056-14/+45
* *: Further restructuringRunxi Yu2024-10-0511-7/+66
* *.go: Move to backendRunxi Yu2024-10-0518-2/+4
* iadocs: Update IA documentationRunxi Yu2024-10-0510-44/+279
* docs: max-width: 50rem;Runxi Yu2024-10-051-1/+1
* docs/admin: Document database setupRunxi Yu2024-10-051-1/+10
* docs/admin: Update protocol informationRunxi Yu2024-10-051-3/+2
* iadocs: Cover page updateRunxi Yu2024-10-051-5/+5
* {,u}sem.go, ws*.go: Restructure filesRunxi Yu2024-10-055-235/+319
* {config,main}.go: Enhance configuration file processingRunxi Yu2024-10-052-8/+124
* bench.go: ReformatRunxi Yu2024-10-051-2/+2
* bench.go: Separate connection stage from selection stagev0.1.3Runxi Yu2024-10-051-2/+10
* bench.go: More realistic benchmark for one course onlyRunxi Yu2024-10-051-9/+18
* Makefile: BSD Make also supports wildcards in targetsRunxi Yu2024-10-051-1/+1
* Makefile: Add sem.go to source file listRunxi Yu2024-10-051-1/+1
* {config,ws}.go, cca.scfg.example: Add perf.course_update_intervalRunxi Yu2024-10-053-6/+14
* {courses,wsm}.go: Use in-memory structure to fetch cgroup, not SQLRunxi Yu2024-10-052-26/+18
* {config,ws}.go, cca.scfg.example: Remove chanPool/SendQRunxi Yu2024-10-053-59/+0
* ws.go: &usemT{} //exhaustruct:ignoreRunxi Yu2024-10-051-1/+1
* ws.go: Check error of populateUserCourseGroupsRunxi Yu2024-10-051-1/+4
* wsm.go: Omit comparison to bool constantRunxi Yu2024-10-051-1/+1
* wsm.go: Report error when course doesn't existRunxi Yu2024-10-051-0/+8
* {courses,sem,ws,wsm}.go: Second step towards an efficient state propagatorRunxi Yu2024-10-054-16/+24
* {courses,sem,ws}.go: First step towards an efficient state propagatorRunxi Yu2024-10-053-6/+110
* go.sum: go mod tidy (removing old checksums)Runxi Yu2024-10-051-6/+0
* ws.go: Index chanPool by userID, rather than session cookieRunxi Yu2024-10-051-5/+2
* {main,utils,ws}.go: Initialize cancelPool directly tooRunxi Yu2024-10-053-25/+1
* Bump dependenciesRunxi Yu2024-10-052-3/+9
* {main,ws}.go: Initialize chanPool directly instead of setupChanPool()Runxi Yu2024-10-052-22/+1
* courses.go: ReformatRunxi Yu2024-10-051-1/+1
* {courses,wsm}.go: Add getCourseByIDRunxi Yu2024-10-052-10/+8
* {courses,wsm}.go: Add (*courseT).decrementSelectedAndPropagateRunxi Yu2024-10-052-24/+15
* {courses,ws,wsm}.go: Update userCourseGroups during choose/unchooseRunxi Yu2024-10-053-12/+51
* config.go: Emit warning when fake auth is enabledRunxi Yu2024-10-051-0/+2
* bench.go: Don't close request bodyRunxi Yu2024-10-051-6/+0
* {courses,ws}.go: Populate userCourseGroups in a separate functionRunxi Yu2024-10-052-32/+35