Niles - the Digital Manservant is an app build with the intention to make life a little bit easier. As a person who loves to cook, but who is getting tired of having to make shopping lists and finding recipes with what I have in store. I wanted to create an app that helps me with this process, so I have more time to spend on actual cooking. (or other things)
- Intro
- Table of Contents
- Personal Goals
- MVP
- Upcoming Features
- Frontend
- Backend
- History of Pull Requests
- Tech Used
- Git
- Important Links
For this project I really wanted to figure out how to work with React Native and create an app for my phone. I was adviced to set it up with Expo, which is really great to work with. And even comes with it's own barcode scanner. Which is exactly what I needed. Being able to use these kind of features on your phone like the camera was also new for me. Working with git, making pull requests and commiting regularly and clearly wasn't something I had really commited to before this project. Other things I learned that were challenging, was working with these external API's, like Google Cloud Vision API, Edamam Recipe API and Open Food Facts API. Other things that we learned during the Codaisseur course I really tried to put into practice as well. Things like setting up a clear structure for your folders, with understandable names. Writing code that is easily readable and understandable. And all kinds of tech and tools we learned during the course, like Redux, Axios, Express, Sequelize, etc.
If you like my project and want to contact me, visit my homepage for the necessary information.
Right now I have a M(inimal) V(iable) P(roduct) ready, in which you can register/login and then either take a picture of a product for scanning with Google Cloud Vision API or scan the barcode of a product with the expo's barcodeScanner connected to the Open Food Facts API.
Since they both work with labels, the user is then able to select the label that fits their product best with which the app will then search for and display recipes, thanks to Edamam Recipe API. Clicking on a recipe will land you on the recipe's details page where you can read and cross off the ingredients.
First off, I want to add on what I already have. Creating select options to filter the recipes for example, or perhaps give the user the option to also search for recipes by just plain typing of the words.
I also really want to add a kind of digital storage space, where as a user you can scan the product that you buy, and then select from your storage the items that you want to use for cooking and then find recipes including those items.
Next I also want to create a more ellaborate shopping list (instead of just crossing of the ingredients)
And then it would really start to feel like a great app. But to make it even better I would like to add a kind of food diary where you can keep track of what you eat. And where Niles could give you tips on what to eat, since he will know what might be missing from your diet.
Screens
Components
Store
Other
Routers
Models
Migrations
Seeders
Utils
Other
Frontend
- Feat Image Recognition
- Feat Render Recipes
- Feat Barcode Scanner
- Feat Register and Login
- Change Remove Cleanup
- Styling
- AppState
- Fix Camera Error
- Add GIFs of app for Readme
- Change GIFs for Readme
Backend
- Feat Image Recognition
- Feat Barcode Scanner
- Feat Register and Login
- Delete config.json
- Revert delete config.json
- Change remove cleanup
- React-Native
- Redux
- Axios
- Expo
- Firebase
- Express
- REST API
- Sequelize
- PostgreSQL
- Node js
- Google Cloud Vision
- Edamam Recipe API
- Open Food Facts API
During this project I also learned how to use git properly:
- creating new branches when implementing new features
- regular and clear commit message
- pull requests with summary