Skip to content
adrian-schenkPublic

About

Full-Stack darts app written in Vue 3 and NestJS

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

137 Commits

Folders and files

Repository files navigation

Darts

Repository for a full-stack darts app with a Vue 3 frontend and a NestJS backend.

Features

  • Local game: play on one device with turn handling and score tracking.
  • Online game: real-time matches over websockets.
  • Tournaments: create and run bracketed events.
  • Training: focused practice modes and drills.
  • Social: friends and dart groups.
  • Stats: match and player performance tracking.
  • Intuitive user interface

Screenshots

Player interface

Player interface

Private game creation

Private game creation

Play against bots

Play against bots

WIP

  • Complete game logic
  • Team modes
  • Events
  • Advanced statistics
  • Scheduled tournaments
  • Adapative bot tiers

Stack

  • Frontend: Vue 3 (Composition API), Vite, Pinia
  • Backend: NestJS, Socket.IO
  • Databases: PostgreSQL (TypeORM) and MongoDB (Mongoose)
  • Cache: Redis
  • Local orchestration: Docker Compose

Quick start (Docker)

From the repo root:

docker compose --env-file .env.development up --build

App URLs:

Notes:

  • The frontend proxies backend calls to :3000 in development.
  • If you run docker compose up without --env-file .env.development, Compose warns about missing Postgres env vars.

To stop:

docker compose down

To stop and remove volumes:

docker compose down -v

Run without Docker

1) Start infrastructure

Use Docker for data services only:

docker compose --env-file .env.development up -d postgres mongodb redis

2) Start backend

cd server
npm install
npm run start:dev

Backend runs on http://localhost:3000.

3) Start frontend

In a second terminal:

cd web
npm install
npm run dev

Frontend runs on http://localhost:5173.

Useful commands

Backend (server):

npm run test
npm run test:e2e
npm run lint

Frontend (web):

npm run test:unit
npm run test:e2e
npm run lint
npm run build

Project layout

.
├── server/   # NestJS API + websocket backend
├── web/      # Vue 3 frontend
├── docker-compose.yml
└── .env.development

Troubleshooting

  • Port already in use:
    • Check 3000, 5173, 5432, 27017, 6379 and stop conflicting services.
  • Postgres env warnings in Compose output:
    • Start with --env-file .env.development.
  • Redis vm.overcommit_memory warning:
    • This is a host kernel setting warning from Redis. Development usually still works; set vm.overcommit_memory=1 on your host if needed.

About

Full-Stack darts app written in Vue 3 and NestJS

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages