Fandom/wiki dokumentacija

AgroMind AI Wiki

Centralno mesto za razumevanje AgroMind AI sistema: web app, mobile app, FastAPI backend, PostgreSQL baza, Docker server, AI prepoznavanje, slike, korisnicki prostori i prva javna beta verzija.

Opis

Sta je AgroMind AI

AgroMind AI je sistem za prepoznavanje biljaka, cuvanje slika i scan nalaza, vodjenje licnog gazdinstva/baste/parcele, planiranje nege i pripremu detaljne dijagnostike bolesti biljaka. Mobile aplikacija slika biljke na terenu, backend cuva i analizira podatke, a web app prikazuje pregled, zadatke i administraciju.

Web app

Login, registracija, povezivanje telefona, AI skeniranja, Gazdinstvo, Zadaci, Hitna Pomoc, korisnici i podesavanja.

radi beta

Mobile app

Flutter Android app sa login/register/pairing tokom, camera/gallery izborom, realnim API uploadom i task kalendarom.

radi beta

Backend

FastAPI + PostgreSQL + lokalni upload storage. Runtime podaci idu u bazu, ne u CSV/JSON fajlove.

aktivno

Trenutno stanje

Status 0.0.4-beta

Projekat je prebacen na prvu beta liniju `0.0.1-beta`. Senzori, kupovina senzora/proizvoda i marketplace ostaju sledeci razvojni blokovi posle stabilizacije web/backend/mobile beta verzije.
DeoStatusSta radi sada
Registracija/login radi Novi korisnici dobijaju licni `user` workspace. Admin je posebna rola.
Povezivanje telefona radi Web Podesavanja generisu pairing kod, mobile ga menja za bearer token i device zapis.
Promena sifre radi U web Podesavanja korisnik unosi trenutnu i novu sifru; backend menja hash i salt.
Weather banner radi beta Web prikazuje vreme iz backend `/weather/current`, Windy live mapu i osnovne metrike za temperaturu, vlaznost i vetar.
AI skeniranja radi beta Web cita account-scoped `/scan-cases/mine`; admin API moze videti globalno kada je rola admin.
Slike radi beta Upload ide u backend local storage, zapisi su vezani za korisnika, Gazdinstvo prikazuje stvarne phone/upload thumbnail slike, detalj biljke moze direktno da doda povezanu sliku, a pregled slike se otvara u popupu.
Zadaci radi beta Web ima mesecni kalendar, day dots, treatment timeline i tri kolone. Mobile ima task calendar UI.
Farma moduli radi beta Web sada ima Pocetna strana, Moja farma, Ciklus biljaka, Inventar i Finansije. Ciklus biljaka ima listu/detalje, Inventar ima lep add/edit popup sa kolicinom/cenom/lokacijom. Finansije ima lep modal sa poljima za tip, datum, kategoriju, iznos, valutu RSD/EUR, status, opis, detalj, kupca/dobavljaca, gazdinstvo i opcioni prilog slike (fiskalni racun). Prilog se cuva kao base64 u localStorage i prikazuje 📎 indikator u tabeli. Inventar i Finansije krecu bez demo redova, koriste RSD/EUR i podrzavaju beta add/edit/delete, a weather banner koristi Windy live mapu.
AgroMind Robot radi beta lokalno Chatbot shell pamti istoriju u browseru; pravi AI provider treba da ide kroz backend proxy, ne direktno iz frontend koda.
Napredna dijagnoza radi beta Web prima upload slike i opis simptoma, zatim salje sliku na backend disease endpoint i prikazuje beta preporuke.
AI provider zavisi od API kljuca PlantNet radi kada je `PLANTNET_API_KEY` podesen. Disease tok je prvi beta kvalitet, treba field test.

Arhitektura

Kako delovi komuniciraju

Telefon i web nikada ne pisu direktno u bazu. Sve ide kroz backend. PostgreSQL je izvor istine za korisnike, telefone, biljke, scanove, zadatke i slike.

Flutter Android app
  -> FastAPI backend :8010
  -> PostgreSQL
  -> /app/uploads volume

Web admin/personal workspace
  -> Nginx frontend :8088
  -> /api proxy
  -> FastAPI backend
  -> PostgreSQL

Docker server
  -> frontend: https://agromind.dev
  -> backend:  https://agromind.dev/api
  -> postgres: internal Docker service

Ownership pravilo

  1. Korisnik se registruje ili uloguje na web/mobile.
  2. Telefon se povezuje pairing kodom sa konkretnim web nalogom.
  3. Scan, slika, biljka i zadatak nose `user_id` tog naloga.
  4. Obican korisnik vidi samo svoje podatke.
  5. Admin moze imati globalni pregled, ali web default sada radi kao licni workspace.

Instalacija

Kako se pokrece projekat

1. GitHub development

git checkout development
git pull origin development

2. Docker stack

Copy-Item infra\.env.example infra\.env
docker compose --env-file infra\.env -f infra\docker-compose.yml up -d --build

3. Backend lokalno bez Docker-a

