📱
BlueArc Apps Documentation

Docusnap Documentation

📅 May 23, 2026
🔄 Updated May 23, 2026
⏱️ 7 min read

DocuSnap – System Architecture & Technical Documentation

1. Executive Summary

DocuSnap is a professional mobile application for construction site documentation. The app is primarily aimed at construction managers, craftsmen, and appraisers. The central value proposition consists of the fast, audit-proof, and structured capture of construction site photos. Thanks to the strict “offline-first” approach, the app is ideal for use in environments with unreliable or non-existent internet connections (e.g., in shell construction or basements). All collected data can be seamlessly exported into professional, branded PDF reports or Excel spreadsheets.

2. Architecture & Tech Stack

The application was developed in Flutter and strictly follows the principles of local data processing to ensure maximum performance and independence from cloud infrastructures.
  • State Management: Riverpod (flutter_riverpod). The app uses reactive StreamProviders that are directly coupled to the local database. Changes in the database automatically trigger UI updates, ensuring a single-source-of-truth approach.
  • Local Database: Hive (hive_flutter). An extremely fast, local NoSQL key-value store. There are primarily two models (Project and Photo), which are persisted locally via adapters.
  • Media Processing:
* Camera: camera & image_picker. * Image Manipulation: image (for the direct “burning in” of watermarks into the pixel matrix). * Annotations: signature (for drawing markings on images). * Audio: flutter_sound for recording voice notes (VoiceNotes).
  • Export & Reporting: pdf, printing for the generation of native PDF documents and excel for spreadsheets.
  • Location & Permissions: geolocator and geocoding for capturing GPS metadata.
  • Localization: intl with support for German, English, Spanish, and French.

3. Detailed Feature Overview (Feature Guide)

3.1. Project Management (project_list_screen.dart)

Users can create projects that serve as containers for photos and documents. A project contains metadata such as name, location, and creation date. The projects are stored locally via Hive and rendered as a stream in a chronological list.

[SCREENSHOT-PLATZHALTER: Insert relevant screenshot for the above feature/step here.]

3.2. Camera & Watermark (image_processing_service.dart)

When a photo is taken, the app accesses the raw image data. Instead of storing GPS and timestamps only in the EXIF data, the ImageProcessingService uses the image library to draw a semi-transparent black bar at the bottom edge. Above this, the date, time, and GPS coordinates are rendered in white (“burning in”). This makes the photos audit-proof for appraisals, as the visual information cannot be removed without profound image manipulation. Subsequently, a highly performant thumbnail version is generated for the grid view.

[SCREENSHOT-PLATZHALTER: Insert relevant screenshot for the above feature/step here.]

3.3. Photo Detail View & Metadata (photo_detail_screen.dart)

Each photo can be enriched with extensive domain data:
  • Trades (Gewerke): Assignment to areas such as shell construction, electrical, plumbing, roof, etc.
  • Status: Categorization by OK, Defect, Information, or Obstruction (incl. color coding).
  • Notes: Free text field for detailed descriptions.
  • Voice Notes: Via an integrated audio player/recorder, audio memos (.m4a) can be recorded and bound to the photo’s data record.

[SCREENSHOT-PLATZHALTER: Insert relevant screenshot for the above feature/step here.]

3.4. Sketching & Annotations (sketch_annotation_screen.dart)

To visually highlight a defect, for example, the user can draw on the image. Technically, the original image is used as the background for a SignatureController. When saving, the vector input (the drawing) is rasterized and inseparably merged with the original image via image composition (img.compositeImage).

[SCREENSHOT-PLATZHALTER: Insert relevant screenshot for the above feature/step here.]

3.5. Floor Plan Localization / Pin-on-Plan (ground_plan_screen.dart)

This feature allows the upload of a floor plan (blueprint). The plan is displayed in an InteractiveViewer (supports pinch-to-zoom and panning). By tapping on the plan (capturing the global coordinates and converting them into normalized X/Y values between 0.0 and 1.0), the user can set a pin. From this pin, the camera can be started directly. The resulting photo saves the normalized X/Y coordinates, which visualizes it exactly on the plan.

[SCREENSHOT-PLATZHALTER: Insert relevant screenshot for the above feature/step here.]

3.6. Export Engine (export_service.dart)

  • PDF Generation: Builds a multi-page PDF document locally via code. The cover page can be branded with company data (configurable via settings) and a logo. This is followed by a photo grid incl. notes, trade, status (color-coded), and timestamp.
  • Excel Generation: Generates a structured tabular list of all photos of a project incl. columns for date, time, trade, status, GPS, and notes for further processing in the office.

[SCREENSHOT-PLATZHALTER: Insert relevant screenshot for the above feature/step here.]

4. Privacy & Security (Data Handling)

The app is strictly designed as Offline-First. This means:

  • No Data Collection (No Tracking): There are no hidden analytics, Crashlytics, or telemetry services that log user behavior.
  • Local Storage: All database entries, photos, and audio files remain isolated in the device’s protected app directory (Application Documents Directory).
  • App Store Compliance: Since no user data is transmitted to external servers, no complex server privacy policies or GDPR Data Processing Agreements are necessary. The app meets all requirements for “Data collected: None” in the App Stores.
  • Integrity of Evidence: By directly burning coordinates and timestamps into the image pixels, manipulation is made more difficult.

5. Monetization

DocuSnap uses a classic freemium model processed via In-App Purchases (in_app_purchase). Processing and rights verification are controlled via the PurchaseManager.

  • Free-Tier Limits:
* Maximum of 3 active projects. * Maximum of 50 photos per project. * Basic photo and export features are included.
  • Pro Version (Premium):
* Removal of all project and photo limits (unlimited). * Unlocking of the exclusive feature “Pin-on-Plan” (floor plan localization). * One-time purchase (Non-Consumable) without subscription traps.

6. User Guide (Step-by-Step Guide)

1. Create a Project: Start the app and tap on the floating “+” button on the home screen. Assign a project name and optionally the location. 2. Start Documentation: Open the newly created project. Tap on the large camera icon in the bottom center to take construction site photos. Date and coordinates are inserted automatically. 3. Record Details and Defects: In the project view, tap on a captured photo. Use the dropdowns to select the affected Trade (e.g., “Plumbing”) and the Status (e.g., “Defect”). 4. Draw Markings: In the photo detail view, tap on the edit icon. Choose a color and draw directly on the image (e.g., to circle a crack in the wall). Confirm with the green checkmark. 5. Voice and Text Notes: Enter a detailed error description further down in the detail screen, or tap on the microphone icon to record a hands-free audio explanation. 6. Localize Photos on Floor Plan (Pro only): Tap on “Ground Plan” in the project menu. Upload the floor plan. Tap on the location in the plan where you are, and select “Take photo here”. 7. Export Report: To send the documentation to the client or the office, navigate to the project overview. In the options menu (three dots) of the project, select the option to export as PDF or Excel. You can share the report directly via WhatsApp, email, or save it on the device.