Написать API для приложения блог, где пользователи могут писать статьи и делиться со своими подписчиками.
- Python 3.10
- Django 4.1.1
- DRF 3.12.4
- SQLite
- Кастомную модель
User
(link) Post
с отношением (User - Post)Like
с отношениями (User - Like - Post)Comment
с отношением (User - Comment - Post)
email: str
*password: str
*username: str
Сделать username
не обязательным, а email
обязательным.
user: foregin-key to User
*title: str
*description: str
*text: text
*
user: foregin-key to User
*post: foregin-key to Post
*
user: foregin-key to User
*post: foregin-key to Post
*text: text
*
Для Comment
, Like
можно использовать ManyToManyField
с атрибутом through
!!! Не забудь про миграции.
- Сделать Сериализаторы для созданых моделей (link)
- Сделать CRUD для созданых моделей с использованием ViewSets (кроме
Likes
) (link) - Сделать JWT авторизацию (link)
- Ограничить доступ на добавление лайка к посту, коммента не авторизованым юзерам.
- Добавить ограничения, чтобы юзер не мог изменить данные другого юзера.
- Добавить в сериализатор для модели
Post
полеlikes
в котором будет количество лайков. - Добавить возможность автоудаления поста с использованием
Celery
- Добавить возможность отложеного поста с использованием
Celery
- Написать
Middleware
которая при возникновении ошибки в приложении будет отправлять ошибку в телеграм админу(ам), и на почту. link - Добавить пагинацию для постов, комментов. link
- Добавить фильтрацию для постов, комментов. link
- Сделать ендпоинты в виде
/api/v1/posts
или/api/v1/comments
и т.д. - Добавить картинки к постам.
- Сделать
Dockerfile
для API приложения - Сделать
docker-compose.yml
в котором должны жить api, postgres, redis, celery.