Week #6 #
Links #
- Deployment: @cookcookhnyabot
- API Docs: http://10.90.137.177:8080/docs
Final deliverables #
Project Overview #
CookCookhNya is a smart cooking assistant that helps people find recipes based on what they already have at home. It solves a simple but common problem: when you open your fridge and don’t know what to cook.
What It Does #
- Shows you recipes you can make right now with your available ingredients
- Creates shopping lists for missing items when you pick a recipe
- Lets you save your own recipes and share them with others
- Works for households - multiple people can use the same storage
Main Features #
Your Kitchen Storage
- Add or remove ingredients you have
- See everything you’ve got in one place
Smart Recipe Finder
- Gets recipe ideas based on what’s in your kitchen
- Works with multiple people’s storages combined
Shopping Lists
- Automatically shows what to buy for recipes you choose
- Saves time and reduces food waste
Custom ingredients
- Unmentioned in our database ingredient? Add it by yourself!
Your Recipes
- Create your custom recipes and share them
We made CookCookhNya to make cooking simpler and help people use what they already have. It’s perfect for students, families, or anyone who cooks at home.
Features #
- Creating and deleting storages
- Viewing storages` members and ingredients
- Adding ingredients to storages
- Adding another users to storages
- Offering a user list of recipes based on ingredient in one or multiple storages
- Generating a shopping list for user based on missing ingrediens for chosen recipe
- Personal profile with ability to create custom ingredients and recipes, and even publishing them to public
Tech stack #
Backend #
- Scala
- PostgreSQL
- zio - effect system
- tapir - endpoint definition
- quill & magnum - database management
- circe - json serialization
- zio-test - testing
Frontend #
- C++
- Telegram
- TgBotStater ( https://github.com/Makcal/TgBotStater) - main framework, used for Telegram bot development
- Boost - for working with JSON and UUID
- cpp-httplib - for communication with backend
Devops #
- Docker, Docker Compose - containerisation and orchestration
- GitHub Actions - CI/CD
- Loki, Promtail - log scapping and storing
- Cadvisor, postgres-exporter, Prometheus - metric scrapper
- Grafana - visualisation
- Nginx - reverse proxy (for webhook setup)
Setup instructions #
- Create a new directory;
- Clone repo with
git clone git@github.com:Endpool/CookCookhNya.git
- Run
git submodule init && git submodule update
- Create a bot at @BotFather (don’t forget to enable inline mode in settings)
- Create
.env
specifying yourBOT_TOKEN
in the same directory
cp .env.example .env
- Run
docker compose up --build
Weekly commitments #
Individual contribution of each participant #
Team member | Contribution |
---|---|
Maxim Fomin (lead + frontend) | |
Ilia Kliantsevich (frontend) | |
Amirkhan Kurbanov (frontend) | |
Daniel Gevorgyan (UI/UX + backend) | |
Vadim Ksenofontov (backend) |
|
Aleksandr Gorbanev (backend) | |
Rashid Badamshin (DevOps) |
|
Plan for Next Week #
- DB normalisation
- Refactor
- Perfomance optimisation
- Moderation of custom ingredients and recipes
- Suggest spend products after cooking a recipe
Confirmation of the code’s operability #
We confirm that the code in the main branch:
- [+] In working condition.
- [+] Run via docker-compose (or another alternative described in the
README.md
).