Skip to content

icecube092/test_platform

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 

Repository files navigation

Задача
Реализовать веб-сервис на базе django, представляющий собой платформу для 
прохождения тестов. Должны быть реализованы следующие возможности:

Возможность авторизоваться как “Студент” или “Преподаватель”.
Студент
Возможность загрузить аватарку и добавить номер телефона.
Возможность пройти выбранный тест 
Возможность посмотреть результат теста: список правильных и неправильных ответов и оценку (отношение правильных ответов к общему количеству)
Возможность посмотреть историю пройденных тестов. 
Преподаватель
Возможность просмотреть результат теста выбранного студента.
Возможность сбросить результат теста для выбранного студента.
Тесты создаются из панели администратора. Тест имеет вопрос и несколько вариантов ответов, правильный ответ должен быть только один.
Реализован функционал, который раз в день собирает статистику о пройденных тестах и в фоновой задаче посылает email администратору или сообщение в telegram.

Требования
Данные хранятся в реляционной БД, взаимодействие с ней осуществляется посредством django ORM.
Реализовано разграничение прав доступа к тестам.
Приложение контейнирезировано при помощи docker;
Проект не использует глобальных зависимостей за исключением: python, docker, docker-compose;
Readme проекта описывает весь процесс установки, запуска и работы с сервисом;
Требования к фронтенду не предъявляются;
Требования к админке не предъявляются.

Установка проекта:
1. docker build -t tests Dockerfile
2. docker run -it tests
3. python3 manage.py makemigrations
4. python3 manage.py migrate

Запуск и использование проекта:
0. Заполнить конфиг
1. Создать суперпользователя.
2. Создать группу Teachers (важно) со всеми правами для вопросов, тестов и результатов тестов.
3. Создать тест, добавить в него вопросы с вариантами ответов.
4. Студент может найти тесты по адресу /tests и решать их, а затем смотреть результат.
5. Преподаватель может сбрасывать результат для студента на странице теста.
6. Студенты имеют профиль по адресу /profile/?user_id={user_id} и могут
изменять свое фото и номер телефона, остальные могут просматривать профиль.
Преподаватели профиля не имеют.
7. Сброс результата через админку должен сопровождаться удалением этого теста из профиля студента,
поскольку тест и результат теста это разные модели.

Недостатки:
- во время сборки докерфайла возникали проблемы (хависание процесса), поэтому пришлось убрать автоматизацию
миграций
- не хватает автоматического создания группы для преподавателей

About

Сервис с тестами на Django

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published