Skip to content

Repository files navigation

Wasfty

A modern Flutter recipe discovery app — discover, search, and save recipes with a clean multi-screen experience.

Flutter Dart State%20Management Routing

Table of Contents

Overview

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

Key Features

App Features

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

Technical Highlights

  • State management: Provider
  • Navigation: go_router
  • Local storage: Hive + SharedPreferences
  • Images: cached_network_image
  • Loading UI: shimmer skeletons

Demo

Add a short GIF/video link here (recommended).

Run locally:

flutter pub get
flutter run

Screenshots

Place screenshots under docs/images/.

Hero Banner

Wasfty Hero Banner

Core Screens

Onboarding Profile Login Search Saved

Architecture

If you have an updated diagram, replace the image below.

Wasfty Architecture

Layered structure:

lib/
├── core/
├── data/
├── presentation/
├── router/
└── main.dart

Tech Stack

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

Repository Structure

.
├── lib/
├── test/
├── android/
├── ios/
├── linux/
├── web/
├── windows/
├── pubspec.yaml
└── README.md

Getting Started

Prerequisites

  • Flutter SDK
  • Android Studio or VS Code

Installation

git clone <your-repository-url>
cd wasftk
flutter pub get
flutter run

Firebase Authentication Setup

This project uses Firebase Email/Password for login/signup.

  1. Create a Firebase project and add Android + iOS apps.
  2. Enable Authentication → Sign-in method → Email/Password.
  3. Download and place the config files:
    • Android: android/app/google-services.json
    • iOS: ios/Runner/GoogleService-Info.plist
  4. Generate Flutter Firebase options:
dart pub global activate flutterfire_cli
flutterfire configure
  1. Fetch packages and run:
flutter pub get
flutter run

Testing

flutter test

Notes

  • 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

License

This project is for educational and portfolio use.

About

OS project

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages