v3 is live · Demo open for testing

SaniFilPro v3 is live. Test drive each role below.

Every feature from the build plan is deployed and connected to a live database. The demo is seeded with 4 stores (Daytona Speedway, Ormond Beach, Port Orange, DeLand Crossing), 8 demo users (admin, supervisor, 4 cleaners, 2 floaters), 57 historical daily reports, 333 photos, 16 invoices, 7 tickets, and supervisor visits across the lifecycle. Walk through each role in any order. Reply to the email thread with anything that feels off, missing, or worth refining.

Section 1

What v3 delivers

Built and shipped since your last walkthrough.

Supervisor role + portal

New tier between Cleaner and Admin. Site visit log, verification checklist, photo approval queue, auto-correction tasks.

Floater employee subtype

Project-work specialists who roam multiple stores. Store-picker at check-in, project-only checklist scoped to today.

Auto-correction tasks

When supervisor flags an item, the assigned cleaner sees it at the top of their next checklist with the flag photo, and must re-clean + capture an after-photo.

Before / after photos

Cleaners can capture "before-shift" photos at check-in to document what they walked into. Operator photo history shows the visual contrast.

12-month auto-schedule

Add a store, pick a floater. System generates a year of project work respecting your biweekly day preferences and floater capacity.

Ticket priorities reworked

Routine · Important · Urgent · Before Opening. Replaces the old Low/Medium/High/Emergency labels with ops-aligned terms.

Live camera, no gallery

Mimics Timestamp Camera Basic. Camera opens in-app, captures live, burns zone name + date + time into the bottom strip before upload.

Multi-approver photo gate

Both admins and supervisors can approve cleaner photos. Operator dashboard updates within minutes instead of waiting on one person.

Real admin dashboard

New landing page at /admin/dashboard. KPI tiles, recent reports across all stores, pending photo thumbnails, top tickets, scheduled + recently-closed supervisor visits.

Full bilingual EN / ES

Every screen a cleaner or floater touches is now translated. Dashboard, checkin, checklist (all 68 items), photos, report-issue, checkout. Toggle persists across pages.

Supervisor scheduling lifecycle

Supervisors schedule visits in advance. Scheduled, in-progress, and completed states each render differently across the dashboard, store detail, and visit list.

4 stores, 8 demo users

Daytona Speedway, Ormond Beach, Port Orange, DeLand Crossing. 4 cleaners, 2 floaters, 1 supervisor, 1 admin. 57 historical daily reports + 333 photos already in the system.

Full report-issue form

Cleaners can flag issues mid-shift with category, priority (Routine / Important / Urgent / Before Opening), zone, description, and an optional photo. Lands straight in the admin queue.

Section 2

Demo credentials

8 demo accounts seeded across 4 stores (Daytona Speedway, Ormond Beach, Port Orange, DeLand Crossing). The first 5 rows are the ones to focus on. The last 3 exist so you can stress-test multi-employee, multi-store scenarios. Open any URL, sign in, start clicking around.

Role Login URL Credentials
Admin /admin/login admin@sanifilpro.com
demo-admin-2026
Supervisor /supervisor/login supervisor@sanifilpro.com
demo-supervisor-2026
Cleaner (Daytona) /employee/login Daytona Speedway CFA
PIN: 1234
Floater (Daytona) /employee/login Daytona Speedway CFA
PIN: 5678
Operator /operator/login Your email
(see footer caveat, currently down)
Cleaner (Ormond) /employee/login Ormond Beach CFA
PIN: 8420 (Ana Garcia)
Cleaner (Port Orange / DeLand) /employee/login Port Orange CFA or DeLand Crossing CFA
PIN: 4513 (Rosa Santos)
Floater (multi) /employee/login Ormond / Port Orange / DeLand
PIN: 5804 (Carlos Mendez)
Demo accounts only. The bottom 3 rows (shaded) are extra PINs you can use to simulate multi-employee scenarios on the additional stores: two cleaners working in parallel, a floater rotating through 3 stores, etc. The first 5 are the ones to focus on for your walkthrough. Real launch will use individually-issued passwords + your own email for the operator role.
Section 3

Walkthrough by role

Each section is a recommended click-path that touches every new feature for that role. Numbered steps, ~5 minutes per role.

