A real-time poker planning application for agile teams built with Node.js, TypeScript, and React.


- Real-time collaborative poker planning sessions
- WebSocket-based communication
- Room-based voting system
- Modern React frontend with TypeScript
- Dockerized deployment
- Docker (v20.10+)
- Docker Compose (v2.0+)
-
Clone the repository:
git clone https://github.com/alexandrelam/slam-poker.git cd slam-poker
-
Create a
.env
file (optional):cp .env.example .env # if you have an example file # or create manually with your preferred settings
-
Start the application:
docker-compose up -d
-
Access the application at
http://localhost:3001
The application can be configured using environment variables:
Variable | Default | Description |
---|---|---|
PORT |
3001 |
Port the application runs on |
NODE_ENV |
production |
Node.js environment |
CORS_ORIGIN |
* |
CORS allowed origins |
Create a .env
file in the root directory to override defaults:
PORT=3001
NODE_ENV=production
CORS_ORIGIN=http://localhost:3000
The frontend requires WebSocket URL configuration for different environments:
For Development (web/.env.development
):
VITE_WS_URL=http://localhost:3001
For Production (web/.env.production
):
# Leave empty to use same origin as frontend (recommended for production)
VITE_WS_URL=
The frontend will automatically:
- Use
VITE_WS_URL
if specified - Fall back to
window.location.origin
(same server as frontend) if not specified - This ensures WebSocket connections work in both development and production environments
For development with hot reload:
# Stop the production container if running
docker-compose down
# Run in development mode (if you have a dev compose file)
# Otherwise, run locally with:
npm install
npm run dev
# Start services
docker-compose up -d
# View logs
docker-compose logs -f slam-poker
# Stop services
docker-compose down
# Rebuild and restart
docker-compose up --build -d
# Health check status
docker-compose ps
The application includes built-in health checks accessible at http://localhost:3001/health
.