This app is a continuation of Project 2: Server Side App. We are spreading the logic and computation across 2 computers, the server computer and the user's computer. The underlying mechanic of request and response happening across the network is still the same.
You will implement a card game or turn based card-type game. The user or users will be identified by the system and be able to play a game where the server remembers something about the user and the game cannot be cheated by opening the browser dev tools.
Single or multi player is ok
The gameplay should happen on a single HTML page
Interactivity using client-side JS
Users cannot cheat by looking in the browser console
Some game state must be saved in the database server-side
User login (full-stack or server-side)
The game you implement does not have to have a score or winners. It must be completely playable for the stated rules. i.e., if a rule of the game is stated, the game must implement it.
If you choose to implement a card game with a known set of rules, you as the game implementer can state a lesser set of rules if you want.
Note that you can choose to implement user authentication completely in AJAX requests, or you can choose to implement user authentication as in Project 2, where the user is restricted from visiting the game page.
Your app must be complete in the sense that it cannot rely on the theoretical existence of another system, e.g. an API that doesn't exist. You are free to use any 3rd-party APIs available on the internet, e.g. NPM libraries.
Also acceptable are turn based board type games such as Battleship or Connect Four.
Avoid any ideas the depend on timing between players or if another player must be immediately notified of some game state.
Start: Ideation Phase 1.
Introduce project, post project ideas in Slack for feedback
Instructor to share feedback on project ideas in Slack.
Start: Ideation Phase 2.
Create planning docs: user stories, wireframes, and DB ERD.
Due: Ideation Phase 2.
Finalise project idea and share planning docs in GitHub repo over Slack.
Peer Planning Review.
Start: Project Start.
Instructor to review planning docs over Slack and over Zoom if necessary.
Begin Project Implementation
Due: MVP deadline.
Users should be able to perform the primary user story. Please deploy your app to Heroku. Students to review code in pairs during class.
Instructor to review code on GitHub, share feedback in Slack and Zoom if necessary.
Due: Feature freeze.
No more developing new app functionality. Use remaining time to focus on polish, i.e. fixing UX/UI, refactoring code.
Quick project review in class to discuss improvements post-feature freeze.
Due: Project presentations.
30-minute post-mortem with instructor. Instructor to review code in PR on GitHub.
Project Peer Review exercise.
Due: Video demo.
Recommended Order of Implementation
Implement the core user story first. What are users coming to your app to do? Make sure they are able to accomplish that, before adding authentication and nice-to-have features.
Any stretch functionality, e.g. AI APIs or file uploading
Ideation Phase 1
Brainstorm app ideas. What problem does the app solve, for whom? How does the app solve the problem? What data does the app handle? Feel free to use Rocket's project planning template, and share your ideas with your SL in Slack to get feedback.
Ideation Phase 2
Plan the app implementation with the following planning docs.
Please answer the project post-mortem questions before the post-mortem meeting with your instructor. These questions will be similar to the presentation questions, but we will dig deeper into your code.
Once done with your project, please submit it by adding it to the Rocket Bootcamp Projects spreadsheet in your batch-specific sheet. Feel free to view past student projects in previous batches' sheets.