How programmersagara-cell/pyprof works
PYTHON·LAB is a browser-based Python learning workbench. Learners move among the dashboard, lessons, challenges, debugging practice, cheat sheet, analytics and history; in the workspace they edit and run Python, inspect variables and output, and receive friendly error explanations. Challenge grading runs code against behavioral tests, while progress and execution history persist locally. The README documents capabilities beyond the sampled excerpts; their modules are included, but uncertain internal wiring is omitted.
Main entry points: main.js Application router · workspace.js Coding workspace · progress.js Progress and XP · pythonEngine.js Python engine
Components 27
Application and UI
- Application router
src/main.js - Coding workspace
src/ui/workspace.js - Code editor
src/editor/editor.js - Dashboard view
src/ui/dashboardView.js - Lessons view
src/ui/lessonsView.js - Challenges view
src/ui/challengeView.js - Debugging view
src/ui/debuggingView.js - Cheat sheet view
src/ui/cheatsheetView.js - Analytics view
src/ui/analyticsView.js - History view
src/ui/historyView.js
Learning content
- Lesson library
src/lessons/lessons.js - Challenge library
src/challenges/index.js - Debug exercises
src/challenges/debugging.js - Cheat sheet topics
src/cheatsheet/cheatsheet.js
Python execution
- Python engine
src/engine/pythonEngine.js - Pyodide worker
src/engine/pyodideWorker.js - Error explanations
src/engine/errorHandler.js
Assessment and progress
- Challenge validator
src/validation/validator.js - Test runner
src/validation/testRunner.js - Progress and XP
src/progress/progress.js - Badge system
src/progress/badges.js - Learning analytics
src/progress/analytics.js
Local data
- Execution history
src/history/history.js - Local storage adapter
src/progress/store.js
Other components
- Learner
- Pyodide CDN
- Browser localStorage
Connections 30
- Learner → Application router: chooses views
- Application router → Dashboard view: renders
- Application router → Coding workspace: renders
- Application router → Lessons view: renders
- Application router → Challenges view: renders
- Application router → Debugging view: renders
- Application router → Cheat sheet view: renders
- Application router → Analytics view: renders
- Application router → History view: renders
- Lessons view → Lesson library: reads lessons
- Challenges view → Challenge library: reads challenges
- Debugging view → Debug exercises: reads exercises
- Cheat sheet view → Cheat sheet topics: reads topics
- Coding workspace → Code editor: creates editor
- Coding workspace → Python engine: runs code
- Python engine → Pyodide worker: posts commands
- Pyodide worker → Python engine: returns results
- Pyodide worker → Pyodide CDN: loads runtime
- Coding workspace → Error explanations: explains errors
- Challenge validator → Python engine: runs test cases
- Test runner → Challenge validator: runs validation
- Coding workspace → Execution history: records runs
- Coding workspace → Progress and XP: records activity
- Progress and XP → Badge system: checks badges
- Analytics view → Learning analytics: requests insights
- Learning analytics → Progress and XP: reads progress
- History view → Execution history: browses history
- Execution history → Local storage adapter: persists history
- Progress and XP → Local storage adapter: persists progress
- Local storage adapter → Browser localStorage: reads and writes