Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

20 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“± Smart Field Survey & Inspection App

Enterprise-Grade Field Operations & Audit Platform

Expo SDK 54 React Native 0.81 TypeScript 5.9 Expo Router 6.0 Platforms

A sleek, modern, and production-ready mobile solution engineered for field site inspections, real-time GPS tracking, camera geotagging, contact linkage, and zero-loss draft survey management.


πŸ“Έ App Showcase & Interface Highlights

Executive Dashboard

πŸ“Š Executive Dashboard
Time-aware greeting, live metric counters & quick inspection tool grid.
Inspector Profile

πŸ‘€ Inspector Profile
Agent credentials, clearance level, metrics & node diagnostics.
GPS Location Utility

πŸ“ GPS Location Utility
Live satellite lock, coordinate accuracy, satellite map view & direct attachment.

πŸ“‘ Table of Contents


🌟 Overview

The Smart Field Survey & Inspection App bridges the gap between field operation audits and enterprise digital reporting. Designed to operate reliably under challenging field conditions, the app provides real-time access to native smartphone hardwareβ€”including high-precision GPS tracking, camera watermarking, contact syncing, and system clipboard integration.

With a clean, responsive layout built on React Native and Expo SDK 54, field engineers and site auditors can capture data effortlessly without worrying about lost drafts during screen switching or app navigation.


πŸ— Architecture & Design Philosophy

       β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
       β”‚                Root Drawer Navigator                    β”‚
       β”‚   (Dashboard, Camera, Location, Contacts, Settings)     β”‚
       β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                  β”‚
       β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
       β”‚               Bottom Tab Navigation                     β”‚
       β”‚   [ Dashboard ]  [ History ]  [ (+) New ]  [ Profile ]  β”‚
       β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                  β”‚
       β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
       β”‚              Global SurveyContext Store                 β”‚
       β”‚   - Live Survey Draft State (Form, Photo, GPS, Contact) β”‚
       β”‚   - Persistent Submitted Survey Records Array           β”‚
       β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
  • Hybrid Navigation Architecture: Combines a persistent side Drawer Navigator with a bottom Tab Bar. The drawer wraps the entire application, giving instant access to utility screens (Camera, Location, Contacts, Clipboard, Settings) from any context.
  • Zero-Loss Draft Persistence (SurveyContext): State is synchronized across all screens. Navigating from the New Survey form to the GPS Location module or Camera Viewfinder attaches data seamlessly without discarding form inputs.
  • Type-Safe Domain Modeling: Engineered with strict TypeScript interfaces (Survey, SurveyDraft, SurveyLocation, SurveyContact).
  • Interactive Fallback UI: Gracefully handles denied permission states for Camera, Location, and Contacts with built-in retry mechanisms and user prompts.

πŸ“± Module Highlights & Deep Dive

πŸ“Š Module 1 β€” Executive Dashboard

  • Smart Greeting: Displays contextual time-based greetings (Good Morning / Good Afternoon / Good Evening).
  • Field Agent Badge: Shows active agent credentials, batch details, and active status (ACTIVE).
  • Real-Time Metrics: Live counter tracking Today's Surveys and Total Completed Surveys.
  • Quick Action Grid: Instant navigation shortcuts to New Survey, Camera Capture, Pin Location, and Associate Contact.
  • Recent Activity Feed: Tap-to-view stream of recently submitted field surveys.


πŸ‘€ Inspector Profile & Node Diagnostics

  • Agent Identity Card: Displays high-resolution inspector avatar, email handle, and active clearance badge (T-2 CLEARANCE).
  • Inspection Clearance: Summary of completed reports, open drafts, and security level.
  • Credentials Matrix: Formal ID (INSP-2026-9942), Course Name, and Batch Year (Batch 2026).
  • Device Diagnostics: Real-time status monitor showing storage mode and database state.


πŸ“ Module 4 β€” GPS Geolocation & Satellite Utility

  • Satellite Lock Status: Displays live GPS lock confirmation badge (GPS Satellite Lock Acquired).
  • Coordinate Precision: Real-time extraction of Latitude, Longitude, and Accuracy margins (Β±16 meters).
  • Interactive Map View: Embedded satellite map rendering current inspector position with Default / Satellite toggle modes.
  • One-Tap Utility Actions:
    • πŸ”„ Refresh Coordinates: Re-queries device GPS sensors.
    • πŸ“‹ Copy Coordinates: Copies formatted coordinates to system clipboard.
    • πŸ“Ž Attach to Survey Template: Direct deep-link attachment to current survey draft.


