Customer Solution
XYZ Aquarium Cleaning Services Portal
Aquarium Maintenance & Cleaning — Field Service Management
ItemValue
Live Sitexyzaquarium.sonandigital.com
API Endpointxyzaquarium-api.sonandigital.com
Repositorysonantechai/aquarium-portal
Local PathE:\Claude_Projects\sonan-trackersquarium-portal\
DatabaseCloudflare D1 — aquarium_db
StackReact 18 + TypeScript (Vite 5) · Cloudflare Worker · D1
StatusLive — July 2026

What It Does

Public site — Customers visit the landing page to learn about services, see the business logo and contact details, and submit a quote request. The estimate form collects name, email, phone, preferred service type, and message. All content (business name, services, contact info, logo) is pulled live from Settings — no code changes needed to rebrand.

Admin portal — The business owner logs in with a password to access a full management suite: scheduling aquarium cleaning jobs, managing client records, tracking team members with PIN-secured logins, generating PDF estimates and invoices with the business logo, viewing revenue reports, and configuring business settings — all from one URL.

Team Login — Employees log in with their phone number and a 4-digit PIN to see their assigned jobs, update statuses in real time, and change their own PIN. Access is scoped to job lists only — no financial data visible.

Portal Modules

ModuleWhat It Does
📊 DashboardLive snapshot — total jobs, clients, paid revenue, pending estimates, new requests, today's job count
🐠 JobsSchedule jobs with client, service type, date/time, recurrence, employee assignment, and price
📅 CalendarMonth-view calendar with color-coded job chips; compact dot view on mobile; click any date to add a job
👥 ClientsClient directory with contact details, history tabs (jobs, requests, estimates, invoices), and one-click navigation to any linked record
👷 EmployeesTeam roster with admin PIN management; PIN-secured Team Login for field staff
📋 EstimatesBranded PDF quotes with logo, print/email/share delivery, and status tracking
💰 InvoicesBranded PDF invoices with paid-lock guard, mark-paid workflow, and revenue summary
🗹 Service RequestsInbound quote requests from the public site; one-click Convert to Client + Job
📈 ReportsRevenue summary, job status breakdown, jobs-by-employee, estimates vs invoices, CSV export
⚙ SettingsBusiness info, logo upload, service types, invoice numbering, blocked days, admin password
📱 Team LoginEmployee-facing view — assigned jobs, status updates, self-service PIN change
📖 User GuideIn-portal help guide covering every module (accessible from the sidebar)

Documentation Pages

PageWhat You'll Find
Admin GuideDay-to-day usage: every module explained with workflow details and tips
CredentialsLive URLs, login info, Cloudflare resources, D1 database ID, Worker name
Dev ReferenceArchitecture, DB schema, file structure, API routes, auth flow, FUSE commit pattern
AI HandoffRules for AI session continuation — FUSE-safe commit pattern, known gotchas
DeploymentStep-by-step: D1 migration, Worker deploy, Pages build and deploy
User GuideEnd-user walkthrough of every feature — the same guide embedded in the portal