Home

Про проект

Веб-застосунок для супроводу здорового способу життя. Дозволяє вести щоденник харчування з підрахунком КБЖВ, пошуком продуктів через USDA FoodData Central API та відстеженням денних норм. Планується ведення щоденників харчування, фізичної активності, гідрації та сну.

Технології

  • Frontend: React, Vite, React Router
  • Backend: Node.js, Express
  • База даних: PostgreSQL

Реалізований функціонал

  • Реєстрація та авторизація (JWT)
  • Щоденник харчування
  • Пошук продуктів через USDA API
  • Власні продукти
  • Розрахунок BMI, BMR, TDEE
  • Головна сторінка зі статистикою

Вимоги

  • Node.js v24+
  • npm v11+
  • PostgreSQL v17+

Встановлення та запуск

1. Клонування та встановлення залежностей

git clone https://github.com/pleezgo/project.git
cd project
cd backend
npm install
cd ../frontend
npm install

Створи файл backend/.env і заповни своїми значеннями на основі backend/.env.example

2. Налаштування бази даних

Створи базу даних:

CREATE DATABASE your_database_name;

Таблиці створюються автоматично при першому запуску backend.

3. Запуск у режимі розробки

Backend (у папці backend/):

npm run dev

Frontend (у папці frontend/):

npm run dev

Для зручності можна запустити обидва сервіси одразу одним скриптом:

  • Linux: bash docs/scripts/dev.sh
  • Windows: docs\scripts\dev.bat

Frontend буде доступний за адресою: http://localhost:5173
Backend API: http://localhost:5000

Правила документування коду

У проєкті для документування коду використовується JSDoc. Документація підтримується для backend (backend/src) і frontend (frontend/src) та генерується автоматично командою:

npm run docs

Що потрібно документувати

Обов'язково документуються:

  • публічні функції, методи, компоненти та модулі
  • middleware, контролери, маршрути та інші точки входу
  • бізнес-логіка, якщо вона не є очевидною
  • архітектурні рішення, взаємодію між frontend і backend та неочевидні алгоритми
  • допоміжні функції з важливими обчисленнями
  • константи та структури даних, якщо вони впливають на поведінку системи

Як оформлювати документацію

Для документації використовуються JSDoc-коментарі у форматі /** ... */.

У коментарях слід:

  • коротко описати призначення сутності
  • за потреби пояснити логіку роботи
  • вказати параметри через @param
  • вказати результат через @returns
  • для типізованих значень або об’єктів використовувати @type, якщо це доречно.

Правила підтримки документації

Після змін у публічних інтерфейсах, бізнес-логіці або важливих модулях необхідні зміни до документації. Щоб вручну оновити документацію, потрібно:

  1. оновити JSDoc-коментарі
  2. повторно згенерувати документацію командою npm run docs

Документація є частиною підтримки проєкту й повинна оновлюватися разом із кодом.

Сайт документації

Документація проєкту також автоматично генерується за допомогою JSDoc і публікується через GitHub Pages.

Посилання на документацію: https://pleezgo.github.io/project/