pawan087 / Ortolan

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool


Logo

Ortolan

Explore the website »

Table of Contents
  1. About The Project
  2. Interesting Issues
  3. Features to Implement Next
  4. Contact

About The Project

Back to top


Ortolan is a web application built for professional chefs to automate and organize the non technical aspect of cooking. Ortolan eases the creation, exploration, and organization of the recipe archival process. With every new recipe entered by a user Ortolan will be able to predict the completion of ingredients and ordering categories to help expedite the completion of recipe additions. Ortolan also offers a project board where projects can be made, tasks created, and assignments to cooks given. Watch the progress of these tasks in real time.

Built With

Back to top

Usage

Ortolan offers multiple search functionalities to find the recipe you are looking for. You can search via the tree, either by the tags of the recipe or the year/season. You can also use the search bar to find a specific recipe. Lastly, you can search by photo.


search


Ortolan offers a dynamic recipe creation form. Enter as many sub recipes and ingredients as needed. Everything can be adjusted. The title, the photo, the components, the season, the ingredients, the sub recipes, and the tags. Go wild! The more recipes a user enters, the more Ortolan will be able to help fill it out quicker. The database grows and knows what purveyors you are ordering things from and fills it out for you.


new


Ortolan offers the ability to go back into the recipes that you have previously published and change anything you need to.


edit


Ortolan allows for organization of daily/weekly/monthly projects. Add the project, assign the cooks, watch the progress!


project


Create a new project by adding a title and description, and any optional smaller tasks for that project.


new-project


Upon completion, or if you decided to head another direction, delete any project!


delete-project


Interesting Issues:

Dynamic Form for Recipe

Back to top

Issue: Each dish or base recipe can have many sub recipes. Each of these sub recipes can have many ingredients. I had a hard time wrapping my head around this at first while maintaining a clean state and controlling each input within the component. The backend I built required for each of these things be connected to each other. An ingredient to an ordering category and a sub recipe, and a sub recipe to the base recipe. Because of this I built the api endpoint for creating a recipe to recieve a giant JSON object, which breaks it down and creates those rows in the database in order.

Solution: I found a way to set the sub recipe state to an array filled with an object template for all of the keys that one sub recipe with one ingredient would have. When a user clicks to add an additional subrecipe, I copy the current state into an array, and push another one of the templates into it. For an ingredient in a specific sub recipe, I push another ingredient template into the specific subrecipe in the state. This way I'm able to keep track of each individual ingredient and sub recipe all in one state.

Features to Implement Next

Back to top

Overview: I would like to implement many features to this application, I see this being something I work on for many years as a passion project. The next few features I would like to work on for the admin user include: Organizing the restaurants current menu, the ability to share certain recipes with team members, and an ordering guide for the entire current menu.

Feature: Current Menu

How I would do it: This is a simple implementation, but I would add another table to the database that would like the admin user and a dish, any row of that table linked to a specific user would be a dish on the menu. Further I would like to add some additional information to that table, holding data on the current menu price, and position on the menu.

Feature: Sharing Recipes

How I would do it: I believe this needs another table as well. Each row in this table would connect a recipe to a non admin user, and a non admin user would have a component made to see recipes that have been shared with them.

Feature: Ordering Guide

How I would do it: I was thinking ahead a bit when I was designing the initial database schema for this project. Because of that, this feature will be seamless to add to the project. To make this work, I would grab all of the information about the current menu's subrecipes, which include the ingredients. Each ingredient has a category for ordering already set to it. I would then map through the data and organize the ingredients based on the category, and display it as so in a component.

Contact

Back to top

Jordan Guevara - LinkedIn - jordansacct@gmail.com

Project Repo Link: https://github.com/Jguevara1208/Ortolan

Project Link: https://ortolan.herokuapp.com/

About


Languages

Language:CSS 49.8%Language:Python 47.9%Language:HTML 1.0%Language:Dockerfile 0.6%Language:Mako 0.5%Language:Shell 0.2%