Skip to content

amrit-dash/coffee-mapper-android

Coffee Mapper

Coffee Mapper Logo

Flutter Dart Firebase License PRs Welcome Maintenance Made with Love

An Android application for Coffee Development Trust, Koraput to track and manage Coffee Plantations.

FeaturesInstallationEnvironment SetupUsageContributingLicenseDownload


🚀 Quick Links

Development Build Production Build

App Screenshots

✨ Features

🗺️ Interactive Mapping

  • Plot coffee plantation areas using GPS coordinates
  • Real-time area and perimeter calculations
  • Satellite view integration with Google Maps
  • Support for multiple image captures with location tagging

📱 User-Friendly Interface

  • Clean and modern Material Design
  • Intuitive navigation
  • Responsive layout
  • Offline capability with data sync

🔐 Secure Authentication

  • Firebase Authentication integration
  • Role-based access control
  • Admin dashboard for user management

📊 Plantation Management

  • Detailed plantation information recording
  • Image capture and storage
  • Historical data tracking
  • Area-wise categorization

🕒 Attendance & Tracking

  • Geofenced check-in and check-out
  • Real-time location validation against assigned regions
  • Secure timestamping with NTP integration
  • Background overnight session management

🔄 Sync & Backup

  • Automatic data synchronization
  • Offline data persistence
  • Secure cloud storage for images
  • Real-time updates

📥 Installation

Prerequisites

  1. Flutter SDK (^3.5.4)
  2. Android Studio
  3. Java Development Kit (JDK)
  4. Firebase Account
  5. Google Maps API Key

Getting Started

  1. Clone the repository:

    git clone https://github.com/yourusername/coffee_mapper.git
    cd coffee_mapper
  2. Install dependencies:

    flutter pub get
  3. Follow the Environment Setup instructions below.

⚙️ Environment Setup

This project uses separate environments for development and production. Each environment has its own:

  • Firebase project
  • Google Maps API key
  • Package name

Initial Setup

When setting up the project for the first time:

  1. Create necessary directories and copy template files:

    # Create directories
    mkdir -p android/app/src/debug/res/values/
    mkdir -p android/app/src/main/res/values/
    
    # Copy API Key templates
    cp templates/strings.xml.template android/app/src/main/res/values/strings.xml
    cp templates/strings.debug.xml.template android/app/src/debug/res/values/strings.xml
    
    # Copy keystore configuration template
    cp templates/key.properties.template android/key.properties
  2. Update the copied files with your actual values:

    • Add your Maps API keys to both strings.xml files
    • Update key.properties with your keystore details

Firebase Configuration

  1. Place your Firebase configuration files:

    • Development: android/app/google-services-dev.json
    • Production: android/app/google-services-prod.json
  2. Enable required Firebase services:

    • Authentication
    • Cloud Firestore
    • Cloud Storage
    • Crashlytics
    • App Check

Google Maps Configuration

Configure Google Maps API keys in:

  1. Native Android configuration:
    • Debug: android/app/src/debug/res/values/strings.xml
    • Release: android/app/src/main/res/values/strings.xml
  2. Dart configuration in lib/config/app_config.dart

🚀 Usage

Building the App

Use the provided build scripts:

# Development build
./scripts/build.sh dev 1.0.0

# Production build
./scripts/build.sh prod 1.0.0

Running the App

Use the run script for development:

# Run development version
./scripts/run.sh dev

# Production version
./scripts/run.sh prod

Security Notes

The following files contain sensitive information and should not be committed to version control:

  • google-services-dev.json
  • google-services-prod.json
  • key.properties
  • *.jks (keystore files)
  • android/app/src/*/res/values/strings.xml

📱 Download

You can download the latest APK builds from the following links:

🤝 Contributing

We welcome contributions! Please follow these steps:

  1. Fork the repository
  2. Create a new branch: git checkout -b feature/your-feature
  3. Make your changes
  4. Test thoroughly
  5. Create a pull request

Please read our Contributing Guidelines for more details.

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

🙏 Acknowledgments

  • Flutter Team for the amazing framework
  • Firebase for the robust backend services
  • Google Maps Platform for mapping services
  • Coffee Development Trust, Koraput for their support

👨‍💻 Author

Amrit Dash

📞 Support

If you need help or have any questions, please email us at geospatialtech.production@gmail.com


Made with ❤️ for Coffee Development Trust, Koraput

If you found this project helpful, please consider giving it a ⭐️

About

An Android application for Coffee Development Trust, Koraput to track and manage Coffee Plantations.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Contributors