← Back to Projects
Hackathon

Tanbih

A hackathon-winning crisis alert system that became an internship project, focused on the backend evidence and review workflow behind public notifications.

Timeline
March to April 2026

Technologies used

  • Node.js
  • Express
  • Socket.IO
  • Sequelize
  • SQLite
  • Gemini
  • Perplexity
  • Web Push

From a hackathon win to an internship project

Tanbih started as the project that won a hackathon and earned me an internship. We continued developing it during that internship, moving beyond the original demonstration toward a more deliberate backend for crisis detection, verification, and alert review.

My work concentrated on the evidence pipeline: choosing which providers should run, keeping their outputs traceable, verifying a finding through several evidence classes, and presenting the result to a human analyst before any public notification.

Tanbih control panel showing selectable crisis data sources and unavailable credentialed providers
The backend reports source availability so an analyst can see which providers will run before detection.

Source selection is part of the record

The Express backend can ingest scientific feeds, weather services, news providers, social sources, and Lebanese public information feeds. Each run records requested, executed, unavailable, and ignored sources. The control panel reflects backend availability, so a missing credential is visible before a detection run rather than silently reducing coverage.

Verification that can be inspected

A finding is enriched with scientific confirmation, news and web corroboration, semantic checks through Gemini or Perplexity, and optional media evidence. Uploaded images can contribute metadata, visual analysis, and reverse-search results. The final record stores the contribution of each evidence class instead of exposing only a single confidence number.

Tanbih verification breakdown showing semantic, scientific, and media contributions to a synthetic alert score
The stored verification result explains how each evidence class contributed to the final score.

A person remains between confidence and delivery

Verified findings enter an analyst queue. The dashboard shows severity, radius, confidence, evidence, recipient zones, and estimated delivery volume. Only after review can the system prepare multilingual alerts in Arabic, English, Turkish, Italian, and Hebrew.

Tanbih analyst dashboard reviewing a synthetic earthquake alert with verification confidence and recipient zones
A human review gate separates detected findings from multilingual public delivery.

Geographic delivery

The backend calculates targeting zones from an event location and severity using distance checks. Socket.IO keeps the analyst interface current, Sequelize persists the workflow in SQLite, and Web Push supports the notification path.

Prototype boundaries

The system is experimental. Its confidence model is heuristic, SQLite and application-level geographic filtering limit scale, and analyst authentication and authorization are not yet complete. Synthetic fallback evidence is useful for demonstrations but must never be confused with real corroboration in a production emergency workflow. The backend test suite passes 24 tests, and the frontend production build completes with a bundle-size warning that should be addressed through code splitting.

Tags

crisis intelligencemulti-source verificationhuman reviewgeographic targetingmultilingual alerts

Explore other projects

Android audiobook player showing cover art, saved progress, skip controls, playback speed, and a sleep timer

Mobile

Kotlin Jetpack Compose Media3 ExoPlayer

Audiobooks for Android

A native Android audiobook library with offline downloads, persistent listening progress, and background playback.

Dros practice session showing an incorrect answer, the correct option, and an explanation

Web

React TypeScript Vite

Dros

A local-first React study app that turns AI-generated and imported MCQs into repeatable practice with immediate feedback.

AI Workflow DSL overview showing a workflow program beside the lexer, generated LL(1) table, and stack parser

University

Python LP PT

AI Workflow DSL

A Python DSL and table-driven LL(1) parser for multi-agent workflows, with generated grammar docs and source-aware syntax errors.