feat: Next.js + Socket.IO 3-mode game (Skribbl, Gartic, Color)
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
# DrawTogether
|
||||
|
||||
Three-mode web game built with **Next.js 14 (App Router) + Socket.IO**:
|
||||
|
||||
- **Skribbl Race** — one player draws, others guess.
|
||||
- **Gartic Phone** — pass-it-on prompt → drawing → guess loop.
|
||||
- **Color Together** — shared coloring book with templates and free draw.
|
||||
|
||||
## Stack
|
||||
- Next.js 14, React 18, TypeScript
|
||||
- Tailwind CSS
|
||||
- Custom Node server (`server.js`) hosting Next + Socket.IO on a single port
|
||||
- OpenTelemetry auto-instrumentation (traces) → SigNoz OTLP HTTP
|
||||
|
||||
## Run locally
|
||||
```bash
|
||||
npm install
|
||||
npm run build
|
||||
npm start # serves on :3000
|
||||
```
|
||||
|
||||
Dev mode: `npm run dev` (also via `server.js`).
|
||||
|
||||
## Environment
|
||||
| var | default | what |
|
||||
| --- | --- | --- |
|
||||
| `PORT` | `3000` | http port |
|
||||
| `SIGNOZ_OTEL_ENDPOINT` | `http://100.64.0.10:4318` | OTLP base for tracing |
|
||||
| `NODE_ENV` | `production` in container | |
|
||||
|
||||
## Endpoints
|
||||
- `GET /` — landing
|
||||
- `GET /create` — create-room form
|
||||
- `GET /join` — join form
|
||||
- `GET /room/[code]` — lobby (auto-redirects to `/play` when host starts)
|
||||
- `GET /room/[code]/play` — game UI (skribbl/gartic/color)
|
||||
- `GET /room/[code]/results` — final scores / Gartic books
|
||||
- `GET /api/health` — health check
|
||||
- `GET /api/room/[code]/exists` — quick room lookup
|
||||
- WebSocket on the same port at `/socket.io`
|
||||
|
||||
## Docker
|
||||
```bash
|
||||
docker build -t drawtogether .
|
||||
docker run -p 3000:3000 drawtogether
|
||||
```
|
||||
Reference in New Issue
Block a user