Skip to content

killriam/Quick-Measurements-Insights

Repository files navigation

Measure App - Android Measurement & Analysis App

A state-of-the-art Android application for taking photos, analyzing information, and organizing measurements across different projects.

Features

Core Functionality

  • Project Management: Create and organize multiple projects
  • Measure Management: Create different types of measures within projects
  • Photo Capture: Built-in camera functionality for capturing measurement images
  • Image Analysis: Automatic extraction of data from photos using ML Kit OCR
  • Data Visualization: Charts and visualizations for insights
  • Reminder System: Automatic reminders for follow-up measurements

Supported Measurement Types

  1. Water Consumption

    • Take photos of water meters
    • Automatic OCR extraction of meter readings
    • Delta chart showing consumption changes over time
  2. Room Humidity & Temperature

    • Take initial photo of temperature/humidity display
    • Automatic 10-minute reminder for follow-up photo
    • Color-coded map visualization showing temperature and humidity values

Architecture

  • UI: Jetpack Compose with Material 3
  • Architecture: MVVM (Model-View-ViewModel)
  • Database: Room Database for local data persistence
  • Camera: CameraX for camera functionality
  • ML: ML Kit Text Recognition for OCR
  • Work Manager: For scheduling reminders

Project Structure

app/src/main/java/com/measureapp/
├── data/              # Data models and Room database
├── service/           # Image analysis services
├── ui/
│   ├── screen/       # Compose screens
│   ├── theme/        # App theme
│   └── viewmodel/    # ViewModels
└── util/             # Utilities (Camera, Permissions, Reminders)

Setup Instructions

  1. Prerequisites

    • Android Studio Hedgehog or later
    • Android SDK 24+ (minimum), 34 (target)
    • Kotlin 1.9.20+
  2. Build the Project

    ./gradlew build
  3. Run the App

    • Connect an Android device or start an emulator
    • Run the app from Android Studio or use:
      ./gradlew installDebug

Permissions

The app requires the following permissions:

  • CAMERA: For taking photos
  • POST_NOTIFICATIONS: For reminder notifications (Android 13+)

Usage

  1. Create a Project

    • Tap the "+" button on the Projects screen
    • Enter a project name and create
  2. Create a Measure

    • Open a project
    • Tap "+" to create a new measure
    • Select measure type (Water Consumption or Room Humidity & Temperature)
    • Enter a name for the measure
  3. Take Measurements

    • Open a measure
    • Tap the camera button to take a photo
    • The app will automatically analyze the image and extract values
    • For room measurements, a reminder will be set for a 10-minute follow-up
  4. View Insights

    • Scroll down in the measure detail screen to see visualizations
    • Water Consumption: See delta chart of consumption changes
    • Room Measurements: See color-coded map of temperature and humidity

Technical Details

Image Analysis

  • Uses Google ML Kit Text Recognition for OCR
  • Extracts numeric values from water meter displays
  • Recognizes temperature and humidity values from sensor displays
  • Handles various formats and units

Data Storage

  • All data stored locally using Room Database
  • Images saved to app's external files directory
  • No cloud sync (can be added as future enhancement)

Reminders

  • Uses Work Manager for scheduling
  • 10-minute delay for room measurement follow-ups
  • Notification with deep link back to the measure

Future Enhancements

  • Export data to CSV/PDF
  • Cloud backup and sync
  • Additional measurement types
  • Custom visualization options
  • Image editing and annotation
  • Multi-language support

License

This project is provided as-is for educational and development purposes.

About

Android app for taking photos, analyzing information, and organizing measurements across different projects

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages