Требуется Node.js 24+ и Docker.
copy server\.env.example server\.env
npm run docker:upFrontend будет доступен на http://localhost:8080, backend - на http://localhost:3000.
Остановить контейнеры:
npm run docker:down- Установить зависимости:
npm ci- Создать env для backend:
copy server\.env.example server\.env- Поднять PostgreSQL и применить миграции:
npm run db:up
npm run db:migrate- Запустить backend:
npm run dev:server- Во втором терминале запустить frontend:
npm run dev:clientПриложение откроется на http://localhost:5173, backend работает на http://localhost:3000.
Frontend по умолчанию использует VITE_API_URL=http://localhost:3000 и VITE_WS_URL=ws://localhost:3000; при необходимости их можно задать в client/.env.
Интерактивная доска для распределения задач в команде, разработанная на веб-сокетах.
| ФИО | Роль | Github |
|---|---|---|
| Архипов П.Н. | Лидер команды, продукт-менеджмент | ZapolyarnyDev |
| Бодров Д.С. | Разработчик серверной части | isMirakl |
| Кривоносов Д.И. | Тестирование | gwinblade9 |
| Соловьёв А.С. | Разработчик клиентской части | banan-minon |
| Мокеев И.И. | Интеграция, внедрение | King-Ssouls |
- HTML5 - описывает структуру веб-приложения. Нужен, чтобы браузер понимал, какие элементы надо отобразить
- Tailwind CSS 4.x.x - CSS-фреймворк. Нужен, чтобы стилизовать интерфейс прямо в разметке, не создавая отдельные CSS-файлы и не придумывая имена классов
- JavaScript (ES2025) - управляет поведением страницы: отправка данных на сервер, обработка кликов, обновление интерфейса. Нужен, чтобы приложение было интерактивным
- Vue.js 3.x.x - JavaScript-фреймворк для построения интерфейсов. Нужен для реактивного обновления UI при изменении данных и разбиения интерфейса на переиспользуемые компоненты
- Pinia 3.x.x - официальная библиотека для управления состоянием во Vue.js. Нужна для хранения глобальных данных приложения (авторизация) и доступа к ним из любого компонента без передачи через пропсы
- Node.js 24.x.x - среда выполнения JavaScript на сервере. Нужна, чтобы писать серверную логику на том же языке, что и клиентскую
- Express.js 5.x.x - фреймворк для обработки HTTP-запросов. Нужен, чтобы быстро создать API и маршруты без низкоуровневой работы с Node.js
- Prisma 7.x.x - нужен, чтобы работать с базой данных через JavaScript, автоматически создавать таблицы по схеме и выполнять типизированные запросы
- PostgreSQL 18.3 - реляционная СУБД. Нужна, чтобы надёжно хранить данные пользователей, связывать таблицы и выполнять запросы
Руководитель проекта будет обновлять версии зависимостей технологического стека при помощи Dependabot по мере их релиза. Обновления будут распространяться на minor и patch релизы элементов технологического стека
Что деплоится:
- Сервер (Node.js + Express.js)
- Клиент (HTML, Tailwind CSS, JavaScript)
- База данных PostgreSQL
Как деплоится (автоматизация):
- GitHub Actions — при пуше в ветку
main:- Устанавливаются зависимости (
npm ci) - Запускаются миграции Prisma (
npx prisma migrate deploy) - Приложение перезапускается на хостинге
- Устанавливаются зависимости (
Docker (опционально):
- Собирается образ командой
docker build -t app . - Образ пушится в GitHub Container Registry
- Хостинг автоматически забирает новый образ и перезапускает контейнер
Тесты запускаются из корня проекта через npm workspaces.
npm ci
npm testОтдельно frontend:
npm test --workspace clientОтдельно backend:
npm test --workspace serverПокрытие:
npm run test:coverageПодробности и минимальная инструкция находятся в TESTING.md.