implemented timeoutManager, a more efficient solution for managing timeouts in RAM memory. this resolves the problem of lingering timeouts in the server, providing faster removal of old timeouts and improving overall performance. |
||
|---|---|---|
| .circleci | ||
| backend | ||
| cypress | ||
| public | ||
| src | ||
| .gitignore | ||
| .prettierrc | ||
| cypress.config.js | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
Online Multiplayer Ludo Game
Ludo Online is a multiplayer web-based implementation of the classic board game Ludo, built using the MERN stack and integrated with SocketIO for real-time communication.
>> Play Online here <<
>> Watch YouTube Video here <<
Architecture
Tech Stack
Frontend:
Backend:
Tests:
Tools:
Key Features and Challenges
-
Maintained session consistency with Express Session and MongoDB.
-
Enabled real-time communication via WebSocket and SocketIO.
-
Maintained code reliability by implementing unit and integration tests using Mocha, Chai, and Jest.
-
Hosted in a Docker container on AWS EC2.
-
Established CI/CD using CircleCI.
-
Implemented E2E tests utilizing Cypress, addressing challenges related to testing collaboration and canvas functionality in the application.
Installation
-
Download this repository
-
Generate your own mongoDB atlas credential URL. It should looks like this:
mongodb+srv://madmin:<password>@clustername.mongodb.net/<dbname>?retryWrites=true&w=majority
-
Add this URL to the /backend/credentials.js file
-
Perform these commands in the main directory:
npm i
npm start
cd backend
npm i
node server.js



