How arshie13/devsim works
DevSim is a project-based full-stack learning platform. Learners choose a technology stack and scenario, then work through sprint tasks in a containerized coding workspace; completion feeds learning progress and rewards. The README documents editor, terminal, preview, tests, AI help, and takeaways as workspace capabilities. The graph reflects those documented capabilities and sampled route behavior; unsampled subsystem wiring is intentionally left unspecified.
Main entry points: client.ts Application database · EditorPanel.svelte Editor and task UI · +server.ts Assessments · +page.server.ts Workspace loading
Components 23
Learning journey
- Stack selection
src/routes/stacks/+page.server.ts - Scenario selection
src/routes/scenario/+page.server.ts - Assessments
src/routes/api/user/postassessment/+server.ts - Stack tutorials
src/lib/components/onboarding/OnboardingController.svelte
Coding workspace
- Workspace loading
src/routes/workspace/[containerId]/+page.server.ts - Editor and task UI
src/lib/components/workspace/EditorPanel.svelte - Container endpoints
src/routes/api/docker/container/create/+server.ts - Container service
src/lib/layers/service/ContainerService.ts - Docker runtime
src/lib/server/docker/client.ts - Terminal WebSocket
src/lib/server/websocket/terminal.ts - AI assistance
src/lib/ai/index.ts - Sprint submission
src/routes/api/docker/container/[id]/submit/+server.ts
Progress and rewards
- Dashboard
src/routes/dashboard/+page.server.ts - Stats and rankings
src/lib/server/stats/index.ts - Achievements
src/lib/server/achievements/progress.ts - Learner Pass
src/lib/server/learnerPass.ts
Platform services
- Authentication
src/auth.ts - Data access
src/lib/layers/data-access/WorkspaceDataAccess.ts - Application database
src/lib/server/client.ts
Other components
- Learner
- AI provider
- Stripe
- Docker
Connections 25
- Learner → Stack selection: chooses stack
- Stack selection → Scenario selection: selects scenario
- Learner → Assessments: submits assessment
- Learner → Stack tutorials: starts tutorial
- Learner → Workspace loading: opens workspace
- Workspace loading → Editor and task UI: loads workspace
- Workspace loading → Application database: reads workspace data
- Container endpoints → Container service: requests container action
- Container service → Docker runtime: manages container
- Docker runtime → Docker: controls containers
- Editor and task UI → Terminal WebSocket: opens terminal
- Editor and task UI → Container endpoints: manages project files
- Editor and task UI → AI assistance: requests guidance
- AI assistance → AI provider: requests AI response
- Editor and task UI → Sprint submission: submits sprint
- Sprint submission → Application database: records completion
- Learner → Dashboard: views progress
- Dashboard → Stats and rankings: loads statistics
- Stats and rankings → Application database: reads user progress
- Learner → Learner Pass: manages pass
- Learner Pass → Stripe: processes payment
- Assessments → AI provider: grades reflections
- Assessments → Application database: stores scores
- Authentication → Application database: reads identity data
- Data access → Application database: accesses records