Guide d'installation

Installer l'app sur l'iPad ou l'iPhone, étape par étape.

Field App — document du projet

Field App Setup: Superintendent iPad App

Architecture and requirements summary for continuing development in a

new session.

Status: prototype built, deployed and in field testing (27 September 2026)

1. Overview

The app is an HTML web app hosted on GitHub Pages and installed on the

superintendent's iPad as a Progressive Web App (PWA). After one initial

load with internet, it runs fully offline from the copy stored on the

iPad. All of his working data (lists, favorites, drafts, signed reports)

lives on the iPad. Documents are exchanged manually through a shared

OneDrive folder that syncs with the office.

ComponentWhere it livesHow it moves
App code (HTML/JS)GitHub Pages; cached on iPadDownloaded once; updates install on next online launch
Base setup (starting lists)Bundled with the appLoaded on first launch only
His lists, favorites, activitiesiPad (app storage)Stays on device; manual backup to OneDrive
Drafts and approved reportsiPad (app storage)Final PDF sent manually via Share sheet
Reference documents / drawingsShared OneDrive folder (offline)He imports manually into the app
Outgoing files (PDFs, sketches)iPad, then OneDrive folderShare > Save to Files > OneDrive; syncs later

2. Key decisions

The app never waits on the network.

cannot write into the OneDrive folder automatically; transfers are

manual through the Share sheet and file picker.

the code only.

that, the superintendent maintains his own lists; the office does not

edit them.

is the document folder in OneDrive.

3. Installation on the iPad

  1. Open the GitHub Pages URL in Safari while connected to the internet.
  1. The service worker caches all app files on the iPad.
  1. Tap Share > Add to Home Screen.
  1. Always launch from the Home Screen icon, not a Safari tab. Home

Screen apps are exempt from Safari's automatic data clearing, and

their storage is separate from normal browsing.

Note: a PWA runs on Safari's engine but shows no browser interface.

Opening a local HTML file from the Files app does not work (JavaScript

does not run in the preview), so the PWA method is required.

4. Lists, favorites and activities

setup (contractors, activities, favorites). Later app updates never

overwrite his changes.

marking items inactive save instantly on the device, with no Save

button needed.

older reports still display correctly. Inactive items are hidden from

pick lists.

item does not break links in old reports.

his lists later without touching his edits.

5. Report workflow

Stage 1: Draft

few seconds as a safety net.

Stage 2: Sign and approve

Stage 3: Final (locked)

view-only.

Mail (queued in Outbox until signal).

the original, preserving an audit trail.

tampering can be detected.

6. Documents and sketches

specs, photos). This is a manual upload and download process.

The app stores its own copy so it stays available offline.

sketches.

he re-adds it. Use revision numbers in file names, e.g.

A-101_Rev3.pdf.

manage space.

7. OneDrive requirements

choose Make Available Offline. Included with work/school accounts;

personal accounts need Microsoft 365.

pulls the latest files. iPadOS limits background syncing.

checkmark means it is available offline.

Suggested folder structure:

Field App/

Documents/ (office-managed: drawings, specs, references)

Reports/ (approved PDFs he saves)

Sketches/ (exported sketches)

Backups/ (his app backup files)

8. Backup and restore

Because his data lives only on the iPad, losing or resetting the iPad,

or deleting the Home Screen icon, would erase it.

reports to OneDrive/Backups.

setup to a new iPad.

9. Known limitations

transfer goes through the file picker or Share sheet.

the fingerprint only detects changes.

10. Technical notes for development

NeedSuggested technology
Offline appService worker with cache of all app files; web app manifest for Home Screen install
Local dataIndexedDB (lists, drafts, reports, imported documents as blobs)
Keep data from being clearednavigator.storage.persist(); launch from Home Screen
Import documents<input type="file"> opens the iPad Files picker, including OneDrive
Export / sendWeb Share API (navigator.share with files) opens the Share sheet
Signature and sketchesHTML canvas with pointer events (finger and Apple Pencil)
PDF generationpdf-lib or jsPDF, loaded from a pinned CDN version and cached
Tamper fingerprintSHA-256 via Web Crypto API, printed on the PDF
Backup fileSingle JSON file (plus embedded files) exported/imported via Share sheet and file picker

Next step: build a working prototype of the draft > sign > locked PDF

flow and test it on the iPad.

11. Current build (27 September 2026)

The prototype is built, deployed and installed as a PWA. Live address: https://davidfujioka2.github.io/feuille-de-temps/ . Every screen shows its page code at the bottom left and the version, day and time of the build at the bottom right.

Screen layout (every page)

Vocabulary

Page codes

CodePage
A1Calendrier (month grid, plus a Feuille de temps column per week)
J1Journal, all active projects: one group per project, status line on top, five section tags
J2Journal, one project: the same group at full width
J3Sous-traitants: Phases, Sous-traitant, Action, Zone, Travailleurs + Commentaire
J4Livraisons: Fournisseurs, then Placer une commande / Réception commande
J5Réunions et rencontres
J6Événements et incidents
J7Rapport journalier (draft, save, PDF, signature, approval)
PH1-PH5Photos: journal photos, home, camera, sorting, gallery
R1Paramètres (lists, favourites, active and inactive projects, backup, Tout enregistrer)
F1-F6Feuille de temps: calendar, projects, workers, hours, week, its own settings
PL1Planification (Échéancier)
H1Aide (install guide and this document)

Journal flow

  1. Tap a date in the calendar: the Journal opens on all projects (J1).
  2. Tap a section tag in a project's group: the tag turns solid green, the column widens to full width (1 s), the tag rises to the very top over the menu while doubling in height (1 s), then the table slides in from the bottom (1 s). For the Feuille de temps, the top menu stays visible and the tag stops just below it.
  3. Complete the entry (for example Sans commentaire or Ajouter le commentaire; in Livraison, Accepter la quantité): the entry appears as a solid tag inside the large tag, then the app returns to J1 with the entry shown inside the project's section tag.
  4. One entry per cycle; repeat for the next entry. There is no way back without completing the entry.
  5. Journal status on each group: Journal vide, Journal en cours, Journal approuvé. Approval is per project per day, through the Rapport (J7); an approved report is final.

Livraison

Feuille de temps

Planification links

Data on the device

KeyContent
journalChantier_v1Journal days, entries, orders, lists, favourites, selected project
feuilleTemps_v13Feuille de temps (employees, projects, hours, approvals)
chantierPlan_v1Planification per project (phases, week activities, exported favourites)
IndexedDB journalPhotosPhotos, thumbnails, final report PDFs

Build and deploy

Open items

## 12. Photo module spec (requested 2026-09-28, not built)