Skip to content

ZapolyarnyDev/Tokboard

Repository files navigation

Tokboard

Локальный запуск

Требуется Node.js 24+ и Docker.

Вариант 1: полностью через Docker

copy server\.env.example server\.env
npm run docker:up

Frontend будет доступен на http://localhost:8080, backend - на http://localhost:3000.

Остановить контейнеры:

npm run docker:down

Вариант 2: dev-режим

  1. Установить зависимости:
npm ci
  1. Создать env для backend:
copy server\.env.example server\.env
  1. Поднять PostgreSQL и применить миграции:
npm run db:up
npm run db:migrate
  1. Запустить backend:
npm run dev:server
  1. Во втором терминале запустить 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

Технологический стек

Клиент (Frontend)

  • HTML5 - описывает структуру веб-приложения. Нужен, чтобы браузер понимал, какие элементы надо отобразить
  • Tailwind CSS 4.x.x - CSS-фреймворк. Нужен, чтобы стилизовать интерфейс прямо в разметке, не создавая отдельные CSS-файлы и не придумывая имена классов
  • JavaScript (ES2025) - управляет поведением страницы: отправка данных на сервер, обработка кликов, обновление интерфейса. Нужен, чтобы приложение было интерактивным
  • Vue.js 3.x.x - JavaScript-фреймворк для построения интерфейсов. Нужен для реактивного обновления UI при изменении данных и разбиения интерфейса на переиспользуемые компоненты
  • Pinia 3.x.x - официальная библиотека для управления состоянием во Vue.js. Нужна для хранения глобальных данных приложения (авторизация) и доступа к ним из любого компонента без передачи через пропсы

Сервер (Backend)

  • 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.

About

📝Интерактивная доска распределения задач на веб-сокетах

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages