
Progress lived on paper and scattered spreadsheets. No consolidated view, no forecast, and the ship’s steel blocks radio. OLA turns the PDF deck plan into a live production tracker that works offline on a tablet.



Plan annotations drifted between PC and tablet. Fixed with normalised PDF-space coordinates. Client-validated.
IndexedDB mirror and an outbox that replays on reconnect. Conflicts resolve per task; offline wins. e2e 13/13.
OCR maps each PDF page to its lot and cross-checks cabin numbers against the client nomenclature.
// offline outbox · replay on reconnect (simplified)
async function flushOutbox() {
for (const op of await idb.getAll('outbox')) {
try {
await api.send(op); // projet:put · tache_session
await idb.delete('outbox', op.id);
} catch (e) {
if (e.status !== 409) throw e;
const server = await api.get(op.ref);
op.body = mergeProjetLots(server, op.body); // offline wins per task
if (op.retries++) await idb.put('dead-letter', op); // double 409
else await idb.put('outbox', op);
}
}
}
window.addEventListener('online', flushOutbox);
business tables + auth tables
analytical SQL views feeding the dashboard
production deployments, smoke-tested
tasks generated in one real project
QA bugs fixed
user guide · tablet APK v3.0