{"id":17898759,"url":"https://github.com/mrvplusone/recipemanager","last_synced_at":"2025-10-04T01:41:35.908Z","repository":{"id":132436127,"uuid":"164339848","full_name":"MrVPlusOne/RecipeManager","owner":"MrVPlusOne","description":"Mr V+1's Recipe Manager for Scala Programmers","archived":false,"fork":false,"pushed_at":"2019-01-11T17:01:59.000Z","size":18,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-08T19:11:54.495Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Scala","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MrVPlusOne.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-01-06T19:46:17.000Z","updated_at":"2019-01-11T17:02:01.000Z","dependencies_parsed_at":null,"dependency_job_id":"ef97f9c7-5774-463e-af16-7033da4bf945","html_url":"https://github.com/MrVPlusOne/RecipeManager","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrVPlusOne%2FRecipeManager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrVPlusOne%2FRecipeManager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrVPlusOne%2FRecipeManager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrVPlusOne%2FRecipeManager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MrVPlusOne","download_url":"https://codeload.github.com/MrVPlusOne/RecipeManager/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246939239,"owners_count":20857922,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-28T15:38:52.985Z","updated_at":"2025-10-04T01:41:30.875Z","avatar_url":"https://github.com/MrVPlusOne.png","language":"Scala","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Mr V+1's Recipe Manager for Scala Programmers\n\n## Examples\n\n#### Declare a recipe\n```scala\nimport recipe.RecipeManager._\nimport RecipeAPI._\nimport Ingredient._\nimport scala.concurrent.duration._\n\nval slowCookerHoneyGarlicChicken = Recipe(\n  name = \"Slow cooker honey garlic chicken\",\n  servings = 8,\n  videoLink = Some(\"https://youtu.be/dfR_LdA3fPI?t=43\"),\n  stages = Vector(\n    CookingStage(\n      Container.bowl,\n      Vector(\n        add(honey, 0.5 cup),\n        add(soySauce, 0.5 cup),\n        add(garlic, 4 clove),\n        add(driedBasil, 1 tsp),\n        add(driedOregano, 1 tsp),\n        add(crushedRedPepper, 0.5 tsp),\n        add(blackPepper, 0.5 tsp),\n        Instruction(\"mix all\")\n      )\n    ),\n    CookingStage(\n      Container.fryingPan,\n      Vector(\n        add(chickenThigh, 4 piece),\n        Instruction(\"add 1/2 of the previous mix\"),\n        add(redPotato, 1 lb),\n        add(carrot, 1 lb),\n        add(chickenThigh, 4 piece),\n        add(salt, 0.5 tsp),\n        Instruction(\"add the remaining mix\"),\n        Instruction(\"set fire to medium-high\"),\n        Wait(6 hours),\n        WaitUntil(\"chicken cooked\"),\n        add(greenBean, 1 lb),\n        Instruction(\"(optional) broil\"),\n        Wait(4 minutes)\n      )\n    )\n  )\n)\n\n```\n\n#### Generate recipe checklist\n```scala\nprintln{\n  slowCookerHoneyGarlicChicken.makeServings(4).checkListFormat\n}\n\n/* [output]:\n\nSlow cooker honey garlic chicken\nservings: 2.0 \nlink: https://youtu.be/dfR_LdA3fPI?t=43\n-----------------\nIn Bowl: \n  add Honey (4.0 tbsp)\n  add Soy sauce (4.0 tbsp)\n  add Garlic (2.0 clove)\n  add Dried basil (0.5 tsp)\n  add Dried oregano (0.5 tsp)\n  add Crushed red pepper (0.25 tsp)\n  add Black pepper (0.25 tsp)\n  mix all\n\nIn Frying pan: \n  add Chicken thigh (2.0 piece)\n  add 1/2 of the previous mix\n  add Red potato (8.0 oz)\n  add Carrot (8.0 oz)\n  add Chicken thigh (2.0 piece)\n  add Salt (0.25 tsp)\n  add the remaining mix\n  set fire to medium-high\n  wait 6 hours (should adjust for 0.5 portion)\n  wait until chicken cooked\n  add Green bean (8.0 oz)\n  (optional) broil\n  wait 4 minutes (should adjust for 0.5 portion)\n */\n```\n\n#### Generate a shopping list for multiple recipes (sorted by category)\n```scala\nval shoppingList = generateShoppingList(\n  Seq(\n    shrimpAndAsparagusStirFry.makeServings(1),\n    slowCookerHoneyGarlicChicken.makeServings(2)\n  )\n)\nprintln(shoppingList)\n\n/* [output]:\n\nAsparagus          | 10.67 oz\nCarrot             | 8.0 oz\nGarlic             | 2.67 clove\nGinger             | 0.67 tsp\nGreen bean         | 8.0 oz\nRed potato         | 8.0 oz\nLemon              | 1.33 tbsp\nBlack pepper       | 0.25 tsp\nCrushed red pepper | 0.58 tsp\nDried basil        | 0.5 tsp\nDried oregano      | 0.5 tsp\nHoney              | 7.09 cup\nOlive oil          | 2.66 tbsp\nSalt               | 0.91 tsp\nSoy sauce          | 7.32 cup\nChicken thigh      | 4.0 piece\nShrimp             | 10.67 oz\n */\n```\n\n#### Extension\nWant to add more ingredients? Check out [RecipeManager.scala](src/main/scala/recipe/RecipeManager.scala).\n\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrvplusone%2Frecipemanager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmrvplusone%2Frecipemanager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrvplusone%2Frecipemanager/lists"}