Fooder is a website dedicated to food lovers belonging to the ZT Kruszwica S.A. and Kujawski companies. It was created to allow users to save multiple recipes found on the Internet in one place. Thanks to Fooder, 170,000 users of the platform have managed to collect 1.5 million recipes for their own use.
Since the original creator could no longer maintain and develop the website, we have taken over his duties. And because we already have extensive experience in regard to continuing such projects, we quickly discovered all the intricacies of the website’s code, as well as any technical applications.
Project update
However, after our takeover of the project, we had to face a problem. Since the Laravel framework and the libraries used by the website were not being updated on a regular basis, we had to overcome a technological debt before going any further.
As such, once we got acquainted with the application code, our top priority was to thoroughly update all dependencies. In the long-term, this has certainly saved us a significant amount of work.
Recipe download
The basic function of the website is recipe processing, that is, downloading recipes from the source page and saving them in the Fooder user profile. To create this functionality, we used PhantomJS – a browser-like tool that downloads HTML pages.
Elasticsearch allows users to search for specific keywords on the basis of which the program detects fragments of text that include the recipes.
Search engine
One of the features that we added is the recipe search function. It allows users to find specific recipes both in their own profiles and among other public accounts.
Thanks to the use of Elasticsearch technology, the search engine makes it possible for users to find recipes by their title, description, and even ingredients used.
Mobile applications
The Fooder development plan also included an expansion of the already existing iOS and Android applications.
As such, we suggested a solution that, in hindsight, has saved our client both time and money. We wrote the app in React Native so that the versions for both platforms can be based on the same source code.