A

Admin (SaniFilPro management)

Full control across every store + operator. 2-factor in production.
  1. Sign in at /admin/login with the admin credentials above. You'll land on /admin/dashboard, a real KPI dashboard: pending photo approvals, open tickets, scheduled supervisor visits, recent daily reports, and thumbnails of the latest pending photos.
  2. Scan the dashboard panels. Recent reports surface the last few cleaner submissions across all 4 stores. Top tickets shows the 5 most recent operator concerns. Scheduled + recent supervisor visits live side by side so you can see what's on the calendar and what just closed.
  3. Open All Stores (sidebar). 4 stores listed (Daytona, Ormond, Port Orange, DeLand). Click into any to see assigned cleaners + floaters and recent reports.
  4. Click "+ Add Store" (top right). Flow: pick an operator, pick a floater (red flag at 4+ stores), pick which weekdays project work can happen on.
  5. Open Photo Review (sidebar). A live queue across all 4 stores. Approving a photo here pushes it to the operator's dashboard within minutes.
  6. Open Projects. Switch to the "By Store" tab. You'll see the 12-month auto-generated schedule per store, grouped by week. Try "Regenerate schedule".
  7. Open Employees. 8 users seeded. Notice "subtype" column on each (cleaner / floater). Try "+ Add Employee" with a 4-digit PIN.
  8. Open Supervisor Visits. 4 completed visits + 4 scheduled upcoming. Click any to see the verification checklist responses, score, and notes.
  9. Open Tickets. 7 operator-submitted tickets across the 4 stores with varied categories and priorities. Click one to see the lifecycle timeline.
S

Supervisor (SaniFilPro field manager)

New in v2. Manages ~5 stores. Email + password, no 2FA.
  1. Sign in at /supervisor/login with the supervisor credentials. You'll see the dashboard with the upcoming-visits panel (4 future visits already on the calendar), open flag counts, and pending photo approvals.
  2. Notice the upcoming-visits panel. New in v2. Lists every scheduled-but-not-yet-completed visit across all 4 stores with date and location. The supervisor knows what's on their plate this week without having to ask.
  3. Schedule a visit. New flow. Click "+ Schedule a visit" → pick a store, pick a date in the future, save. The visit lands on the dashboard as "scheduled" and on the store detail page until you complete it.
  4. Open Stores. 4 stores listed. Click any to see the store detail with completed + scheduled visit history side by side.
  5. Log (or complete) a visit. From a scheduled visit, click "Mark as completed" → fill notes, score (1 to 100), and the verification checklist. Or click "+ Log a visit" to record one in-the-moment without scheduling first.
  6. Fill the verification checklist. Same 68 items as the cleaner sees, grouped by category. When you mark any item "Below Standards" or "Needs Attention", a photo upload is required. Try one to see the camera flow.
  7. The system auto-creates a correction task for the flagged item, linked to your photo. This will surface at the top of the assigned cleaner's next check-in.
  8. Open Compare with Employee Submission (button on visit detail). Side-by-side discrepancy view between what the cleaner reported and what you observed.
  9. Open Photo Review (sidebar). Approve or reject cleaner-uploaded photos directly.
C

Cleaner (daily, one store)

Bilingual EN/ES. Big tap targets. No typing.
  1. Sign in at /employee/login. Select "Daytona Speedway CFA", enter PIN 1234. Try the EN/ES toggle at the top, the entire employee portal is now bilingual (dashboard, checkin, checklist, photos, report-issue, checkout).
  2. Check in. Confirm location + time, tap Confirmar Entrada.
  3. Look at the top of your checklist. If you completed the supervisor walkthrough above and flagged an item, you'll see a yellow correction-task card here with the supervisor's flag photo. Tap "Tap to re-clean" to open the camera and capture an after-photo proving the fix.
  4. Work through the checklist. Daily and Project tabs. 3-state status buttons (green / amber / red) per item. Notes optional.
  5. Take photos. Open the Photos tab, select a zone, tap Open Camera. Notice the camera opens directly with no gallery option. Capture a photo and look at the burned-in bottom strip (zone + date + time).
  6. Try the Before / After toggle at the top of the Photos screen. "Before-shift" photos document what you walked into; "After-cleaning" is the default.
  7. Report an issue. New full form in v2. Tap Report Issue from the dashboard. Pick a category (Equipment, Supplies, Safety, Other), a priority (Routine / Important / Urgent / Before Opening), a zone, write a description, and attach an optional photo. Submits straight to the admin queue.
  8. Check out. See your shift summary + overall status.
