summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Revert "Makefile, main.go: Add vendor dependencies to srcFS"v0.1.6Runxi Yu10 days2-5/+2
| | | | This reverts commit a25fdc67f05cfb1b37ac750460a21ddbb18008de.
* go.mod: Fix module URLRunxi Yu10 days1-1/+1
|
* {config,wsc}.go, cca.scfg.example: Dynamic course update delayRunxi Yu10 days3-15/+24
|
* bench: Accept courseID and connections flagsRunxi Yu10 days1-3/+11
|
* wsm.go: "R" on multiple choices in group rather than closing connectionRunxi Yu10 days1-4/+5
|
* Makefile, main.go: Add vendor dependencies to srcFSRunxi Yu10 days2-2/+5
|
* .gitignore: Ignore vendorRunxi Yu10 days1-0/+1
|
* .gitignore: Only ignore dist/build in rootv0.1.5Runxi Yu10 days1-2/+2
|
* docs/.gitignore: Delete because emptyRunxi Yu10 days1-0/+0
|
* wsm.go: Check course group constraint first when choosingRunxi Yu10 days1-13/+15
|
* {courses,wsc,wsm,wsp}.go: Send course number immediately on user interactionRunxi Yu10 days4-14/+42
|
* main.go: Don't embed LaTeX aux/log/etc files for iadocsRunxi Yu10 days1-2/+2
|
* main.go: Reorder startup eventsRunxi Yu10 days1-16/+16
|
* Makefile, main.go: Add go.* to the served sourcesRunxi Yu10 days2-2/+2
|
* bench.go: Use deadlock instead of timed exitRunxi Yu10 days1-10/+7
|
* bench: Fix timerRunxi Yu10 days1-2/+2
|
* *: Overhaul structure again and embed everythingRunxi Yu10 days32-151/+144
| | | | | | | | - Remove sub-Makefiles; recursive make is annoying - Just use one top-level Makefile that builds everything - Embed templates and minified static resources into the binary - Embed all compiled documentation into the binary and serve - Embed all source into the binary and serve
* Makefile: Add tmpl to .PHONYv0.1.4Runxi Yu11 days1-1/+1
| | | | Otherwise templates won't be copied
* */Makefile: Update againRunxi Yu11 days6-14/+45
|
* *: Further restructuringRunxi Yu11 days11-7/+66
|
* *.go: Move to backendRunxi Yu11 days18-2/+4
| | | | And adjust Makefiles, admin handbook, and lint.sh accordingly.
* iadocs: Update IA documentationRunxi Yu11 days10-44/+279
|
* docs: max-width: 50rem;Runxi Yu11 days1-1/+1
|
* docs/admin: Document database setupRunxi Yu11 days1-1/+10
|
* docs/admin: Update protocol informationRunxi Yu11 days1-3/+2
|
* iadocs: Cover page updateRunxi Yu11 days1-5/+5
|
* {,u}sem.go, ws*.go: Restructure filesRunxi Yu11 days5-235/+319
|
* {config,main}.go: Enhance configuration file processingRunxi Yu11 days2-8/+124
| | | | Implements: https://todo.sr.ht/~runxiyu/cca/5
* bench.go: ReformatRunxi Yu11 days1-2/+2
|
* bench.go: Separate connection stage from selection stagev0.1.3Runxi Yu11 days1-2/+10
|
* bench.go: More realistic benchmark for one course onlyRunxi Yu11 days1-9/+18
|
* Makefile: BSD Make also supports wildcards in targetsRunxi Yu11 days1-1/+1
|
* Makefile: Add sem.go to source file listRunxi Yu11 days1-1/+1
|
* {config,ws}.go, cca.scfg.example: Add perf.course_update_intervalRunxi Yu11 days3-6/+14
| | | | | | This causes a drastic increase in performance. References: https://todo.sr.ht/~runxiyu/cca/7
* {courses,wsm}.go: Use in-memory structure to fetch cgroup, not SQLRunxi Yu11 days2-26/+18
|
* {config,ws}.go, cca.scfg.example: Remove chanPool/SendQRunxi Yu11 days3-59/+0
|
* ws.go: &usemT{} //exhaustruct:ignoreRunxi Yu11 days1-1/+1
|
* ws.go: Check error of populateUserCourseGroupsRunxi Yu11 days1-1/+4
|
* wsm.go: Omit comparison to bool constantRunxi Yu11 days1-1/+1
|
* wsm.go: Report error when course doesn't existRunxi Yu11 days1-0/+8
| | | | | Luckily we encounter a database error before we have the chance to dereference a null pointer. But it's still good practice to check.
* {courses,sem,ws,wsm}.go: Second step towards an efficient state propagatorRunxi Yu11 days4-16/+24
| | | | References: https://todo.sr.ht/~runxiyu/cca/7
* {courses,sem,ws}.go: First step towards an efficient state propagatorRunxi Yu11 days3-6/+110
| | | | References: https://todo.sr.ht/~runxiyu/cca/7
* go.sum: go mod tidy (removing old checksums)Runxi Yu11 days1-6/+0
|
* ws.go: Index chanPool by userID, rather than session cookieRunxi Yu11 days1-5/+2
|
* {main,utils,ws}.go: Initialize cancelPool directly tooRunxi Yu11 days3-25/+1
|
* Bump dependenciesRunxi Yu11 days2-3/+9
|
* {main,ws}.go: Initialize chanPool directly instead of setupChanPool()Runxi Yu11 days2-22/+1
| | | | | | It is possible to use var chanPool = make(map[string](*chan string)) directly during declaration, even if it's a global variable. There is no need to call a function to initialize it.
* courses.go: ReformatRunxi Yu11 days1-1/+1
|
* {courses,wsm}.go: Add getCourseByIDRunxi Yu11 days2-10/+8
| | | | This also deduplicates some code.
* {courses,wsm}.go: Add (*courseT).decrementSelectedAndPropagateRunxi Yu11 days2-24/+15
| | | | This is being done quite a few times, so let's make it a function.