DCFD Communications Unit logo
District of Columbia Fire Department • Communications

Deployable Asset Tracker

Authorized personnel only. Sign in to continue.

District of Columbia Fire Department Communications
Map Live View Unit Tallies BMT Dashboard
Audit Trail
v30.2.1
Connecting…
Viewer mode
Command overview

Operations Overview

0 assets deployed Show detailsHide details

Current Inventory

All equipment
TypeTotalAvailableDeployed

Active Unit Deployments

0 active

Most Recently Deployed

Latest 5

Longest Outstanding

Oldest 5

Recent Activity

Open Audit Trail
Total Radios0
Available0
Deployed0
Connecting to Firebase…
Live status

All Radios

Asset

Asset

Surge Phone Optional

Only currently available Surge phones are listed.

Additional Equipment

Return entire unit deployment

Return all assets from this Unit Deployment at the same time.

Return paired radio + phone

These assets were signed out together and can be returned together.

Multi-asset deployment

Unit Deployment

Deploy available assets directly to a unit instead of an individual person. Select any combination of Radios, Phones, MDTs, and EPCRs.

0 assets selected
Radios0 available
Phones0 available
MDTs0 available
EPCRs0 available
Radio Equipment

These accessories will be assigned to every selected radio.

Batch deployment

Sign Out Multiple

0 selected
Additional Equipment

Batch return

Sign In Multiple

Select deployed assets to return across Radios, Phones, MDTs, and EPCRs. Radio accessory assignments are shown below and will be cleared when radios are signed in.

0 selected

Inventory

Add Asset

Radio Inventory

Add Radio Boxes

Select one or more boxes. Missing radios from the selected ranges will be added as Available. Existing radios are left unchanged.

0 boxes selected

Radio Inventory

Remove Radio Boxes

Editor/Admin action: This permanently removes the selected box radios. Radios currently deployed are included.
0 boxes selected

Inventory

Batch Add Assets

Inventory

Batch Delete

Admin only. Select assets to permanently remove from Firestore.

Administration

User Management

Create User

Viewer: view only. Editor: sign assets in/out and add inventory. Admin: all editor permissions plus deletes and user management.

Existing Users

Admins can change roles or permanently remove another user's website access. Your own signed-in account cannot be removed here.

Loading users…

Asset History

Asset

Asset 0 records

Reports & exports

Reports / Export Center

Generate live inventory reports or historical reports from the Audit Trail. Historical exports load up to the 5,000 most recent audit records and use Eastern Time for date filtering.

Generated report

Report

0 rows

Unit Operations

Deployed Units

Active Unit Deployments grouped by the deployment they were issued with. Radio accessories are shown with each radio.

0 active units

DCFD Deployable Asset Tracker

Changelog

v30.2.1Admin User Removal
  • Added an Admin-only Remove User action to User Management.
  • Removal deletes the user's Firebase Authentication account and Firestore user-role record, revokes refresh tokens, and signs an already-open web session out when its authorization record disappears.
  • Admins cannot remove their own currently signed-in account, and the backend prevents removal or demotion of the last remaining Admin.
  • Added User / Remove User entries to the Audit Trail so account removals are attributable.
  • Tightened asset and activity reads so authenticated web users must still have an authorized user record; the iPhone app's anonymous-auth read path remains supported.
  • This release requires Firestore Rules, Cloud Functions, and Hosting deployment; the one-click updater handles all three automatically.
v30.2.0Reports / Export Center
  • Added a Reports / Export Center available from the main action row.
  • Added Current Deployed Inventory, Current Inventory, Active Unit Deployments, Asset History, Deployment History, Equipment Utilization, and Audit Trail reports.
  • Added asset-type and Eastern-Time date filters where applicable, with historical reports loading up to the 5,000 most recent Audit Trail records on demand.
  • Added downloadable CSV exports plus a print-friendly report view that can be printed or saved as PDF from the browser.
  • Out-of-Service reporting is intentionally reserved until an Out-of-Service status is added to the asset model.
  • No Firestore schema, Rules, Cloud Functions, or authentication changes are required.
