How glacy/syllabus-viewer works
Syllabus Viewer is a browser-based course-planning viewer and editor. An instructor or learner opens the course syllabus; the app loads its default or saved data, filters sessions, and presents each week’s topics, objectives, activities, evaluations, and references. Editors can update and reorder sessions, import validated JSON, and export JSON, Excel, or standalone HTML. Theme and language preferences are also available. The main entry, context, search, card, and HTML-export paths are source-supported; some feature wiring is documented in the README but its implementation was not sampled.
Main entry points: EditModeContext.tsx Syllabus state · FloatingControls.tsx Floating controls · App.tsx App orchestrator · WeekCard.tsx Session cards
Components 21
Syllabus presentation
- App orchestrator
src/App.tsx - Default syllabus
src/data/planeamiento.json - Syllabus search
src/components/SearchBar.tsx - Filtered timeline
src/components/TimelineGrid.tsx - Session cards
src/components/WeekCard.tsx - Session sections
src/components/WeekObjectives.tsx - Evaluation display
src/components/WeekEvaluation.tsx - Reference display
src/components/WeekReferences.tsx
Editing and persistence
- Syllabus state
src/context/EditModeContext.tsx - Browser local storage
User tools
- JSON import
src/components/ImportJsonButton.tsx - Data validation
src/schemas.ts - JSON export
src/components/ExportJsonButton.tsx - Excel export
src/components/ExportExcelButton.tsx - Standalone HTML export
src/components/ExportHtmlButton.tsx - Floating controls
src/components/FloatingControls.tsx
Preferences
- Language context
src/context/LanguageContext.tsx - Translation strings
src/context/translations.ts - Theme context
src/context/ThemeContext.tsx - Settings modal
src/components/SettingsModal.tsx
Other components
- Course viewer/editor
Connections 27
- Course viewer/editor → App orchestrator: opens
- App orchestrator → Syllabus state: provides state
- Syllabus state → Default syllabus: loads fallback
- Syllabus state → Browser local storage: loads and saves
- App orchestrator → Syllabus search: renders
- Syllabus search → App orchestrator: updates filter
- App orchestrator → Filtered timeline: passes filtered weeks
- Filtered timeline → Session cards: renders sessions
- Session cards → Session sections: renders objectives
- Session cards → Evaluation display: passes evaluation
- Session cards → Reference display: passes references
- Session cards → Syllabus state: updates sessions
- Floating controls → JSON import: dispatches import
- JSON import → Data validation: validates data
- JSON import → Syllabus state: loads syllabus
- Floating controls → JSON export: dispatches export
- JSON export → Syllabus state: reads syllabus
- Floating controls → Excel export: dispatches export
- Excel export → Syllabus state: reads syllabus
- Floating controls → Standalone HTML export: dispatches export
- Standalone HTML export → Syllabus state: reads syllabus
- App orchestrator → Language context: provides context
- Language context → Translation strings: selects strings
- Floating controls → Theme context: uses theme
- Floating controls → Settings modal: opens
- Settings modal → Syllabus state: updates configuration
- Theme context → Browser local storage: persists preference