Web app to plan who works where during a party – built for the festivities of a volunteer fire brigade, but useful for any club event. No installation, no account, no server: everything runs in the browser.
- Timeline with drag'n'drop: drag people onto locations, move and resize shifts
- Table view per location and a filter "who is on duty between X and Y"
- Detects overlapping shifts of the same person and highlights them
- Export as PDF (list per location) and Excel (person × hour matrix, also per location)
- Save and open plans as JSON files – files of the old desktop version (
*.fp) can be opened too - Plan is kept in the browser (localStorage), undo/redo, works offline (PWA)
- Read-only view for phones
The UI is in German.
Requires Node.js 24 and pnpm.
pnpm installpnpm dev– start the dev serverpnpm test– unit tests (Vitest)pnpm lint/pnpm format– Biomepnpm build– static build indist/, deployable to any static host
Pushes to master are deployed to GitHub Pages by .github/workflows/deploy.yml
(enable Pages with "GitHub Actions" as source in the repository settings).
src/domain– framework-independent logic: data model, overlaps, file format incl. import of old filessrc/export– PDF (pdfmake) and Excel (ExcelJS) exports, loaded on demandsrc/store.ts– application state (Zustand) with persistence and undosrc/ui– React components
Hours are stored as whole hours counted from 00:00 of the first day (26 = 02:00 next morning),
so plans can span midnight or several days.
- TypeScript, React, Vite
- Tailwind CSS, lucide icons, IBM Plex fonts
- Zustand, dnd-kit
- pdfmake, ExcelJS
- Vitest, Biome
FireParty started in 2016 as a JavaFX desktop application. That version is tagged as
v1.0.0-javafx.
FireParty is licenced under the MIT License (MIT).