cd backend/api
python -m pip install -r requirements.txt
python -m scripts.run_migrations
python -m uvicorn app.main:app --reload

4. Flutter Android/Web test

cd mobile-app/agromind_ai
C:\Users\User\flutter\bin\flutter.bat pub get
C:\Users\User\flutter\bin\flutter.bat run -d chrome --dart-define=AGROMIND_API_URL=https://agromind.dev/api
C:\Users\User\flutter\bin\flutter.bat build apk --debug --dart-define=AGROMIND_API_URL=https://agromind.dev/api

5. Trenutni URL-ovi

Web apphttps://agromind.dev
Backend APIhttps://agromind.dev/api
API preko web proxyhttps://agromind.dev/api
Healthhttps://agromind.dev/api/health

Korisnik

Web app uputstvo

  1. Otvori webIdi na https://agromind.dev.
  2. Registruj se ili loginEmail/password radi sada; Google OAuth radi kada je server env konfigurisan, dok Apple/Facebook cekaju naredne providere.
  3. Povezi telefonGenerisi kod u panelu za povezivanje telefona i unesi ga u mobile app.
  4. AI skeniranjaPregledaj samo svoje scanove, ispravi pogresno ime/latinski naziv/kategoriju i sacuvaj review.
  5. GazdinstvoPregledaj biljke kroz Moje biljke, Moja basta i Moja parcela tok; detalj biljke prikazuje sliku, health trend, scanove, fotografije i zadatke.
  6. ZadaciKoristi mesecni kalendar, timeline tretmana i rucne zadatke.
  7. Hitna PomocPregledaj sumnjive bolesti/stetocine, procenu pouzdanosti, korake nege i napravi tretman u Zadacima.
  8. FinansijePrati troskove i prihode gazdinstva. Dodaj transakciju preko lepog modal popupa sa opcijom za prilaganje slike fiskalnog racuna.
Screenshot: login/register
Screenshot: Zadaci kalendar
Screenshot: scan review modal

Telefon

Mobile app uputstvo

  1. Instaliraj APKDebug APK se cuva u mobile-app/android/releases kada se napravi release build.
  2. Login/registerTelefon prvo treba da ima nalog. Test mode je ogranicen i ne sme pisati u zajednicku bazu.
  3. Povezi sa web nalogomUnesi web pairing kod tek posle login-a.
  4. Izaberi scopeMoje biljke, Moja basta ili Moja parcela.
  5. Slikaj biljkuKamera ili galerija salju sliku ka backend AI endpointu.
  6. Sacuvaj scanPaired telefon salje scan, sliku, user i device kontekst u backend.
  7. Pregledaj zadatkeMobile Tasks ekran prati mesecni kalendar i treatment timeline smer.

Admin

Admin uputstvo

Korisnici i telefoni

  • Novi nalog je `user` po defaultu.
  • Pairing kod se generise iz web naloga.
  • Kod se koristi jednom i postaje mobile device zapis.
  • Telefon se moze ukloniti iz web panela.

Scan review

  • Web ucitava `/scan-cases/mine` za licni workspace.
  • Detalji scan-a traze bearer token.
  • Review moze povezati scan sa biljkom.
  • Statusi su `new`, `reviewed`, `approved`, `rejected`.

Backend

FastAPI endpointi

EndpointNamenaAuth
GET /healthHealth, verzija, database statusNe
POST /auth/registerKreiranje nalogaNe
POST /auth/loginLogin i bearer tokenNe
POST /auth/passwordPromena sifre za ulogovanog korisnikaDa
POST /auth/pairing-codesGenerisanje pairing kodaDa
POST /auth/mobile/pairPovezivanje telefonaNe, ali treba validan kod
GET /auth/devicesPovezani telefoni nalogaDa
POST /scan-casesMobile cuva scan; token daje ownershipOpcionalno u ruti, obavezno za licni nalog
GET /scan-cases/mineMoji scanoviDa
GET /scan-casesRole-aware lista: admin sve, user svojeDa
PATCH /scan-cases/{id}/reviewReview i povezivanje sa biljkomDa
GET/POST /user-plantsGazdinstvo biljkeDa
GET/POST /care-tasksZadaci negeDa
POST /plant-photos/uploadUpload slikeDa
GET /plant-photos/{id}/fileCitanje slikeDa
POST /recognition/analyzePlantNet plant recognitionNe trenutno, provider key na backendu
POST /diagnosis/analyzePlantNet disease checkNe trenutno, provider key na backendu

OpenAPI ugovor je u backend/api/openapi.yaml.

PostgreSQL

Baza i skladistenje slika

Runtime tabele

  • app_users, auth_sessions
  • device_pairing_codes, mobile_devices
  • plant_species, global_taxa
  • user_plants, care_tasks
  • scan_cases, plant_photos

Upload storage

  • Backend cuva fajlove u /app/uploads.
  • Docker volume je agromind_uploads.
  • Zapisi u bazi cuvaju storage_bucket i storage_path.
  • Online verzija kasnije treba MinIO/S3 ili slican storage.

