73 lines
3.8 KiB
Markdown
73 lines
3.8 KiB
Markdown
# <center>Online Multiplayer Ludo Game</center>
|
|
|
|
\>\> [Play Online here](www.github.com/wenszel/mern-ludo) <<
|
|
|
|
\>\> [Watch YouTube Video here](www.github.com/wenszel/mern-ludo) <<
|
|
|
|
## Table of content
|
|
|
|
- [About](#about)
|
|
|
|
- [Architecture](#architecture)
|
|
|
|
- [Key Features and Challenges](#key-features-and-challenges)
|
|
|
|
- [Tech Stack](#tech-stack)
|
|
|
|
- [Installation](#installation)
|
|
|
|
- [Screenshots](#screenshots)
|
|
|
|
## About
|
|
|
|
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.
|
|
|
|
## 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](https://docs.cypress.io/guides/references/trade-offs#Multiple-browsers-open-at-the-same-time) and canvas functionality in the application.
|
|
|
|
## Installation
|
|
|
|
1. Download this repository
|
|
2. Generate your own [mongoDB atlas](https://www.mongodb.com) credential URL. It should looks like this:
|
|
|
|
```
|
|
mongodb+srv://madmin:<password>@clustername.mongodb.net/<dbname>?retryWrites=true&w=majority
|
|
```
|
|
|
|
3. Add this URL to the /backend/credentials.js file
|
|
4. Perform these commands in the main directory:
|
|
|
|
```
|
|
npm i
|
|
npm start
|
|
cd backend
|
|
npm i
|
|
node server.js
|
|
```
|
|
|
|
## Screenshots
|
|
|
|

|