A React app for managing hot tub service calls — intake form, call log database, and CSV export.
- Service Call Form — Customer info, appointment scheduling, site access notes (pets, gate codes), hot tub make/model/year, problem description, and pricing display ($85 diagnostic + travel).
- Call Log Database — Searchable list of all service calls with view, edit, and delete. Data persists in localStorage.
- Detail View — Full breakdown of any service call.
- CSV Export — Download your entire call history as a spreadsheet.
# Install dependencies
npm install
# Start dev server (opens http://localhost:3000)
npm run devnpm run buildThe built files will be in the dist/ folder. You can deploy them to any static host (Netlify, Vercel, GitHub Pages, etc.).
hottub-service-manager/
├── index.html # HTML entry point (loads Google Fonts)
├── package.json # Dependencies & scripts
├── vite.config.js # Vite configuration
├── src/
│ ├── main.jsx # React root mount
│ ├── index.css # Global reset & base styles
│ └── App.jsx # Full application (form, log, detail views)
└── README.md
- Add a status field (Open / In Progress / Parts Ordered / Closed)
- Add repair cost tracking alongside the diagnostic fee
- Replace localStorage with a backend (Supabase, Firebase, your own API)
- Add photo uploads for the hot tub / job site
- Add technician assignment if you grow the team
- Add invoice generation as PDF
- React 18
- Vite 6
- No external UI libraries — pure inline styles for easy customization