ChefKit is a modern, multilingual cooking app built with Flutter and Flask. It combines recipe discovery, chef profiles, inventory management, favorites, and push notifications in one mobile experience.
ChefKit is designed to help users discover recipes, manage ingredients, and engage with chefs through a responsive and localized experience.
Core outcomes:
- Personalized recipe discovery and recommendations
- Reliable favorites and chef follow workflows
- Ingredient-based inventory support
- Multilingual UX (English, Arabic, French)
- Push notifications for daily cooking engagement
Frontend:
- Flutter
- flutter_bloc
- http
- sqflite
- firebase_messaging
- flutter_dotenv
Backend:
- Flask
- Supabase (database + auth)
- Firebase Admin SDK
- APScheduler
- Cloudinary
| Home | Recipe Discovery | Search |
|---|---|---|
![]() |
![]() |
![]() |
| Inventory | Chef Profiles | Profile |
|---|---|---|
![]() |
![]() |
![]() |
| Sign In | OTP | Arabic |
|---|---|---|
![]() |
![]() |
![]() |
- Recipe discovery with trending and seasonal content
- Smart search and recommendations
- Ingredient inventory tracking
- Chef profiles with follow support
- Authentication flow with OTP
- Multilingual support (English, Arabic RTL, French)
Users can:
- Save recipes via heart action
- View all favorites in dedicated page
- Sync favorites with backend
- Benefit from optimistic UI updates
Technical notes:
- Supabase
users.user_favourite_recipeesarray - Local cache for offline access
- Retry + error recovery handling
Users can:
- Follow/unfollow chefs
- See follower counts update in real-time
- Sync changes with backend
- Get optimistic UI feedback
Technical notes:
- Supabase
followstable - Trigger-based follower count updates
- Proper auth checks and resilient rollback behavior
Prerequisites:
- Flutter 3.x+
- Python 3.8+
- Node.js (Firebase tooling)
- Supabase account
- Firebase account
Local development:
# backend
./start_backend.sh
# app
./start_app_local.shProduction app run:
./start_app_prod.shBackend:
cd backend
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txtbackend/.env:
SUPABASE_URL=your_supabase_url
SUPABASE_ANON_KEY=your_anon_key
SUPABASE_SERVICE_KEY=your_service_keyStart backend:
python app.pyFlutter app:
flutter pub getProject root .env:
BASE_URL=http://localhost:8000
SUPABASE_URL=your_supabase_url
SUPABASE_ANON_KEY=your_anon_keyRun app:
flutter run --dart-define=BASE_URL=http://localhost:8000chefkit/
|- lib/
| |- blocs/ # State management (BLoC)
| |- domain/ # Models and repositories
| |- views/ # UI screens and widgets
| |- common/ # Shared utilities
| |- l10n/ # Localization files
|- backend/
| |- app.py # Flask application
| |- services.py # Business logic
| |- auth.py # Authentication middleware
| |- requirements.txt # Python dependencies
|- assets/
| |- images/ # App images
| |- fonts/ # Custom fonts
|- test/ # Unit and widget tests
flutter test
flutter test integration_test/
flutter test test/authentication/auth_cubit_test.dartBackend not running:
lsof -ti:8000
lsof -ti:8000 | xargs kill -9
./start_backend.shFlutter build errors:
flutter clean
flutter pub get
flutter runFavorites not saving:
- Verify backend health:
curl http://localhost:8000/health - Ensure user is authenticated (not guest)
- Check backend logs
- Confirm
BASE_URLin.env
Chef follow issues:
- Confirm backend is running
- Verify authentication token
- Review Supabase/backend logs
- Fixed recipe favorites persistence
- Fixed chef follow functionality
- Improved retry and error handling
- Added optimistic UI updates
- Fixed favorites list refresh behavior
- Added localization coverage for favorites
- Added startup scripts for faster setup
Details: FIXES_APPLIED.md
- Recipe translations require DB availability (fallback to English)
- Local cache can desync across devices (pull-to-refresh resolves)
- Network is still required for follow/favorite operations
- Offline queue for favorites sync
- Sync status indicator
- Pagination for large favorites
- Undo action for unfavorite
- Local caching of follow state
- Animated heart interaction
- Rich notifications for likes/follows
- Recipe social sharing
- Voice-guided cooking
- Meal planning calendar
This project is proprietary software. All rights reserved.
- Development Team - ChefKit
For issues or questions, contact the development team.








