Веб-интерфейс для организации выбора элективов. Создается для повышения удоства этого процесса и упрощения обмена текущей информацией об элективах.
- Удобный просмотр курсов, их описаний и обсуждений
- Возможность видеть текущую статистику количества желающих взять каждый курс
- Интерфейс для упорядочивания выбранных курсов, выбора поднабора потенциально рассматриваемых курсов, создания заявления
- Добавление и массовая загрузка элективов по 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 с помощью модуля django-allauth
, для этого необходимо создать и задать
- Redirect url, согласно документации allauth
- Permissions, согласно настройкам в
choosing_electives/settings.py
. На данный момент это
'SCOPE': ['identity.basic', 'openid', 'profile', 'email']
Кроме регистрации через слак можно создавать ссылки-приглашения на странице администрации. Для создания корректной ссылки должен быть указан правильный domen-name сервера.
Также для подтверждения почты, восстановления пароля необходимо задать адрес и пароль для smtp сервера google, либо для любого другого.
После установки Postgres необходимо создать пользователя и пустую базу данных, данные о которых необходимо указать в конфигурационном файле.
Все вопросы, предложения, информацию о багах пришите в Issues