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. Подтверждение или запрет обмена.

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

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

  • Убедитесь, что у вас установлены:

  • Требования к системе:

    • Операционная система: Windows 10/11, macOS, Linux
    • Разрядность системы: 64-битная
    • Браузер: Современный браузер на базе Chromium (например, Google Chrome) или Gecko (например, Firefox) желательно последней версии.
  • Клонируйте репозиторий:

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

    cd mse1h2026-project
  • Скопируйте файл .env.example в .env и отредактируйте переменные окружения.

    cp .env.example .env

Запуск без Docker

  • Для локальной разработки (без Docker) убедитесь, что у вас установлены:

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

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

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

    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
    
    JWT_SECRET=<your_jwt_secret>

Production

Development

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

  • 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)
  • backend:

    • JWT_SECRET - секрет для генерации JWT токенов (может быть любым строковым значением, но рекомендуется использовать сложную строку для безопасности).

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

  1. После запуска приложения, откройте браузер и перейдите по адресу http://127.0.0.1:8080.
  2. В локальной разработке и в docker compose для разработки, доступен путь к backend API по адресу http://127.0.0.1:3000/api.

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

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