Современное веб-приложение для учета съеденных продуктов и автоматического расчета дневной калорийности. Разработано с четким разделением ответственности между клиентской частью и серверной логикой.
- React 19 & TypeScript (сборка через Vite)
- Redux Toolkit (RTK Query) — декларативный менеджмент сетевого слоя и автоматическое кэширование данных
- React Router Dom — клиентский роутинг страниц
- Инфраструктура: Глобальные path-алиасы (
@shared,@api,@components), строгий ESLint (Flat Config) + Prettier с автоматическим форматированием кода при сохранении
- Python & FastAPI — высокопроизводительный асинхронный REST API с автогенерацией интерактивной документации Swagger
- SQLAlchemy (ORM) — объектно-реляционное моделирование и управление сессиями БД
- SQLite — встроенная легковесная база данных для надежного хранения записей на диске
- Pydantic — строгая валидация и типизация входящих/исходящих JSON-данных
Проект построен по принципу монорепозитория с разделением на независимые слои:
frontend/— клиентское SPA-приложение. Сетевой слой разделен по сущностям (mealsApi.ts), а не HTTP-методам, что обеспечивает централизованное управление тегами кэша.backend/— серверная часть. Бизнес-логика вычислений изолирована от слоя хранения данных (models.py) и конфигурации портов (database.py).
Для запуска приложения вам понадобятся установленные Node.js и Python 3.10+.
Перейдите в папку сервера, создайте и активируйте виртуальное окружение, установите зависимости и запустите сервер:
cd backend-healthy-eat-meal
# Создание и активация окружения (для macOS/Linux)
python3 -m venv .venv
source .venv/bin/activate
# Установка библиотек
pip install fastapi uvicorn pydantic sqlalchemy
# Запуск сервера
uvicorn main:app --reloadСервер запустится на http://localhost:8000. Интерактивная документация API доступна по адресу http://localhost:8000/docs.
Откройте второе окно терминала в корне проекта, перейдите в папку фронтенда, установите пакеты и запустите Vite:
cd frontend-healthy-eat-meal
# Установка зависимостей
npm install
# Запуск в режиме разработки
npm run devПриложение откроется по адресу http://localhost:5173.
Проект включает базовую инфраструктуру мониторинга:
- Grafana — визуализация метрик приложения
- Nginx — реверс-проксирование и раздача статики фронтенда
Конфигурация поднимается вместе с основными сервисами через docker-compose.yml.
Проект содержит рекурсивный файл .gitignore в корне, блокирующий попадание системного мусора (.DS_Store, Thumbs.db), локальных файлов кэша Python (__pycache__), зависимостей node_modules и самого файла базы данных calories.db в публичный репозиторий.