BioScout is a Django-based biodiversity observation platform with a modern Flutter mobile app. It enables users to submit, view, validate, and analyze species observations, with AI-powered species suggestions, multilingual support, and robust permission controls. The mobile app works offline and syncs data when online.
- User registration, login, and profile management (with profile pictures)
- Submit, update, and delete observations (with image upload)
- AI-powered species suggestions for uploaded images
- Validation and correction requests for observations
- Multilingual support and chatbot (RAG-QA) with translation
- Strong permission controls (only owners can edit/delete their observations)
- Modern, responsive UI with Bootstrap
- Landing page with featured observations, top validators, and most active observers
- Static and media file handling
- Offline-first: Observations are stored locally and synced with the server when online
- User authentication (login, signup, logout)
- Submit new observations with images (camera/gallery)
- View list of all observations (with images, notes, sync status)
- View detailed observation info (AI suggestions, validations, corrections)
- Modern, responsive UI with green theme
- Pull-to-refresh and smooth navigation
/Django Backend
├── bioscout/ # Django project settings
├── users/ # User management app
├── observations/ # Observations app
├── rag_knowledge_base/ # RAG-QA chatbot
├── static/ # Static files
├── media/ # Uploaded images
├── db.sqlite3 # SQLite database
├── manage.py
/Flutter Mobile App
└── bioscout_mobile/
├── lib/
│ ├── main.dart
│ ├── screens/ # UI screens (login, register, home, add, details)
│ ├── providers/ # State management (auth, observation)
│ ├── services/ # API service
│ └── database/ # Local SQLite helper
├── pubspec.yaml # Flutter dependencies
└── ...
- Install dependencies:
pip install -r requirements.txt
- Apply migrations:
python manage.py migrate
- Create superuser (optional):
python manage.py createsuperuser
- Run the server:
python manage.py runserver
- Install Flutter: Flutter Install Guide
- Install dependencies:
cd bioscout_mobile flutter pub get - Configure API URL:
- Create a
.envfile inbioscout_mobile/with:API_URL=http://<your-server-ip>:8000 - (For Android emulator, use
http://10.0.2.2:8000)
- Create a
- Run the app:
flutter run
- Authentication: Secure login, registration, and logout
- Offline Observations: Add observations offline; syncs automatically when online
- Image Upload: Attach photos from camera or gallery
- Observation List: View all observations with sync status
- Details View: See all info, AI suggestions, validations, and corrections
- Modern UI: Green theme, responsive design, smooth navigation
Pull requests are welcome! For major changes, please open an issue first to discuss what you would like to change.