/hw05_final

Cоциальная сеть Yatube. Учебный проект

Primary LanguagePython

Yatube 🌐

Описание проекта ⏬

Cоциальная сеть Yatube. Учебный проект

Сеть для публикации постов пользователями, с возможностью подписки на понравившихся авторов. Реализован такой функционал:

  • 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

Перейти на сайт 🚀

Эндпоинты для API

Регистрация пользователя: 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/

Автор

Биссалиев Олег