is the combination (or convergence - get it?) of several of my hobbies: food, cooking and software. I do this project in my free time, and as a labour of love. I'll never get rich from this, but it's fun and it keeps my skills sharp. Any money I do make from this project will probably be squandered on beer and silly t-shirts. Well one can dream.
My long-term goal for this project is to build a recipe platform which lets people anywhere in the world cook and share great food and recipes, regardless of where they are or what language they speak. The point is not just to support different languages and measurement systems, but also to convert between them so anyone anywhere can access it. I'd love to draw together a community of food lovers, not just some user base for a monetized website: the site upkeep would be covered by donations, user data wouldn't be sold or passed on, and the site wouldn't be polluted with advertising. I would give it away for free to regular folk and non-profit organisations, and it would work even in places without internet access.
And hey, while I'm waiting for that all to happen, the project serves as decent portfolio project (should I ever, like you know, need to get a job or something).
The recipe management idea first came to me back in 2010 at a festival in New Zealand where around 300 people gathered out in the middle of nowhere and just kind of hung-out for a week running workshops, volunteering, being creative, releasing their inner butterflies, and doing basically whatever they feel. I was approached by the guy managing the kitchen team for this whole event. He had been cranking out two meals per day for 7+ days for 300 people - including special diets - and had been planning everything using Excel (I know!), and on hearing that I was in IT asked whether there might be a better way to manage it all. Barry gave me a copy of his spreadsheet and I started kicking around ideas about how such a system might be implemented.
Nothing much really happened until a few years later that I had the idea of trying to implement it using Eclipse Scout. I had been working with that tech recently at that point, and took it on as a good learning experience. Why not.
So I do. I start investing spare time making this recipe management system, using Scout to handle the data entry and Jasper Reports to generate the printouts. At one point I had the idea of having a central online recipe database, and being able to connect multiple clients to it, so I did. I added offline support too, since the festival is in a cellphone black-spot and can't access the server. So that necessitated an offline database (Derby) and data synchronizing. I even got it running on a free Openshift server. All great learning experiences. And so, the very first version of ConvergenceMenu was completed (SVN tagged) on 18 September 2013. So what next?
Well, there was still no landing page - just the Scout server. After having been working on a Java EE project at work, I decided to build a little website for my server - again, "just for fun". I used the relatively new and obscure Bootsfaces (which worked out well I think), registered the www.convergencemenu.com domain (16th November 2014), and got a web project up and running, still using Openshift's (slow, but free) hosting. By late 2014 the website was up. It worked. Technically.
Since then I've moved the website to paid hosting, rebuilt the website, fended off hackers, added lots of stuff to the back-end, and upgraded pretty much everything (alongside my regular work). In 2017 I returned to the same festival to see if it would fly. It really didn't; the configuration was too clumsy, the model was too strict, and there were bugs hiding everywhere like cockroaches. Damn. On the plus side I took away some really great feedback, a clear idea of what needs to be fixed, and some great experience volunteering in the kitchen. I got stuck right into adding the missing features, removing bugs, and updating the website once again.
More time went by. Covid happened. I decided to make some improvements, but had difficulties setting up my old development environment. Java EE/Bootsfaces was well out of date, Eclipse Scout was a few major releases behind also, and modern IDEs didn't really play nicely with this old tech. The web world had well and truly moved on, and so I decided I had to also. It was time for a complete rewrite. I chose Java Spring with Hibernate for the back-end, and Thymeleaf and Bootstrap for the front-end, keeping the postgres DB the same. I have re-written all of the templates, and retained as much of the functionality as I think makes sense. At the same time I have stripped back parts of the website I don't think are necessary (e.g. login, sign-up, etc - the back-end scout server can be used for most of that). What's left is a minimum viable product for displaying recipes. I'm happy with that for now.
Fixed a few minor things which were bothering me:
Being stuck at home during this crazy period of coronavirus isolation, I've had time to add something which has been on my list for a while: proper support for attributing credit. It's now possible to credit the source of your inspiration, and to even link to their website (which is a nice way to say thanks, and is good for their business and google ranking).
Other bugfixes & minor enhancements:
Also thanks to Nina for help with translations and idea-bouncing (as usual). :)
Due to the sheer scale of work required to implement multilingual support, this release has been a long time in the works. But now at long last, it's done! To start with, I've only added translations for Croatian to see how it goes (heartfelt thanks to my translating crew: punica Bise and žena Nina), and I'll add more languages later depending on the response I get. (BTW if you'd like the website to support your language, please get in touch! Especially if you're willing to help with translating it I'd love to hear from you!)
But the website translations are just the beginning. What's even cooler is multilingual support for the actual recipes themselves. This means a recipe can be entered in multiple languages, including not just its original text but also common languages (e.g. English, Spanish, etc). In this way it's possible to open traditional cooking to the world while preserving its authenticity.
And it's not just the recipe texts. Ingredients, units, and everything are translatable. The entire recipe can be switched to a different language without losing its meaning.
Other bugfixes & minor enhancements:
Bugfixes & minor enhancements:
This release contains only one feature, but oh, what a feature: Units conversion is here!
What this means, is that recipes can be converted between unit systems. So a recipe written in metric measures can be switched to UK or US imperial units (or whatever) directly from the website. Why is this cool? Because it's one less barrier preventing people of different cultures from sharing their recipes. Especially if you grew up in one of those weird places that use decagrams or fluid ounces. ;)
To be fair, it's not magic; it's strictly mass-to-mass or volume-to-volume (you need density to do mass-to-volume, and that's too crazy even for me - this was mind-bendy enough), and you need to relate it back to grams or milliliters. But hey, this is a big step even so.
I also linked up the user preferences (and made it editable from the website), so your preferred unit system is loaded by default. You can still use the original measures if you wish, and if you don't see a unit you'd like to cook with, you can just go and create your own.
Introducing Fridge Mode: search for recipes using ingredient you have!
Other back-end bugfixes from v2.4.4/5 and minor website enhancements.
Recipe books added to website!
Bugfixes from 2.4.0-2 + minor improvements.
More bugfixes from 2.4.0-1.
Mainly a bugfix release (from 2.4.0) + a few minor updates.
Major upgrade to front-and-back-end containing critical features to support event planning, plus multiple enhancements to the website.
Main improvements for 2.4.0:
Noteworthy front-end (website) changes:
Noteworthy back-end (recipe management) changes:
For detailed information, see trello archives.
New in 2.3.4: (...yeah, actually mostly just bug fixes from 2.3.3. :)
New in 2.3.3:
New in 2.3.1:
Site improvements:
New in 2.2.0: