How hfjddjksaj/tritonplan works
TritonPlan combines a passive TSS browser extension with a local-first course-planning website. The main workflow observes TSS schedule responses, converts captured schedule data into course offerings, and transfers them to the planner, where students arrange sections, check conflicts and view calendar or campus information. Plans and preferences stay in browser storage; sharing and JSON backup are separate capabilities. The README documents the product flow, while sampled source confirms key planner, storage, map-routing and extension-worker responsibilities; some unsampled subsystem connections are therefore left implicit.
Main entry points: App.tsx Planner app · service-worker.ts Extension worker · usePlan.ts Plan controller · planner-bridge.ts Planner bridge
Components 20
TSS capture
- Response interceptor
extension/src/content/interceptor.ts - Capture relay
extension/src/content/tss-relay.ts - Extension worker
extension/src/background/service-worker.ts - Capture store
extension/src/lib/capture-to-courses.ts - Schedule parser
extension/src/parser/index.ts - Planner bridge
extension/src/content/planner-bridge.ts
Planner workflow
- Planner app
web/src/App.tsx - Plan controller
web/src/hooks/usePlan.ts - Schedule rules
shared/src/conflicts.ts - Share and export
web/src/lib/share-v3.ts
Planner views
- Weekly calendar
web/src/components/CalendarGrid.tsx - Course sections
web/src/components/CoursePanel.tsx - Finals views
web/src/components/FinalsView.tsx - Campus map
web/src/components/CampusMap.tsx - Walking routes
web/src/hooks/useWalkRoute.ts
Local plan state
- Browser storage
web/src/lib/storage.ts
Other components
- Student
- TSS Schedule
- Planner website
web/src/main.tsx - Local storage
Connections 21
- Student → TSS Schedule: browses schedule
- TSS Schedule → Response interceptor: sends responses
- Response interceptor → Capture relay: forwards captures
- Capture relay → Extension worker: ingests bodies
- Extension worker → Capture store: stores and parses
- Capture store → Schedule parser: parses schedules
- Extension worker → Planner bridge: syncs course data
- Student → Planner bridge: adds section
- Planner bridge → Planner website: opens planner
- Planner website → Planner app: renders
- Planner app → Plan controller: controls plan
- Plan controller → Browser storage: loads and saves
- Browser storage → Local storage: persists locally
- Plan controller → Schedule rules: checks conflicts
- Planner app → Weekly calendar: shows schedule
- Planner app → Course sections: shows sections
- Planner app → Finals views: shows exams
- Planner app → Campus map: shows locations
- Campus map → Walking routes: requests directions
- Planner app → Share and export: shares or exports
- Share and export → Browser storage: reads plan