summaryrefslogtreecommitdiff
path: root/frontend/eslint.config.js (unfollow)
Commit message (Collapse)AuthorFilesLines
10 daysgo.mod: Fix module URLRunxi Yu1-1/+1
11 days{config,wsc}.go, cca.scfg.example: Dynamic course update delayRunxi Yu3-15/+24
11 daysbench: Accept courseID and connections flagsRunxi Yu1-3/+11
11 dayswsm.go: "R" on multiple choices in group rather than closing connectionRunxi Yu1-4/+5
11 daysMakefile, main.go: Add vendor dependencies to srcFSRunxi Yu2-2/+5
11 days.gitignore: Ignore vendorRunxi Yu1-0/+1
11 days.gitignore: Only ignore dist/build in rootv0.1.5Runxi Yu1-2/+2
11 daysdocs/.gitignore: Delete because emptyRunxi Yu1-0/+0
11 dayswsm.go: Check course group constraint first when choosingRunxi Yu1-13/+15
11 days{courses,wsc,wsm,wsp}.go: Send course number immediately on user interactionRunxi Yu4-14/+42
11 daysmain.go: Don't embed LaTeX aux/log/etc files for iadocsRunxi Yu1-2/+2
11 daysmain.go: Reorder startup eventsRunxi Yu1-16/+16
11 daysMakefile, main.go: Add go.* to the served sourcesRunxi Yu2-2/+2
11 daysbench.go: Use deadlock instead of timed exitRunxi Yu1-10/+7
11 daysbench: Fix timerRunxi Yu1-2/+2
11 days*: Overhaul structure again and embed everythingRunxi Yu32-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
11 daysMakefile: Add tmpl to .PHONYv0.1.4Runxi Yu1-1/+1
Otherwise templates won't be copied
11 days*/Makefile: Update againRunxi Yu6-14/+45
11 days*: Further restructuringRunxi Yu11-7/+66
11 days*.go: Move to backendRunxi Yu18-2/+4
And adjust Makefiles, admin handbook, and lint.sh accordingly.
11 daysiadocs: Update IA documentationRunxi Yu10-44/+279
12 daysdocs: max-width: 50rem;Runxi Yu1-1/+1
12 daysdocs/admin: Document database setupRunxi Yu1-1/+10
12 daysdocs/admin: Update protocol informationRunxi Yu1-3/+2
12 daysiadocs: Cover page updateRunxi Yu1-5/+5
12 days{,u}sem.go, ws*.go: Restructure filesRunxi Yu5-235/+319
12 days{config,main}.go: Enhance configuration file processingRunxi Yu2-8/+124
Implements: https://todo.sr.ht/~runxiyu/cca/5
12 daysbench.go: ReformatRunxi Yu1-2/+2
12 daysbench.go: Separate connection stage from selection stagev0.1.3Runxi Yu1-2/+10
12 daysbench.go: More realistic benchmark for one course onlyRunxi Yu1-9/+18
12 daysMakefile: BSD Make also supports wildcards in targetsRunxi Yu1-1/+1
12 daysMakefile: Add sem.go to source file listRunxi Yu1-1/+1
12 days{config,ws}.go, cca.scfg.example: Add perf.course_update_intervalRunxi Yu3-6/+14
This causes a drastic increase in performance. References: https://todo.sr.ht/~runxiyu/cca/7
12 days{courses,wsm}.go: Use in-memory structure to fetch cgroup, not SQLRunxi Yu2-26/+18
12 days{config,ws}.go, cca.scfg.example: Remove chanPool/SendQRunxi Yu3-59/+0
12 daysws.go: &usemT{} //exhaustruct:ignoreRunxi Yu1-1/+1
12 daysws.go: Check error of populateUserCourseGroupsRunxi Yu1-1/+4
12 dayswsm.go: Omit comparison to bool constantRunxi Yu1-1/+1
11 dayswsm.go: Report error when course doesn't existRunxi Yu1-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.
11 days{courses,sem,ws,wsm}.go: Second step towards an efficient state propagatorRunxi Yu4-16/+24
References: https://todo.sr.ht/~runxiyu/cca/7
11 days{courses,sem,ws}.go: First step towards an efficient state propagatorRunxi Yu3-6/+110
References: https://todo.sr.ht/~runxiyu/cca/7
11 daysgo.sum: go mod tidy (removing old checksums)Runxi Yu1-6/+0
11 daysws.go: Index chanPool by userID, rather than session cookieRunxi Yu1-5/+2
11 days{main,utils,ws}.go: Initialize cancelPool directly tooRunxi Yu3-25/+1
11 daysBump dependenciesRunxi Yu2-3/+9
11 days{main,ws}.go: Initialize chanPool directly instead of setupChanPool()Runxi Yu2-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.
11 dayscourses.go: ReformatRunxi Yu1-1/+1
11 days{courses,wsm}.go: Add getCourseByIDRunxi Yu2-10/+8
This also deduplicates some code.
11 days{courses,wsm}.go: Add (*courseT).decrementSelectedAndPropagateRunxi Yu2-24/+15
This is being done quite a few times, so let's make it a function.
11 days{courses,ws,wsm}.go: Update userCourseGroups during choose/unchooseRunxi Yu3-12/+51