Skip to content
Available for internships in development, automation, and infrastructure.Get in touch
RGW.
All projects

AgroLens

In development

From field to dataset, even offline.

Year
2026
Role
Undergraduate thesis
Context
UNICENTRO · Computer Science and Agronomy

Technologies: Flutter, Angular, NestJS, FastAPI, YOLO, PostgreSQL, Docker

Overview

AgroLens is an offline-first platform for capturing, organizing, annotating, and exporting agricultural images for computer vision datasets. It was developed as an undergraduate thesis in Computer Science at UNICENTRO, in collaboration between the Computer Science and Agronomy departments.

Source code and data remain private to protect environment configuration and research material; the public case study documents the architecture and engineering decisions.

The problem

Scattered images

Field photos end up scattered across devices, folders, and generic services.

Unstable connectivity

Internet connectivity can be unstable or unavailable during collection.

Agronomic context

Property, plot, crop, phenological stage, and location must travel with every batch.

Disconnected annotation

Annotation and export usually require tools separate from the collection process.

Data flow

  1. Field capture
  2. Local queue
  3. Sync
  4. Review
  5. Annotation
  6. Export

Field app

  • Capture or select images in Flutter.
  • Record property, plot, crop, and phenological stage.
  • Coordinates from GPS or picked on the map.
  • Local SQLite persistence and an offline sync queue.
  • Explicit states for pending, uploading, completed, or failed items.

Web dashboard

  • Dashboard and filters over uploads and agronomic metadata.
  • User, catalogue, and permission management.
  • Bounding box editor with annotations in YOLO format.
  • Export of metadata, images, and training and validation datasets.

Architecture

System flow

  1. Field app

    Flutter · offline-first

    Web dashboard

    Angular

  2. API

    NestJS · Drizzle ORM

  3. PostgreSQL

    metadata and audit

    S3 storage

    images

    Background worker

    uploads and jobs

  4. AI service

    FastAPI · YOLO

LayerTechnologiesResponsibility
MobileFlutter · Dart · SQLiteCollection, metadata, offline operation, and sync
WebAngular · TypeScriptManagement, annotation, access control, and export
APINestJS · Drizzle ORM · PostgreSQLAuthentication, business rules, audit, and jobs
FilesS3-compatible storageSigned uploads and image storage
AIPython · FastAPI · YOLOIsolated inference and assisted annotation service
OperationsDocker Compose · nginx · GitHub ActionsReproducible environments, proxy, and automated validation

Engineering decisions

Offline first

Collection does not depend on an active connection: images and metadata are stored locally and synced when the network returns.

Metadata as part of the data

Every batch carries its agronomic context from capture time, reducing unlabeled images.

Clients separated from processing

Slow operations, such as upload completion and inference, run in workers outside the HTTP API.

Security and operations

Refresh token rotation, pre-signed uploads, rate limiting, audit trail, health checks, and documented backups.

Result and participation

The prototype integrated two working clients and demonstrated the complete flow of capture, sync, management, annotation, and export. The refactor to a dedicated backend and inference integration are still in development.

Work advised by Jotair Elio Kwiatkowski Junior, Carlos Eduardo Andrade Iatskiu, and Leandro Rampim at UNICENTRO.

  • Requirements gathering and domain modeling.
  • Flutter app and Angular dashboard development.
  • Offline flow and image and metadata synchronization.
  • Permissions, annotations, and YOLO export modeling.
  • Evolution to a dedicated API, relational database, object storage, and containers.