Still needs, a lot of validation (word validation, word removal on duplicates...), expection handling, async handling... Main thing to resolve next is Firebase. User Handling is a bit older code, so not all parts of it work Mail Sending disabled, needed manual activation.
- First thing needed is proper SQL Database Server, and connection string for that DB
- Set connection string in appsettings.json File
- Uncomment these lines in startup of .NET Core project: //dBContext.Database.EnsureDeleted(); //dBContext.Database.EnsureCreated();
- Run .NET Core backend once.
- Now you can STOP the project and comment the same lines from STEP 3 again.
- Run BoggleREST Project
- Run BoggleWEB Project (ng serve --open)
- Considering that User Management is not finished, use swagger from BoggleREST site that was opened in order to register new user.
- Manually in Database set the User as Confirmed Email - Email Service not finished, it used to work before as it is, but currently buggy.
- You can now Log into the Angular Frontend and create new Room.
- First Assigment, Task 1: Implemented as static method in Utils: ScorePlayer. Missing testing and configuration file. Currently hardcoded
- First Assigment, Task 2: Utils.ScorePlayers - Missing Testing
- Max play time implemented (3 MIN), however not validated.
- In general Custom Exception handling is missing everywhere. Game does not validate at all.
- Missing requirement : (If two or more players wrote the same word, it is removed from all players lists)
- All values need configuration files, since they are mainly hardcoded. Dice set for English version, but words never validated.
- Scoring from First assigment utilized
- Firebase with Background Tasks used for Score handling, game ending and player notifications.
- Validation missing on Frontend also
- Counter missing
- Proper Firebase notification handling missing - Currently written in console
- Sign Up Page not implemented, just a placeholder
- Tests where necessary missing - Not much need for this since there is no logic
- Entire frontend needs rework on UI/UX part also optimization needed on both frontend and backend.
How the game should work currently (Some parts not even manually tested):
- Player A Creates a Game Room X
- Player A sends to Player B link to game Room
- Player B joins Game Room X (Should only be able to join if game not started at all - Not implemented)
- Any of the 2 players can start the game (Should be only possible by Player A)
- Notification Handling for game start - Not implemented, currently other player will not know if game started.
- Game start button should be removed and validated after game starts - Not implemented
- Countdown of 3 Minutes missing
- When game finishes, notification is pushed to each participating player about results (Only console write, not implemented proper handling)
How the game would work with more development time:
- Player A creates Game Room X
- Player A sends only Game Room ID to player B, player B opens room with ID
- Any player or Player A can start game (not sure which is better)
- On all participating players Accounts, countdown is started for that game.
- Each player sends words to Backend, and their words are shown on frontend.
- No player can join game after it was started.
- After game finishes, each players game screen changes and shows results. These results can be accessed always with Room ID.
- All words are validated, and no duplicates are allowed, or rather later removed.
- Both solutions are dockerized (Not necessary, but nice to have) and deployed using GCloud and Kubernetes