Skip to content

tamarinvs19/choosing_electives

Repository files navigation

Choosing electives

Веб-интерфейс для организации выбора элективов. Создается для повышения удоства этого процесса и упрощения обмена текущей информацией об элективах.

Репозиторий с UI тестами

Текущие возможности

Для студентов

  • Удобный просмотр курсов, их описаний и обсуждений
  • Возможность видеть текущую статистику количества желающих взять каждый курс
  • Интерфейс для упорядочивания выбранных курсов, выбора поднабора потенциально рассматриваемых курсов, создания заявления

Для администрации

  • Добавление и массовая загрузка элективов по html-странице
  • Создание ограничений для каждого курса и направления
  • Упрощение работы с курсами, пороводимыми на разных языках, в разном формате или нескольких семестрах

Архитектура

Серверная часть проекта написана на языке python с использованием фреймворка Django. Для веб-интерфейса используется библиотека Bootstrap.

Установка зависимостей

Зависимости перечислены в файле requirements.txt. Для установки

python -m pip install -r requirements.txt

Для хранения данных используется Postgres, установку смотреть на оффициальном сайте. .

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

Для тестового запуска можно использовать следующую команду

python manage.py migrate
python manage.py runserver

Для развертывания в Kubernets смотреть ветку k8s-deploy

Конфигурация

Конфигурационные ключи должны располагаться в файле .env в корне проекта. Образец можно найти в .env-template.

Slack регистрация

В проекте предполагется возможность регистрации через Slack с помощью модуля django-allauth, для этого необходимо создать и задать

  1. Redirect url, согласно документации allauth
  2. Permissions, согласно настройкам в choosing_electives/settings.py. На данный момент это
    'SCOPE': ['identity.basic', 'openid', 'profile', 'email']

Invite

Кроме регистрации через слак можно создавать ссылки-приглашения на странице администрации. Для создания корректной ссылки должен быть указан правильный domen-name сервера.

SMTP

Также для подтверждения почты, восстановления пароля необходимо задать адрес и пароль для smtp сервера google, либо для любого другого.

Postgres

После установки Postgres необходимо создать пользователя и пустую базу данных, данные о которых необходимо указать в конфигурационном файле.

Bug-reports

Все вопросы, предложения, информацию о багах пришите в Issues