Skip to content

moevm/mse1h2026-project

Repository files navigation

mse-template

Оглавление

Сценарии использования

Сценарий использования - описание того, что делает пользователь с приложением для достижения своей цели.

Роли пользователей - студент, администратор.

Студент

Основной сценарий:

Авторизация → Просмотр списка курсов → Просмотр деталей курса → Просмотр проектов → Формирование команды → Отправка заявки → Получение уведомления → Просмотр распределения → Инициация обмена (при необходимости)

  1. Авторизация → вход в систему.
  2. Просмотр списка курсов → отображение актуальных курсов.
  3. Просмотр деталей курса → описание и дедлайны.
  4. Просмотр списка проектов → список доступных проектов.
  5. Формирование команды:
    • отправка запроса;
    • получение запроса;
    • подтверждение или отказ.
  6. Отправка заявки.
  7. Уведомление о распределении.
  8. Просмотр дашборда.
  9. Обмен проектами:
    • инициация;
    • подтверждение или отказ.

Администратор

Основной сценарий:

Авторизация → Настройка параметров
→ Просмотр курсов → Настройка курса → Запуск распределения → Анализ результатов → Корректировка → Публикация → Просмотр распределения → Подтверждение обмена

  1. Авторизация.
  2. Просмотр курсов.
  3. Просмотр деталей курса.
  4. Настройка курса:
    • редактирование описания;
    • изменение дедлайнов, размера команд, отображения курса;
    • редактирование списка проектов.
  5. Настройка параметров распределения.
  6. Запуск алгоритма.
  7. Визуализация результатов.
  8. Корректировка.
  9. Публикация итогов.
  10. Просмотр дашборда.
  11. Подтверждение или запрет обмена.

Установка и запуск

Подготовка к запуску

  • Клонируйте репозиторий:

    git clone https://github.com/moevm/mse1h2026-project
  • Перейдите в директорию проекта:

    cd mse1h2026-project
  • Скопируйте файл .env.example в .env и отредактируйте переменные окружения. Переменные, находящиеся под # [service] dev-env используются для dev разработки с Docker.

    cp .env.example .env

Запуск без Docker

  • Установите зависимости:

    pnpm i
  • Введите в .env значения

    MYSQL_DATABASE=<your_database_name>
    MYSQL_USER=root
    MYSQL_PASSWORD=<your_root_password>
    MYSQL_HOST=localhost
    MYSQL_PORT=3306
    
    BACKEND_OUTPUT_HOST=localhost
    BACKEND_OUTPUT_PORT=3000
  • Запустите проект:

Production

pnpm build
pnpm preview

Development

pnpm dev

Запуск с помощью Docker

  • Введите в .env значения для инициализации и запуска MySQL контейнера:

    MYSQL_ROOT_PASSWORD=<your_root_password>
    MYSQL_DATABASE=<your_database_name>
    MYSQL_USER=<your_mysql_user>
    MYSQL_PASSWORD=<your_mysql_user_password>
    MYSQL_HOST=db
    MYSQL_PORT=3306
    
    BACKEND_OUTPUT_HOST=127.0.0.1
    BACKEND_OUTPUT_PORT=3000

Production

  • Запустите docker compose:

    docker compose up --build

Development

  • Запустите docker compose для разработки:

    docker compose -f docker-compose.dev.yaml up --build

Переменные окружения

  • db:

    • MYSQL_ROOT_PASSWORD - пароль для пользователя root в MySQL.

    • MYSQL_DATABASE - имя базы данных, которая будет создана при запуске контейнера.

    • MYSQL_USER - имя пользователя для доступа к базе данных (обычно root для локальной разработки, и не root для docker).

    • MYSQL_PASSWORD - пароль для пользователя, указанного в MYSQL_USER.

    • MYSQL_HOST - хост, на котором работает MySQL (обычно db для Docker, localhost для локальной разработки)

    • MYSQL_PORT - порт, на котором работает MySQL (обычно 3306)

      dev-env:

      • MYSQL_OUTPUT_HOST - хост, на котором будет доступна база данных MySQL (обычно 127.0.0.1 для локальной разработки)
      • MYSQL_OUTPUT_PORT - порт, на котором будет доступна база данных MySQL (обычно 3306)
      • MYSQL_OUTPUT_URL - URL, на котором будет доступна база данных MySQL (обычно {MYSQL_OUTPUT_HOST}:${MYSQL_OUTPUT_PORT})
  • backend:

    • DATABASE_URL - URL для подключения к базе данных MySQL (в частности для ORM Prisma)
    • BACKEND_OUTPUT_HOST - хост, на котором будет доступен бэкенд (обычно 127.0.0.1)
    • BACKEND_OUTPUT_PORT - порт, на котором будет доступен бэкенд (обычно 3000)
    • BACKEND_OUTPUT_URL - URL, на котором будет доступен бэкенд (обычно ${BACKEND_OUTPUT_HOST}:${BACKEND_OUTPUT_PORT})
  • frontend:

    • VITE_API_BASE_URL - базовый URL для API запросов к бэкенду (обычно http://${BACKEND_OUTPUT_URL}/api)
    • FRONTEND_OUTPUT_HOST - хост, на котором будет доступен фронтенд (обычно 127.0.0.1)
    • FRONTEND_OUTPUT_PORT - порт, на котором будет доступен фронтенд (обычно 8080)
    • FRONTEND_OUTPUT_URL - URL, на котором будет доступен фронтенд (обычно http://${FRONTEND_OUTPUT_HOST}:${FRONTEND_OUTPUT_PORT})

Проверка работоспособности

Инструкции по проверке работоспособности проекта (основной функциональности и результатов).

Дополнительная информация

Любая информация, которую команда посчитает нужной разместить.