How koolanu1412-lab/feedsense-final works
FeedSense is a prototype feed/silage quality assessment system with a Flask backend and an Android client. Its main workflow accepts sample data and an image, screens the image, estimates nutrition and risks, and stores a result that can be retrieved or exported. The backend excerpt is partial, so endpoint wiring is shown only where the sampled code or module imports support it; Android UI behavior and several integrations are not inferred.
Main entry points: backend_app.py Flask API · analysis.py Sample analysis · database.py SQLite records · MainActivity.kt Android app
Components 14
Client
- Android app
android/app/src/main/java/com/example/feedsense/MainActivity.kt - API client
android/app/src/main/java/com/example/feedsense/ui/network/FeedSenseApi.kt
Backend API
- Flask API
backend_app.py
Sample Assessment
- Sample analysis
services/analysis.py - Image screening
services/vision.py - Demo spectrum
services/nir.py - Nutrition prediction
ml/predict.py - Storage risk
services/storage.py
Records and Exports
- SQLite records
database.py - PDF report
services/pdf_report.py - QR passport
services/qr.py - Sensor records
database.py
Other components
- Farmer
- Sensor source
Connections 17
- Farmer → Android app: submits sample
- Android app → API client: uses API client
- API client → Flask API: requests
- Farmer → Flask API: submits sample
- Flask API → Sample analysis: analyzes sample
- Sample analysis → Image screening: screens image
- Sample analysis → Demo spectrum: gets spectrum
- Sample analysis → Nutrition prediction: predicts nutrition
- Sample analysis → Storage risk: calculates risk
- Flask API → SQLite records: saves and reads samples
- Flask API → Sensor records: saves and reads sensors
- Sensor source → Flask API: sends readings
- Flask API → Storage risk: calculates status
- Flask API → PDF report: creates report
- Flask API → QR passport: creates QR passport
- SQLite records → PDF report: provides sample data
- SQLite records → QR passport: provides sample data