-
Notifications
You must be signed in to change notification settings - Fork 2
System Level Overview
Subtlemon edited this page Apr 26, 2019
·
5 revisions
- Front end (client): React (javascript)
- Back end (server): None
- Database: Firebase
This project does not follow the standard client-server-database flow, because I have no idea what I'm doing.
- Google AppEngine does not support Server-Sent Events or WebSockets (for free, anyway).
- GitHub Pages does not support any server side scripting.
- Client connects directly to Firebase to listen for real-time updates.
- Client connects directly to Firebase to indicate presence.
- Client directly pushes data (drawings, settings, etc.) to Firebase.
- Client listens to presence to progress through stages.
- Firebase Cloud functions listen to presence to clean up unused resources.
There is no authentication anywhere in this process.
- Users start at entry point, where they can enter room name and nickname.
- User triggers entry to lobby via callback.
- A user triggers entry for entire lobby to game via Firebase write.
- At each game phase, users add to their current chain. In the first phase, users each create a chain.
- Users indicate readiness at each game phase by removing themselves from a notReady Firebase node.
Users progress through game phases when they notice the Firebase node disappear.
Users progress through different chains defined by the order in the game settings - Users enter results when progression leads them back to their original chain.
- Users triggers re-entry to lobby via callback.