πŸ“ Module 2 β€” Dynamic Survey Form

  • Structured Inputs: Site Name, Client Name, and Comprehensive Description with real-time validation.
  • Priority Selector: Color-coded segmented controls (Low 🟒 | Medium 🟑 | High πŸ”΄).
  • Native Date & Time Picker: Integrated @react-native-community/datetimepicker.
  • Live Attachment Badges: Dynamic indicators showing attached Photo, GPS Location, and Contact details.

πŸ“· Module 3 β€” Camera Capture & Timestamp Watermark

  • Live Viewfinder: Interactive CameraView with front/rear camera toggle.
  • Timestamp Overlay: Captures exact inspection date and time directly onto photo previews.
  • Interactive Review: Preview screen allowing inspectors to Use Photo, Retake, or Delete.

πŸ‘€ Module 5 β€” Device Contacts Integration

  • Native Contact Sync: Queries phone contacts via expo-contacts into a high-performance FlatList.
  • Live Search Filter: Instant contact search by name with active results counter.
  • Pull-to-Refresh: Integrated RefreshControl for live address book syncing.
  • Color-Coded Initials: Auto-generated initial avatars for contacts.

πŸ“‹ Module 6 β€” System Clipboard Manager

  • Buffer View: Inspect active system clipboard text.
  • Quick Copies: Copy Survey ID, linked Contact Number, or GPS Coordinates.
  • Auto-Paste into Notes: Single-tap insertion of clipboard content into survey observation notes.

πŸ‘οΈ Module 7 β€” Interactive Survey Preview

  • Full Inspection Summary: Detailed breakdown of Site Details, Priority, Date, Photo with Timestamp, GPS Coordinates, Contact Person, and Notes.
  • Dual Mode Navigation:
    • Draft Mode: Offers Edit Survey (re-fills form) and Submit Survey (saves to history).
    • Read-Only Mode: Displayed when reviewing submitted records from history.

πŸ—‚οΈ Module 8 β€” Survey History & Filter Matrix

  • Virtualized List: Powered by FlatList for smooth scrolling over large datasets.
  • Search & Filter Matrix: Search by site/client name, filter by priority chips (All, Low, Medium, High).
  • Attachment Badges: Chips indicating attached media (Camera, Location, Contact, Notes).
  • Record Management: Delete archived records with interactive confirmation prompts.

🎨 Design System & Theme Tokens

All styling tokens are centralized in constants/theme.ts to ensure UI harmony and seamless Dark / Light mode switching:

Token Category Swatch / Hex Design Token Name Purpose
Primary 🟦 #4F46E5 Colors.light.primary Main Brand Color & Nav Highlights
Secondary 🟦 #0EA5E9 Colors.light.secondary Action Buttons & Active Statuses
Accent πŸŸͺ #D946EF Colors.light.accent Highlights & Special Chips
Success 🟩 #10B981 Colors.light.success GPS Satellite Lock & Low Priority
Warning 🟧 #F59E0B Colors.light.warning Medium Priority Flags & Alerts
Error πŸŸ₯ #EF4444 Colors.light.error High Priority Flags & Delete Actions
Background (Light) ⬜ #F8FAFC Colors.light.background Canvas Light Mode Background
Background (Dark) ⬛ #0F172A Colors.dark.background Canvas Dark Mode Background

πŸ“ Folder & File Architecture

