diff --git a/content/docs/2025/Endpool/week6.md b/content/docs/2025/Endpool/week6.md new file mode 100644 index 000000000..c2dd628bc --- /dev/null +++ b/content/docs/2025/Endpool/week6.md @@ -0,0 +1,213 @@ +--- +title: "Week #6" +--- + +# **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 +1. **Your Kitchen Storage** + - Add or remove ingredients you have + - See everything you've got in one place + +2. **Smart Recipe Finder** + - Gets recipe ideas based on what's in your kitchen + - Works with multiple people's storages combined + +3. **Shopping Lists** + - Automatically shows what to buy for recipes you choose + - Saves time and reduces food waste +4. **Custom ingredients** + - Unmentioned in our database ingredient? Add it by yourself! +4. **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 + + +1. Create a new directory; +2. Clone repo with +```bash +git clone git@github.com:Endpool/CookCookhNya.git +``` +3. Run +```bash +git submodule init && git submodule update +``` +4. Create a bot at [@BotFather](https://t.me/BotFather) (don't forget to enable inline mode in settings) +5. Create `.env` specifying your `BOT_TOKEN` in the same directory +```bash +cp .env.example .env +``` +6. Run +```bash +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) | +
+
|
+