2026-06-03 16:29:45 +02:00
2026-06-03 16:29:45 +02:00
2026-05-22 23:32:42 +02:00
2026-06-03 16:29:45 +02:00
2026-05-20 10:37:31 +02:00
2026-03-15 12:36:12 +01:00
2026-05-24 14:19:09 +02:00

LuckySign

Ticket intake and validation app with a React frontend and an Express + MySQL backend.

Tech Stack

React TypeScript Vite Tailwind%20CSS MUI TanStack%20Query React%20Router TanStack%20Form Node.js Express MySQL Docker Nginx

Production Tech Stack

Note

For production, check the prod branch which contains an VPN git submodule of wg-easy to run the app securely on a private network. It also contains a dnsmasq container to resolve the backend service name from the frontend container. The main branch is meant for local development and testing, so it doesn't include those components to keep things simple.

dnsmasq WireGuard

Project Structure

Quick Start (Docker)

  1. Set the database password env var used by Docker Compose:
DB_PASSWORD=your_password
  1. Start MySQL and the backend:
docker compose up -d

Notes:

  • The frontend service is commented out in docker-compose.yml. If you want the frontend container, uncomment that block and rebuild.
  • The frontend container uses Nginx and proxies /backend to the backend service (see frontend/nginx.conf).
  • In order to use the database properly, run the scheme and create some users in the users table.

Local Development

Backend

  1. Create a .env file in the backend folder with:
PORT=8004
DB_HOST=127.0.0.1
DB_USER=root
DB_PASSWORD=your_password
DB_NAME=ca_lose
  1. Install deps and run:
cd backend
npm install
node server.js

Backend listens on http://localhost:8004 and exposes routes under /default.

Frontend

cd frontend
npm install
npm run dev

Vite runs the app on the default dev port and talks to the backend using the API helpers in frontend/src/utils/api.

API Endpoints

  • GET /default/users
  • GET /default/confirm-user?username={name}
  • POST /default/new-entry?username={name}

Database Notes

S
Description
No description provided
Readme Apache-2.0 2 MiB
v2.1 Latest
2026-05-24 14:21:19 +02:00
Languages
TypeScript 82.1%
JavaScript 14.5%
HTML 1.3%
Dockerfile 1%
CSS 0.6%
Other 0.5%