CookBook is an Android application where users can view and search for recipes, and create their own recipes. A friend of mine always complains that he constantly has to eat frozen food because he does not know any recipes and how to cook. So, this app if for anybody looking for an easy way to find recipes and eat actual meals.
| Must Have | Implemented |
|---|---|
| Users must be able to search for recipes based on dish name | ✔️ |
| Users can view recipes based on categories | ✔️ |
| Users must be able to create their own recipes | ✔️ |
| Users must be able to view their own recipes at anytime | ✔️ |
| When user create their recipes, they must be able to include ingridients and steps | ✔️ |
| A user must be able to register themselves with an email and password | ✔️ |
| A user must be able to log in with their email and password | ✔️ |
| Should Have | Implemented |
|---|---|
| Users can see pictures of searched recipes | ✔️ |
| When creating recipes, users can include an image of the dish | ❌ |
| Users can favourite recipes, so that they can view them whenever | ✔️ |
| Could Have | Implemented |
|---|---|
| Deleting created recipes | ✔️ |
| Users can rate recipes | ❌ |
| Users can see the rating of recipes | ❌ |
| Won't Have | Implemented |
|---|---|
| Users being able to see other users' profiles | ❌ |
| Commenting on recipes | ❌ |
| Profile customization | ❌ |
| Updating created recipes | ❌ |
Youtube link - https://www.youtube.com/watch?v=zpE_CeONH_0
| Curriculum | Covered |
|---|---|
| Layouts & Android basics | ✔️ |
| Activities & Resources | ✔️ |
| Intents & Fragments | ✔️ |
| User Experience | ✔️ |
| RecyclerViews | ✔️ |
| Application Architecture | ✔️ |
| Local Data Storage | ✔️ |
| Networking | ✔️ |
| Google Services | ✔️ |
| Testing & Publishing | ❌ |
- Inserting an image when creating your own recipe
Could not be done because I could not save an image in SQLite. The implicit intent works like a charm, but nothing else does. I could have used Blob, but I didnt. I tried to save the path of the image from the gallery as a string, but it just didnt work with Glide, eventhough the path of the image and the path returned from the database were same, and there were no errors thrown. So i really didnt know what went wrong here. The code is still available and commented out in AddRecipeFragment under view folder.
I could have just removed the image all together and just have title, ingredients and steps, which would be more user friendly as it would not confuse users. But I still left it in there just to show that I did try to do it.
Temporary solution: Generating random food pictures from drawable folder.
- Having search bar in the top bar
I tried to do it by following the material design guidelines, but I could not navigate between fragments and pass the data entered in the search bar in the top bar since the top bar is 'part of main acitvity' and everything else are fragments (i could be completely wrong about this). I am able to do only from one fragment, but if the search bar is in top bar, one should be able to search from any fragment.
Temporary solution: Created a new fragment just for searching, included in bottom nav menu.
- Have user added recipes be searched and viewed by other users.
The reason this is not implemented is because I wanted to show that I can work with local data storage as well. But if I would have implemented it, I would have saved all user added recipes in Firebase Realtime database, and call them when retrieving recipes from API.
- Rating recipes and viewing them
Ran out of time before implementing this. Should be doable though. Solution would be to use Firebase Realtime Database and store ratings there and retrive.
- Could add confirmation pop up when deleting a recipe.
- Have the back button working in the top bar.


