This repository contains the source code for the iOS and Android mobile app Recipe Roots.
Authored by Owen Bean, SJ Franklin, and Shea Durgin.
Recipe Roots is a family cookbook that fits in your pocket. It holds records of your relatives recipes while properly attributing them as authors. You are able to construct your family tree to properly showcase your Recipe Roots. Here is a peek into what it looks like!
Follow these instructions to run and edit the app
- Follow the Flutter installation guide
- After running
doctor
in the VSCode Command Palette, install the Flutter SDK if prompted - Clone the RecipeRootsApp Repository
cd
intoRecipeRootsApp
- Execute
flutter pub get
for dependencies
- Follow the documentation for android setup
- Follow both the 'Install Android Studio' and 'Set up the Android Emulator' steps
- If having trouble finding the 'Device Manager' button, it is on the right tab on Android Studio
- Follow this documentation to locate you Android/Sdk folder
- Make sure "Android SDK Command-line Tools (lastest)' is installed under Settings->Languages & Frameworks->Android SDK->SDK Tools
- Execute the following commands
flutter config --android-sdk "path/to/android/sdk"
flutter doctor --android-licenses
- Restart VSCode
cd
toRecipeRootsApp/lib/main.dart
- Press start debugging in the top right start dropdown menu
- The app will launch in the emulator on Android Studio (First run may take a bit of time)
- While editing the code, you can save the file to instantly update the app on the emulator
RecipeRootsApp/lib/
├── dao/recipe_roots_dao.dart # database and sql queries
├── domain/ # defines many classes
...
├── helper/ # helper functions
| └── map_index.dart # apply function to items
| └── the_person.dart # class for user
├── service/ # abstraction layer connecting UI to Database
| └── family_service.dart # manage and retrieve family tree information
| └── person_service.dart # define and interact with persons
| └── recipe_service.dart # handle recipe operations
├── view/ # UI code
| ├── widget/ # define global widgets
...
| ├── window/ # three tab UI code
| | ├── family_tree/ # family tree tab
| | | ├── widget/ # define family tree page widgets
...
| | | ├── family_tree_add.dart # add child to parent relationships
| | | ├── family_tree_view.dart # view family tree graph
| | | ├── family_tree_view_list.dart # list child to parent relationships
| | ├── people/ # people tab
| | | ├── widget/ # define people page widgets
...
| | | ├── people_add.dart # add new people
| | | ├── people_view.dart # view all people
| | ├── recipe/ # recipe tab
| | | ├── widget/ # define recipe page widgets
...
| | | ├── recipe_edit.dart # edit recipes
| | | ├── recipe_view.dart # view recipe
| | | ├── recipes_view.dart # view list of recipes
...
| └── navigation_view.dart # navigation bar
| └── setup_user.dart # initial user setup
Sections and their Capabilities
- Add/Edit Yourself and Relatives
- Delete Relatives
- Add/Edit/Delete Relatives Relationships to Yourself
- Add/Edit/Delete Child-To-Parent Relations
- Move Nodes
- Search for Recipes from Node
- Add/Edit/Delete Recipes
- Recipe Name
- Description
- Author(s)
- Ingredients
- Cooking Steps
- Search for Recipes by
- Title
- Description
- People
- Family Relation
- Ingredients