Формулировка задачи
Цель проекта
Создание нового раздела «Учеба» на платформе MIPT.Tech, который станет централизованным хранилищем учебных материалов, таких как записи лекций, конспекты, учебники и т.д.
Это решит проблему децентрализованности учебных материалов и позволит студентам с сильно большим удобством как хранить и актуализировать самописные материалы, так и иметь доступ к общему “хранилищу” с удобным поиском.
Описание функциональности
Главная сущность: Курс
Курс объединяет предмет, лектора и год его проведения.
Зарегистрированные пользователи смогут создавать курсы с гибкими настройками доступа:
- Публичный — доступен без авторизации, в том числе может индексироваться поисковиками.
- Только для авторизованных — доступен только после входа в аккаунт.
- Доступ по ссылке.
- Приватный — доступ предоставляется вручную на конкретные аккаунты MIPT.Tech.
Создатели курсов смогут делегировать права редактирования другим пользователям.
Создатели курсов могут передать роль создателя курса другому пользователю.
Содержание курса
Каждый курс включает:
- Ссылку на плейлист с лекциями (на YouTube или VK Видео).
- Список материалов, относящихся к курсу.
- Факультет (опционально).
- Номер курса (опционально).
- Статус курса:
- Только создан.
- Читается.
- Закончен.
- Алиасы — ключевые слова для удобного поиска (например: «матан», «матанализ», «Редкозубов» и т.д.).
Сущность: Материал
Каждый материал имеет следующие параметры:
- Название.
- Тип:
- Конспект (затеханный).
- Конспект (рукописный).
- Расписанные билеты.
- Учебник.
- Пособие.
- Задавальник.
- Другое.
- Статус:
- Только создан.
- В процессе (например, готово 5 из 10 лекций).
- Готов.
- Заброшен.
- Содержимое:
- Файл (PDF, DJVU и др.).
- Ссылка на сторонний ресурс.
- Исходник (опционально).
Функции:
- Предпросмотр материалов в поддерживаемых форматах (например, PDF).
- Возможность добавления и обновления материалов пользователями с правами на редактирование курса.
Функциональность поиска
Платформа предоставляет удобный поиск по курсам с возможностью фильтрации:
- По году.
- По факультету.
Дополнительная опция: Предложение материалов
Пользователи, не имеющие права редактирования курса, могут предложить новый материал.
- Функциональность аналогична загрузке материала редактором курса.
- Пользователи с правами на редактирование могут проверять и утверждать предложенные материалы.
Технологический стек
- Frontend: Next.js.
- Backend: Django.
- Кэширование: Redis.
- Очереди: RabbitMQ.
- База данных: PostgreSQL.
Желаемый состав команды и компетенции
- Студенты с навыками фулл-стек разработки (с преобладанием в сторону фронтенда) - 2x
- Студенты с навыками фулл-стек разработки (с преобладанием в сторону бекенда) - 2x
- “ни рыба, ни мясо”
Очень хочется выбирать среди студентов, прошедших курс по full-stack разработке.
Желаемое количество студентов: 4-6
Руководитель проекта и менторы
Бонусы
- Право быть увековеченным в списке разработчиков платформы (на главной странице сайта)
- Возможность остаться в команде проекта и разрабатывать его дальше
- Пицца на митингах 😊