Live map
site + geofence
on duty (on-site)
on duty (off-site)
Recent activity
Loading…
Sites at a glance
| Site | On duty | Parking | Needs review | |
|---|---|---|---|---|
| Loading… | ||||
Needs attention — panic alerts, expiring credentials, today's no-shows & late, overdue invoices · live
Loading…
On duty right now
| Guard | Licence | Site | Signed in | Verified |
|---|---|---|---|---|
| Loading… | ||||
Check-in log (live, newest first)
| When | Guard | Site | Action | Location |
|---|---|---|---|---|
| Loading… | ||||
New / test a request —
Fill this in the way a resident would. The decision updates live as you type. Nothing is saved until you press Save request — so you can also use it just to test a PIN.
Decision preview
—
Enter a unit & PIN to see the decision.
Requests (live, newest first)
| When | Plate | Unit | Vehicle | Dates | Status | |
|---|---|---|---|---|---|---|
| Loading… | ||||||
Approved passes
| Plate | Unit | Vehicle | Dates | Today |
|---|---|---|---|---|
| Loading… | ||||
Units & PINs (private — never shown to residents or guards)
| Unit | PIN | This month | |
|---|---|---|---|
| No units yet. | |||
Parking tickets (this site)
Log tickets issued to vehicles. This is the record the guard plate-lookup will read later; managed here from the office.
| Plate | Date | Notes | Report | |
|---|---|---|---|---|
| No tickets logged. | ||||
Parking settings
Emails send FROM info@phoenixprotection.ca once the parking Cloud Function is deployed. Until then, decisions are made here in the console.
Incident reports (newest first)
| When | Site | Guard | Location | Summary | Flags | Report |
|---|---|---|---|---|---|---|
| Loading… | ||||||
Add a guard
The guard signs in with this licence + temporary PIN and is forced to set their own PIN on first login.
Guard profiles — tap a guard for their full profile (contact, pay, sites, credentials, documents)
Loading…
Log an entry — gear issued or returned, by guard licence
Entries (newest first)
| When | Licence | Action | Vest | Walkie | Other | Notes | |
|---|---|---|---|---|---|---|---|
| No entries yet. | |||||||
Gear by guard — computed from the log (net issued − returned)
| Guard | Currently holding | Items |
|---|---|---|
| Nothing signed out. | ||
Register a new item — creates the asset + prints a QR tag to stick on it
Registered items — your equipment stock
| Asset tag | Type | Serial | Size | Condition | Status | |
|---|---|---|---|---|---|---|
| No items registered yet. | ||||||
Add a site
Tip: get exact coordinates by right-clicking the spot in Google Maps → the numbers at the top are lat, lng.
Sites
| Site | Lat | Lng | Radius | Active | |
|---|---|---|---|---|---|
| Loading… | |||||
Site details — client, billing, address & post orders
Shift log — every shift with its attendance. Use the calendar above to add past shifts or correct attendance.
Loading…
Payroll hours — paired from sign-in / sign-out
Loading…
Checkpoints — the stops a guard scans on a tour
| # | Checkpoint | Note | |
|---|---|---|---|
| Pick a site. | |||
Patrol tours (newest first — filed from the guard app)
| When | Site | Guard | Checkpoints | Duration | Status |
|---|---|---|---|---|---|
| No patrol tours yet. Guards file these from the app once checkpoints are set. | |||||
Add a client
Clients
Loading…
Add an invoice — follow-up at 30 days · late + $375 at 45 days
Invoices
| Invoice | Client | Issued | Amount | Status | Late fee | Total due | Paid | |
|---|---|---|---|---|---|---|---|---|
| Loading… | ||||||||
Document vault — licences, certs, contracts (stored as links + expiry)
Files stay in your Google Drive; this tracks a link to each one plus its type and expiry, so nothing new needs hosting and it fits the in-house/free setup. Paste a Drive share link (or any URL).
Documents
| Title | Belongs to | Kind | Expiry | Link | |
|---|---|---|---|---|---|
| No documents yet. | |||||
Reports & exports
Each export is a CSV over the date range above (where dates apply). Hours come from paired sign-ins; billable uses each site's client bill rate.
At a glance (current range)
Send a notice to guards
Guards see notices in-app for all-staff or for a site they're assigned to. (Push/SMS would need the Cloud Functions layer — this posts to the in-app feed now.)
Posted notices
| When | Audience | Title | Message | |
|---|---|---|---|---|
| No notices yet. | ||||
Grant console access — the person signs up first, then you grant their role here
Supervisors see Overview, Field, Schedule, Guards, Inventory & Parking — but not Clients, Invoices, Payroll, pay rates or bill rates. They must sign out & back in for a change to take effect.
Managers & roles
| Name | Email / UID | Access | Sites | |
|---|---|---|---|---|
| Loading… | ||||
Access is enforced by custom claims (Admin SDK) and the security rules — hiding a tab also blocks the underlying data. Only an owner can change roles.
Audit log (office actions — newest first)
| When | Who | Action | Detail |
|---|---|---|---|
| No entries yet. | |||
Plate watchlist
Flagged vehicles. When a guard looks up one of these plates, the app warns them and they can log a sighting.
| Plate | Vehicle | Reason | Flagged by | |
|---|---|---|---|---|
| No flagged plates. | ||||
Recent sightings
| When | Plate | Guard | Site | Reason |
|---|---|---|---|---|
| No sightings yet. | ||||
Stay-awake checks
Randomized overnight awake-checks for lone workers. Guards move between levels automatically: miss a check → higher level (checked more often); pass in a row → lower level (checked less). Set the timing bands for each level below.
| Level | Name | Min gap (min) | Max gap (min) |
|---|
Panic escalation (SOS chain)
When a guard hits SOS: right away the office and all managers get a push + email → +60 s if nobody has acknowledged it, on-duty guards who are logged into the app but not signed into a site get a push (with how far away they are) → +2 min the on-call supervisor below gets a push + email. Acknowledging the alert stops the chain.
Guards - current level
Higher level = checked more often. Use +/- to override a guard's level.
| Guard | Licence | Level | Streak | Last | |
|---|---|---|---|---|---|
| No guard activity yet. | |||||