v30.1.2Header Status + Expanded Automated Coverage
  • Moved the version, Firestore connection status, and signed-in role/user badges into a compact status row directly below the main Audit Trail / Users / Changelog / theme / Sign Out action row.
  • Removed those badges from the Live Status heading so the asset workspace stays cleaner and the connection/user state is visible near the primary navigation.
  • Added comprehensive automated UI-contract coverage that verifies every static DOM dependency referenced by the main tracker and Audit Trail JavaScript, catches duplicate IDs, validates release/cache versions, and protects the new header-status placement.
  • Added additional core edge-case regression coverage for inventory, normalization, identity aliases, timestamps, deployment helpers, validation, and batch parsing.
  • No Firestore data, Rules, Cloud Functions, authentication, or collection-schema changes.
v30.1.1Collapsible Operations Overview
  • Simplified the main dashboard by collapsing the new Operations Overview by default.
  • Kept the existing asset-type overview cards visible while moving Current Inventory, Active Unit Deployments, Most Recently Deployed, Longest Outstanding, and Recent Activity behind one expandable Operations Overview control.
  • Preserved the full v30.1.0 Operations Overview and Asset History functionality without changing Firestore data, Rules, or Cloud Functions.
v30.1.0Operations Overview + Asset History
  • Added a command-level Operations Overview spanning Radios, Phones, MDTs, and EPCRs.
  • Added live inventory totals, active Unit Deployments, recently deployed assets, longest-outstanding assets, and recent activity.
  • Added a History action to every asset card with a per-asset timeline sourced from the existing audit log.
  • Asset History shows status transitions, person or unit, assignment, comments, editor, radio accessories, and event time when available.
  • Uses the existing Firestore collections and audit records; no data migration, Rules deployment, or Cloud Functions deployment is required.
v30.0.0Stabilization Baseline + Semantic Versioning
  • Started the permanent Major.Minor.Patch versioning system: major releases are stabilization baselines, minor releases add capabilities, and patch releases fix or refine existing behavior.
  • Completed a full web/backend contract audit covering Firestore collections, roles, Cloud Functions exports, deployment IDs, audit records, iPhone compatibility aliases, and hosting boundaries.
  • Fixed a latent global Sign In Multiple return bug: cross-type results now resolve the selected Radio, Phone, MDT, or EPCR from the full inventory when the return is actually submitted.
  • Global batch-return selections now use type-qualified keys so similarly named or keyed assets in different collections cannot collide.
  • Added automated configuration and backend audit commands and repaired the previously incomplete npm verify workflow.
  • Replaced the version-specific preflight workflow with a reusable release preflight while retaining the old v28 command as a compatibility wrapper.
  • Documented the v30 architecture, release process, semantic-versioning rules, backend audit findings, and known intentional security boundary.
  • Preserved the transitional iPhone write compatibility path; no authentication/security migration was mixed into this stabilization release.
  • No Firestore data migration, Firestore Rules deployment, or Cloud Functions deployment is required.
  • Preserved the complete historical changelog.
v29.2.2Batch Return Window Runtime Fix
  • Fixed a JavaScript runtime error that prevented Sign In Multiple from opening after the global equipment search change.
  • Global Sign In Multiple continues to include deployed Radios, Phones, MDTs, and EPCRs regardless of the selected main equipment tab.
  • Corrected equipment-type sorting to use the keys of the ASSET_TYPES configuration object.
  • Added regression coverage for this exact runtime error.
  • No Firestore Rules, Cloud Functions, authentication, or collection-schema changes.
v29.2.1Global Batch Return Search Fix
  • Sign In Multiple now loads deployed assets from all equipment types instead of only the currently selected equipment tab.
  • Searching from Radios can now find deployed Phones, MDTs, and EPCRs, and vice versa.
  • Search continues to match asset, Unit, Full Name, and Assignment.
  • Select All continues to affect only visible filtered results.
  • No Firestore Rules, Cloud Functions, authentication, or collection-schema changes.
