V5 Hub
End-to-end drone operations management platform

A drone company ran on fragmented tools: planning in spreadsheets, communication over email, manual deliveries.
Every stage of the business lived in a different tool — planning on WhatsApp, tracking in generic Kanban, deliveries by email with no traceability, analytics with no dashboards. The drone sector has unique demands: geospatiality (GPS jobs, geofences, LAANC/FAA restrictions), multi-stage pipelines (bids → scheduled → processing → deliver → bill → completed), specialized visualization plugins (georeferenced mosaics, point clouds, 3D models), and multi-role access (admin, pilot, processor, client, AI agent). The legacy tech debt was unsustainable: no testing, basic security, and every new feature touched multiple systems.
- 01
Research & Architecture
Mapped the full drone operation flow: 5 roles, multiple pipeline states, 4 kinds of geospatial visualization. Monorepo design with clear separation: React frontend, Express backend, shared types package, and an MCP server for AI.
- 02
Database
48 Prisma models covering users, organizations, sites, products, multi-stage jobs, flight logs, recurring scheduling, geospatial tiles, AI conversations, and notifications. PostGIS for geospatial queries.
- 03
Industrial Design System
Forced dark palette with industrial orange accents. Precision-technical aesthetic, glass panels, 4-level surface hierarchies, Open Sans typography. ~56 reusable UI components with Shadcn UI.
- 04
Backend & API
33 API routes by domain, 35 business services. Redis for caching, BullMQ for queues, Socket.IO for real time. JWT auth with refresh token rotation, TOTP 2FA, rate limiting. LAANC integration for airspace restrictions.
- 05
Frontend & Geospatial Viewers
23 feature modules. Viewer system with an extensible plugin framework: LandscapeViewer (georeferenced mosaics), ConstructViewer (temporal comparison), CommunityViewer (community data), ArbolViewer (forestry analysis). Loaded on demand.
- 06
AI Integration
MCP server with 24 AI-invocable tools. Chat with SSE streaming, DB persistence, per-user rate limiting, per-model cost tracking, and a write executor with undo tokens for reversible operations.
- 07
Testing & Hardening
2,830+ unit and integration tests. Security audit with multiple findings fixed. Full RBAC on MCP tools. Coverage from ~12% to ~55%.
The rewrite had to modernize everything without losing the operational workflows the company depended on — and add capabilities the business didn't have.
33 API routes by domain, 35 business services.
Frontend with 23 feature modules and a viewer system with an extensible plugin framework — each drone deliverable type gets its own specialized viewer (Landscape, Construct, Community, Arbol), loaded on demand.
MCP server with 24 AI-invocable tools, chat with SSE streaming, persistence, rate limiting, and undo tokens.
Testing: 2,830+ tests, coverage from ~12% to ~55%.
Security audit with full RBAC on MCP tools.
A platform unifying the entire drone operation in one interface, from planning to delivery, with integrated AI and professional-grade geospatial visualization.
23 feature modules, 48 DB models, extensible geospatial viewers, AI chat with 24 MCP tools, a client portal, and 2,830+ automated tests.
Monorepo Architecture
Four-package monorepo with pnpm workspaces + Turborepo for incremental builds: frontend (apps/web), backend (packages/server), shared types (packages/shared), and MCP server (packages/mcp-server).
packages: - "apps/*" # Frontend React - "packages/*" # Server, Shared, MCP Server
Viewer Plugin System
Lazy-loaded plugin framework: each drone deliverable type registers its own viewer. Plugins load on demand via dynamic import, shrinking the initial bundle. Four plugins: Landscape, Construct, Community, Arbol.
const pluginRegistry = new Map<string, () => Promise<{ default: ViewerPlugin }>>();
export function registerPlugin(
deliverableTemplate: string,
loader: () => Promise<{ default: ViewerPlugin }>,
): void {
pluginRegistry.set(deliverableTemplate, loader);
}Multi-Stage Job Pipeline
5-state pipeline with validated transitions. Each state has business rules — forward only, never backward. Transitions recorded in a complete audit log.
PIPELINE_STAGES = [ 'bids', // Cotización 'scheduled', // Programado 'processing_deliver', // Procesando/Entregando 'bill', // Facturación 'completed' // Completado ]
MCP Server with 24 Tools
The MCP server exposes system functionality as AI-invocable tools. Each tool has Zod validation, RBAC, and organization scoping. The AI can browse, query, and modify data safely.
Interested in building something like this?
[Start a Project]