Back to All Projects


Precio is a comprehensive application designed to assist modern farmers in optimizing their agricultural operations by incorporating precision farming practices.

Repository Video πŸ“ΊοΈ


Precio is a comprehensive solution designed to assist modern farmers in optimizing their agricultural operations. This document serves as a guide for developers and users of Precio, providing information on the project's features, functionality, and usage. The software is available under the MIT License.


Precio is an open-source software tool for monitoring and visualizing farming data. It provides real-time data analysis and insights into farming, enabling informed decision-making and improving farming efficiency. Precio includes third-party integration and is designed to be user-friendly, optimizing resource usage, reducing waste, and increasing productivity.


This application is intended for any agricultural enthusiast and developers looking forward for contributing into precision farming applications.

Installation and Usage

  • Clone the repository :\ git clone [](
  • Run in the main directory to create virtual environment, install packages from requirements.txt and build the static files for the frontend:\ python
  • Run the application by:\ uvicorn main:app --port 8000 --host

Files and Folders

β”œβ”€ .git
β”œβ”€ .gitignore
β”œβ”€ .vscode
β”‚  └─ settings.json
β”œβ”€ arduino
β”‚  β”œβ”€ PMS.ino
β”‚  β”œβ”€ Weather Monitoring Station
β”‚  β”‚  β”œβ”€ WMS-GERBER-img.jpg
β”‚  β”‚  β”œβ”€ WMS-GERBER-PDF.pdf
β”‚  β”‚  β”œβ”€ WMS-GERBER-PNG.png
β”‚  β”‚  └─
β”‚  └─ WMS.ino
β”œβ”€ database
β”‚  └─ .gitkeep
β”œβ”€ frontend
β”‚  β”œβ”€ package-lock.json
β”‚  β”œβ”€ package.json
β”‚  β”œβ”€ public
β”‚  β”‚  └─ vite.svg
β”‚  β”œβ”€
β”‚  β”œβ”€ src
β”‚  β”‚  β”œβ”€ App.svelte
β”‚  β”‚  β”œβ”€ assets
β”‚  β”‚  β”‚  └─ svelte.svg
β”‚  β”‚  β”œβ”€ lib
β”‚  β”‚  β”‚  β”œβ”€ components
β”‚  β”‚  β”‚  β”‚  β”œβ”€ Button.svelte
β”‚  β”‚  β”‚  β”‚  β”œβ”€ Fab.svelte
β”‚  β”‚  β”‚  β”‚  β”œβ”€ Modal.svelte
β”‚  β”‚  β”‚  β”‚  └─ Sidebar.svelte
β”‚  β”‚  β”‚  β”œβ”€ composites
β”‚  β”‚  β”‚  β”‚  β”œβ”€ CreateProject.svelte
β”‚  β”‚  β”‚  β”‚  β”œβ”€ Layout.svelte
β”‚  β”‚  β”‚  β”‚  └─ Sidenav.svelte
β”‚  β”‚  β”‚  β”œβ”€ routes
β”‚  β”‚  β”‚  β”‚  β”œβ”€ dashboard.svelte
β”‚  β”‚  β”‚  β”‚  β”œβ”€ Home.svelte
β”‚  β”‚  β”‚  β”‚  └─ routes.js
β”‚  β”‚  β”‚  └─ stores.js
β”‚  β”‚  β”œβ”€ main.js
β”‚  β”‚  └─ vite-env.d.ts
β”‚  β”œβ”€ svelte.config.js
β”‚  └─ vite.config.js
β”œβ”€ index.html
β”œβ”€ LICENSE
β”œβ”€ model
β”‚  └─ best_pretemp.h5
β”œβ”€ requirements.txt
β”œβ”€ settings.json


  • Python 3.8.5 or higher
  • Arduino IDE
  • Node.js 16.15.4 or higher
  • Libraries used:
    • Python: numpy, pandas, tensorflow, keras, uvicorn, fastapi, scikit-learn
    • Svelte, vite, svelte-spa-router
    • IBM Carbon Design System
    • NanoID
  • Optional requirements:
    • Hardware support for PMS(Plant Monitoring System) and WMS(Weather Monitoring Station)

Integration and Features

Precio offers the following features:

  • Real-time monitoring of critical data required for the governance of farming operations.
  • Intuitive visualization features for better data analysis and insights.
  • Easy integration with third-party tools and devices.
  • User-friendly interface for streamlined operations and reduced resource usage.
  • Support for following farming practices for greater flexibility:
    • Arable farming
    • Hydroponic farming
    • Horticulture
    • Aquaponics
    • Vertical farming
  • Support for actuators and actions for improved efficiency with Telegram integration:
    • Water pumps
    • Water heaters
    • Lights
    • Sprinklers
    • Irrigation systems
    • Ventilation systems
    • CO2 sensors
    • Temperature sensors
    • Humidity sensors
    • pH sensors
    • Water level sensors
    • Water flow sensors
    • Water quality sensors etc.

Current Status

  • [x] Create project and organise them.
  • [x] Support for Arable farming.
  • [x] Visualization dashboard.
  • [x] Integration with Arduino with hardware and software support for WMS.
  • [x] Dockerized application.

Future Developments

  • [ ] Integration with Arduino with hardware and software support for PMS.
  • [ ] Telegram integration for actuators and actions.
  • [ ] ML model for predicting plant health and advanced predictions
  • [ ] Support for Horticulture, Aquaponics, Vertical farming

Contribution and Guidelines

To start contributing to the project, clone the repository into your local system subdirectory using the below git code:

Before cloning the repository, make sure to navigate to the working subdirectory of your command line interface and ensure that no folder with same name exists. Other ways to clone the repository include using a password protected SSH key, or by using Git CLI. The changes may additionally be performed by opening this repo using GitHub Desktop

Submitting a Pull Request

Before opening a Pull Request, it is recommended to have a look at the full contributing page to make sure your code complies with all the pull request guidelines.

Navigate to this subdirectory, & check status of all files that were altered (red) by running the below code in Git Bash:

  git status

Stage all your files that are to be pushed into your pull request. This can be done in two ways - stage all or some files:

  git add .            // adds every single file that shows up red when running git status
  git add <filename>   // type in the particular file that you would like to add to the PR

Commit all the changes that you've made and describe in brief the changes that you have made using this command:

  git commit -m "<commit_message>"

Push all of your updated work into this GitHub repo in the form of a Pull Request by running the following command:

  git push origin main
Arjun S

Attached demo video

March 5, 2023

Final commit included with dashboard and visualisation

March 5, 2023

Project created by SURYAN S

March 4, 2023