v29.2Editable Unit Deployments + Batch Return Search
  • Added Edit Deployment to active Unit Deployments in the Deployed Units view.
  • Editors/Admins can add available Radios, Phones, MDTs, or EPCRs to the same existing Unit Deployment without creating a new deployment ID.
  • Editors/Admins can uncheck currently deployed assets to return only those assets while the rest of the Unit Deployment stays active.
  • Unit Name, optional Full Name, and Comments can be updated across assets that remain in the Unit Deployment.
  • New radios added during an edit receive the selected radio accessories; radios already deployed keep their existing accessory assignments.
  • Edit mode shows current assets, additions, and returns before saving.
  • Added search to Sign In Multiple, including asset, unit, person, and assignment text.
  • Select All in Sign In Multiple selects only the currently visible search results.
  • Audit Trail records Unit Deployment Edit, Unit Asset Added, and Unit Asset Removed actions.
  • No Firestore Rules, Cloud Functions, iPhone authentication, or collection-schema changes.
  • Preserved the complete changelog from all prior releases.
v29.1Paired Asset Return
  • Added Sign In Radio + Phone for radios and Surge phones that were originally signed out together.
  • The paired-return option is available from either member of the pair while both assets are still deployed together.
  • Pair matching requires the same deployment ID plus reciprocal radio/phone links, preventing unrelated assets from being returned accidentally.
  • Individual Sign In remains available when only one asset should be returned.
  • Paired returns use one atomic multi-asset Firestore write and clear deployment/link metadata on both assets.
  • Audit Trail records a Paired Sign In entry for each returned asset and preserves the prior deployment information for history.
  • No Firestore Rules, Cloud Functions, iPhone authentication, or asset-schema changes.
  • Preserved the complete changelog from all prior releases.
v29Unit Operations
  • Added a Deployed Units view showing every active Unit Deployment and the Radios, Phones, MDTs, and EPCRs assigned with it.
  • Radio entries in Deployed Units show the additional equipment deployed with each radio.
  • Deployed Units shows the Unit Name, optional Full Name, active asset count, equipment-type totals, and latest deployment update time.
  • Editors and Admins can Sign In Entire Unit directly from the Deployed Units view.
  • Individual Sign In now also offers Sign In Entire Unit when multiple assets from the same Unit Deployment remain deployed.
  • Entire-unit returns use the shared deployment ID, so unrelated deployments with the same Unit Name are never returned accidentally.
  • Viewers can inspect Deployed Units but cannot perform returns.
  • Audit Trail records each returned asset as Unit Sign In and includes Unit Deployment and Unit Sign In filters.
  • Legacy unit deployments without deployment IDs remain visible but must be signed in individually.
  • No Firestore Rules, Cloud Functions, or iPhone authentication changes.
  • Preserved the complete changelog from all prior releases.
v28.3Unit Deployment Optional Name
  • Added an optional Full Name field to Unit Deployment.
  • When Unit Name and Full Name are both entered, selected assets store and display both values.
  • Unit Name remains required and Full Name remains optional.
  • Kept the Unit Deployment window compact by placing Unit Name and Full Name side-by-side on larger screens.
  • No Firestore Rules, Cloud Functions, iPhone authentication, or deployment-ID changes.
  • Preserved the complete changelog from all prior releases.
v28.2iPhone Anonymous Auth Compatibility
  • Restored iPhone-to-Firestore writes for the current mobile app using Firebase Anonymous Authentication.
  • Preserved the existing transitional unauthenticated mobile write path for compatibility.
  • Asset deletes remain Admin-only, and protected reads still require an authenticated Firebase session.
  • No Cloud Functions, asset schema, deployment logic, or user-interface behavior changes.
  • Preserved the complete changelog from all prior releases.
v28.1Responsive Management Toolbar
  • Fixed management controls overflowing past the right edge at common laptop/browser widths.
  • Management buttons now move to a clean full-width row when the toolbar cannot safely fit three columns.
  • Preserved the existing mobile arrangement and all v28 deployment, audit, compatibility, and data logic.
  • No Firestore Rules, Cloud Functions, schema, or deployment-logic changes.
  • Preserved the complete changelog from all prior releases.
v28Codebase Refactor & Stabilization
  • Refactored deployment, validation, Firestore write, payload, and audit logic into focused internal modules without intentionally changing the operator interface.
  • Added deployment IDs so assets issued together can be traced as one deployment.
  • Upgraded new Audit Trail records with consistent before/after state snapshots while preserving legacy display fields.
  • Strengthened iPhone/web compatibility and UI-freeze regression tests.
  • Added Firestore data-contract, architecture, backup/release, compatibility, and security-hardening documentation.
  • Added local backup and v28 preflight tools for safer future releases.
  • Preserved the complete changelog from all prior releases.
v27.6Image Consistency + Unit/Name Display
  • Corrected the Audit Trail header image to use the same full-width Communications banner as the main tracker.
  • Replaced the old login image with the true transparent Communications Unit logo on both login pages.
  • Asset cards now show both Unit and Name when both values are present.
  • Unit-deployed assets can retain and edit an optional person name and phone number alongside the Unit Name.
  • Preserved the complete changelog from all prior releases.
v27.5Phone Formatting + Audit Header Fix
  • Phone Number fields now format automatically as (###) ###-####.
  • Phone Number remains optional, but any entered number must contain exactly 10 digits.
  • Existing stored phone numbers are formatted consistently when displayed.
  • Corrected the Audit Trail header so external dashboard links stay on the navigation row and Asset Tracker, Light/Dark, and Sign Out appear on the action row beneath it.
  • Preserved the complete changelog from all prior releases.
v27.4Individual Asset Editing
  • Restored an Edit button on individual asset cards while keeping Sign Out and Sign In.
  • Edit changes asset information without changing the current Available or Deployed status.
  • Person deployments can edit name, phone number, assignment, comments, and deployed radio equipment.
  • Unit deployments can edit Unit Name, assignment, comments, and deployed radio equipment.
  • Every saved edit receives its own Audit Trail entry.
  • Preserved the complete changelog from all prior releases.
v27.3Unit Deployment Search Fix
  • Fixed Unit Deployment equipment searches so matching results now actually filter on screen.
  • Search visibility now uses explicit display control instead of relying only on the HTML hidden attribute.
  • Existing selections remain checked when filtered out and return when the search is cleared.
  • Preserved the complete changelog from all prior releases.
v27.2Unit Deployment Equipment Search
  • Added separate search boxes for Radios, Phones, MDTs, and EPCRs in Unit Deployment.
  • Each equipment list filters independently as you type.
  • Filtering does not clear assets that are already selected.
  • Available and selected counts remain based on the full live inventory, not only visible search results.
  • Preserved the complete changelog from all prior releases.
v27.1Unit Deployment Window Fit
  • Fixed the Unit Deployment window so it stays completely inside the browser viewport.
  • Made the dialog use the available screen width instead of overflowing from the narrower default dialog size.
  • Added internal scrolling and responsive asset-list heights so the top and bottom controls remain reachable on shorter screens.
  • Improved the two-column layout so Select All and Clear controls no longer get clipped.
  • Preserved the complete changelog from all prior releases.
v27Unit Deployment
  • Added a Unit Deployment workflow for Editors and Admins.
  • Assets can now be deployed to a unit instead of an individual person.
  • Unit Deployment supports selecting any combination of Radios, Phones, MDTs, and EPCRs in one operation.
  • Only currently available assets are selectable.
  • Selected radio accessories can be assigned across all radios in the deployment.
  • Every selected asset receives its own Unit Deployment Audit Trail entry and can still be signed in individually or by asset type.
  • Preserved the complete changelog from all prior releases.
v26.6Radio + Surge Phone Sign Out
  • Added an optional Surge Phone selector to the individual radio Sign Out screen.
  • The selector lists only currently available Surge phones.
  • When selected, the radio and Surge phone are deployed together to the same person and assignment.
  • Both assets are written together and each receives its own Audit Trail Sign Out entry.
  • Preserved the complete changelog from all prior releases.
v26.5Full-Width Communications Header
  • Made the wide District of Columbia Fire Department Communications artwork the entire top header.
  • Moved dashboard navigation and action controls underneath the banner so the artwork gets the full width.
  • Applied the full-width banner to both the main tracker and Audit Trail page.
  • Preserved the complete changelog from all prior releases.
v26.4Transparent Header Logo
  • Removed the baked-in checkerboard/light background from the Communications Unit header logo.
  • Header logos now use a true transparent PNG so they blend correctly in Dark and Light mode.
  • Preserved the original logo artwork and the complete changelog.
v26.3Header Action Row Reorder
  • Moved Audit Trail from the top navigation row to the action row underneath.
  • Reordered the second row left-to-right as Audit Trail, Users, Changelog, Light/Dark, then Sign Out.
  • Kept Map Live View, Unit Tallies, and BMT Dashboard on the top row.
  • Preserved the complete changelog from all prior releases.
v26.2Department Name Update
  • Updated site-wide department branding to District of Columbia Fire Department.
  • Updated both the main asset tracker and Audit Trail page.
  • Preserved the complete changelog from all prior releases.
v26.1Separate Audit Trail Page
  • Moved the Audit Trail off the main asset dashboard to a dedicated authenticated page.
  • Added Audit Trail to the main navigation.
  • Added search plus Action and Asset Type filters to the Audit Trail page.
  • Started decimal versioning for smaller updates while preserving the complete changelog.
v26Editor Remove Box Access
  • Made Remove Box available to both Editors and Admins.
  • Added a dedicated secured backend function that limits Editor removal to the configured radio box ranges.
  • Kept ordinary asset deletion and Batch Delete restricted to Admins.
  • Preserved the complete changelog from all prior releases.
v25Individual Sign In / Sign Out Actions
  • Replaced individual asset Edit and Delete buttons with operational Sign Out and Sign In actions.
  • Available assets display Sign Out; deployed assets display Sign In.
  • Individual deletion was removed from asset cards; admin batch and box removal tools remain available.
  • Preserved the complete changelog from all prior releases.
v24Box A + Box B Assignments
  • Assigned NCR DC 001–020 to Box A in radio asset details.
  • Assigned NCR DC 021–040 to Box B in radio asset details.
  • Preserved the complete changelog from all prior releases.
v23Radio Box Details + Full Changelog
  • Radio asset details now show the assigned deployment box when applicable.
  • Box assignment is read from Firestore when stored and otherwise derived from the NCR DC radio number.
  • Restored the complete in-app changelog so prior releases remain visible.
v22Login Required
  • Added a dedicated Email/Password sign-in page as the first screen.
  • Dashboard content stays hidden until Firebase Authentication succeeds.
  • Firestore listeners start only after authentication.
  • Signing out clears protected data and returns to the login screen.
  • Tracker collection reads now require authentication.
v21Operational UI Refresh
  • Redesigned the viewer as a cleaner internal operations dashboard.
  • Removed glass/blur styling and animated navigation effects.
  • Reduced shadows, corner radii, motion, and visual noise.
  • Made asset cards denser and easier to scan.
v20Radio Boxes + Admin Fixes
  • Added the DCFD Communications Unit logo.
  • Dark mode became the default and the selected theme is remembered.
  • Added Add Box for Boxes C, D, E, F, G, H, I, J, K, L, N, P, R, and S.
  • Added Admin-only Remove Box with typed confirmation.
  • Improved user creation and role-management errors.
v19Live Inventory Merge Fix
  • Fixed live Firestore snapshots replacing the built-in inventory with cloud-only records.
  • Kept the default radios and phones visible while overlaying live cloud state.
v18Shared iPhone/Web Inventory Sync
  • Web inventory now mirrors the iPhone app defaults: NCR DC 001–040 and Surge 1–100.
  • Firestore records overlay built-in inventory so live status remains authoritative.
  • Web writes use iPhone-compatible identity fields.
  • Added support for the iPhone transactions collection.
v17App Radio Identity Fix
  • Fixed app-created UUID radio records displaying UUIDs instead of NCR DC radio names.
  • Improved radio alias normalization between app and web records.
v16Multi-Asset + Permissions
  • Added Radios, Phones, MDTs, and EPCRs.
  • Added batch add, batch delete, multiple sign-out, and multiple sign-in.
  • Added Viewer, Editor, and Admin permission levels.
  • Added admin user creation and role management.
  • Made phone number optional.
  • Expanded radio additional-equipment tracking.
v15Automated Regression Tests
  • Added automated regression tests.
v14Navigation Refresh
  • Refreshed navigation, styling, and theme interactions.
v13Dashboard Navigation Header
  • Added Map Live View, Unit Tallies, and BMT Dashboard links.
v12Additional Equipment Tracking
  • Added radio accessory selections and deployed-equipment display.