Recipe UOMs

Introducing sharp-recipe-parser

For almost four years now, I have maintained the Sharp Cooking app. From the beginning, one of the features I wanted to provide was ingredient UOM conversion. In version 1.4 of the app, a preview of the UOM conversion feature was made available. In this post, I will describe the process and how it was achieved. Before we get into UOM conversion, we first need to break down an ingredient line into its components....

August 5, 2023 · 3 min · LPains
Recipe Book

Using OCR to scan recipes into Sharp Cooking

Sharp Cooking app can currently import recipes directly from websites and backup files, making it easy to create a personal collection of recipes. However, it does not currently provide an option to scan recipes from a book or an image. This has been a long-requested feature that I am now attempting to add to the app, and will document the experience in this post. How? The first thing that comes to mind when trying to extract text from images is OCR....

March 12, 2023 · 9 min · LPains
Testing

Rewriting SharpCooking - Part 5 - The fun with Playwright

This is the fifth and final post in the series. If you haven’t read the previous posts, I recommend doing so for added context: The why and high level how The tech stack The unplanned API The DevOps I omitted a lot of information about Sharp Cooking’s testing in the previous posts in this series. I wanted to write a dedicated post about the experience, and this is it. Unit testing vs....

March 5, 2023 · 7 min · LPains
DevOps

Rewriting SharpCooking from Xamarin to PWA - Part 4

This is the fourth post on the series, if you haven’t seen the other posts yet, I recommend you read them for added context. The why and high level how The tech stack The unplanned API In this post, we will review the decisions and methods related to DevOps of Sharp Cooking. To summarize to the extreme, DevOps is all about people, processes, and tools. However, this post will focus mostly on processes and tools....

February 19, 2023 · 11 min · LPains
Python

Rewriting SharpCooking from Xamarin to PWA - Part 3

This is the third post in the series. If you haven’t seen the first two posts yet, I recommend you read them for added context. The why and high level how The tech stack The problem Sharp Cooking allows for recipe extraction from many websites. The original app makes a web request that loads the HTML page and parses the content to identify a recipe. The parsing is done using XPath and a configuration file determining the XPATH queries to be used....

January 29, 2023 · 8 min · LPains