rubyforgood / rubyforgood/endsideout
Games Integration
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 11
- Forks
- 4
- Avg merge
- 20h 30m
- Merged PRs (30d)
- 19
Description
Goal
- To create the functionality for a first-class games integration so the application can track game completion/scores for students
Context
EndsideOut maintains a library of custom React games outside of this application. Each game has a unique URL slug and is built for a specific ContentModule in the EndsideOut curriculum.
This integration lets EndsideOut admins manage the explicit link between an externally-hosted game and a ContentModule in our app. Creating a Game record associates it with a ContentModule — so once a course/classroom is built using that module, the linked game becomes available to students in that module, the same way a Link is today.
Rather than sending students off-site, we iframe the game on a show page within our own app so students never leave the app to play. Because the games post their session/score data back to us via JSON endpoints, our app becomes the source of truth for game results — which student played which game, and what they scored.
This replaces the existing game option on Link#link_type — games get their own model and their own management flow instead of being a generic link.
Included Features
- Adding a new
Gamemodel, associated with aContentModule, with a unique slug - Removing the
gamelink_type onLinkin favor ofGame - Adding a new
GameSessionmodel to track a student's play of a game - Adding CRUD actions for game sessions
- Adding JSON endpoints so EndsideOut games can post session/score events to our app
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the existing Link and ContentModule flows, then trace how externally hosted games currently use Link#link_type. The work is complete when Game and GameSession records, game management and session CRUD actions, and JSON score-event endpoints support the iframe integration described in the issue.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript, react
- Domain
- api, databases, full-stack
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100