For Charles Soto · Daytona Beach
v2 is now live. Every feature from the build plan is deployed against a real database. Demo accounts seeded for all 5 roles. Open the v2 demo + walkthrough →

Scroll through every portal. Confirm what you want built.

Based on your feedback (UI on phones looks right, checklist structure especially clear), we built visual mockups of all three portals: employee (10 phone screens), operator (11 phone screens), admin (13 desktop screens). Scroll down to preview each one inline, or open any full mockup in its own tab to scroll through all screens.

Each portal section below has an embedded preview plus an "Open full mockup" button. Live login screens (real app, pending demo accounts) are linked separately.

Employee Portal · Cleaning Staff

What your cleaners see on shift

Mobile first, bilingual EN / ES, designed for big tap targets and minimal typing. Cleaners check in, mark off the daily checklist by zone, take live camera photos with timestamp burned in, then check out.

Login + daily flow

Cleaning staff sign in with their store name + 4 digit PIN. No email needed.

  • EN / ES toggle on every screen
  • Check in, checklist by zone, photo upload, check out
  • Live camera capture only (no gallery picker)
  • Zone name + timestamp burned into every photo
  • Offline photo queue (drains when back online)
employee.html · 10 phone-frame screens (login, check-in, daily + project checklists, photo capture, check-out) Open full screen
Operator Portal · You (the CFA Owner)

Your dashboard for every store you run

Email + magic link sign in (no password to forget). One scrollable view per store: last cleaning, photo history grouped by zone, supervisor notes, tickets, upcoming project work, invoices and year to date spend.

Quiet visibility, no chasing

Open a store and see if everything's clean. If something's flagged, you'll know exactly which zone, which day, and have the photos to back it up.

  • Dashboard with monthly completion rate
  • Photo history grouped by zone (FOH, Restrooms, Kitchen, etc.)
  • Open a ticket without picking up the phone
  • Project work calendar (biweekly, monthly, quarterly)
  • Invoice PDFs + year to date spend
operator.html · 11 phone-frame screens (dashboard, daily reports, photo history, project calendar, tickets, supervisor notes, invoices, YTD spend) Open full screen
Admin Portal · SaniFilPro Side

Where Charles Soto's team manages the work

Desktop first (it's a back office tool). Sign in with email + password + 2 factor authentication. Approve cleaner photos, review daily reports, handle tickets, manage stores and employees, log supervisor visits, upload invoices.

Login + 2 factor

Highest security tier. Required because admin can see and modify everything across all operators and stores.

  • Email + password + TOTP code
  • Side nav with live badge counts (open tickets, pending photo approvals)
  • Photo review queue (approve / reject before operators see)
  • Add employees with 4 digit PINs in the same flow
admin-portal.html · 13 desktop screens (all stores, live check-ins, photo review, reports, tickets, project cadence, invoices, employees, supervisor visits, analytics) Open full screen
Onboarding · Intake

Discovery form for new operators

The intake we send to operators before provisioning their account. Captures store list, current cleaning vendor situation, pain points, project cadence preferences.

discovery.html · Operator intake form Open full screen
Quick access

Every screen, one tap away

Mockups are the static design files (no login required). Live links open the real app login screens (demo accounts being provisioned).

Design Decisions

Confirm these before we go further

We made a call on each of these based on what you told us. Tell us if any of them need to flip the other way.

1

Camera capture

Confirmed
Confirmed: Live capture only, no gallery picker, no fallback. Zone name + timestamp are burned into every photo, just like the Timestamp Camera Basic app you mentioned. If the camera lens is dirty or permission is blocked, the cleaner gets an error and must resolve it (no workaround).
2

Project work scheduling

Our call: When admin adds a new store, admin picks the assigned employee first, then the system auto generates the next 12 months of project schedule (biweekly Mon to Wed, monthly first Thursday, long term cleanings staggered). System warns when an employee already has 4 stores.

Confirm? Should the system also suggest an employee based on existing workload, or just let admin pick freely with the warning?

3

Supervisor checklist

Our call: Supervisors fill out the same 40 daily + 28 project items as employees during site visits. Admin gets a side-by-side comparison view (employee response vs supervisor response, discrepancies highlighted).

Confirm? Same list, or do you want a shorter "supervisor spot check" list (e.g., only the 10 most-critical items)?

4

Photo approval flow

Our call: Photos go to admin first (pending review). Operators see them only after admin approves. Rejected photos are soft deleted with a reason.

Confirm? Or should operators see photos in real time (with admin still able to flag issues retroactively)?

5

Bilingual EN/ES toggle

Our call: Toggle lives on the employee portal only. Operator and admin portals are English only for v1.

Confirm? Or should operators also see Spanish (if some of your fellow operators prefer it)?

6

Employee capacity cap

Our call: System shows a yellow warning when assigning a 5th store to one employee, but still lets you save. Soft block.

Confirm? Or hard block at 4 stores (admin must reassign or hire before adding more)?

7

Project work days of week

Our call: Biweekly project tasks happen Mon, Tue, Wed (split across three days). Monthly deep clean happens first Thursday of each month. Long term (quarterly / 4 month / 6 month / yearly) also anchored to first Thursday.

Confirm? Or do certain stores need different days (e.g., one operator prefers Sundays before close)?

8

Issue / ticket routing

Our call: Employee reports an issue from their phone, it goes straight to the SaniFilPro admin queue. Admin triages and forwards to the operator if action is needed on the store side.

Confirm? Or should the operator see employee issues live (no admin gatekeeping)?

9

Invoice access

Our call: Operators see PDF invoices for their store only, year to date spend on the dashboard. Admins upload and manage all invoices.

Confirm? Or operator self serve (operator can mark paid, download history) vs. SaniFilPro admin handling all of it?

10

Offline photo upload

Our call: When the cleaner is in a walk in cooler with no signal, photos are queued locally in the browser and automatically uploaded when the phone comes back online.

Confirm? Should there also be a manual "retry uploads now" button, or is automatic fine?

Got feedback? Send it back.

Reply to the email thread, or click below. We'll incorporate your answers before the next round of build.