Skip to content

Repository files navigation

ticket-sizing

ticket-sizing is a lightweight planning-poker app for team estimation. Teams can create an organization, join it with a password, pick sizing cards, reveal everyone's votes, and keep a simple leaderboard based on voting results.

How it works

  • The app is built with Astro and React.
  • Firebase Firestore is used as the app's backend and real-time data store.
  • Users first create or join an organization.
  • Inside an organization, members can join a room, choose a card (XS, S, M, L, XL, or ?), and reveal/reset votes.
  • A host can end the current game session.

Main app entry points:

  • src/components/sizing.tsx: top-level app flow and state management
  • src/firebase/firebase.ts: Firebase initialization and Firestore reads/writes
  • firestore.rules: Firestore security rules used by the app

Local setup

Prerequisites

  • Node.js 18+
  • Yarn 1.x
  • A Firebase project with Firestore enabled

1. Install dependencies

yarn install

2. Create your environment file

Copy .env.example to .env and fill in your Firebase web app values:

PUBLIC_FIREBASE_API_KEY=
PUBLIC_FIREBASE_AUTH_DOMAIN=
PUBLIC_FIREBASE_PROJECT_ID=
PUBLIC_FIREBASE_STORAGE_BUCKET=
PUBLIC_FIREBASE_MESSAGING_SENDER_ID=
PUBLIC_FIREBASE_APP_ID=

These values come from your Firebase project settings for a Web app.

3. Run the app

yarn dev

The dev server runs at:

http://localhost:4321/ticket-sizing/

Note: this project is configured with an Astro base path of /ticket-sizing/, so the app is served from that subpath locally and in builds.

Other scripts

yarn build
yarn preview

Notes

  • This repo currently expects a real Firebase project; emulator config is not included.
  • Firestore rules are permissive right now, so treat this as an internal or prototype-style setup unless you harden the auth and rules.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages