Go to file
2024-11-12 10:54:42 +07:00
agrilink_vocpro feat: add water pump status UI 2024-11-12 10:54:42 +07:00
.gitignore feat: revamp detail screen soil temp 2024-10-15 14:53:40 +07:00
README.md update: readme for logbook 2024-11-06 09:19:40 +07:00

Agrilink Vocpro (Smart Farming Application)

A mobile application for managing and monitoring greenhouse conditions with IoT devices using Flutter.

Overview

This application enables user to monitor greenhouse conditions and control devices like water valves via an IoT interface. The app retrieves data from various sensors (humidity, temperature, etc.) and allows manual control of devices through MQTT.

Features

  • Monitor sensor data (humidity, temperature, light intensity, etc.)
  • Control IoT devices (water valves, lights)
  • User authentication and profile management
  • MQTT integration for real-time data communication (via Rest API)

Technology Stack

  • Flutter (Mobile Framework)
  • MQTT (IoT communication)
  • REST API (Backend communication)
  • GitLab/GitHub for version control

Flutter Dependency Stack

This project uses several packages to support various functionalities. Below is a list of the key dependencies:

  • Dio: A powerful HTTP client for Dart, used for integrating with the API backend.
  • shared_preferences: A package for storing simple data persistently across sessions (e.g., token management).
  • intl: Provides internationalization and localization support, including date formatting and number formatting.
  • go_router: A declarative routing package used for managing navigation between screens.
  • bootstrap_icons: A package that provides Bootstrap icons for UI components.
  • fl_chart: A powerful chart library for visualizing data in different formats, used for sensor data graphing.
  • flutter_screenutil: A package to manage screen size responsiveness, ensuring the app looks good on different device resolutions.
  • gauge_indicator: A widget for visualizing sensor data (e.g., humidity, temperature) with gauge indicators.
  • mqtt_client: A library used for MQTT integration, enabling real-time communication between the app and IoT devices.

Installation Guide

  1. Clone the repository:
    git clone https://github.com/username/smart-farming.git
    
  2. Navigate to the project directory:
    cd smart-farming
    
  3. Install dependencies:
    flutter pub get
    
    if it does't work try:
    flutter outdated
    //follow with
    flutter pub upgrade --major-versions
    
    or check your latest dart version make sure it compatible with this project
  4. Run the project:
    flutter run
    

6. Project Structure

Berikan deskripsi singkat tentang struktur folder dan file penting di dalam proyek.

Project Structure

  • lib/: Contains the Flutter app source code.
    • core/: Contains all constant vaalue and data needed for the project.
    • data/: Conatains model and data response
    • domain/: logic and service of the application
    • feature/: Contains every feature in the app
      • provider/
      • view
      • widget
  • pubspec.yaml: Project dependencies and configurations.

Progress Report

Date Type Description
2024-09-09 feat Created basic app structure for Agrilink Vocpro.
2024-09-10 feat Sliced splash screen and login screen.
2024-09-11 feat Sliced home page for Agrilink Vocpro.
2024-09-12 fix Revamped home page for Agrilink Vocpro.
2024-09-13 feat Created and animated graph or flowchart with fl_chart.
2024-09-16 learn Learned about implementing graphics UI in Flutter.
2024-09-17 feat Created bottom nav bar and revamped data display widgets in Agrilink app.
2024-09-18 feat Added detail screen for Potassium, Nitrogen, and Phosphorus.
2024-09-19 feat Created custom screen for soil pH data.
2024-09-20 feat Handled POST requests with dialog.
2024-09-23 feat Added basic app routes for Agrilink app.
2024-09-24 fix Revamped home page again in Agrilink app.
2024-09-25 feat Created detail screen for temperature and light intensity features.
2024-09-26 feat Sliced setting screen.
2024-09-27 feat Implemented infinite scroll with infinite_scroll_pagination package.
2024-10-01 meet Conducted progress report with Pak Vipkas.
2024-10-02 feat Connected Flutter with MQTT broker using mqtt_client dependency.
2024-10-03 feat Created request to publish message to MQTT broker.
2024-10-04 test Tested subscribe and publish message to real device.
2024-10-07 feat Added error and no data screens in Agrilink Vocpro.
2024-10-08 fix Revamped graph UI in Agrilink app; integrated relay control with backend.
2024-10-09 doc Created project documentation in README.md on GitLab.
2024-10-10 fix Revamped detail screen for each DHT data sensor.
2024-10-11 fix Revamped detail screen for each NPK data sensor.
2024-10-14 feat Integrated REST API for fetching current data.
2024-10-15 feat Integrated REST API for fetching historical data and displaying it in a graph.
2024-10-16 feat Integrated REST API for controlling relay.
2024-11-06 feat Tidy up the code

Contributing

  1. Fork the repository.
  2. Create a new branch (git checkout -b feature/your-feature).
  3. Commit your changes (git commit -m 'Add your feature').
  4. Push to the branch (git push origin feature/your-feature).
  5. Open a Pull Request.

License

This project is licensed under the MIT License.