4 min read

Project HERMES

Table of Contents

DRRM communication control center through AI-powered chatbots

Preview
Play

Why we built it

Project HERMES started from a simple observation: incident reports are usually messy. People send messages in chat apps the way they normally talk. That is good for humans, but not great for systems that need structure, speed, and clarity.

In DRRM operations, that gap becomes a real problem. A single report might mention location, severity, and description all in one message, or sometimes none of it clearly. Someone still has to read, interpret, and reformat everything manually.

We wanted to reduce that friction.

So we built HERMES as a bridge between informal human communication and structured incident data. It sits in the middle, listening to chat messages and turning them into something usable in real time.

How it turned out

HERMES ended up as a live incident intake and coordination system that runs entirely through chat interfaces and a responder control center.

Messaging-based reporting

Residents report incidents through Telegram or Messenger. On first contact, they go through a simple onboarding flow where we collect basic profile details like language and location.

They can submit reports in two ways:

  • Freeform messages that get parsed by the NLP pipeline
  • Guided form-based reporting using structured prompts

Both routes end up in the same incident pipeline.

Incident feed

Responders monitor a real-time feed. Incoming incidents appear instantly in the dashboard.

We built multiple ways to view and manage incidents:

  • List view for fast scanning
  • Table view for detailed inspection
  • Kanban view for workflow-style tracking

Incident view

Each incident has a dedicated panel where responders can:

  • Read full chat history
  • Review parsed structured fields
  • Edit or validate extracted data
  • Update incident status (new, ongoing, resolved, etc.)

This edit step is important because the system is not fully automated. Human validation is part of the workflow.

Map visualization

Responders can have a spatial live view of incidents on a map.

  • Incidents are plotted as markers
  • Severity is visualized using color coding
  • Clusters or heatmap-style views help with dense areas

Advisory system

Responders can broadcast advisories back to residents through chat.

  • Custom message composer
  • Predefined templates for common alerts
  • Target residents’ locations by drawing on the map

Data export

Incident and advisory data can be exported as PDF or CSV for reporting and offline analysis.

Admin and access control

We built a full admin layer with:

  • Role-based access control for responders and admins
  • User invitation system (via email)
  • Ability to manage accounts

How we built it

Technologies we used

FrontendNext.js with PWA support + Tailwind CSS + shadcn/ui
BackendNext.js API routes + Supabase (PostgreSQL + Auth + Realtime)
Chat IntegrationVercel Chat SDK (Telegram/Messenger adapters)
AI IntegrationVercel AI SDK
Maps IntegrationMapLibre GL
DeploymentVercel

What I learned

This project taught me a lot about building systems where AI is not the product, but just one component in a larger pipeline. The hardest part was not making the model extract fields. The harder part was designing the whole system around it.

I also learned that integrating chat platforms made me appreciate how constrained those environments are. You do not control formatting, structure, or even consistency. You only get messages. Designing around that constraint was one of the more interesting parts of this project.