A modern Flutter recipe discovery app — discover, search, and save recipes with a clean multi-screen experience.
- Overview
- Key Features
- Demo
- Screenshots
- Architecture
- Tech Stack
- Repository Structure
- Getting Started
- Firebase Authentication Setup
- Testing
- Notes
- License
Many recipe apps feel cluttered or make it difficult to quickly find meals that match a user’s preferences (time, diet, and ingredients).
Wasfty focuses on a smooth recipe journey:
- Onboarding + splash flow
- Home feed with categories and recommendations
- Debounced search with optional filters
- Recipe details (ingredients, instructions, nutrition)
- Local saved recipes and profile preferences
| Feature | Description |
|---|---|
| Splash + Onboarding | First-run onboarding with local persistence |
| Home Feed | Popular and recommended recipes |
| Category Filtering | Filter by recipe type from home chips |
| Real-time Search | Debounced search + autocomplete suggestions |
| Recipe Details | Ingredients, instructions, and nutrition tabs |
| Saved Recipes | Bookmark recipes locally with Hive |
| Profile Settings | Dietary preferences and app settings |
- State management: Provider
- Navigation: go_router
- Local storage: Hive + SharedPreferences
- Images: cached_network_image
- Loading UI: shimmer skeletons
Add a short GIF/video link here (recommended).
Run locally:
flutter pub get
flutter runPlace screenshots under
docs/images/.
If you have an updated diagram, replace the image below.
Layered structure:
lib/
├── core/
├── data/
├── presentation/
├── router/
└── main.dart
| Layer | Technology |
|---|---|
| UI Framework | Flutter |
| Language | Dart |
| State Management | Provider |
| Navigation | go_router |
| Remote API | TheMealDB |
| Networking | http |
| Local DB | Hive |
| Preferences | SharedPreferences |
| Image Caching | cached_network_image |
| Loading Skeleton | shimmer |
.
├── lib/
├── test/
├── android/
├── ios/
├── linux/
├── web/
├── windows/
├── pubspec.yaml
└── README.md
- Flutter SDK
- Android Studio or VS Code
git clone <your-repository-url>
cd wasftk
flutter pub get
flutter runThis project uses Firebase Email/Password for login/signup.
- Create a Firebase project and add Android + iOS apps.
- Enable Authentication → Sign-in method → Email/Password.
- Download and place the config files:
- Android:
android/app/google-services.json - iOS:
ios/Runner/GoogleService-Info.plist
- Android:
- Generate Flutter Firebase options:
dart pub global activate flutterfire_cli
flutterfire configure- Fetch packages and run:
flutter pub get
flutter runflutter test- Keep all README images under
docs/images/to avoid broken links. - Consider adding:
- a short demo GIF/video
- a “Contributing” section if you want external contributions
This project is for educational and portfolio use.






