Skip to content
This repository was archived by the owner on Jun 4, 2026. It is now read-only.

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Banner

UNO: The Card Game

Multiplayer UNO game implemented as a university Software Engineering project.
Built with Node.js, Express, Vite, React and PostgreSQL, and intended for learning and academic use only.

Table of contents

Features

  • Room creation with custom settings and room join by code.
  • Multiplayer support (2-5 players per room).
  • Bots support to fill empty player slots, with customizable difficulty levels.
  • User registration and login for persistent activities history and rejoining rooms.
  • Basic game rules and turn management (cards, and special cards behavior).
  • Support for minimum screen resolution of 1600 × 800 pixels.

Tech stack

  • Frontend: React + Vite.
  • Backend: Node.js + Express + Socket.io.
  • Database: PostgreSQL.

Requirements

  • Node.js (v16+ recommended).
  • npm (v8+ recommended).
  • PostgreSQL (local or remote instance).

Deployment

  1. Clone the repository and navigate to the project folder:

    git clone https://github.com/EasyXploit/Uno && cd Uno
  2. Copy the .env.example file contents to a new .env file and fill in your custom configuration as described in the file:

    cp .env.example .env
    # Server configuration
    SERVER_PORT=3500                             # "3500" by default if not specified
    SERVER_PUBLIC_URL=https://your.public.url    # The base URL where the server is hosted, so it can generate correct links
    JWT_SECRET=YOUR_JWT_SECRET                   # (Optional) Custom secret key for JWT token generation. If not set, a fixed default will be used (not recommended).
    
    # Database connection configuration
    DB_USER=YOUR_DB_USER                # "postgres" by default if not specified
    DB_PASSWORD=YOUR_DB_PASSWORD        # Empty by default if not specified
    DB_HOST=YOUR_DB_HOST                # "localhost" by default if not specified
    DB_PORT=YOUR_DB_PORT                # "5432" by default if not specified
    DB_NAME=YOUR_DB_NAME                # "uno" by default if not specified
  3. Install the dependecies, create the SQL tables, build the frontend, and start the server:

    npm run deploy
    npm run start

    Note: For development mode with hot-reloading, use npm run dev instead.

  4. Et voilà! You can now access the game at http://localhost:3500 (replace with the SERVER_PUBLIC_URL configured in your .env file).

API Endpoints

This project uses Swagger UI to provide interactive API documentation. Once the server is running, you can access the documentation at: http://localhost:3500/api/docs (replace the port number if you specified a different one in your .env file).

About

Multiplayer UNO game implemented as a university Software Engineering project. Built with Node.js, Express, Vite, React and PostgreSQL, and intended for learning and academic use only.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages