cca303c1f6573df7e53081bd64fc2b66f4375221
CA-Lose
Ticket intake and validation app with a React frontend and an Express + MySQL backend.
Tech Stack
Project Structure
- Frontend (Vite + React + Tailwind + MUI): frontend
- Backend (Express): backend
- Database schema: backend/scheme.sql
- Docker compose stack: docker-compose.yml
Quick Start (Docker)
- Set the database password env var used by Docker Compose:
export DB_PASSWORD=your_password
- 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).
Local Development
Backend
- 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
- 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
- The base users table is defined in backend/scheme.sql.
- Per-user ticket tables are created on demand by the backend (see backend/routes/default/frontend.data.js).
Description