F

Floater (project work, ~4 stores)

New in v2. Picks store at check-in, sees only project items for the day.
  1. Sign in at /employee/login. Select "Daytona Speedway CFA", enter PIN 5678. Or try PIN 5804 (Carlos) from Ormond, Port Orange, or DeLand to see the multi-store floater experience.
  2. Notice the Store Picker appears instead of going straight to check-in. Floaters work across multiple stores, so step 1 is always: which store are you at right now?
  3. Tap a store card. System checks you in at that store and routes to the checklist.
  4. Checklist is scoped to project work for today only. Not the 40-item daily checklist. Just the project tasks scheduled for that store today (weekly + biweekly + monthly + long-term, filtered).
  5. Same camera + before/after + correction flows as the cleaner. Same bilingual EN/ES toggle.
  6. Bottom nav shows "Switch Store" after check-in so a floater can rotate to the next store without signing out.
ES

Bilingual EN / ES throughout the employee portal

New in v2. The entire cleaner + floater experience is fully translated.

Toggle ES at the top of any employee page to see the fully translated experience: dashboard, check-in, checklist (all 68 items in both languages), photos, report-issue, checkout. The flag persists across pages, so a Spanish-first cleaner sets it once and never sees English again.

Toggle back to EN at any time. The admin, supervisor, and operator portals are English-only by design (those roles are managed by SaniFilPro and the CFA owner, both of whom we expect to operate in English).

O

Operator (you, the CFA owner)

View-only dashboard for your stores. Magic-link sign in.
  1. Sign in at /operator/login. Enter YOUR email (the one registered with the project's Resend account, soo.r.kwon@gmail.com during testing).
  2. Check your inbox for the magic link. Subject: "Sign in to SaniFilPro". Click the link.
  3. Dashboard loads with your store summary card: last cleaning, monthly completion rate, open concerns, next project, last supervisor visit, invoice status.
  4. Reports. Click into Daily Cleaning Reports, tap any report, see photos grouped by zone (FOH, Restrooms, Kitchen, etc.) with counts and notes.
  5. Photo History. All approved photos for your stores, grouped by date + zone. Before/after pairs appear side by side once cleaners use that feature.
  6. Submit a ticket. Open Concerns, "+ Submit New Concern", pick category + priority (Routine / Important / Urgent / Before Opening), describe + attach photos.
  7. Invoices. Year-to-date spend at top, downloadable PDFs.
Operator magic-link is currently down. The Resend API key needs rotation (~5 min fix in the morning before the demo). Until then, all other 4 roles (admin, supervisor, cleaner, floater) demonstrate the full flow end to end. Once the key is rotated, magic-link delivery resumes and the operator flow above works as written.
Section 4

Three things to focus on when testing

If you only have 15 minutes to look at this, these are the bits that need your eyes most.

1. The supervisor-to-cleaner correction loop

  • Log in as supervisor, file a visit, flag an item, attach a photo
  • Log out, log in as the cleaner (PIN 1234)
  • Confirm the correction task appears at the top of the checklist with the photo
  • Capture an after-photo, complete the correction

2. The floater store-picker + project-scoped checklist

  • Log in as floater (PIN 5678)
  • Confirm the store picker shows BEFORE the dashboard
  • Pick the store, confirm the checklist shows ONLY project items for today
  • Verify the bottom nav has "Switch Store" instead of "Today's Store"

3. Live camera + timestamp burn-in

  • Use a phone (not desktop) for this one to feel the real workflow
  • Log in as cleaner, go to Photos, pick a zone, tap Open Camera
  • Confirm: no gallery picker offered, camera opens directly
  • Capture a photo, verify the burned-in strip at the bottom shows zone name + date + time
Section 5

Known testing-mode caveats

Things that work different in this demo than they will at real launch.

Feedback in. Iterate. Ship to real users.

Take 30 minutes, click through the roles, then reply to the email thread with anything that feels off or missing. We turn around a v2.1 within the same week.