e203e8e182
feat(build): auto-regenerate TypeScript bindings on source changes
2026-01-31 00:27:27 -06:00
cbb0a51bca
refactor(terms): move term formatting from frontend to backend
2026-01-31 00:26:41 -06:00
c533768362
feat(scraper): improve results visibility and loading states
2026-01-30 23:36:23 -06:00
8bfc14e55c
feat(course): distinguish async from synchronous online courses
...
Add logic to detect and label asynchronous online sections (INT building
with TBA times) separately from synchronous online courses. Update table
rendering to show "Async" instead of "TBA" for these sections.
2026-01-30 23:27:54 -06:00
2689587dd5
fix: avoid status flickering on subjects table
2026-01-30 22:04:48 -06:00
1ad614dad0
feat(scraper): improve dashboard clarity with stat tooltips
2026-01-30 22:00:59 -06:00
2df0ba0ec5
chore: add ts-rs generated bindings
2026-01-30 21:29:32 -06:00
dd148e08a0
fix(ci): fix rust/frontend/security job failures and expand local checks
2026-01-30 21:22:01 -06:00
3494341e3f
ci: split quality checks into parallel jobs with security scanning
...
Reorganize CI pipeline into separate jobs for Rust quality, frontend
quality, tests, Docker build, and security audits. Add cargo-audit,
bun audit, and Trivy filesystem scanning. Allow formatting checks to
pass with warnings on push events while failing on PRs.
2026-01-30 21:08:16 -06:00
acccaa54d4
chore: update frontend packages
2026-01-30 21:07:08 -06:00
550401b85c
refactor: use friendly term codes in URL query parameters
2026-01-30 20:49:08 -06:00
a2a9116b7a
fix: avoid clipping page content
2026-01-30 19:32:05 -06:00
a103f0643a
feat: refactor admin instructor UI with component extraction and optimistic updates
2026-01-30 19:31:31 -06:00
fb27bdc119
feat: implement session expiry extension and 401 recovery
2026-01-30 16:01:17 -06:00
669dec0235
feat: add timeline API with schedule-aware enrollment aggregation
...
Implements POST /api/timeline endpoint that aggregates enrollment by
subject over 15-minute slots, filtering courses by their actual meeting
times. Includes ISR-style schedule cache with hourly background refresh
using stale-while-revalidate pattern, database indexes for efficient
queries, and frontend refactor to dynamically discover subjects from API.
2026-01-30 10:56:11 -06:00
7b8c11ac13
feat: add calendar export endpoints for ICS and Google Calendar
2026-01-30 04:08:16 -06:00
a767a3f8be
feat: add root error page handling
2026-01-30 04:07:53 -06:00
8ce398c0e0
feat: add scraper analytics dashboard with timeseries and subject monitoring
2026-01-30 03:46:48 -06:00
203c337cf0
feat: add confidence-based RMP matching with manual review workflow
...
Replace simple auto-matching with scored candidate generation that
considers department overlap, name uniqueness, and rating volume.
Candidates above 0.85 auto-accept; others require admin approval.
2026-01-30 01:31:11 -06:00
39ba131322
feat: add mobile touch controls with gesture detection
2026-01-29 23:56:45 -06:00
2fad9c969d
fix: avoid title on icon, use simpler href-based login redirect
2026-01-29 23:44:05 -06:00
47b4f3315f
feat: enhance login page with FAQ section and improved styling
2026-01-29 23:40:48 -06:00
fa28f13a45
feat: add interactive timeline visualization for class times
...
Implements a canvas-based timeline view with D3 scales showing class
counts across subjects. Features drag-to-pan, mouse wheel zoom, subject
filtering, hover tooltips, and smooth animations. Timeline auto-follows
current time and supports keyboard navigation.
2026-01-29 23:19:39 -06:00
5a6ea1e53a
fix: handle backend startup delays with retry logic in auth
2026-01-29 20:04:50 -06:00
ba2b2fc50a
fix: increase Banner API timeouts to handle slow responses
2026-01-29 19:49:57 -06:00
cfe098d193
feat: add websocket support for real-time scrape job monitoring
2026-01-29 19:31:04 -06:00
d861888e5e
fix: proper centering for login page content, avoid unnecssary scrollbar
2026-01-29 18:05:50 -06:00
f0645d82d9
refactor: persist audit log state in module scope for cross-navigation caching
2026-01-29 17:54:27 -06:00
7a1cd2a39b
refactor: centralize number formatting with locale-aware utility
2026-01-29 17:53:38 -06:00
d2985f98ce
feat: enhance audit log with smart diffing, conditional request caching, auto refreshing
2026-01-29 17:35:11 -06:00
b58eb840f3
refactor: consolidate navigation with top nav bar and route groups
2026-01-29 17:01:47 -06:00
2bc6fbdf30
feat: implement relative time feedback and improve tooltip customization
2026-01-29 16:44:06 -06:00
e41b970d6e
fix: implement i64 serialization for JavaScript compatibility, fixing avatar URL display
2026-01-29 15:51:19 -06:00
db0ec1e69d
feat: add rmp profile links and confidence-aware rating display
2026-01-29 15:43:39 -06:00
36bcc27d7f
feat: setup smart page transitions, fix laggy theme-aware element transitions
2026-01-29 14:59:47 -06:00
98a6d978c6
feat: implement course change auditing with time-series metrics endpoint
2026-01-29 14:19:36 -06:00
4deeef2f00
feat: optimize asset delivery with build-time compression and encoding negotiation
2026-01-29 13:56:10 -06:00
e008ee5a12
feat: show search duration and result count feedback
2026-01-29 13:15:25 -06:00
a007ccb6a2
fix: remove out:fade transition from CourseTable
2026-01-29 13:08:45 -06:00
527cbebc6a
feat: implement user authentication system with admin dashboard
2026-01-29 12:56:51 -06:00
c90bd740de
refactor: consolidate query logic and eliminate N+1 instructor loads
2026-01-29 12:03:06 -06:00
61f8bd9de7
refactor: consolidate menu snippets and strengthen type safety
...
Replaces duplicated dropdown/context menu code with parameterized snippet,
eliminates unsafe type casts, adds error handling for clipboard and API
calls, and improves accessibility annotations.
2026-01-29 11:40:55 -06:00
b5eaedc9bc
feat: add delivery mode indicators and tooltips to location column
2026-01-29 11:32:35 -06:00
58475c8673
feat: add page selector dropdown with animated pagination controls
...
Replace Previous/Next buttons with 5-slot page navigation centered in
pagination bar. Current page becomes a dropdown trigger allowing direct
page jumps. Side slots animate on page transitions.
2026-01-29 11:31:55 -06:00
78159707e2
feat: table FLIP animations, improved time tooltip details & day abbreviations
2026-01-29 03:40:40 -06:00
779144a4d5
feat: implement smart name abbreviation for instructor display
2026-01-29 03:14:55 -06:00
0da2e810fe
feat: add multi-select subject filtering with searchable comboboxes
2026-01-29 03:03:21 -06:00
ed72ac6bff
refactor: extract reusable SimpleTooltip component and enhance UI hints
2026-01-29 01:37:04 -06:00
57b5cafb27
feat: enhance table scrolling and eliminate initial theme flash
2026-01-29 01:18:02 -06:00
841191c44d
feat: integrate OverlayScrollbars with theme-aware styling
2026-01-29 01:05:19 -06:00