How shauryadusht/oppia works
Oppia is an online learning platform centered on interactive, tutor-like explorations. A learner enters through the web app, plays an exploration, submits answers, and receives feedback as the exploration advances; authors create and edit activities, while contributors can review and translate content. The tree shows separate controllers, domain services, and persistent models, alongside curriculum, question, and certificate features. The README establishes the product workflow and technology stack, but sampled source is limited, so some subsystem connections are omitted rather than asserted.
Main entry points: app.routing.module.ts App routing · exploration-engine.service.ts Exploration player · editor.py Activity editor · exp_services.py Exploration services
Components 19
Web experience
- App routing
core/templates/pages/oppia-root/routing/app.routing.module.ts
Learning runtime
- Exploration player
core/templates/pages/exploration-player-page/services/exploration-engine.service.ts - Exploration endpoint
core/controllers/reader.py - Question player
core/templates/pages/exploration-player-page/services/question-player-engine.service.ts - Question endpoint
core/controllers/questions_list.py - Certificate assessment
core/controllers/certificate_assessment.py
Content authoring
- Activity editor
core/controllers/editor.py - Topic curriculum
core/domain/topic_services.py - Story curriculum
core/domain/story_services.py
Contributions and review
- Contributor dashboard
core/controllers/contributor_dashboard.py - Contribution review
core/templates/pages/contributor-dashboard-page/services/contribution-and-review.service.ts - Suggestions
core/domain/suggestion_services.py
Domain and persistence
- Exploration services
core/domain/exp_services.py - Exploration records
core/storage/exploration/gae_models.py - Question services
core/domain/question_services.py - Question records
core/storage/question/gae_models.py - Activity rights
core/domain/exp_rights_domain.py - Assessment services
core/domain/certificate_assessment_services.py
Other components
- Learner
Connections 19
- Learner → App routing: opens web app
- App routing → Exploration player: routes to
- Exploration player → Exploration endpoint: requests exploration
- Exploration endpoint → Exploration services: uses services
- Exploration services → Exploration records: persists data
- Exploration player → Question player: starts questions
- Question player → Question endpoint: fetches questions
- Question endpoint → Question services: uses services
- Question services → Question records: persists data
- App routing → Activity editor: routes to
- Activity editor → Exploration services: manages activities
- Activity editor → Activity rights: manages access
- App routing → Topic curriculum: routes to curriculum
- Topic curriculum → Story curriculum: organizes stories
- App routing → Contributor dashboard: routes to
- Contributor dashboard → Contribution review: supports review
- Contribution review → Suggestions: reviews suggestions
- App routing → Certificate assessment: routes to assessment
- Certificate assessment → Assessment services: uses services