.NET MAUI Android 12+ Kiosk Industrial Machine Monitor (HTTP/JSON)

Заказчик: AI | Опубликовано: 26.12.2025

We need a .NET MAUI (Visual Studio) Android app (minimum Android 12 / API 32) for a fixed single-touch touchscreen kiosk in a workshop. The app is an Industry 4.0 operator monitor that connects to a local network server over plain HTTPS and displays machine information. I will develop/adjust the server side if needed. Flexibility / small adjustments This is a new project and some requirements may need small adjustments during development. For each milestone, the agreed price includes a small buffer for minor changes and refinements discovered during implementation (e.g. small UI tweaks, field label changes, small behavior changes). Minor changes are expected to stay within the milestone’s original scope. Major new features or large scope changes must be quoted separately and agreed before starting. Key requirements (high level): .NET MAUI in Visual Studio (mandatory), source code delivered with every milestone Landscape + fullscreen kiosk mode (with hidden-corner unlock) Configurable Server IP, Machine ID, and poll interval (minutes) in a Settings screen (icon top-right on Home) Poll machine data (JSON) and show status + last update time, with a Refresh button that forces full reload and clears cached downloads 5 bottom tabs: Home, Drawing (JPG/PNG), Measurement report (XML), Setup sheet (XML fixed layout), Manual (index XML + searchable topics + HTML/XML content + images) Ability to POST updates to server (JSON body) for Project ID (5 digits) and Confirmed cycle time (1..1000), with Save/Cancel edit views and “Saved/Failed” feedback Milestone 1 — Project setup + UI shell + Settings Deliverables .NET MAUI (Visual Studio) solution (Android 12+), landscape Top status bar (placeholders max 8) + bottom tabs (6) Settings screen: Server IP, Machine ID, Poll interval (minutes) + persistence Settings icon top-right on Home + back button Full source code delivered (.sln) AcceptanceI can build & run in Visual Studio on Android emulator Milestone 2 — Networking (GET) + polling + status + Home fields + refresh Deliverables HTTP GET client (plain HTTP, no HTTPS), timeout 10s Immediate request on startup + polling using configured interval (default 5 min) Status mapping + colors + labels: running=1/2/3 => Running/Idle/Stopped running=0 => “Machine offline” timeout/no response => “Server unreachable” Last update timestamp in status bar Refresh button: forces full reload + clears caches Home shows 8 fields; null => “—” Full source code delivered Acceptance Build & run on emulator; mock JSON updates UI and offline logic works Milestone 3 — POST edit flows (Project + Confirmed cycle time) Deliverables Tap Project ID -> edit view (numeric), Save/Cancel Validation: exactly 5 digits POST JSON to fixed endpoint (includes machineId) Tap Confirmed cycle time -> edit view (numeric), Save/Cancel Validation: integer 1..1000 POST JSON to fixed endpoint (includes machineId) Optimistic UI update + feedback “Saved” / “Failed” (no auto-retry) Full source code delivered Acceptance Build & run; test PHP endpoints receive correct JSON Milestone 4 — Drawing tab (JPG/PNG) slider-zoom + pan (single-touch) Deliverables Download and display JPG/PNG from URL Single-touch zoom via slider (no pinch) + pan when zoomed Caching allowed; refresh clears cache and reloads “Geen gegevens beschikbaar” when missing Full source code delivered Acceptance Zoom slider + pan work; refresh re-downloads Milestone 5 — Measurement report (XML) grouped table Deliverables Download XML from URL Parse and show grouped table/list by measuring device Columns: Nr, Name, Tolerance, Min, Max “Geen gegevens beschikbaar” when missing/not found Full source code delivered Acceptance Sample XML renders correctly and grouped as expected Milestone 6 — Setup sheet (XML) fixed layout + tools list Deliverables Parse XML and render fixed layout (~10 variables) Tools list: number, name, optional remark “Geen gegevens beschikbaar” states Full source code delivered Acceptance Layout behaves as agreed using provided example XML files Milestone 7 — Manual: index XML + searchable topics + content viewer Deliverables Load manual index XML and show searchable topics list Load selected content (HTML/XML + images) from server and display it Caching allowed; refresh clears/reloads “Geen gegevens beschikbaar” when missing Full source code delivered Acceptance Search works; selected topics show correct content incl. images Milestone 8 — Kiosk mode + hidden unlock + keep screen on + handover Deliverables Kiosk/lock-task style behavior (as feasible with emulator + device provisioning) Hidden corner unlock on Home Keep screen on Short README (build/run/config + kiosk provisioning notes) Full source code delivered Acceptance Fullscreen works; unlock works; screen stays on Auto startup app when booting screen. (if possible) see specification document for more info. This is a new app, so small changes or suggestions are welcome.