BACK TO WORK PRIVATE PROJECT

All screenshots on this page contain AI-generated mock data. Nothing shown reflects real, live or accurate data from DLRG Nordhardt e.V. or any of its members. No personal, operational or organizational information is disclosed.

PROJECT_03 // RESQ_DESK

RESQ
DESK

Full-stack web application for digitizing DLRG water rescue stations, built for DLRG Ortsgruppe Nordhardt. Replaces paper-based processes with a modern, mobile-first platform for fleet & inventory management, digital logbooks, scheduling and station operations.

#Nuxt4#Vue3#Go#TypeScript#Capacitor#Socket.IO
ResQ-Desk dashboard overviewFIG_01 // DASHBOARD_OVERVIEW
01

OVERVIEW

ResQ-Desk logbook protocolsFIG_02 // PROTOCOLS

ResQ-Desk replaces scattered spreadsheets, paper lists and group chats with a single interface built specifically for water rescue operations. As an active water rescuer and first responder at DLRG Nordhardt, I built this to solve real problems I encounter during operations and station duties.

The frontend is a Nuxt 4 / Vue 3 SPA with Capacitor for iOS and Android. The backend is a Go REST API with cookie-based JWT authentication and TOTP two-factor auth. One codebase, three platforms.

02

CORE_MODULES

VEHICLES & FLEET

Full CRUD fleet management for cars, boats and trailers. Each vehicle is tracked by callsign, license plate, manufacturer/model, year, location and real-time status (S2 Ready / Active / S6 Out of service). Maintenance scheduling with automatic due-date detection, vehicle notes, document linking, driver qualifications and vehicle linking (e.g. tow vehicle with trailer). Vehicle types are freely configurable.

MATERIAL INVENTORY

Inventory system with hierarchical storage locations (Room > Shelf > Box). Materials tracked by category, status, condition and maintenance interval with automatic overdue flagging. Tagging system for flexible assignment, per-material responsibilities, image upload, document management and material linking. Advanced search with filters. Batch label printing with QR codes in A5/A6 layouts.

FAHRTENBUCH

Digital vehicle logbook replacing legally required paper documentation. Records trips with start/end odometer (auto-filled from previous entry), driver and passengers (with fuzzy person search), route, purpose, refueling, damage reports and digital signature capture. Special trips with emergency lights are tracked separately.

BOOTSTAGEBUCH

Extended boat logbook with crew management including role-based hour tracking in quarter-hour steps. Operating hour counter, weather conditions via visual multi-select icons, wind strength on the Beaufort scale, temperature from weather data, exercise and rescue logging. Crew roles: captain, additional crew, boat guests.

CALENDAR

Google Calendar integration via server proxy with multi-calendar support. Month view with color-coded categories (General, Exercises, Duties, Youth), multi-day events as bars, day selection with event list, and grouped "upcoming events" view. HTML rendering in event descriptions. Responsive mobile view with compact calendar grid.

WEATHER & WATER

Live weather via DWD (German Weather Service) with current conditions, UV index, sunrise/sunset, wind speed and humidity. Automatic risk assessment for thunderstorm, high wind and low visibility. Rhine water level widget for monitoring. Weather data can be directly adopted into boat logbook entries.

DASHBOARD & KIOSK

Real-time dashboard with configurable widgets: vehicle status overview, maintenance preview, calendar widget, weather header, Divera integration and water level. Kiosk mode with idle detection (30s) for wall-mounted displays in rescue stations — auto-hides navigation, deactivates on mobile.

ADMIN & SECURITY

Full RBAC with 50+ granular permissions across admin, materials, vehicles, protocols, calendar and weather. Two-factor auth (TOTP) with backup codes, forced password change on first login. Admin panel for user/role/permission management, integration config (Divera 24/7, broadcasts), module toggles via feature flags.

03

IMPRESSIONS

ResQ-Desk calendar moduleFIG_03 // CALENDAR
ResQ-Desk weather and water levelsFIG_04 // WEATHER
ResQ-Desk admin roles and permissionsFIG_05 // ADMIN_RBAC
04

SPECIAL_FEATURES

DLRG UI LIBRARY

Custom component library with ~40 components built on the DLRG design system. Form primitives (Input, Select, Checkbox, DateTimePicker, SearchBar), layout (FormGrid, Card, Tabs), feedback (Button with 6 variants, Badge with 11 variants) and domain-specific components (SignaturePad, WeatherSelector, CrewTable, PermissionGate).

CUSTOM DATE PICKER

Fully custom mobile-first datetime picker. Step-based flow (date first, then time), quick-actions (Now/Today/Yesterday), collapsible calendar, time presets and future-date warnings. Built because no existing component matched the workflow.

PERSON SEARCH

Fuzzy-scored person search across all registered members with match highlighting, keyboard navigation (arrow keys + Enter), avatar initials and inline creation of external persons. Used across all logbook forms.

LABEL DESIGNER

Label designer with predefined and custom categories, QR code generation, color schemes, text customization and batch printing in A5/A6 formats. Used for tagging physical inventory items with scannable codes.

BROADCAST SYSTEM

WebSocket-based alert system (Socket.IO) for real-time notifications. Supports DLRG and NFH (neighborhood assistance) alarms with optional audio playback, auto-reconnect and alarm history. Can instantly activate a wall-mounted display.

FEATURE FLAGS

Every module can be toggled via environment variables or the admin panel. Disabled features show a clean "unavailable" page. User preferences are stored locally. Enables gradual rollout per station.

05

TECH_STACK

Nuxt 4.2 / Vue 3.5 // Frontend Framework
Go REST API // Backend
TypeScript // Language
Capacitor 8.3 // iOS + Android
Socket.IO // Broadcast Alerts
JWT (Cookie) + TOTP 2FA // Auth
DWD API + UV Index // Weather via Nitro Proxy
Google Calendar API // Service Account
~40 Custom Components (DlrgUI) // Component Library
Scoped CSS + Custom Properties // Design System
Divera 24/7 + Plane // Integrations
06

ARCHITECTURE

SERVICE LAYER

Factory-based service layer for backend communication with unified error handling (parseBackendResponse), cookie auth and consistent API binding. Services: auth, vehicle, material, admin, permission, calendar, weather, dashboard. Mock variants for offline development.

COMPOSABLES

Reactive state management via Vue composables: useAuth, usePermissions, useFeatures, useMaterial, useProtocols, useWeather, useBroadcast, useSidebar, useKioskMode, useTheme, useDashboard, useAdminState, useSystemSettings.

MIDDLEWARE CHAIN

Layered middleware: system init > auto-login > global auth > feature gates > route-level permissions. Each layer handles a specific cross-cutting concern.

TYPE SYSTEM

End-to-end TypeScript typing across all domains with backend-conformant DTOs (string IDs), frontend interfaces and strict type consistency between the service layer and UI components.

DISCLAIMER: This project is closed-source and built exclusively for DLRG Nordhardt e.V. All data shown in screenshots and demos on this page is AI-generated mock data. It does not reflect any live, real or correct data from the organization or any of its members. No personal, operational or organizational information is disclosed.