Activeweb appsSvelteMIT

Splitpot

Planning poker application

4 stars37 viewsAdded 1mo ago

AI-Agent Assisted

Tier 2
Claude Code
Signals: README-built-with-claude-code

README

Split Pot

A real-time planning poker application built with Claude code, Svelte and Socket.io. Hosted at: Split Pot

Features

  • Create or join poker rooms with a unique ID
  • Real-time voting with multiple participants
  • Reveal/hide votes functionality
  • Reset voting for new rounds
  • Calculates average of numeric votes
  • Clean, responsive UI

πŸ”§ Local Development

Prerequisites

  • Node.js 18+
  • npm

Setup

  1. Clone the repository:

    git clone https://github.com/martinmeinke/splitpot.git
    cd splitpot
    
  2. Install dependencies:

    npm install
    
  3. Create a local environment file:

    cp .env.example .env.local
    
  4. Start the development server:

    npm run dev
    

This will start both the frontend (Vite) and backend (Express) servers concurrently:

🌐 Deployment

The application is designed to be deployed as:

  • Frontend on Netlify
  • Backend on Fly.io

Deploying the Frontend (Netlify)

  1. Create a new site on Netlify
  2. Connect your repository
  3. Configure build settings:
    • Build command: npm run build
    • Publish directory: dist
  4. Set environment variables:
  5. Deploy!

Deploying the Backend (Fly.io)

  1. Install the Fly.io CLI:

    curl -L https://fly.io/install.sh | sh
    
  2. Login to Fly.io:

    fly auth login
    
  3. Launch your app (first-time setup):

    fly launch
    
    • This will use the existing fly.toml file
    • Choose appropriate region
  4. Set environment variables:

    fly secrets set ALLOWED_ORIGINS=https://splitpot.netlify.app
    
  5. Deploy the app:

    fly deploy
    

Usage

  1. Open the application in your browser
  2. Create a new room or join an existing one by entering the room ID
  3. Share the room ID with your team members
  4. Select your story point estimate by clicking on a card (options range from 0.5 to 8, with β˜• indicating a coffee break)
  5. When everyone has voted, click "Reveal Votes" to show all estimates
  6. Click "Reset Votes" to start a new round

πŸ” Project Structure

β”œβ”€β”€ dist/                 # Built frontend files
β”œβ”€β”€ public/               # Static public assets
β”œβ”€β”€ src/                  # Frontend source code
β”‚   β”œβ”€β”€ lib/              # Svelte components
β”‚   β”œβ”€β”€ App.svelte        # Main application component
β”‚   └── main.js           # Frontend entry point
β”œβ”€β”€ server.js             # Backend server code
β”œβ”€β”€ vite.config.js        # Vite configuration
β”œβ”€β”€ netlify.toml          # Netlify configuration
β”œβ”€β”€ fly.toml              # Fly.io configuration
└── Dockerfile            # Docker configuration for Fly.io

πŸ“ Environment Variables

Frontend (.env.local)

  • VITE_BACKEND_URL: URL of the backend API

Backend

  • PORT: Port for the server (default: 8080)
  • ALLOWED_ORIGINS: Comma-separated list of allowed CORS origins

βš™οΈ Technologies Used

  • Frontend: Svelte 5, Vite, Bootstrap 5
  • Backend: Express.js, Socket.IO
  • Deployment: Netlify (frontend), Fly.io (backend)

Tags

built-with-claude-codesvelte

Similar Tools