Skip to content

TetherOne/course-system

Repository files navigation

Python 3.11 Django 4.0

Система для ведения курсов

1. Описание проекта

Краткое описание проекта

    Идея проекта заключается в создании образовательной платформы,
    которая будет предоставлять курсы различной тематики.
    В отличие от существующих аналогов, таких как Moodle,
    этот проект имеет более удобную структуру учебных материалов
    и улучшенное взаимодействие между преподавателем и студентом.

Структура учебных материалов

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

Структура тестов

    Преподаватель может создавать тесты, которые будут
    прикреплены к любому уроку. Тест состоит из вопросов и ответов к ним.
    Преподаватель также может прикреплять файлы к вопросу и попросить ученика
    также прикрепить файлы к ответу на вопрос (например решить писмьенно задание).
    Тесты в которых нет прикрепленных файлов проверяется автоматически.
    Теты, в которых есть прикрепленные файлы от преподавателя,
    но нет надобности добавления файлов от студента (т.е. есть варианты ответа
    на вопрос в котором прикреплен файл от преподавателя) тоже проверяются автоматически.
    Тесты в которых есть прикрепленные файл от студента к вопросу проверяются
    автоматически, но вопросы, с прикрепленными файлами от студентов, не проверяются,
    за них идет 0 баллов, в таком случае преподаватель это увидит (это будет выделено)
    и он должен будет поставить балл за этот вопрос, результат автоматически пересчитается
    во всех таблицах (ниже будет написанно в каких).

Таблица с результатами

    В курсе есть таблица с результатами всех учеников за все контрольные точки
    этого курса, также есть зачетная таблица, которая показывает максимально
    возможный балл за курс (сумма максимального балла за все котнрольные точки курса)
    и текущий бал студента за эти контрольные точки. Преподаватель не сможет изменять баллы
    за вопросы в контрольное точке, которую уже проходил какой-либо студент, но может создавать
    новую контрольную точку в этом курсе, в таком случае баллы пересчитаются.

Регистрация и аутентификация

    При регистрации пользователь должен будет указать никнейм, почту, пароль и свою роль
    (студент или преподаватель). Вход в систему будет осуществляться при
    помощи почты и пароля, если пользователь забыл пароль, то его можно будет
    восстановить через почту (на нее придет сообщение со ссылкой для сброса пароля).

2. Technologies

Frameworks

- Django + DRF
- Vue.js

SQL Database

- PostgreSQL

NoSQL Database

- Redis

Message Broker

- RabbitMQ

Task Queues

- Celery

Linters

- Flake8
- Black

3. Sources