Thanks! I want to do a redesign actually but too many other things on the plate..
Right now related are just manual actually. I planned on creating some type of graph and computing some type of distance but not yet. Let me know if you have ideas :)
It's written in Python (Django) with Postgres and just vanilla JS on the frontend. Looks like yours too?
Yeah, mine is driven by Django Rest and an Angular app for the UI. I'm seriously considering moving to React, though. I just use Sqlite for the DB layer because it's easily performant enough.
I used Drink & Tell (and its sequel Drunk & Told) for the primary source of recipes, which I can't recommend more.
The "related recipes" thing is interesting. If I stick to doing it with a sql query, then I think an algorithm to pick out the base spirit, then filter on that and on whether it's shaken/stirred/scaffa, then sort by common ingredient count? Then again, an Elastic Search stack can do related objects out of the box, but I wouldn't want it to get that complex :)
I haven't tried standing yours up yet but will tomorrow! Do you have all the Drink and Tell/Told recipes as fixtures? Or just a few?
Your repo is nice and clean, definitely learning from that, and your model design.
Any reason you haven't deployed as a web app?
Oh and for related.. an issue is that sometimes related recipes are really quite different (e.g. an old fashioned riff with Gin and St Germain, or tequila/mezcal) so would be tough to automate..
It's deployed alright, I just don't publicize it since I only intend it for personal use.
None of the D&T recipes are fixtures, since they're technically copyright material. I set up classic cocktails as fixtures for people who want to spin up their own or play around with the repo.
Did you try standing it up locally?
Yeah the related cocktails thing is definitely an interesting problem.
Gotta second where it's been said before:
- Middlemarch by George Eliot
- War & Peace by Leo Tolstoy
I read both of these aloud with my partner over long nights of bringing up our small children and it was the best bonding experience I could hope for. Both are packed full of observations about life and wit and wisdom, both pull for kindness and sincerity, and are unexpectedly funny in many ways.
It's also probably wise to "return" the "context.done" callbacks in the try/catch so it doesn't double-callback, or otherwise get rid of that last TODO "context.done" call.
I made something similar a couple years ago: https://github.com/gthole/drink-stash
What is CocktailLove written in? I couldn't seem to dig up the source anywhere.