BookStore Pro (Fullstack Web-App)
BookStore Pro - це сучасний веб-застосунок для онлайн-магазину книг, розроблений з використанням клієнт-серверної архітектури. Проєкт імітує цикл роботи інтернет-магазину.
Раніше проєкт працював суто на клієнті, але тепер включає повноцінний бекенд на Node.js та MySQL.
Основний функціонал (Бекенд)
- База Даних: MySQL за допомогою ORM Sequelize. Моделі
User та Order із зв’язком One-to-Many.
- Аутентифікація та Безпека:
- Реєстрація з підтвердженням пошти (Nodemailer).
- Авторизація за допомогою JWT (Access & Refresh токени).
- Відновлення пароля через email.
- Вхід через Google (OAuth 2.0 за допомогою Passport.js).
- Ролі: Система ролей (Адміністратор та Звичайний користувач). За замовчуванням створюється admin-користувач (
admin@admin.com / admin123).
- REST API: Обробка профілів користувачів, зміна паролів, керування замовленнями, CRUD для студентів.
Основний функціонал (Фронтенд)
- Каталог книг: Пошук, фільтрація (за ціною, жанром, рейтингом) та сортування (статичний UI).
- Кошик та Обране: Додавання книг.
- Адаптивність: Повна підтримка мобільних пристроїв та планшетів.
Як запустити проєкт
1. Налаштування бази даних
- Встановіть MySQL Server.
- Створіть базу даних
web_backend_lab (або просто запустіть node mysql2-demo.js для автоматичного створення).
- Переконайтеся, що облікові дані MySQL вказані вірно (
root / пароль).
2. Запуск бекенду
- Перейдіть до папки
server:
- Встановіть залежності:
- Створіть файл
.env із вашими налаштуваннями (пошта для відправки листів, JWT secrets, Google OAuth keys).
- Запустіть сервер:
Сервер запуститься на http://localhost:3000. Примітка: база даних синхронізується автоматично при запуску сервера (дані будуть скинуті до початкових, додається лише адмін).
3. Запуск фронтенду
- Перейдіть до папки
client.
- Відкрийте файл
index.html у браузері або використайте розширення Live Server у VS Code.
Автор
Розроблено студентом групи ІП-34, Бураков Станіслав.