How tdherring/ossat works
OSSAT is a browser-based operating-systems learning app: users navigate to interactive CPU, memory, virtual-memory, and disk simulators, or to assessments and learning-group performance features. The sampled runtime shows the app shell, CPU and memory state providers, and memory allocation engine; README documents the broader assessment and organisation capabilities. API-backed account and organisation actions use GraphQL, with a local demo-data mode. Some page-to-provider and assessment wiring is represented only by the tree and product documentation, so uncertain call links are omitted.
Main entry points: Body.tsx Route content · index.tsx React entry · App.tsx App shell · CPUModule.tsx CPU simulator UI
Components 25
App shell
- React entry
src/index.tsx - App shell
src/App.tsx - Navigation
src/components/Header.tsx - Route content
src/components/Body.tsx - Route paths
src/lib/routes.ts
Simulators
- CPU simulator UI
src/components/body/simulator/cpu/CPUModule.tsx - CPU state
src/contexts/CPUSimulatorContext.tsx - CPU schedulers
src/simulator/cpu/cpu_scheduler.ts - Memory simulator UI
src/components/body/simulator/memory/MemoryModule.tsx - Memory state
src/contexts/MemoryManagerContext.tsx - Allocation manager
src/simulator/memory/memory_manager.ts - Disk simulator
src/components/body/simulator/disk/DiskSchedulingModule.tsx - Disk scheduling
src/lib/diskSchedulingSimulation.ts - Virtual memory
src/components/body/simulator/virtual-memory/VirtualMemoryModule.tsx - Virtual memory logic
src/lib/virtualMemorySimulation.ts - Trace playback
src/components/body/simulator/useTracePlayback.ts
Learning and groups
- Assessments
src/components/body/assessment/landing/AssessmentLandingPage.tsx - Quiz experience
src/components/body/assessment/quiz/QuizModule.tsx - Learning groups
src/components/body/organisation/landing/OrganisationLandingPage.tsx - Performance data
src/components/body/organisation/PerformanceData.tsx
Data and identity
- Session state
src/contexts/UserContext.tsx - GraphQL client
src/index.tsx - OSSAT API
- Demo data
src/lib/demoApolloLink.ts
Other components
- Visitor
Connections 27
- Visitor → React entry: opens app
- React entry → App shell: mounts
- App shell → Navigation: renders
- App shell → Route content: renders
- Navigation → Route paths: navigates
- Route content → Route paths: matches paths
- Route content → CPU simulator UI: renders route
- Route content → Memory simulator UI: renders route
- Route content → Disk simulator: renders route
- Route content → Virtual memory: renders route
- Route content → Assessments: renders route
- Route content → Learning groups: renders route
- CPU simulator UI → CPU state: uses state
- CPU state → CPU schedulers: queries schedules
- Memory simulator UI → Memory state: uses state
- Memory state → Allocation manager: reads queues
- Disk simulator → Disk scheduling: runs simulation
- Virtual memory → Virtual memory logic: runs simulation
- CPU simulator UI → Trace playback: uses playback
- Assessments → Quiz experience: opens quiz
- Learning groups → Performance data: shows results
- App shell → Session state: provides session
- React entry → GraphQL client: configures client
- Session state → GraphQL client: queries and mutates
- Learning groups → GraphQL client: requests group data
- GraphQL client → OSSAT API: sends GraphQL
- React entry → Demo data: selects demo link