Skip to content

Zonya1202/calorie-tracker-fullstack

Repository files navigation

🍏 Calorie Tracker (Fullstack SPA)

Современное веб-приложение для учета съеденных продуктов и автоматического расчета дневной калорийности. Разработано с четким разделением ответственности между клиентской частью и серверной логикой.

🛠 Технологический стек

Frontend:

  • React 19 & TypeScript (сборка через Vite)
  • Redux Toolkit (RTK Query) — декларативный менеджмент сетевого слоя и автоматическое кэширование данных
  • React Router Dom — клиентский роутинг страниц
  • Инфраструктура: Глобальные path-алиасы (@shared, @api, @components), строгий ESLint (Flat Config) + Prettier с автоматическим форматированием кода при сохранении

Backend:

  • 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+.

1. Запуск Backend (Python)

Перейдите в папку сервера, создайте и активируйте виртуальное окружение, установите зависимости и запустите сервер:

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.

2. Запуск Frontend (React)

Откройте второе окно терминала в корне проекта, перейдите в папку фронтенда, установите пакеты и запустите Vite:

cd frontend-healthy-eat-meal

# Установка зависимостей
npm install

# Запуск в режиме разработки
npm run dev

Приложение откроется по адресу http://localhost:5173.


📊 Мониторинг

Проект включает базовую инфраструктуру мониторинга:

  • Grafana — визуализация метрик приложения
  • Nginx — реверс-проксирование и раздача статики фронтенда

Конфигурация поднимается вместе с основными сервисами через docker-compose.yml.


🔒 Безопасность и Git-гигиена

Проект содержит рекурсивный файл .gitignore в корне, блокирующий попадание системного мусора (.DS_Store, Thumbs.db), локальных файлов кэша Python (__pycache__), зависимостей node_modules и самого файла базы данных calories.db в публичный репозиторий.

About

Fullstack приложение для учёта калорий: React 19 + TypeScript + RTK Query на фронте, FastAPI + SQLAlchemy на бэке. Монорепозиторий, Docker Compose для локального запуска.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors