commit 5b94d7a332c2b5d41a7bb942ea557bc420059ba0 Author: Dmitriy Pleshevskiy Date: Wed May 4 01:46:17 2022 +0300 . diff --git a/book/.gitignore b/book/.gitignore new file mode 100644 index 0000000..7585238 --- /dev/null +++ b/book/.gitignore @@ -0,0 +1 @@ +book diff --git a/book/book.toml b/book/book.toml new file mode 100644 index 0000000..26d4d4e --- /dev/null +++ b/book/book.toml @@ -0,0 +1,6 @@ +[book] +authors = ["Dmitriy Pleshevskiy"] +language = "ru" +multilingual = false +src = "src" +title = "Вкусные мысли" diff --git a/book/src/SUMMARY.md b/book/src/SUMMARY.md new file mode 100644 index 0000000..4a18dbc --- /dev/null +++ b/book/src/SUMMARY.md @@ -0,0 +1,9 @@ +# Summary + +- [Введение](./intro.md) +- [Идея](./idea.md) + +# Бизнес Логика + +- [Сущности](./bl/entities.md) +- [Действия](./bl/actions.md) diff --git a/book/src/bl/actions.md b/book/src/bl/actions.md new file mode 100644 index 0000000..c51affc --- /dev/null +++ b/book/src/bl/actions.md @@ -0,0 +1,10 @@ +# Действия + +Основное действие, которое должно предоставлять приложение - это возможности +найти рецепт по различным параметрам: +- Название / Описание +- Категория +- Ингредиент +- Пищевая ценность +- Витамины + diff --git a/book/src/bl/entities.md b/book/src/bl/entities.md new file mode 100644 index 0000000..24fa36c --- /dev/null +++ b/book/src/bl/entities.md @@ -0,0 +1,75 @@ +# Сущности + +Для того, чтобы начать описывать действия нашего "мозга", нам нужно понять +сколько и какие сущности будет иметь наша система. + +## Рецепт + +Различные сайты с рецептами используют свой подход к рецептам, но формула у +всех примерно одна. + +``` +категории +(видео процесса|фото результата) +название +описание +ингредиенты +- название +- количество +шаги +- название +- описание +- фото +``` + +Видео я считаю совсем избыточным и неуместным. Особенно, когда так называемые +"видео-рецепты" без текстового содержания "заставляют" просматривать и +перематывать содержание, чтобы можно было понять что нужно сделать. + +В ингредиентах как правило рекламируют определенные марки. В нашей версии +будут только основные названия продуков питания не привязанные ни к одному из +брендов. Каждый человек в праве выбрать любой, который на его вкус более +приемлемый. + +Фотографии к рецептам несомненно сложно делать. Не все люди фотографируют +процесс приготовления. И по моему опыту фотографии не особо помогают в понимании +того, что необходимо сделать. Если описание соответствует действительности, то +и дополнительное фото не нужно. Фото результата на самом деле тоже сомнительно, +но по нему обычно определяют стоит ли готовить блюдо. + +Как правило не всегда ищут рецепты. Многие люди готовят просто из того, что +есть в холодильнике. Мы лично создавали несколько безумно вкусных салатов, но +когда мы хотели добавить его на свой сайт, то мы долго придумывали название. +Ну просто потому, что в "формуле рецепта" это необходимо. А любой поисковик еще +хочет от нас описание. Думаю было бы круто, если бы нейросеть предлагала бы +название для рецепта. Описание же я думаю вообще убрать. Шаги всё и так +расскажут. + +Вдохновленный одним каналом the-bread-code, я хочу добавить в рецепт +эксперементы. Тоесть что будет, если тот же рецепт приготовить с большим/меньшим +содержанием воды/масла какой результат из этого выйшел. Получилось хуже или нет. +Любой желающий сможет выбрать понравившийся вариант рецепта. + +Еще на smartfridge, после того как я внедрил группы ингредиентов, мне пришло +озарение, что каждая группа ингредиентов - это тоже отдельный рецепт. +Например пицца состоит из основы и начинки. Мы можем эксперементировать с +основой для теста, но начинка меняться не будет или наоборот. Следовательно +мы можем создавать грубо говоря собственные ингредиенты (основа для пиццы) и +использовать её как ингредиент для какого-то рецепта + +Итого: +``` +Название + +Категории + +Ингредиенты +Витамины в порции +Пищевая ценность + +Фото результата + +Шаги (только текст) +``` + + diff --git a/book/src/idea.md b/book/src/idea.md new file mode 100644 index 0000000..c538a44 --- /dev/null +++ b/book/src/idea.md @@ -0,0 +1,27 @@ +# Идея + +## Не нужна регистрация + +Рецептов в мире не так уж и много. Они как правило все повторяются. Отличается +только способ приготовления блюда. Что-то может не быть и ты можешь заменить +ингредиент другим. + +Следовательно я считаю, что нет смысла добавлять регистрацию пользователей. +Потому что каждый пользователь будет добавлять один и тот же рецепт +"новогоднего салата". + +Пойду другим путём. Для начала будет создан backoffice, в котором можно будет +добавлять рецепты вручную. В дальнейшем буду пробовать обучать нейросеть. + +## Децентрализация + +Если кого-то не будет устраивать запущеная моя нода, то он в полном праве +запустить свою версию на своём сервере. В планах предоставлять механизм +получения всех данных базы с ноды. + +## Несколько интерфейсов взаимодействия + +Нода рецептов будет состоять из мозга (backend). Клиент для взаимодействия +с ним можно будет выбрать отдельно. Будь то web-сайт, мобильное приложение, +а так же cli, tui, gui. + diff --git a/book/src/intro.md b/book/src/intro.md new file mode 100644 index 0000000..8287425 --- /dev/null +++ b/book/src/intro.md @@ -0,0 +1,16 @@ +# Введение + +Моя семья любит готовить, но искать рецепты по всему интернету не такое уж и +простое занятие. Мы не первый раз хотим создать интересный сайт с рецептами, +который включал в себя только проверенные рецепты, которые действительно +работают. Первый наш проект назывался smartfridge. Он пошел достаточно хорошо, +но в нём были недостатки. Одним из которых я считаю была регистрация и +не очень удобная форма добавления рецепта. Думаю одной из причин стало то, +что я был тогда не очень опытен и не продумал всю концепцию от и до. В итоге +много раз переделывал сайт и сейчас пациент скорее мёртв чем жив. + +Сейчас я буду идти по другому пути. Я опишу всю необходимую бизнес-логику в +этой книге. После того, как меня всё начнет устраивать и не останется больше +вопросов, я создам план с задачами и приступлю непосредственно к реализации. + +Поехали!