Academic Product BuildFullstack / Internal Tools

Strassable

Fullstack system for event planning with offline mobile sync and multi-client architecture.

Strassable is a fullstack planning system built for the Eurometropole of Strasbourg around a web map editor, a NestJS API, and an offline-capable mobile field app.

ReactTanStack RouterNestJSPrisma

Overview

Three-client system:

Web map editor for event preparation

Backend API for domain orchestration

Offline mobile app for field execution

Key mechanics:

QR-based transfer sessions

Local-first mobile storage with SQLite

Offline cartography with tiles and search

Clients

3 coordinated apps

Sync model

QR transfer sessions

Map support

Local tiles + search

Field mode

Offline mobile storage

Technical Challenges

Meaningful Offline Support

Local maps and mobile SQLite storage had to remain useful while sync timing and routing constraints stayed explicit.

Multi-Client Data Boundaries

Web, API, and mobile needed clear contracts so each client could own a different slice of the workflow.

Operational UX on Dense Maps

Routes, safety points, equipment, and timeline states had to stay readable on the same map surface.

Architecture

Operational Sync Architecture

Strassable combines a web map editor, local cartography services, QR-based transfer sessions, and an offline mobile field client.

City Ops

Event supervision and preparation

Transitions
prepare: City Ops -> Map Editor

Map Editor

Projects, routes, teams, safety points

Transfer API

Domain orchestration and transfer endpoints

Field App

Offline mobile client for teams

Transitions
tiles: Transfer API -> Local Maps
store: Transfer API -> Project DB
session: Transfer API -> QR Bridge
collect: Field App -> Field Data
sync: Field App -> QR Bridge

Local Maps

MBTiles and local address search

Project DB

Projects, planning, equipment, photos

QR Bridge

Temporary sync session between clients

Field Data

Treated points, photos, team feedback

Web editor owns preparation: routes, teams, safety points, and timeline review

NestJS API keeps project domains and transfer workflows centralized

Local map services keep tiles and address search available without network access

QR sessions create controlled import and return flows between clients

The mobile app works from SQLite data during field execution

Core Systems

The three surfaces that matter most: preparation, field execution, and transfer.

Strassable web editor with cartographic workspace and operational controls

Web map editor

Preparation workspace for routes, teams, safety equipment, timeline review, and operational supervision.

Mobile field map showing routes and project data

Mobile field app

Imported projects stay usable on site through local storage and a field-oriented map view.

Mobile screen used to connect the field app to the desktop software

QR transfer

Temporary sessions make import and return flows explicit instead of hiding sync behind a permanent connection.

Deep Dive

Architecture Choices

The split follows the real workflow: prepare, orchestrate, execute.

+

The web editor prepares the event, the API owns domain and transfer rules, and the mobile app executes from imported local data.

The QR bridge is deliberate: it creates a temporary sync context that fits field operations better than a permanently connected thin client.

Limits and Tradeoffs

Strong architecture, with honest boundaries around unfinished edges.

+

The offline story is strong for tiles, search, and mobile storage, while some navigation behavior still depends on external routing services.

The project is valuable as a portfolio case because it shows multi-client architecture, offline constraints, QR sync, and product decisions under real constraints.