Документация: http://127.0.0.1:8000/redoc/, http://127.0.0.1:8000/swagger/
- LMS-система, в которой каждый желающий может размещать свои полезные материалы или курсы. SPA веб-приложение - бэкенд-сервер, который возвращает клиенту JSON-структуры.
- JWT-авторизация.
- Тесты
Права пользователей:
IsModeratorPermission
- проверка на модератора: могут работать с любыми уроками и уроками, но не могут создавать и удалятьIsOwnerPermission
- проверка на создателя объекта: могут работать только со своими курсамиIsPersonalProfilePermission
- проверка права редактирования своего пользовательского профиля
- Создать файл .env в корне проекта с настройками, аналогичными .env.example.
python manage.py createusers
- создать пользователейpython manage.py seed
- сидирование таблиц- JWT - авториазция
- Запуск отложенных задач:
celery -A config worker -l INFO
- запуск периодических задач:
celery -A config worker --beat --scheduler django --loglevel=info
authen_drf
:User
: почта, телефон, аватар, странаCountry
lms
:Course
: название, описание, превью-изображение, владелец, дата последнего обновленияLesson
: название, описание, превью-изображение, видеоссылка, курс, владелецUserSubscription
(подписки пользователей на обновления курсов): пользователь, курс
payment
:Payment
: пользователь, курс, урок, сумма, id stripe-сессии, ссылка на оплату
- lms
CourseViewSet
- вьюсет:list
- список всех курсов. Пагинацияcreate
- создание курса. Отправка почтовых уведомлений об изменении курса
LessonListAPIView
- генерик списка уроков. ПагинацияLessonRetrieveAPIView
- генерик одного курсаLessonCreateAPIView
- генерик создания курсаLessonUpdateAPIView
- генерик обновления курсаLessonDestroyAPIView
- генерик удаления курса
- payment
PaymentListAPIView
- генерик списка всех платежей. Пагинация, сортировка по дате оплаты, фильтрация по курсу, уроку, способу оплатыPaymentCreateAPIView
- генерик создания оплаты курсаshow_success_payment
- страница уведомления об успешной оплатеPaymentStatusAPIView
- генерик информации о статусе платежа
- authen_drf
UserListAPIView
- генерик списка пользователейUserRetrieveAPIView
- генерик одного пользователяUserUpdateAPIView
- генерик обновления пользователяLoginView
(авторизация, обновление даты последней авторизации)
authen_drf
:UserSerializer
UserDetailSerializer
payment (PaymentSerializer)
- платежи пользователя
lms
:CourseSerializer
lesson (LessonSerializer)
: информация по всем урокам.get_lessons_count()
- количество уроковget_is_user_subscription()
- проверка подписи на курс авторизованного пользователя
LessonSerializer
- валидатор проверки наличия видеоссылок
payment
:PaymentSerializer
lms.send_course_updating_notification
- Отправляет отложенно почтовые уведомления об обновлении курсаauthen_drf.check_user_activities
- celery-beat периодическая проверка активности пользователей. Если пользователей не заходил больше 7 дней, аккаунт деактивируется.