A Progressive Web App for tracking Burraco card game scores. Built with React, TypeScript, and Vite, this app can be installed on mobile devices and works offline.
- Player Management: Add, edit, and delete players
- Match Tracking: Create and manage 1v1 matches
- Score Recording: Easy point entry with numeric keypad
- Automatic Winner Detection: Tracks when players reach the winning threshold
- Offline Support: Works without internet connection
- Mobile Installable: Can be installed as a native app on smartphones
- Data Persistence: All data saved locally on device
- Node.js (v18 or higher)
- npm or yarn
- Clone the repository:
git clone <repository-url>
cd burraco-score- Install dependencies:
npm installStart the development server with hot-reload:
npm run devThe app will be available at http://localhost:5173
Build the application for production:
npm run buildPreview the production build locally:
npm run preview- Add Players: Go to the Players tab and add at least 2 players
- Create Match: Click "Create New Match" and select:
- Two players
- First dealer
- Winning point threshold (default: 2,005)
- Record Games: Add game results using the numeric keypad
- Base points (multiples of 50)
- Score points (multiples of 5)
- Track Progress: View running totals and match history
- Winner Declaration: The app automatically declares a winner when the threshold is reached
- A match consists of multiple games
- Each game records base points (50-point increments) and score points (5-point increments)
- First player to reach the winning threshold wins
- If both players reach the threshold in the same game, a tiebreaker is played
- Open the app in Safari
- Tap the Share button
- Select "Add to Home Screen"
- Name the app and tap "Add"
- Open the app in Chrome
- Tap the menu (three dots)
- Select "Add to Home Screen"
- Confirm installation
- Frontend: React 19 with TypeScript
- Build Tool: Vite
- Styling: Tailwind CSS + shadcn/ui
- State Management: Zustand with localStorage
- PWA: Vite PWA Plugin
- Icons: Lucide React
src/
├── components/ # React components
├── stores/ # Zustand state stores
├── types/ # TypeScript type definitions
├── utils/ # Utility functions
└── App.tsx # Main app component
npm run dev- Start development servernpm run build- Build for productionnpm run preview- Preview production buildnpm run lint- Run ESLint
The app can be deployed to any static hosting service:
npm i -g vercel
vercelnpm run build
# Drag and drop the dist folder to Netlifynpm run build
# Push dist folder to gh-pages branch- Chrome/Edge 90+
- Firefox 89+
- Safari 15+
- Chrome Android 90+
- Safari iOS 15+
MIT
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
For issues and questions, please open an issue on the GitHub repository.