A Flutter application for managing recipes with Firebase authentication and SQLite local storage.
- User authentication (Sign up/Login)
- View recipes from TheMealDB API
- Create, Read, Update, Delete (CRUD) recipe operations (Only in Mobile)
- Local data persistence using SQLite (Only in Mobile)
- Recipe search and filtering
- Category-based organization
- Image upload support (Only in Mobile)
- Responsive design
- Provider for state management
- ValueNotifier for reactive UI updates
- Key packages used:
firebase_core&firebase_authfor authenticationsqflitefor local databaseimage_pickerfor image selectionhttpfor API callsshared_preferencesfor local storageproviderfor state management
Before running the app, make sure you have:
- Flutter SDK installed (version 3.0.0 or higher)
- Firebase project set up
- Android Studio/VS Code with Flutter plugins
- Android emulator or physical device
- Clone the repository:
git clone https://github.com/your-username/FourtitudeAssessment.git- Install dependencies:
flutter pub get- Setup local database:
- The app will automatically create required tables on first run
- No additional setup needed for SQLite
- Run using development flavor:
flutter run --flavor development -t lib/flavors/main_development.dart- Build APK for development:
flutter build apk --flavor development -t lib/flavors/main_development.dart- Build App Bundle for development:
flutter build appbundle --flavor development -t lib/flavors/main_development.dartlib/
├── configs/ # App configurations
├── modules/ # Feature modules
│ ├── screens/ # UI screens
│ ├── services/ # Business logic
│ └── logins/ # Authentication
├── commons/ # Shared utilities
└── flavors/ # Different app flavors
The app uses SQLite with the following main table:
CREATE TABLE recipes (
id TEXT PRIMARY KEY,
datasource TEXT,
name TEXT,
type TEXT,
source TEXT,
imagePath TEXT,
dateInsert TEXT
)