Skip to content

Latest commit

 

History

History
75 lines (55 loc) · 3.19 KB

File metadata and controls

75 lines (55 loc) · 3.19 KB

Настройка MySQL и бэкенда для Habit_Forge

1. Установка MySQL

  • Скачайте и установите MySQL Server или XAMPP (содержит MySQL).
  • Запустите сервер MySQL.

2. Создание базы данных

В командной строке (или MySQL Workbench, phpMyAdmin):

mysql -u root -p < schema.sql

Либо откройте schema.sql в MySQL Workbench / phpMyAdmin и выполните скрипт. Будет созданы:

  • База данных habitforge_db
  • Таблицы: users, challenges, challenge_history, group_challenges, group_challenge_participants, group_challenge_history, exercises

3. Запуск бэкенда (Node.js)

В папке проекта есть бэкенд в папке server/:

  1. Установите зависимости:

    cd server
    npm install
  2. Создайте файл .env (скопируйте из server/.env.example) и укажите пароль MySQL:

    DB_HOST=localhost
    DB_PORT=3306
    DB_USER=root
    DB_PASSWORD=ваш_пароль
    DB_NAME=habitforge_db
    PORT=3000
    JWT_SECRET=придумайте-секретный-ключ
  3. Запустите сервер:

    npm start

    API будет доступен по адресу: http://localhost:3000

4. Включение режима API на фронтенде

В файле index.html найдите блок:

<script>
  window.USE_API = false;
  window.API_BASE = 'http://localhost:3000/api';
</script>

Измените на window.USE_API = true; и при необходимости поправьте API_BASE (например, если фронт открыт с другого домена/порта).

Откройте сайт (можно через Live Server или просто открыв index.html). Регистрация, вход, челленджи и групповые челленджи будут сохраняться в MySQL.

5. Структура таблиц (кратко)

Таблица Назначение
users Пользователи: логин, email, пароль, баланс, аватар, тема
challenges Личные челленджи: упражнение, ставка, режим, прогресс
challenge_history Отметки дней по каждому челленджу (выполнено/пропущено)
group_challenges Недельные групповые челленджи
group_challenge_participants Участники группового челленджа
group_challenge_history Отметки дней по групповому челленджу
exercises Справочник упражнений (отжимания, приседания и т.д.)

После подключения бэкенда к MySQL замените в коде вызовы getAllUsers(), saveAllUsers(), getCurrentUserData() и т.д. на запросы к API бэкенда.