ReNosh is a Flutter-based mobile and web application designed to help food establishments manage surplus food, reduce waste, and promote sustainability. By leveraging AI-driven predictions and real-time data tracking, ReNosh empowers restaurants to optimize inventory, donate surplus food, and track sustainability metrics. The app integrates with Firebase for authentication and data storage, uses the ReNosh API and Gemini API for AI-powered insights, and provides visualizations with interactive charts.
- AI-Powered Predictions: Forecast daily food demand using the ReNosh API to minimize overproduction.
- Surplus Management: Track and manage surplus food items, with options to view details and donate.
- Sustainability Tracking: Visualize metrics like meals donated, food saved (kg), and waste reduction impact with interactive charts.
- AI Insights: Get actionable recommendations powered by the Gemini API to optimize operations and reduce waste.
- Offline Support: Access cached data when offline, with an offline mode indicator.
- User Authentication: Secure login for food establishments using Firebase Authentication.
- Responsive Design: Smooth animations and a modern UI with Google Fonts and gradient themes.
- Launch the app and log in using your food establishment credentials (via Firebase Authentication).
- If no user is logged in, you’ll be redirected to the login screen.
- View a personalized greeting and your establishment’s name.
- Check AI predictions for the day (e.g., predicted demand for dishes like Butter Chicken).
- Monitor surplus items and navigate to detailed views.
- Explore sustainability charts (meals donated, food saved, waste reduction impact).
- Tap the AI Insights card for actionable recommendations.
- Click "Predictions of the Day" to see detailed forecasts for each dish, including trends compared to yesterday.
- Refresh predictions if needed (supports offline mode with cached data).
- View charts showing your impact over the last 7 days, including meals donated and food saved.
- Cloud Integration: Uses Firebase Firestore for real-time data storage, enabling seamless scaling as the user base grows.
- API-Driven Predictions: Relies on the ReNosh API (
https://renosh-api.onrender.com) and Gemini API, which can be scaled independently. - Caching Mechanism: Implements local caching with
shared_preferencesto reduce server load and ensure offline functionality. - Modular Design: The app’s architecture allows for easy addition of new features.
- Isolate for Heavy Tasks: Uses Flutter’s
computefunction to offload heavy computations, ensuring UI responsiveness.
- Frontend: Flutter (Dart) for cross-platform mobile and web development.
- Backend: Firebase (Authentication, Firestore) for user management and data storage.
- APIs:
- ReNosh API (
https://renosh-api.onrender.com) for predictions. - Gemini API for AI insights.
- ReNosh API (
- Android Studio/Xcode for development.
- Git for version control.
- Firebase CLI for Firebase setup.
Ensure you have the following installed/configured:
- Flutter SDK: Version 3.0.0 or higher.
- Dart: Version 2.17.0 or higher.
- Firebase Account: For authentication and Firestore.
- API Keys:
- ReNosh API key (contact project maintainers).
- Gemini API key (optional, for AI insights).
- Android Studio/Xcode: For running the app locally.
- Git: To clone the repository.
git clone https://github.com/sumanthd032/ReNosh-AI.git
cd ReNosh-AIflutter pub get- Create a Firebase project in the Firebase Console.
- Add Android, iOS, and web apps to your Firebase project.
- Download
google-services.json(Android) andGoogleService-Info.plist(iOS) from Firebase Console. - Place them in
android/app/andios/Runner/, respectively.
npm install -g firebase-tools
dart pub global activate flutterfire_cli- Copy Firebase configuration from Firebase Console.
- Update
web/index.htmlwith Firebase SDK and config:
<script src="https://www.gstatic.com/firebasejs/10.12.2/firebase-app.js"></script>
<script src="https://www.gstatic.com/firebasejs/10.12.2/firebase-auth.js"></script>
<script src="https://www.gstatic.com/firebasejs/10.12.2/firebase-firestore.js"></script>
<script>
const firebaseConfig = {
apiKey: "YOUR_API_KEY",
authDomain: "YOUR_AUTH_DOMAIN",
projectId: "YOUR_PROJECT_ID",
storageBucket: "YOUR_STORAGE_BUCKET",
messagingSenderId: "YOUR_MESSAGING_SENDER_ID",
appId: "YOUR_APP_ID"
};
firebase.initializeApp(firebaseConfig);
</script>Create lib/secrets.dart:
final geminiApi = "YOUR API KEY"flutter runflutter run -d chrome- Sensitive files are excluded via
.gitignore. - API keys are stored securely and should never be committed.
- For production, use environment variables or secure config services.
- Regularly review Firebase Security Rules.
This project is licensed under the MIT License - see the LICENSE file for details.
For support or inquiries, contact: sumanthd032@gmail.com
GitHub: sumanthd032