Отчёт об изменениях проекта

Проект: Buhuchet — лендинг услуг удалённого бухгалтера

Дата: 02.03.2026  |  Ветка: back_alpha


1. Общая сводка изменений

В ходе двух итераций разработки в проект были внесены следующие изменения:


2. Итерация 1 — Express сервер и страница-заглушка

2.1 Установленные зависимости

ПакетВерсияНазначение
express^5.2.1Веб-сервер
vue-router^5.0.3Клиентский роутинг SPA

2.2 Новые файлы

ФайлТипОписание
server.js Новый Express-сервер, порт 3000. Отдаёт статику из dist/, SPA-fallback на index.html для всех неизвестных маршрутов.
src/router/index.js Новый Конфигурация Vue Router: маршрут / → HomePage, /order → OrderPage.
src/pages/HomePage.vue Новый Главная страница, содержимое перенесено из App.vue.
src/pages/OrderPage.vue Новый Страница-заглушка оформления заявки. Отображает название выбранного тарифа (из query-параметра ?tariff=), кнопку «Вернуться назад».

2.3 Изменённые файлы

ФайлТипИзменение
src/main.js Изменён Импорт и подключение vue-router: app.use(router).
src/App.vue Изменён Весь контент перенесён в HomePage.vue. Осталось только <router-view /> как точка монтирования роутера.
src/components/TariffCards.vue Изменён Кнопка «Выбрать» теперь вызывает selectTariff(tariff), которая выполняет навигацию: router.push({ path: '/order', query: { tariff: tariff.title } }).
package.json Изменён Добавлен скрипт "start": "node server.js" для запуска Express.

3. Итерация 2 — База данных SQLite и динамический селектор регионов

3.1 Установленные зависимости

ПакетВерсияНазначение
sqlite3^5.1.7Работа с базой данных SQLite

3.2 База данных

Файл базы данных: data.db (создаётся автоматически при первом запуске сервера).

Объект БДТипОписание
regions Таблица Поля: id (INTEGER PK AUTOINCREMENT), region_name (TEXT).
Начальные данные: Москва, Санкт-Петербург, Казань.
region_list VIEW (представление) SELECT id, region_name FROM regions ORDER BY id.
Используется функцией getRegions() для абстракции доступа к данным.

3.3 Новые файлы

ФайлТипОписание
db/database.js Новый Модуль работы с БД. Экспортирует:
  • initializeDatabase() — создаёт таблицу, VIEW и заполняет начальными данными при первом запуске;
  • getRegions() — функция получения регионов через представление region_list (не прямой запрос к таблице).

3.4 Изменённые файлы

ФайлТипИзменение
server.js Изменён Добавлены:
  • Импорт initializeDatabase и getRegions из ./db/database.js;
  • Маршрут GET /api/regions — возвращает JSON-массив регионов из БД;
  • Запуск сервера теперь происходит после успешной инициализации БД.
src/components/SiteHeader.vue Изменён Добавлены:
  • Секция <script setup> с ref и onMounted;
  • Запрос к /api/regions при монтировании компонента;
  • Динамический рендеринг опций через v-for, v-model;
  • Состояние загрузки («Загрузка...») до получения данных с сервера.
Удалены захардкоженные <option> (Москва, Санкт-Петербург, Казань).

4. Архитектура потока данных

data.db (SQLite)
  └── таблица regions
      └── VIEW region_list
           └── db/database.js :: getRegions()
                └── server.js :: GET /api/regions
                     └── SiteHeader.vue :: fetch('/api/regions') → <select>


5. Запуск проекта

РежимКомандаОписание
Разработка (Vite)npm run devHot reload, порт 5173. API запросы к /api/* не проксируются — нужен отдельный запуск сервера или настройка прокси в vite.config.js
Сборкаnpm run buildСобирает проект в папку dist/
Продакшн (Express)npm startЗапускает Express на порту 3000. Требует предварительной сборки.

Отчёт подготовлен автоматически — Claude Sonnet 4.6 — 02.03.2026