Web app
Login, registracija, povezivanje telefona, AI skeniranja, Gazdinstvo, Zadaci, Hitna Pomoc, korisnici i podesavanja.
radi betaFandom/wiki dokumentacija
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
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.
Login, registracija, povezivanje telefona, AI skeniranja, Gazdinstvo, Zadaci, Hitna Pomoc, korisnici i podesavanja.
radi betaFlutter Android app sa login/register/pairing tokom, camera/gallery izborom, realnim API uploadom i task kalendarom.
radi betaFastAPI + PostgreSQL + lokalni upload storage. Runtime podaci idu u bazu, ne u CSV/JSON fajlove.
aktivnoTrenutno stanje
| Deo | Status | Sta 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
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
Instalacija
git checkout development
git pull origin development
Copy-Item infra\.env.example infra\.env
docker compose --env-file infra\.env -f infra\docker-compose.yml up -d --build
cd backend/api
python -m pip install -r requirements.txt
python -m scripts.run_migrations
python -m uvicorn app.main:app --reload
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
| Web app | https://agromind.dev |
|---|---|
| Backend API | https://agromind.dev/api |
| API preko web proxy | https://agromind.dev/api |
| Health | https://agromind.dev/api/health |
Korisnik
https://agromind.dev.Telefon
mobile-app/android/releases kada se napravi release build.Admin
Backend
| Endpoint | Namena | Auth |
|---|---|---|
GET /health | Health, verzija, database status | Ne |
POST /auth/register | Kreiranje naloga | Ne |
POST /auth/login | Login i bearer token | Ne |
POST /auth/password | Promena sifre za ulogovanog korisnika | Da |
POST /auth/pairing-codes | Generisanje pairing koda | Da |
POST /auth/mobile/pair | Povezivanje telefona | Ne, ali treba validan kod |
GET /auth/devices | Povezani telefoni naloga | Da |
POST /scan-cases | Mobile cuva scan; token daje ownership | Opcionalno u ruti, obavezno za licni nalog |
GET /scan-cases/mine | Moji scanovi | Da |
GET /scan-cases | Role-aware lista: admin sve, user svoje | Da |
PATCH /scan-cases/{id}/review | Review i povezivanje sa biljkom | Da |
GET/POST /user-plants | Gazdinstvo biljke | Da |
GET/POST /care-tasks | Zadaci nege | Da |
POST /plant-photos/upload | Upload slike | Da |
GET /plant-photos/{id}/file | Citanje slike | Da |
POST /recognition/analyze | PlantNet plant recognition | Ne trenutno, provider key na backendu |
POST /diagnosis/analyze | PlantNet disease check | Ne trenutno, provider key na backendu |
OpenAPI ugovor je u backend/api/openapi.yaml.
PostgreSQL
app_users, auth_sessionsdevice_pairing_codes, mobile_devicesplant_species, global_taxauser_plants, care_tasksscan_cases, plant_photos/app/uploads.agromind_uploads.storage_bucket i storage_path.AI
Backend salje multipart sliku ka PlantNet endpointima kada je API kljuc podesen. Ako API nije konfigurisan, backend vraca jasnu gresku umesto laznih/mock rezultata.
| Funkcija | Status | Napomena |
|---|---|---|
| Plant recognition | real provider | PlantNet kroz backend, potreban `PLANTNET_API_KEY`. |
| Disease detection | beta kvalitet | PlantNet Diseases, mora se testirati realnim bolestima. |
| Plant profile | alpha | Web prikazuje kategoriju, negu, edibility/nutrition, toxicity i izvore. |
| Baza bolesti | sledece | Treba posebna diagnosis tabela, simptomi, lecenje i expert warning. |
Testiranje
Detaljna web UI lista za trenutni alpha pass je u
docs/WEB_UI_QA.md. Ova wiki lista je kratak tester-friendly pregled.
0.0.1-beta je pripremljena za agromind.dev.docs/ONLINE_ALPHA_DEPLOYMENT.md.Troubleshooting
https://agromind.dev.https://agromind.dev/api/health.https://agromind.dev/api ili direktan backend URL.app.js?v=0.0.4-beta (Ctrl+F5).app.js?v=0.0.4-beta.Recnik
| Termin | Znacenje |
|---|---|
| Workspace | Licni prostor korisnika: telefoni, scanovi, biljke, slike i zadaci. |
| Pairing code | Kod kojim telefon postaje povezan sa web nalogom. |
| Scan case | Jedan nalaz skeniranja iz mobilne aplikacije. |
| Gazdinstvo | Web sekcija za Moje biljke, Moju bastu i Moju parcelu. |
| Zadaci | Kalendar nege, rucni taskovi i treatment timeline. |
| Hitna Pomoc | Sekcija za bolesti, stetocine i biljke kojima treba medicinska nega. |
| PlantNet | Spoljni API za prepoznavanje biljaka i prvi disease check. |
| WFO | World Flora Online, globalni taksonomski izvor za biljke. |
| OpenFarm | CC0 izvor za crop/gardening podatke i nazive. |
| Alpha | Rana razvojna faza, pre javne beta verzije. |
Plan
docs/WEB_UI_QA.md i docs/ONLINE_ALPHA_DEPLOYMENT.md protiv Docker/public beta URL i sacuvati trazene screenshot dokaze.