Youtube Demo: https://youtu.be/f04S7N4gTlE
- Hosted: https://io-games-jeff-wang.herokuapp.com/
 - Browser based minigames built using Node.js, Express and Socket.io
 - Mimics a client server environment using web sockets
 - Client connections organized into unique rooms and can run independently
 - Implemented a group chat feature, 3 unique minigames and score tracking
 
Chat Features:
- Users can join different rooms by each entering a player name and the game id
 - Users can assign themselves a unique identification color
 - Users can send groupchat messages to other users in the room
 - A notification is sent when a user joins or leaves the room
 - Chatroom tracks the number of connected users, player name & player color
 - Users can toggle chat display to show or hide the chat modal
 
Game Features:
- Score tracking modal displays in real-time
 - Room connection is disabled while a game is in session
 - Room states & display automatically reset at the end of each round
 - User disconnection, empty room state and multi-round edge cases tested
 - Blank tiles change to user color on click (Spam Colors)
 - Interactive prompts display after user input (Party Blanks)
 - Individual card type and info tracked and respond to client interactions (Hearts & Skulls)
 
Spam Colors:
- Click the blank tiles to get +1 point
 - Game end when all 100 tiles have been clicked
 - Click the most tiles to win!

 
Party Blanks:
- Each player takes turns reading the prompt
 - Remaining players have 1 chance to answer the prompt
 - Once remaining players have answered, hit the reveal button to read the answers
 - Prompt reader then selects their favourite answer for +1 point!
 - Click the button to skip bad prompts or end the game

 
Hearts & Skulls:
- Each round players can place any combination of 2 hearts and 2 skulls
 - At the end of each round, players bid for the highest # of flips
 - The winning player randomly flips the same # of cards they had betted on
 - Click the button to end the round
 - If the player does not hit a skull after all their flips +1 point!
 - If the player hits at least one skull -1 point

 
$ npm ci
$ npm start
Local testing:
- Point your browser tabs to http://localhost:8080
 
Multiplayer testing:
- Forward port 8080 via router settings
 - Point to your public IPv4 Address http://IPADDRESS:8080