Offline-first GPS field area measurement app designed for Ethiopian smallholder farmers.
Flutter Dart Android Clean Architecture License
About • Features • Screenshots • Architecture • Getting Started • Roadmap
English | አማርኛ | Afaan Oromoo
Most Ethiopian smallholder farmers do not have access to professional land surveying tools, and many rural agricultural areas lack internet connectivity. Measuring farmland accurately is crucial for seed distribution, fertilizer planning, and estimating crop yields.
Smart GPS Fields bridges this gap. Developed as an academic project at Adama Science and Technology University (ASTU) by Gemechu Alemu, this tool allows anyone with a smartphone to measure land boundaries entirely offline.
Partnership Opportunities: This project is open for partnerships with NGOs, governmental bodies, and agricultural organizations to deploy the tool at scale for rural farmers in Ethiopia and beyond.
- 🚶♂️ GPS Measurement Mode: Physically walk the perimeter of the field. The app tracks your real-time path and automatically drops precise boundary points.
- 👆 Manual Tap Mode: Drop boundary points manually on an offline map. Perfect if you know your field's shape from a satellite/map view.
- 📴 100% Offline Capability: Custom map tile caching (LRU eviction policy) allows map usage without an active internet connection.
- 🇪🇹 Localized & Culturally Aware: Fully translated into Amharic (አማርኛ) and Afaan Oromoo, featuring local Ethiopian land measurement units like Mide (ሚዴ) alongside Hectares (ha) and Square Meters (m2).
- 📡 Smart GPS Tracking: Actively monitors GPS accuracy. If the signal drops or exceeds 5 meters of error, it intelligently auto-pauses the measurement to prevent faulty data.
- 💾 Local Persistence: Built using Hive for fast, secure on-device data storage with a soft-delete mechanism and search functionality.
| Measurement Modes | Real-time GPS Tracking | My Fields History | Offline Maps |
|---|---|---|---|
| Modes | GPS Tracking | History | Maps |
| Field Detail View | Settings | Localization | Splash Screen |
|---|---|---|---|
| Detail | Settings | Languages | Splash |
This project strictly adheres to Clean Architecture principles and Domain-Driven Design (DDD), ensuring modularity, scalability, and high testability.
- State Management:
flutter_bloc - Dependency Injection:
get_it - Local Database:
hive&hive_flutter - Navigation:
go_router(StatefulShellRoute for persistent bottom navigation) - Maps & Math:
flutter_map(v6) withmaps_toolkitfor spherical area computation. - Location:
geolocator - Theming: Material 3 (Dynamic Color, Light/Dark Modes)
The lib directory is divided into core (shared utilities, network, GIS math) and features (isolated modules):
field_measurement: GPS logic, area calculations, active tracking.field_history: Hive storage, search, listing, detail viewing.map_view: Offline map rendering, tile downloading, caching.settings: Localization, theming, unit preferences.onboarding: First-time user tutorial and splash screen.
- Flutter SDK:
^3.11.4 - Dart SDK
- Android Studio / VS Code
- Clone the repository:
git clone https://github.com/game-ale/smart_gps_area.git
- Navigate into the directory:
cd smart_gps_area - Get the dependencies:
flutter pub get
- Run code generation (for localization, Hive, and freezeds):
dart run build_runner build --delete-conflicting-outputs
- Run the app:
flutter run
# Run static analysis flutter analyze # Format Dart files dart format --set-exit-if-changed . # Run unit tests with coverage flutter test --coverage # Build release APK (Min SDK 24 / Android 7.0+) flutter build apk --release
This app is natively built for the Ethiopian community:
- አማርኛ (Amharic): መተግበሪያው ሙሉ በሙሉ በአማርኛ የተተረጎመ ሲሆን አርሶ አደሮች የራሳቸውን መሬት ስፋት ያለ በይነመረብ (Offline) በቀላሉ እንዲለኩ ያስችላል።
- Afaan Oromoo: Appilikeeshiniin kun guutumaan guutuutti gara Afaan Oromootti kan hiikame yoo ta'u, qotee bultoonni haala salphaa ta'een lafa isaanii interneetii malee (Offline) akka safaran isaan gargaara.
We are continuously working to improve the application. Planned features include:
- PDF/KML Export: Allow farmers to export and share official field measurement documents.
- Satellite Imagery: Add toggleable offline satellite view for manual boundary drawing.
- Cloud Sync & Backup: Optional secure cloud synchronization for data recovery.
- Multi-platform: iOS support expansion.
- Yield Estimation: Integrated calculator to estimate crop yields based on measured field area.
Contributions, issues, and feature requests are welcome! Feel free to check the issues page.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- Developed as a project at Adama Science and Technology University (ASTU).
- OpenStreetMap contributors for map data.
- The amazing Flutter and Dart open-source community.
Distributed under the Apache License 2.0. See LICENSE for more information.
Made with ❤️ by Gemechu Alemu