Skip to content

Resgrid/IC

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Resgrid IC

Resgrid IC is a tablet and desktop optimized digital incident command board — establish command on an incident, build your ICS structure, assign and track resources, and keep everyone accountable in real time.

📔 Table of Contents

🌟 About the Project

Resgrid IC is the Incident Command application for the Resgrid first responder and emergency operations platform. It gives an Incident Commander a live, server-backed command board for one or many simultaneous incidents — from a single structure fire to a multi-agency event — synchronized in real time with the Resgrid Core backend and the Resgrid Responder and Unit apps.

It is built for the way command actually works in the field: tablet-first layouts with a dedicated landscape board, offline-first operation with automatic replay when connectivity returns, and one-tap actions for the things that matter under pressure.

🎯 Features

Command lifecycle

  • Establish command on any active call, optionally seeded from department command definition templates
  • Run multiple incident command boards at once and switch between them
  • Transfer command to another user (everyone on the incident is notified), close command when the incident ends
  • Command details every resource sees: estimated end time and important information (hazards, staging notes, access instructions)

ICS structure (lanes)

  • Free-form lanes — Divisions, Groups, Branches, Sectors, Strike Teams, Task Forces, Staging, Unified Command
  • Per-lane identification colors that carry through to map markers
  • Optional primary and secondary lane leads: a Resgrid user or an external contact with name/phone/email
  • Lanes can be tied to tactical objectives (primary/secondary) and to incident needs
  • Lane requirements: min/max units, riding personnel counts, and time-in-role rotation windows — advisory warnings or hard enforcement per lane
  • Tap-to-move resources between lanes, with conflict prompts and early-rotation warnings

Resources

  • Assign department units and personnel, mutual-aid resources, and ad-hoc (external/volunteer) units and personnel
  • Work-time indicators and rotation-due warnings per assignment
  • Resgrid users and units receive notifications (push/email/SMS per their preferences) when assigned, moved between lanes, or released

Objectives and needs

  • Tactical objectives and benchmarks with type (general/benchmark/safety), progress tracking (0-100%), and completion
  • Command-level needs (resources, logistics, medical, equipment, staffing) tracked to fulfillment with quantities and status

Accountability and safety

  • Personnel accountability (PAR) computed from check-in timers, with green/warning/critical states
  • Scene, benchmark, and custom incident timers with live countdowns
  • Auto-logged, timestamped incident timeline (ICS-201 style) for every command action

ICS roles

  • Assign NIMS/ICS functional roles (IC, Section Chiefs, Safety Officer, Division Supervisors, and more)
  • Role-based incident capabilities enforced by the server

Communications

  • On-demand tactical voice channels (PTT) with transmission logging
  • Push notifications with iOS critical alerts support

Mapping

  • Mapbox-powered incident map with unit AVL (automatic vehicle location) and live personnel positions
  • Map annotations synced across devices

Offline-first

  • Full command board operation while disconnected — every action queues locally and replays to the server on reconnect
  • Delta sync keeps multiple command devices converged on the same board state

📦 Deployment Options

📱 Mobile Applications

  • Android: APK and AAB builds for Google Play Store and direct distribution
  • iOS: IPA builds for App Store and enterprise distribution
  • Download from GitHub Releases

🌐 Web Application

  • Static web build that can be hosted on any web server or CDN
  • Fully responsive, optimized for tablets and desktops
  • See Build Quick Reference for building

🐳 Docker Container

  • Multi-architecture Docker images (amd64, arm64)
  • All configuration via environment variables at runtime
  • Suitable for Kubernetes, Docker Compose, or standalone deployment
  • Pull from Docker Hub:
    docker pull resgridllc/ic:latest
    docker run -p 8080:80 -e IC_BASE_API_URL="https://api.example.com" resgridllc/ic:latest
  • See Docker Deployment Guide for details

🖥️ Desktop Applications (Electron)

  • Windows: Portable exe and NSIS installer
  • macOS: DMG and ZIP (Universal: x64 + arm64)
  • Linux: AppImage, deb, and rpm packages
  • Download from GitHub Releases

For detailed deployment instructions, see:

🔑 Environment Variables

Configuration lives in .env.{environment} files at the project root (development, staging, internal, production), validated by env.js. The main variables:

Variable Purpose
IC_BASE_API_URL Resgrid Core API base URL
IC_API_VERSION API version (v4)
IC_RESGRID_API_URL Resgrid platform URL
IC_CHANNEL_HUB_NAME SignalR eventing hub name
IC_REALTIME_GEO_HUB_NAME SignalR geolocation hub name
IC_APP_KEY Application key
IC_MAPBOX_PUBKEY Mapbox public key for mapping
IC_LOGGING_KEY Logging key
IC_COUNTLY_APP_KEY / IC_COUNTLY_SERVER_URL Analytics (optional)
IC_SENTRY_DSN Error reporting (optional)

🧰 Getting Started

Resgrid IC is a React Native app built with Expo (SDK 54, prebuild), TypeScript, Expo Router, Zustand, and NativeWind. Package manager is yarn (v1).

⚙️ Installation

Clone the project

git clone https://github.com/Resgrid/IC.git
cd IC

Install dependencies

yarn install

🏃 Run Locally

Start the Metro dev server

yarn start

Run on a platform

yarn ios        # iOS device/simulator
yarn android    # Android device/emulator
yarn web        # Web browser
yarn electron:dev  # Desktop (Electron)

Native builds require a google-services.json (Android) at the project root.

🧪 Quality Checks

yarn check-all  # ESLint + TypeScript + translation lint
yarn test       # Jest test suite

🔨 Building

yarn build:production:ios      # EAS build — iOS
yarn build:production:android  # EAS build — Android
yarn web:build                 # Static web export
yarn electron:build            # Desktop builds (mac/win/linux variants available)

🧭 Roadmap

  • Server-backed multi-incident command boards
  • Offline-first operation with sync replay
  • Objectives, needs, and lane leads
  • Tactical voice (PTT) channels
  • Map-side resource drag onto lanes
  • Exportable PDF incident summary
  • Vertical / high-rise incident mode

❔ FAQ

  • Can I deploy the IC App to Google Play or the Apple App Store?
  • You can, but you cannot include "Resgrid" in the name of your application or the store listing.
  • What do I need to change to deploy the IC App to the stores?
  • Search for all occurrences of com.resgrid.command and replace it with your app id, and replace the icons, logos, and splash screen images with your own.

⚠️ License

Distributed under the no License. See LICENSE.txt for more information.

About

Resgrid IC App which is a mobile application Incident Commanders (or Call Leads) to run an ICS incident. Create and Command Incidents, manage tasks, units, personnel, etc.

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Contributors