Customer Solution
Castle Checkers Service Portal
Caretaker & Home Watch Services — Naples, FL
Last updated: 2026-07-12
ItemValue
Live Sitecastlecheckers.sonandigital.com
API Endpointcastlecheckers-api.sonandigital.com
Repositorysonantechai/caretaker-portal
Databasecaretaker_db
StackReact 18 + TypeScript + Cloudflare Worker + D1
StatusLive — July 2026
Commit HEADb2767bf (push pending)

What It Does

Public site — Clients visit the site, read about services, and submit service requests through a multi-step wizard. The wizard collects contact info, preferred contact method, service types (airport transport, home watch, property check, call back, other), and relevant details (flight info, dates, care tasks). An Employee button in the nav bar lets staff access the employee portal.

Admin portal — The business owner logs in via the Admin button in the nav to manage requests, clients, appointments, invoices, and settings. Styled in navy and gold (#1a3050). Flight numbers are clickable badges linking to FlightAware. Non-paid invoices can be deleted. On mobile, client details open as a full-screen overlay. The enhanced calendar supports add, edit, and delete directly from the calendar view.

Employee portal — Employees log in with their phone number and PIN. After login they see today's and upcoming appointments assigned to them.

Recent Changes (July 2026)

ChangeWhat It Does
Navy + Gold themeComplete color overhaul — primary #1a3050 navy, gold accent #f59e0b. All hardcoded green #2d6a4f references replaced in CSS, AdminApp, and EmployeeApp. DB settings table primary_color key must also be updated (see Current Dev).
Employee login portal"Employee" button added to public site nav. Clicking it renders EmployeeApp, which shows the EmployeeLogin screen (phone + PIN). On success, employees see their appointment schedule.
Secure notesgetSecureNotes / saveSecureNotes fully wired into api.ts and AppContext.tsx — available for client detail views.
Invoice deleteDelete button on Draft/Sent invoices. Worker rejects deletion of Paid invoices with 403.
Mobile client modalOn mobile, tapping a client opens their detail as a full-screen overlay with a ← Back button instead of appending below the list.
Contact strip layoutPhone and email in the client contact strip now stack vertically so long email addresses are fully visible.
Service Request edit stylingThe inline edit panel (Contact Info, Services, Notes) now has proper card layout, labelled fields, and grid rows.
Appointment auto-switchClicking Edit on a different appointment while one is already open automatically switches — no manual Cancel required.
Migrations 0003–0006Added flight fields on appointments, phone index, call-back service type, and blocked_days table.
Blocked daysWorker + API supports creating and deleting blocked days (dates the admin is unavailable).

Documentation Pages

PageWhat You'll Find
Admin GuideDay-to-day portal usage, service request workflow, IATA codes
CredentialsLive URLs, login info, Worker secrets, D1 database ID
Dev ReferenceArchitecture, DB schema, file structure, API routes, deployment pattern
AI HandoffRules for AI session continuation, FUSE-safe commit pattern, gotchas
DeploymentStep-by-step deployment commands for Worker, D1, and Pages