Hi, I am Vijender, Welcome to my project, "Exploding Kitten" - a web game developed using the MERN stack and TypeScript. This game allows users to create a unique username after signing up or logging in and then play exciting games.
One of the unique features of this game is that players earn points with each win, and these points are reflected on the leaderboard, which tracks each user's rank and score. The use of TypeScript in both the front-end and back-end development ensures that the code is scalable and easy to maintain.
Overall, this project aims to provide a fun and engaging gaming experience for users and showcase the use of cutting-edge technologies in web development.
- MongoDB
- Express
- React
- Node.js
- TypeScript
- Redis
To get started with this project, you will need to have Node.js, Redis and MongoDB installed on your machine.
- Clone the repository:
git clone https://github.com/your-username/mern-typescript.git- Install the Dependency of server:
cd server-exploding-kittens
npm install- Create Env File in Server's Root Directory:
touch .env
nano .env- Put Env File Content as:
NODE_ENV = development
MONGO_URL = mongodb://..........................
PORT = 4444
JWT_SECRET = I am vijender full stack dev
REDIS_URL = redis://127.0.0.1:6379- Run Server:
npm run dev- Install the Dependency of client:
cd ../client-exploding-kittens
npm install- Run Client:
npm run dev├── client-exploding-kittens
│ ├── index.html
│ ├── package.json
│ ├── package-lock.json
│ ├── postcss.config.js
│ ├── public
│ │ ├── bomb.svg
│ │ ├── cat.svg
│ │ ├── defuse.svg
│ │ ├── kitten.png
│ │ ├── lost.jpg
│ │ ├── suffle.svg
│ │ └── winner.png
│ ├── src
│ │ ├── App.css
│ │ ├── App.tsx
│ │ ├── components
│ │ │ ├── Loading.tsx
│ │ │ ├── Navbar.module.css
│ │ │ ├── Navbar.tsx
│ │ │ ├── SleepingCat.module.css
│ │ │ ├── SleepingCat.tsx
│ │ │ ├── Table.module.css
│ │ │ ├── Table.tsx
│ │ │ ├── YouLostCard.tsx
│ │ │ ├── YouWonCard.module.css
│ │ │ └── YouWonCard.tsx
│ │ ├── features
│ │ │ ├── auth.slice.ts
│ │ │ ├── game.slice.ts
│ │ │ ├── hooks.ts
│ │ │ └── index.ts
│ │ ├── index.css
│ │ ├── interfaces
│ │ │ ├── ActiveTab.interface.ts
│ │ │ ├── Card.interface.ts
│ │ │ ├── LeaderBoard.interface.ts
│ │ │ └── LoginSuccess.interface.ts
│ │ ├── main.tsx
│ │ ├── pages
│ │ │ ├── Game
│ │ │ │ ├── Cards
│ │ │ │ │ ├── Cards.module.css
│ │ │ │ │ ├── Cards.tsx
│ │ │ │ │ └── components
│ │ │ │ │ └── Card.tsx
│ │ │ │ ├── ExposedCards
│ │ │ │ │ ├── ExposedCards.module.css
│ │ │ │ │ └── ExposedCards.tsx
│ │ │ │ └── Game.tsx
│ │ │ ├── Home
│ │ │ │ └── Home.tsx
│ │ │ ├── LeaderBoard
│ │ │ │ └── LeaderBoard.tsx
│ │ │ ├── Login
│ │ │ │ ├── components
│ │ │ │ ├── Login.module.css
│ │ │ │ └── Login.tsx
│ │ │ └── Signup
│ │ │ └── Signup.tsx
│ │ ├── utils
│ │ │ └── requestMethods.ts
│ │ └── vite-env.d.ts
│ ├── tailwind.config.js
│ ├── tsconfig.json
│ ├── tsconfig.node.json
│ └── vite.config.ts
├── README.md
└── server-exploding-kittens
├── nodemon.json
├── package.json
├── package-lock.json
├── src
│ ├── controllers
│ │ ├── Game.controller.ts
│ │ └── User.controller.ts
│ ├── index.ts
│ ├── middlewares
│ │ ├── authenticated.middleware.ts
│ │ ├── error.middleware.ts
│ │ └── validation.middleware.ts
│ ├── models
│ │ └── User.model.ts
│ ├── routes
│ │ ├── game.routes.ts
│ │ └── user.routes.ts
│ └── utils
│ ├── exceptions
│ │ └── http.exception.ts
│ ├── interfaces
│ │ ├── database.interface.ts
│ │ └── token.interface.ts
│ ├── token.ts
│ └── validateEnv.ts
└── tsconfig.json
If you find any issues or bugs, please open an issue or submit a pull request.