elvis/portfolio
back to all projects
resolvedinspired by PagerDuty • Jira • StatusPage

SignalHQ

A production-grade incident response platform built around security, collaboration, and operational reliability.

Overview

SignalHQ is a full-stack incident management platform that models the complete lifecycle of production incidents—from reporting and severity classification to ownership, real-time collaboration, resolution, and postmortem analysis. Built using production-oriented architecture, it demonstrates RBAC, authenticated WebSockets, PostgreSQL full-text search, audit logging, scalable backend design, and clean software engineering principles rather than simple CRUD functionality.

Stack

Frontend

ReactTypeScriptTailwind CSSVite

Backend

NestJSTypeORMJWT AuthenticationSocket.IO

Database

PostgreSQLFull-Text SearchGIN IndexesJSONBSupabase

Infrastructure

DockerGitHub Actions

Demonstrates

Role-Based Access Control (RBAC)JWT AuthenticationState Machine ArchitectureREST APIsWebSocket CommunicationReal-time SynchronizationFile Upload SecurityPostgreSQL Full-Text SearchDatabase IndexingPaginationFilteringAdvanced SearchAudit LoggingDatabase MigrationsClean ArchitectureDependency InjectionUnit TestingScalable Backend Design

Build timeline

  1. 1

    Designed the incident lifecycle as a dedicated backend state machine, guaranteeing only valid status transitions while keeping business rules centralized and fully testable.

  2. 2

    Implemented layered authorization by combining JWT authentication, global authentication guards, metadata-driven RBAC, and resource-level ownership validation to protect sensitive operations.

  3. 3

    Built authenticated WebSocket communication using Socket.IO, enabling every responder viewing an incident to receive synchronized timeline updates instantly without page refreshes.

  4. 4

    Implemented secure evidence uploads with randomized storage, MIME-type validation, and timeline integration so every attachment becomes part of the incident history.

  5. 5

    Optimized incident discovery using PostgreSQL full-text search powered by tsvector, triggers, and GIN indexes, complemented by filtering, pagination, and sorting for efficient exploration of large datasets.

  6. 6

    Separated operational timelines from security audit logs, creating an immutable audit trail suitable for compliance, investigations, and post-incident reviews.

  7. 7

    Structured the backend using modular NestJS architecture, dependency injection, DTO validation, and TypeORM migrations to maximize maintainability and long-term scalability.

  8. 8

    Containerized the application with Docker and prepared continuous integration using GitHub Actions to support consistent development and deployment workflows.