80 lines
3.9 KiB
Markdown
80 lines
3.9 KiB
Markdown
<h1 align="center">Online Multiplayer Ludo Game </h1>
|
|
|
|
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.
|
|
|
|
<p align="center">
|
|
>> <a href="http://13.48.71.101:8080">Play online here</a> <<
|
|
</p>
|
|
|
|
<p align="center">
|
|
>> <a href="https://youtu.be/mGMnH9Nvsyw">Watch YouTube Video here</a> <<
|
|
</p>
|
|
|
|
## Architecture
|
|
|
|

|
|
|
|
## Tech Stack
|
|
|
|
Frontend:
|
|
|
|
  
|
|
  
|
|
|
|
Backend:
|
|
|
|
   
|
|
|
|
Tests:
|
|
|
|
  
|
|
|
|
Other:
|
|
|
|
    
|
|
|
|
## 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**.
|
|
|
|
- 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.
|
|
|
|
- Established a CI/CD pipeline using **CircleCI**, with pushing **Docker** container to **AWS ECR** and deploying to **AWS ECS**
|
|
|
|
|
|
## 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/.env file (refer to .env.example)
|
|
|
|
4. Perform these commands in the main directory:
|
|
|
|
```
|
|
npm i
|
|
npm start
|
|
cd backend
|
|
npm i
|
|
node server.js
|
|
```
|
|
|
|
## Screenshots
|
|
|
|

|
|
|
|

|
|
|
|

|