ori-dhumez.com

Jan 2025 – May 2026

OLA — Cruise Ship Outfitting Tracker

Full-Stack Dev + AI Pipeline Engineer

Vue 3Node.jsPostgreSQLDockerYOLOOffline-first

Offline-first full-stack app for MASER Engineering: tracks the outfitting of thousands of cabins across luxury cruise liners. AI pipeline (YOLO + OCR) auto-extracts cabin layout from PDF deck plans.

Context

MASER Engineering manages the interior outfitting of luxury cruise liners at the Saint-Nazaire shipyard. The process involves tracking thousands of tasks across hundreds of cabins and wagons (work zones) — wagon by wagon, cabin by cabin — with operators working in low-connectivity shipyard environments.

The existing process relied on paper records and disconnected spreadsheets. OLA replaces it with an offline-first application that syncs automatically when operators are back in range.

Technical Stack

LayerTechnology
FrontendVue 3 + Quasar Framework
Offline syncIndexedDB (client-side)
Backend APINode.js (ESM) + Express 5
DatabasePostgreSQL 16
ContainerizationDocker Compose (db, api, frontend, pgAdmin, nginx)
Excel importexceljs
PDF handlingpdfjs-dist + multer
AI — Cabin detectionYOLO (Roboflow hosted) + ONNX (client-side)
AI — OCRText extraction from PDF deck plans

Database Architecture

18 business tables + 2 auth tables + 7 analytical SQL views. Normalized to 3NF, centered on a projet root entity (1 project = 1 ship). UUID primary keys throughout. ON DELETE CASCADE for the project tree, SET NULL for optional links.

  • Key entities: projet, operateur, lot, cabine, wagon, tache (25 columns), probleme, bordereau, nomenclature
  • Views: v_tache_detail, v_operateur_heures_journee, v_avancement_wagon, v_cabine_avancement, v_tache_sessions_total, v_problem_report, v_bordereau_tracker

AI Pipeline

A YOLO object detection model — trained on deck plan PDFs — identifies cabin rectangles on ship floor plans. An OCR pipeline then extracts cabin numbers from PDF annotations. The output is cross-checked against the client nomenclature (imported via Excel) to validate cabin IDs and eliminate manual data entry entirely.

Key Features

  • Offline-first: operators log work with no connectivity, sync on reconnect
  • PDF deck plan import: AI automatically extracts cabin layout
  • Nomenclature import: Excel cross-check validates cabin IDs
  • Pointage (timesheets): FP-21 format weekly personal sheets
  • Problem tracking: issues attributed to MASER or shipyard (CHANTIER)
  • Role-based access: app_user + user_membership (user × project × role)

Audit

Full backend and database architecture audit delivered April 16, 2026. Scope: API + database (frontend excluded). Ships covering vessels Z34, Y34, E35, B36.