Web app for the MDS project.
Online Casino made for those who are eager to lose virtual money.
Every new player can create an account and is given 100 Roial Pointz (our virtual currency) which they can multiply(or lose) by playing Roulette, Slots, Poker and Blackjack. They can also buy cosmetics (avatars, hats, mystery box) which they can show off with at the Poker table. Players can also chat through the global chat or poker chat.
https://github.com/Theodorulus/CazinoRoial/projects/1
- As a professional poker player, I want to have statistics on the hands played
- As a fan of multiplayer games, I want to play poker online with my friends.
- As a gambler, I want to have more gaming options.
- As a gamer, I wish I could talk to random players on the platform.
- As an internet user, I would like to have my own account on the platform.
- As an online gambler, I want to be able to set an avatar.
- As an amateur poker player, I want to communicate with the other players in the lobby.
- As an online gambler, I would like a simple and intuitive UI.
- As a poker player, I want to select the lobby I will join (from a list of available lobbies).
- As a user of the platform, I want to play Blackjack.
- As a user of the platform, I want to play Slots.
- As a user of the platform, I want to play Roulette.
- As an online gambler, I want to purchase special items on the platform.
- As a developer, I want good communication between team members.
- As a manager, I want to know the progress of the development team, so that I can answer any questions they may have.
Used multiple branches on Github
The unit tests are divided in 2 parts, one for backend, and one for frontend functions.
- for backend there are tests for: login, register, get and post requests
- for frontend there are tests for the blackjack functions: getHandValue(), winCondition(), shuffleArray() and getRandomDeck()
The frontend ones are tested on each push and pull request with github actions: https://github.com/Theodorulus/CazinoRoial/actions
-
When using socket.io, if the session suddenly expired, the socket API tries to maintain the connection by querying the database with an undefined session id, resulting in the server going down. Solution: Checking if the cookie object in the request header, includes the sessionId property. Info: (Theodorulus#26)
-
After some minor files modifications, some parts of the games controller stopped working properly. Solution: Changed the paths to the modified files. Info: (Theodorulus#24)
The app is using npm with custom scripts as a pseudo build tool.
Initially, the "Profile" table only had 'id', 'RoialPointz', 'Phone', 'Birthdate' and 'UserId' columns. Later, we added 'PokersHandsWon' and 'PokerHandsPlayed' for the statistics shown on your profile page.
The app is using the MVC (Model-View-Controller) Design Pattern:
- Model - User, Profile, Items, etc.
- View
- Controller