Задача:
Разработать LMS-систему, в которой каждый желающий может размещать свои полезные материалы или курсы. Система является SPA веб-приложением и результатом создания проекта будет бэкенд-сервер, который возвращает клиенту JSON-структуры.
Данные проекта хранятся в БД PostgreSQL.
Для запуска проекта:
- клонируйте проект
- создайте файл .env по образцу. (Файл .env.sample)
- убедитесь, что на Вашем устройстве установлен Docker
- осуществите сборку образов и запуск контейнеров (docker compose up -d —build)
Функционал и права доступа:
Неавторизованным пользователям доступна регистрация и авторизация.
Модераторы имют права работы с любыми уроками и курсами, но без возможности их удалять и создавать новые.
Авторизованные пользователи, которые не входят в группу модераторов, могут видеть список курсов и уроков, создавать свои уроки и курсы. Авторизованные пользователи также могут детально просматривать, редактировать и удалять только свои курсы и уроки. Авторизованные пользователи могут просматривать любой профиль, но редактировать и удалять только свой. При этом для просмотра чужого профиля доступна только общая информация, в которую не входят пароль, фамилия и история платежей.
При создании урока можно прикреплять ссылки на видео на youtube.com. Ссылки на сторонние образовательные платформы или личные сайты прикреплять нельзя.
На платформе можно оформить подписку на получение уведомление об обновлении курса. Реализована асинхронная рассылка писем пользователям об обновлении материалов курса. Уведомления отправляются только в том случае, если курс не обновлялся более четырех часов.
Подключена возможность безналичной оплаты курсов через https://stripe.com/docs/api. (Только формирование сессии, без дальнейших проверок.)
Реализована фоновая задача по блокировке пользователей в случае отсутсвтия активностей на платформе более месяца.