- Скачайте и установите MySQL Server или XAMPP (содержит MySQL).
- Запустите сервер MySQL.
В командной строке (или 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
В папке проекта есть бэкенд в папке server/:
-
Установите зависимости:
cd server npm install -
Создайте файл
.env(скопируйте изserver/.env.example) и укажите пароль MySQL:DB_HOST=localhost DB_PORT=3306 DB_USER=root DB_PASSWORD=ваш_пароль DB_NAME=habitforge_db PORT=3000 JWT_SECRET=придумайте-секретный-ключ
-
Запустите сервер:
npm start
API будет доступен по адресу: http://localhost:3000
В файле 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.
| Таблица | Назначение |
|---|---|
users |
Пользователи: логин, email, пароль, баланс, аватар, тема |
challenges |
Личные челленджи: упражнение, ставка, режим, прогресс |
challenge_history |
Отметки дней по каждому челленджу (выполнено/пропущено) |
group_challenges |
Недельные групповые челленджи |
group_challenge_participants |
Участники группового челленджа |
group_challenge_history |
Отметки дней по групповому челленджу |
exercises |
Справочник упражнений (отжимания, приседания и т.д.) |
После подключения бэкенда к MySQL замените в коде вызовы getAllUsers(), saveAllUsers(), getCurrentUserData() и т.д. на запросы к API бэкенда.