Home

ABI

Timeline

Developed as my Computer Engineering Final Degree Project (TFG) at the University of Granada

Feb 2026 – Jun 2026: development across six two-week Scrum sprints

July 2026: defended and awarded 9.5/10

2026 onwards: evolving into a commercial B2G product

Techonologies

React Native

React Native

Expo

Expo

TypeScript

TypeScript

Next.js

Next.js

Node.js

Node.js

Supabase

Supabase

PostgreSQL

PostgreSQL

Tailwind CSS

Tailwind CSS

Features

Interactive map with hundreds of hydrants

Emergency mode: three nearest operational hydrants

Incident reporting from the field

Web admin panel for data management

Role-based access (firefighter / admin / super-admin)

Multi-municipality data isolation

Offline data caching

High-performance map rendering (700+ markers at 60 FPS)

Secure authentication (JWT, HTTPS)

Responsive design

Project Overview

overview imageoverview imageoverview image

The idea for ABI came from real conversations with firefighters in Granada. During an intervention, quickly finding a working hydrant is critical —yet crews often rely on paper maps or outdated records. ABI set out to fix exactly that.

The mobile app was built with React Native and Expo to ship a single codebase for iOS and Android, paired with a Next.js web panel for administrators. Everything is written in TypeScript to share data models between client and server and reduce errors.

A Node.js and Express REST API sits between the clients and a Supabase-backed PostgreSQL database with geospatial support, which powers the emergency mode's nearest-hydrant calculations.

The hardest —and most rewarding— challenge was map performance. Rendering hundreds of markers tanked the frame rate, especially on Android. By combining static image markers, disabled view tracking, memoization, and clustering, the map now renders 700+ hydrants at a steady 60 FPS.

ABI was validated on two fronts: a Nielsen heuristic evaluation scoring 4.6/5, and hands-on feedback from an active firefighter. Security was built in from the start —JWT authentication, HTTPS, role-based access, encrypted passwords, and per-municipality data isolation— designed with data protection (GDPR) in mind.

TakeAways

Solved real cross-platform performance problems, taking a React Native map from laggy to a steady 60 FPS with 700+ markers through static markers, memoization, and clustering.

Designed and built a complete client-server system solo —mobile app, web panel, REST API, and geospatial database— managed with Scrum across six sprints.

Validated the product with real users (Nielsen heuristics and an active firefighter), learning to turn qualitative feedback into concrete improvements.

Took a project through its full lifecycle, from requirements analysis to production deployment on Vercel and EAS Build.

Began shaping the product's commercial future, exploring a B2G SaaS model for municipalities and fire-department consortiums.

Next Project