Hi, I'm Justin, creator of My Smoothie Stack. I'm a new developer so I'm grateful for any feedback on my source code [0].
Here's my personal recipe [1].
If you take a look at that URL, you'll see it's quite long. I wanted to be able to share recipes, but I don't have any backend knowledge. I had to get creative and store the object representing the recipe in an object encoded in Base64. This presented some character escaping issues, but those were manageable.
I don't expect this project to change the world. I just wanted a way to practice my newfound React skills and share some smoothie recipes. If you give this a try, please share your recipe!
> This presented some character escaping issues, but those were manageable.
In case you were interested, there's a section devoted to that in RFC 3548: https://datatracker.ietf.org/doc/html/rfc3548#section-4 with the tl;dr of `s/[+]/-/; s/[/]/_/` and then omitting the trailing "=" characters and just padding the incoming b64 since (AFAIK) one can add as many "=" as they'd like and it'll just ignore extra ones
Depending on your interoperability interests, you can shave a bit of text out of it by shortening the JSON key names `"i"`, `"a"`, `"n"`, and then also `.filter(Boolean)` to nuke those two trailing empty strings
> In case you were interested, there's a section devoted to that in RFC 3548: https://datatracker.ietf.org/doc/html/rfc3548#section-4 with the tl;dr of `s/[+]/-/; s/[/]/_/` and then omitting the trailing "=" characters and just padding the incoming b64 since (AFAIK) one can add as many "=" as they'd like and it'll just ignore extra ones
Thanks! I'll check this out.
> Depending on your interoperability interests, you can shave a bit of text out of it by shortening the JSON key names `"i"`, `"a"`, `"n"`, and then also `.filter(Boolean)` to nuke those two trailing empty strings
This is a good idea. I might already be filtering those empty strings but I'll have to check.
> In case you were interested, there's a section devoted to that in RFC 3548: https://datatracker.ietf.org/doc/html/rfc3548#section-4 with the tl;dr of `s/[+]/-/; s/[/]/_/` and then omitting the trailing "=" characters and just padding the incoming b64 since (AFAIK) one can add as many "=" as they'd like and it'll just ignore extra ones
Just to add one thing: in case Justin isn't familiar, "s/original_thing/replacement_thing" is a figure of speech often used in the hacker subculture to mean "replace original_thing with replacement_thing." It comes from some languages and editors like Perl and Vim/vi, where that syntax (and variations) are used for search and replace.
It'd be nice to be able to browse and search the recipes (e.g., to see what people have come up with for the ingredients you have on hand, etc.) I like the quick hack nature of it, though...
While I thought a favorites, browse, and top smoothies section would be cool... I read your comment about not knowing backend development yet, so your current implementation makes a lot of sense. I'm actually a huge fan of simple client-side sites that aren't over-engineered. Those are the kinds of things I do when I'm bored... try to make a simple, but useful, little site that is basic enough to run off GitHub pages. If I can do it in less than 100 lines, that's also a win.
The cool thing about the project you chose is that it has a lot of room to grow if you decide to take it in that direction, and if not, your MVP is still a useful site.
Pretty cool idea to practice skills, I'll take a look at the source code since I'm just getting into React now too :). I'm sure there's an API for something like myfitnesspal for nutritional information, and I second having a simple voting system for best public smoothie recipes.
I like this! I worked on a passion project during the early weeks of covid / lockdown called Choose My Smoothie. Didn't continue working on it for long but always wondered where else I could take it - this would have been a nice addition.
The second is particularly appealing to me. I wonder if there's some sort of open food API I could tap in to. Would also love to build your first idea as well once I start to learn backend development.
Here's my personal recipe [1].
If you take a look at that URL, you'll see it's quite long. I wanted to be able to share recipes, but I don't have any backend knowledge. I had to get creative and store the object representing the recipe in an object encoded in Base64. This presented some character escaping issues, but those were manageable.
I don't expect this project to change the world. I just wanted a way to practice my newfound React skills and share some smoothie recipes. If you give this a try, please share your recipe!
Thanks for your time!
[0] https://github.com/somewhatJustin/smoothie-stack/
[1] https://mysmoothiestack.com/?share=eyJpbmdyZWRpZW50cyI6WyJGc...