# nigig-site — construction site field app Makepad app at `crates/apps/nigig-site` (`cargo run -p nigig-site`). ## Phases covered | Phase | Items | Crates / files | |-------|-------|----------------| | **1 Daily & Monthly Report** | 1 photo/gif capture, 2 AI-refined rich text (bold/italic/underline/list), 3 PDF + Word export, 4 collaborative + master approve, 5 multi-site compile, 6 EOD -1h reminder, 7 monthly rollup, 8 72h pre-meeting reminder | `src/domain/daily_report.rs`, `src/report_pdf.rs`, `src/domain/reminders.rs`, `src/site_frame/screens/report_editor.rs`, `src/site_frame/screens/reports.rs`, `nigig-uikit::CameraWidget`, `nigig-pdf-*`, `robius-location` | | **2 Workers** | 9 ID scan + department, 10 daily table by workstation | `src/domain/workers.rs`, `src/site_frame/screens/workers.rs` | | **3 Chat** | 11 project-group chat on nimanyatta, shared with `nigig-chat` | `src/nimanyatta_client.rs`, `src/site_frame/screens/chat.rs`, `crates/nimanyatta/` stub | | **4 Approvals & schedule** | 12 template by site nature, 13 task/subtask, 14 timelines & qty, 15 inspection IDs | `src/domain/approvals.rs`, `src/site_frame/screens/approvals.rs` | | **5 Procurement** | 16 qty + sourcing, 17 directory | `src/domain/procurement.rs`, `src/site_frame/screens/procurement.rs` | | **6 Meetings** | 18 schedule/reschedule, 19 directory, 20 live listen, 21 minutes, 22 share | `src/domain/meetings.rs`, `src/site_frame/screens/meetings.rs` | ## Chat — nimanyatta shared rooms - Canonical server: `../nimanyatta` (`broadcast_server`, `b_server` feature, xitca-web). - `NIMANYATTA_BASE_URL` env overrides default `http://127.0.0.1:8080`. - `Site.chat_room_id` stores the nimanyatta `room_id` (`POST /api/v1/rooms/create`). The same room is visible in `nigig-chat` via `POST /api/v1/sync`. - Vendoring plan: copy `../nimanyatta` into `crates/nimanyatta/` (see `crates/nimanyatta/README.md`), then replace `src/nimanyatta_client.rs` shims with `nigig_common` typed client. ## PDF / Word `src/report_pdf.rs` mirrors `nigig-core::finance_report`: base-14 Helvetica, `DocumentCreator` + `ContentWriter`, `add_page` per sheet, `finish()` → bytes. Host-testable via `nigig-pdf-document::PdfDocument::parse`. Word is an HTML stub (`build_daily_report_word_html`) that Word opens natively; swap with `docx-rs` later. ## Camera & location Uses `nigig-uikit::CameraWidget` (frame buffer, aspect bars, location overlay) and `nigig_core::location` / `robius-location` — same stack as the receipt camera. ## Running ```sh cargo run -p nigig-site # with nimanyatta server alongside (sibling checkout): cargo run -p nimanyatta --bin broadcast_server --features b_server # in ../nimanyatta NIMANYATTA_BASE_URL=http://127.0.0.1:8080 cargo run -p nigig-site ```