AI

Prepoznavanje biljaka i bolesti

Backend salje multipart sliku ka PlantNet endpointima kada je API kljuc podesen. Ako API nije konfigurisan, backend vraca jasnu gresku umesto laznih/mock rezultata.

FunkcijaStatusNapomena
Plant recognitionreal providerPlantNet kroz backend, potreban `PLANTNET_API_KEY`.
Disease detectionbeta kvalitetPlantNet Diseases, mora se testirati realnim bolestima.
Plant profilealphaWeb prikazuje kategoriju, negu, edibility/nutrition, toxicity i izvore.
Baza bolestisledeceTreba posebna diagnosis tabela, simptomi, lecenje i expert warning.

Testiranje

Beta test checklist

Detaljna web UI lista za trenutni alpha pass je u docs/WEB_UI_QA.md. Ova wiki lista je kratak tester-friendly pregled.

  • Registruj dva razlicita korisnika i proveri da svako vidi samo svoje scanove.
  • Generisi pairing kod na webu i povezi Android telefon.
  • Slikaj biljku kamerom i proveri da se scan pojavi u web `AI skeniranja`.
  • Proveri da se slika vidi kao thumbnail, a ne `AI` placeholder.
  • Otvori `Zadaci`, klikni strelice meseca i proveri april/jun prikaz.
  • Dodaj rucni zadatak i proveri day dot u kalendaru.
  • Na telefonu otvori Tasks i proveri da ulogovan nalog ucitava backend `/care-tasks`.
  • Pokreni disease scan i proveri da `Hitna Pomoc` ima smislen tekst.
  • Restartuj Docker stack i proveri da baza i slike ostaju sacuvane.
  • Otvori Finansije panel i dodaj probni prihod/trosak kroz lepi modalni popup.
  • Probaj da prilozis sliku fiskalnog racuna prilikom dodavanja troskova i proveri 📎 indikator u tabeli.
  • Trenutni Docker beta deploy je verifikovan na lokalnom serveru; verzija 0.0.1-beta je pripremljena za agromind.dev.
  • Pre online beta testa prodji docs/ONLINE_ALPHA_DEPLOYMENT.md.

Troubleshooting

Najcesci problemi

Registracija javlja "Failed to fetch"

  • Otvori web preko https://agromind.dev.
  • Proveri https://agromind.dev/api/health.
  • U web settings API URL treba da bude https://agromind.dev/api ili direktan backend URL.
  • Ako Finansije modal ne radi, proveri da se ucitava svež app.js?v=0.0.4-beta (Ctrl+F5).

Kalendar strelice ne rade

  • Ocisti browser cache ili proveri da se ucitava app.js?v=0.0.4-beta.
  • Proveri da Docker frontend image tag odgovara trenutnoj verziji.

Telefon ne cuva scan

  • Telefon mora biti ulogovan i povezan pairing kodom.
  • Test/guest mode ne sme pisati u zajednicku bazu.
  • API URL u APK buildu mora pokazivati na backend koji telefon vidi preko WiFi mreze.

AI vraca pogresnu biljku

  • Napraviti jasnu sliku lista/cveta/ploda bez senke i mutnog fokusa.
  • Gledati confidence i top candidate logiku kada bude prosirena.
  • Los rezultat sacuvati za admin review i korekciju u lokalnoj bazi.

Recnik

Poznate reci i znacenja

TerminZnacenje
WorkspaceLicni prostor korisnika: telefoni, scanovi, biljke, slike i zadaci.
Pairing codeKod kojim telefon postaje povezan sa web nalogom.
Scan caseJedan nalaz skeniranja iz mobilne aplikacije.
GazdinstvoWeb sekcija za Moje biljke, Moju bastu i Moju parcelu.
ZadaciKalendar nege, rucni taskovi i treatment timeline.
Hitna PomocSekcija za bolesti, stetocine i biljke kojima treba medicinska nega.
PlantNetSpoljni API za prepoznavanje biljaka i prvi disease check.
WFOWorld Flora Online, globalni taksonomski izvor za biljke.
OpenFarmCC0 izvor za crop/gardening podatke i nazive.
AlphaRana razvojna faza, pre javne beta verzije.

Plan

Sledeci koraci pre beta

  1. Pokrenuti docs/WEB_UI_QA.md i docs/ONLINE_ALPHA_DEPLOYMENT.md protiv Docker/public beta URL i sacuvati trazene screenshot dokaze.
  2. Dodati posebne diagnosis case tabele i detaljan web/mobile prikaz bolesti.
  3. Dodati admin edit za plant profile facts: poreklo, toksicnost, jestivost, vitamini, minerali i izvori.
  4. Prosiriti lokalnu biljnu bazu i povezati verified profile podatke sa skenovima.
  5. Dodati backup proceduru za PostgreSQL i upload slike.
  6. Dodati HTTPS/online test deployment pre sirih testova.
  7. Testirati Android nekoliko dana na realnim biljkama i bolestima.