Kroky Plus is a web app for the automation of weekly school snack ordering from kroky.si
I found myself often forgetting to order school snacks for next week so I was left with something like this:
But I knew I could have something like that:
Something had to be done... So here is Kroky Plus ➕
-
📝 Simple Registration Process: Begin by registering using the credentials provided by Kroky at your school.
-
🌟 Personalized User Area: Once registered, access your user area to input data that will fine-tune menu recommendations. Share your favorite and least favorite menus, meals, and drinks.
-
💌 Weekly Confirmation and Selection: Each week, you'll receive a confirmation email containing the recommended meals.
Curious about how the algorithm works? Let's dive into the technical aspects:
- The algorithm commences by blending past order data, stored as a Firebase dictionary, with your input.
- The steps include:
- Getting the Next Week's Menu: It retrieves the menu for the upcoming week.
- Iterating Through Days: The algorithm iterates through each day.
- Analyzing Daily Menus: It reviews all 10 menus available for a given day.
- Initial Meal Scores: Each meal starts with a score of 100.
- Considering User Preferences: The algorithm checks the user's blacklisted and whitelisted meals.
- Adjusting Scores: If a meal is blacklisted, its score is halved; if whitelisted, it's doubled.
- Comparing to Previous Orders: It compares these scores to data from previous orders, if available.
- Scoring Based on History: Meals that appeared frequently in past orders are assigned a score based on the number of times they've been ordered before.
- Incorporating Menu Preferences: Afterward, the algorithm factors in the menu blacklist and whitelist, adjusting the scores accordingly.
- Accounting for Drink Preferences: Scores are doubled for preferred drinks and halved for non-preferred drinks.
- Selecting the Top Choice: Finally, the algorithm sorts the dictionary and selects the item with the highest score.
- Sending Requests and Confirmation: It makes an API request to the kroky.si server and sends a confirmation email.
- To illustrate, let's use an example menu:
BAKED RICE WITH VEGETABLES, DRINK
The data refinement process unfolds as follows:
- Drink-related terms are omitted for clarity:
BAKED RICE WITH VEGETABLES
- The menu is tokenized:
[BAKED, RICE, WITH, VEGETABLES]
- Conjunctions are removed:
[BAKED, RICE, VEGETABLES]
- The refined data is compiled into a dictionary stored in the database.
Our design journey aimed to create a seamless experience for users:
- The design, primarily shaped by Jakecer, is optimized for desktop and potential mobile adaptation.
- Initially, an early prototype featured a drag-and-drop meal selection system (see Early Prototype image below).
- This evolved into a more intuitive model with a user-friendly interface (see Final Design image below).
For collaboration, we used GitHub Projects. It's a great application because it allows clear and transparent task assignment.
Our project was a collaboration among three developers:
- Lin Cadez implemented logic
- Jaka Cernetic was lead designer
- Maj Mohar helped with logic, basics of Firebase
That is all....
Enjoy delicious school snacks chosen by Kroky Plus! 🥪🎉