Pop dungeon is a massively multiplayer online gamified learning app that allows you to study with flashcards in the style of pre-existing applications like Quizlet, but with gratifying animations, monster-slaying, quests, levelling, and world-building. It uses Firebase's older JSON-tree based Real-time database for storing user information, and the Firebase authentication API for authentication. Request to the Firebase API are directly from REST on my front-end server, and secured with reverse-forwarded tokens. The UI was coded with the Semantic-UI CSS library and Angular. This won second place in the Software category at the Central Sound Science and Engineering Fair!
-
Run
cmd.js, then type in.start. -
Or, you can run just the server without management/clustering with
server.js
To get the full list of commands, type in .help
Logs in user
email - validated email
password - password > 8 chars
status - http code style
- 200 (ok)
- 400 (no email/password)
- 401 (email/password mismatch)
errors - array of strings with all errors when status != 200
X-AUTH-TOKEN - auth token when status == 200
Logs out user
X-AUTH-TOKEN auth token of user
status - always will be 200
Registers user
name - name of user
email - email of user, validated already
password - password > 8 chars
status - http code style
- 200 (ok)
- 400 (no name/email/password, password too short)
- 409 (email already registered)
errors - array of strings with all errors when status != 200
-
Get list of clubs (user token passed to all routes)
- Club: name, ID, icon image src, number of members
-
Get all of the events in a specific club (params: club ID)
- Each event: title, start time, end time (optional), eventID (random), clubID
- I will request each club separately to improve load times
-
Get information for one event (params: club ID, event ID)
- Description, time, name, which club
- Get club information (upon opening club) (params: club ID)
- Page list, home page
- Add club (params: name, school, category)
- Generate a UID for club
- Join club (params: id)
- Join club based on UID, add user to club based on token
- We may also have "guest" access ids in the future for visitors to club pages
- Leave club (params: id)
- Leave club based on UID