Про проект
Веб-застосунок для супроводу здорового способу життя. Дозволяє вести щоденник харчування з підрахунком КБЖВ, пошуком продуктів через 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, якщо це доречно.
Правила підтримки документації
Після змін у публічних інтерфейсах, бізнес-логіці або важливих модулях необхідні зміни до документації. Щоб вручну оновити документацію, потрібно:
- оновити JSDoc-коментарі
- повторно згенерувати документацію командою
npm run docs
Документація є частиною підтримки проєкту й повинна оновлюватися разом із кодом.
Сайт документації
Документація проєкту також автоматично генерується за допомогою JSDoc і публікується через GitHub Pages.
Посилання на документацію: https://pleezgo.github.io/project/