my-app/
β”œβ”€β”€ app/                        # Expo Router File-Based Routes
β”‚   β”œβ”€β”€ (tabs)/                 # Bottom Tab Navigator Screens
β”‚   β”‚   β”œβ”€β”€ _layout.tsx         # Tab Bar configuration & styles
β”‚   β”‚   β”œβ”€β”€ index.tsx           # Module 1: Executive Dashboard
β”‚   β”‚   β”œβ”€β”€ new-survey.tsx      # Module 2: Create / Edit Survey Form
β”‚   β”‚   β”œβ”€β”€ history.tsx         # Module 8: Survey History & Filter Matrix
β”‚   β”‚   └── profile.tsx         # Inspector Profile Screen
β”‚   β”œβ”€β”€ _layout.tsx             # Root Layout & Drawer Navigation Wrapper
β”‚   β”œβ”€β”€ camera.tsx              # Module 3: Camera Capture & Viewfinder
β”‚   β”œβ”€β”€ location.tsx            # Module 4: GPS Satellite Geolocation
β”‚   β”œβ”€β”€ contacts.tsx            # Module 5: Device Contacts Manager
β”‚   β”œβ”€β”€ clipboard.tsx           # Module 6: System Clipboard Sync
β”‚   β”œβ”€β”€ preview.tsx             # Module 7: Survey Summary & Submission
β”‚   β”œβ”€β”€ settings.tsx            # Application Settings
β”‚   └── modal.tsx               # Utility Modal Dialogs
β”œβ”€β”€ assets/                     # Application Media & Icons
β”‚   β”œβ”€β”€ images/                 # App logos, favicon, splash screen
β”‚   └── screenshots/            # UI Showcase Screenshots
β”‚       β”œβ”€β”€ dashboard.png       # Executive Dashboard Screenshot
β”‚       β”œβ”€β”€ profile.png         # Inspector Profile Screenshot
β”‚       └── location.png        # GPS Location Utility Screenshot
β”œβ”€β”€ components/                 # Shared UI Components
β”‚   β”œβ”€β”€ CustomHeader.tsx        # Screen Header with Drawer Trigger
β”‚   β”œβ”€β”€ CustomDrawerContent.tsx # Custom Drawer Side Menu
β”‚   └── ThemedText.tsx          # Theme-aware text wrapper
β”œβ”€β”€ constants/                  # Configuration & Global Tokens
β”‚   β”œβ”€β”€ config.ts               # Student & Inspector profile configuration
β”‚   └── theme.ts                # Design tokens (Colors, Spacing, Radii, Shadows)
β”œβ”€β”€ context/                    # State Management
β”‚   └── SurveyContext.tsx       # Global Survey State & Draft Store
└── hooks/                      # Custom React Hooks

πŸ›  Tech Stack & Package Matrix

Core Technology / Package Package Version Feature Responsibility
React Native 0.81.5 Cross-platform UI core framework
Expo SDK ~54.0.35 Native mobile application suite
Expo Router ~6.0.24 File-based dynamic routing
TypeScript ~5.9.2 Static type safety & domain modeling
expo-camera ~17.0.10 Custom live camera viewfinder & capture
expo-location ~19.0.8 GPS satellite location query engine
react-native-maps 1.20.1 Native Google / Apple maps rendering
expo-contacts ~15.0.11 Address book integration
expo-clipboard ~8.0.8 System clipboard buffer access
@react-navigation/drawer ^7.13.2 Slide-out Drawer Navigation
@react-navigation/bottom-tabs ^7.4.0 Modern Bottom Navigation Tab Bar
@react-native-community/datetimepicker 8.4.4 Native Date & Time selector

πŸš€ Getting Started & Installation

Prerequisites

Before running the application, make sure your environment includes:

  • Node.js: Version 18.0.0 or higher
  • npm (v9+) / yarn / pnpm
  • Expo Go app installed on your physical iOS or Android device, OR a configured Android Studio Emulator / Xcode iOS Simulator.

Quick Start Guide

  1. Clone the Repository:

    git clone https://github.com/kamleshchandela/reactive-native-1.git
    cd reactive-native-1/my-app
  2. Install Dependencies:

    npm install
  3. Start the Expo Development Server:

    npm run start
  4. Launch on Target Platform:

    • πŸ“± Physical Phone: Scan the terminal QR code using Expo Go.
    • πŸ€– Android Emulator: Press a in the terminal.
    • 🍎 iOS Simulator: Press i in the terminal.
    • 🌐 Web Browser: Press w in the terminal.

πŸ”’ Hardware Permissions & Fallback UI

The app handles device hardware security with user permission prompts:

  • πŸ“· Camera (CAMERA): Used solely for site photo documentation and timestamp overlays.
  • πŸ“ Location (ACCESS_FINE_LOCATION): Used for fetching exact site GPS coordinates.
  • πŸ‘€ Contacts (READ_CONTACTS): Used to associate client phone numbers with survey logs.

If any permission is denied by the user, the app displays a fallback screen with clear explanation and an interactive Grant Permission retry button.


πŸ‘€ Author & Credits

Kamlesh Chandela

Lead Mobile Developer & Student

GitHub Batch Course


Built with ❀️ using React Native, Expo SDK 54 & TypeScript.

About

A complete React Native field survey & inspection app with camera, GPS location, contacts, and offline-first data capture - built with Expo & TypeScript.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages