/master-word

Guess the 5 letter word

Primary LanguageTypeScript

Master Word

Guess a 5 letter word in least attempts.

It is using Turborepo to help with managing monorepo workspaces.

Project contains 3 apps workspaces: React frontend for game, NodeJS game server backend and admin UI to manage database. It contains (at the moment) 2 packages workspaces: config-typescript - shared typescript configuration and utils - some helpers used across apps workspaces.

Live Example - Master Word

Tools

Make sure you have installed Volta which ensures you have the right version of node and npm for this project.

Frontend (Game)

Tech: React, React Router, Typescript, Vite, SASS

Frontend for actual game.

Backend

Tech: NodeJS, Express, MongoDB, Mongoose, Mocha

The backend is using MongoDB document database to store game information e.g. dictionary.

Polish dictionary is stored in the database, there is a logger endpoint for unknown words that is stored in database, at some intervals those "unknown words" will be reviewed and moved into dictionary (using admin page).

English words are provided via the Frontend Masters API https://words.dev-apis.com/word-of-the-day.

Admin

Tech: React, React Router, Redux, Typescript, Vite, MUI, RTK

Frontend for managing backend.

Roadmap

Few features are still to be developed, below is a list divided by the module

Admin

Backend

  • word count attached to the game session Feature #17
  • store last game elapsed time (for comparison of best times) Feature #9
  • Unknown Words Stats functionality Feature #14
  • Game session data in DB Feature #19
  • Archive game sessions in DB Feature #20
  • Config functionality Feature #16
  • measure transaction times and accumulate offset to adjust game time (so longer responses do not affect the game play time) Feature #23
  • shared game session Feature #21

Game