Сеть для публикации постов пользователями, с возможностью подписки на понравившихся авторов. Реализован такой функционал:
- 1️⃣ Просмотр всех публикаций неавторизованным пользователем
- 2️⃣ Добавление (с возможностью добавления изображений) и удаление публикаций только авторизированным пользователем
- 3️⃣ Редактирование публикаций только его автором
- 4️⃣ Создание групп для объединения публикаций по общей тематике только администратором
- 5️⃣ Просмотр публикаций по определенной группе
- 6️⃣ Возможность подписки на определенного автора только авторизованным пользователем и просмотр его ленты публикаций. Также можно отписаться от автора
- 7️⃣ Возможность оставлять комментарии на публикацию только авторизованным пользователем
На сайте подключены пагинация, кеширование, регистрация и авторизация пользователей. Также можно сменить пароль указав адрес электронной почты на который будет отправлено письмо. Также сайт поддерживает API. Аутентификация осуществляется по JWT-токену. Предоставляет данные в формате Json. Функциональные возможности на API такие же как указано выше. При запущенном проекте документация доступна ЗДЕСЬ 📃.
- Python 3.10
- Django 2.2.16
- Django RestFramework 3.12.4
- Djoser 2.1.0
Клонировать репозиторий и перейти в него в командной строке:
git clone git@github.com:bissaliev/hw05_final.git
Cоздать и активировать виртуальное окружение:
python3 -m venv venv
source venv/bin/activate
Установить зависимости из файла requirements.txt:
pip install -r requirements.txt
Выполнить миграции:
python3 manage.py migrate
Запустить проект:
python3 manage.py runserver
Регистрация пользователя: POST
http://127.0.0.1:8000/api/v1/users/
Формат ввода:
{
"username": "Ваш_юзернайм",
"password": "Ваш_пароль"
}
Получить токен: POST
http://127.0.0.1:8000/api/v1/token/login/
Формат ввода:
{
"username": "string",
"password": "string"
}
Остальные эндпоинты описаны в документации:
http://localhost:8000/redoc/
http://localhost:8000/api/v1/posts/
http://localhost:8000/api/v1/posts/<int:id>/
http://localhost:8000/api/v1/posts/<int:post_id>/comments/
http://localhost:8000/api/v1/posts/<int:post_id>/comments/id/
http://localhost:8000/api/v1/users/
http://localhost:8000/api/v1/users/me/
http://localhost:8000/api/v1/users/me/