SofiCuisine - The ultimate cooking recipes manager ( for me, of course )

I’m thrilled to share a small but exciting programming project that I’m embarking on.

This project is an exciting opportunity for me to apply my programming knowledge and develop a solution for me and my lovely girlfriend ( Sofi ) and our lack of organization in the kitchen and weekly groceries.

État de l’art

The main ideia for the base project is to create a recipes manager with 5 simple features:

  • Add, Remove and Update Recipes with bulk adding from different sources, as manual, scrapping books, websites and consume API’s.
  • Have dinamic properties to recipes, like, we can create different entities to classify our recipes.
  • Schedule weekly our monthly meals. ( maybe integration with google calendar )
  • Make a grocery list from weekly/monthly schedule. ( in several formats, maybe integrate with a notes application )
  • Basic role and permissions system so we can controll all the aplication.

Inital Stack ( can change )

  • Backend:
    • Laravel 10*
  • Frontend:
    • Nuxt 3*
  • Database:
    • MySQL 8*
  • Mobile Application:
    • 🙈 🙈 🙈 🙈

Let’s begin

Entity–relationship Model V1

As i said, i want to make the system the most dinamic possible for the final user ( Sofi and me ). For that i added a entities recipes table with a pivot table to work as a dynamic table.

Recipes Entities Diagram

I used the same ideia for the ingredients table.

Ingredient Entities Diagram

The schedule module will be very simple, and probably i will have to change it if in future if i want to integrate with Google Calendar or something like that.

Schedule Diagram

For permissions i will use the spatie/laravel-permission* because i don’t want to reinvent the wheel and isn’t my main focus on this project.

Spatie Permissions Diagram

You will see that i don’t have a place to record multimedia, because i’m still working on that, and choosing the service that i will use to store it.

For now, that’s it, i will put the flows on paper and start my epic (so-so) journey.

Useful links: Laravel | Nuxt | MySQL | spatie/laravel-permission