EcoScan
EcoScan - AI-basiertes Abfall-Sorting-Gamification-Projekt für das KitaHack-Team der ITC UTHM
- Sterne
- 1
- Forks
- 0
- Letzter Push (UTC)
- 30.09.2026
- Projektstatus
- Aktiv
Original-README
Englischer Projektschnappschuss. Aktuelle Inhalte auf GitHub.
EcoScan
EcoScan is ToastTech's guest-first waste-sorting app. Point a camera at a household item and Firebase AI Logic asks Gemini to classify it, suggest a bin, and provide a short recycling tip.
The project began at KitaHack 2026 and is now being prepared as a public Flutter/Firebase project.
Access model
| Feature | Guest | Registered user |
|---|---|---|
| Home | Yes | Yes |
| AI waste scan | Yes | Yes |
| Local session points | Yes | Yes |
| Impact breakdown | Yes | Yes |
| Rankings | No | Yes |
Rankings currently contain preview entries and the signed-in user's local session points. A shared, persistent leaderboard will require a Firestore data model and security rules; the UI calls this out rather than presenting demo values as live data.
Architecture
Flutter web/mobile
├─ Firebase Authentication (email/password, Rankings only)
├─ Firebase App Check (abuse protection)
├─ Firebase AI Logic → Gemini Developer API (waste scans)
└─ Riverpod in-memory state (guest points and Impact)
Firebase Hosting serves build/web
The app does not contain a Gemini API key. Firebase AI Logic brokers AI calls, and App Check helps reject unauthorized clients. Firebase web configuration in lib/firebase_options.dart identifies the Firebase project; it is not a server secret.
Local development
Requirements
- Flutter 3.41.1 or a compatible stable release
- A Firebase project with a registered web app
- A browser/device with a camera
- Firebase CLI only if you plan to deploy
Firebase console setup
- In Authentication → Sign-in method, enable Email/Password.
- In Firebase AI Logic, start with the Gemini Developer API and enable the required API.
- In App Check, register the web app with a reCAPTCHA Enterprise provider.
- Add
localhostfor local testing and your Firebase Hosting domains for production. - Keep budget alerts and API usage monitoring enabled even when using no-cost quotas.
Run
flutter pub get
cp config.example.json config.local.json
flutter run -d chrome --dart-define-from-file=config.local.json
Replace the placeholder in config.local.json with the public reCAPTCHA Enterprise site key. config.local.json is ignored by Git. Do not add a Gemini API key, service-account JSON, passwords, or App Check debug tokens to this repository.
The camera requires HTTPS in production; localhost is accepted during development.
Validate and build
dart format --output=none --set-exit-if-changed lib test
flutter analyze
flutter test
flutter build web --release --dart-define-from-file=config.local.json
For detailed Firebase and GitHub deployment setup, see docs/DEPLOYMENT.md.
Project status
- Guest scanning and local Impact state are implemented.
- Rankings are account-gated with Firebase Authentication.
- Shared leaderboard persistence, password reset, account deletion, scan history, and recycling-centre maps are not implemented yet.
- Bin colours are a prototype convention. Disposal guidance varies by local authority and should be verified before a public regional launch.
Contributing and security
See CONTRIBUTING.md, CODE_OF_CONDUCT.md, and SECURITY.md.
License
EcoScan is licensed under the GNU General Public License v3.0. Derivative distributions must comply with the GPL's source-sharing requirements.
Kategorien
Verwendete Abhängigkeiten
Abhängigkeiten 10 Einträge
- flutter
{"sdk":"flutter"} - flutter_riverpod
^3.3.2 - firebase_ai
^4.0.0 - firebase_app_check
^0.4.8 - firebase_auth
^6.2.0 - firebase_core
^4.3.0 - cupertino_icons
^1.0.8 - camera
^0.11.3+1 - flutter_testEntwicklung
{"sdk":"flutter"} - flutter_lintsEntwicklung
^6.0.0
Wie wähle ich ein passendes Repository?
Nach Anwendungsfall filtern, Aktivität vergleichen und vor der Nutzung das Originalprojekt prüfen.
- Nach Name, Autor oder Beschreibung suchen und nach Thema eingrenzen.
- Sterne, Forks und letzte Pushes vergleichen. Sterne zeigen Interesse, garantieren aber keine Qualität.
- Vor der Nutzung README, Lizenz und Issues auf GitHub prüfen.
Quellen und Pflege
“A repository is the most basic element of GitHub.”
GitHub Docs — About repositories ↗
- SNFASA/EcoScan · GitHub ↗
- GitHub Docs — Saving repositories with stars ↗
- Verzeichnis gepflegt von Ducafecat ↗