Skip to content

Jasmit22/Blackjack

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Online Blackjack

A free-to-play, multiplayer blackjack game designed for fun, accessibility, and an engaging online experience for players of all ages. Enjoy blackjack without the gambling aspects, play casually with friends, and customize your experience.

Demo

Link to Demo (YouTube)

Features

  • Player Accounts

    • Create accounts with a unique username and password.
    • Guest mode for quick and easy play (no account needed).
    • Manage profiles with stats and settings.
    • Win/loss stats displayed in-game and on profiles.
    • Customizable profile pictures based on user's skill.
  • Gameplay Mechanics

    • Multiplayer lobbies with customizable rules.
    • Hosts can adjust:
      • Minimum/maximum bets.
      • Player count.
      • Turn timer limits.
      • Starting cash for each player.
  • Dynamic Game Interface

    • Display player names and active turns.
    • Real-time updates for game progress.
    • In-game chat box for lobby communication.

User Roles

Player

  • Role: Play and enjoy blackjack.
  • Tasks:
    • Create/manage accounts or play as a guest.
    • View personal stats.
    • Join game lobbies and compete against others.

Host

  • Role: Manage game lobbies and player experience.
  • Tasks:
    • Create lobbies with customizable game rules.
    • Manage player lists and remove disruptive players.

Administrator

  • Role: Maintain and improve the game.
  • Tasks:
    • Monitor lobbies.
    • Resolve user issues.

Tech Stack

Frontend

React React: Dynamic and responsive user interface.
Tailwind CSS Tailwind CSS: Efficient and clean styling for a visually appealing UI.

Backend

Node.js Node.js & Express.js: Backend server and API management.
MySQL MySQL: Relational database for managing player data, stats, and lobbies.
WebSockets WebSockets: Real-time communication for seamless multiplayer gameplay.

Deployment

Docker Docker: Containerized runtime environment ensuring compatibility and scalability.

Environment Variables

Important

.env files are included in the database setup for simplicity, as this project runs locally.

In the backend, add the following to a .env file:

DB_HOST=<your-db-host>
MYSQL_ROOT_PASSWORD=<your-root-password>
MYSQL_DATABASE=<your-database-name>
JWT_SECRET=<your-jwt-secret>

Run Locally

The project is Dockerized.

  docker-compose down && docker-compose up --build

To connect to the database:

  docker exec -it finalproject-database-1 mysql -u root -p

The password is found in the database .env.

Contributors

  • Matteo Cusanelli
  • Jasmit Saroya
  • Manjot Singh
  • Brandon Smith

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages