Учебный проект Yatube - Социальная сеть блогеров
Разработан в рамках обучения по программе "Python WEB разработчик" в Яндекс.Практикум
В учебных целях создано две реализации с одиноковым функционалом:
- class based view (этот репозиторий)
- function based view ( https://github.com/BolshakovAndrey/hw05_final)
Проект разработан на осоновании технического задания.
Техническое задание: Необходимо разработать социальную сеть для публикации личных дневников. Это будет сайт, на котором можно создать свою страницу. Если на нее зайти, то можно посмотреть все записи автора. Пользователи смогут заходить на чужие страницы, подписываться на авторов и комментировать их записи. Дизайн можно взять самый обычный, но красивый. Тексты без особой разметки. Записи можно отправить в сообщество и посмотреть там записи разных авторов.
В проекте реализованы следующие функции:
Создание сообщества для публикаций.
Публикация поста в ленте, (возможность выбора группы, в которой появится этот пост);
Добавление новых записей авторизованными пользователями;
Добавление фотографий;
Добавление и редактирование комментариев;
Редактирование постов только его автором;
Подписка/отписка на понравившихся авторов;
Создание отдельной ленты с постами авторов на которых подписан пользователь;
Реализовано кэширование, работает на главной странице;
Работает пагинация;
Так же реализовано тестирование(Unittest) основных функций:
После регистрации пользователя создается его персональная страница (profile);
Авторизованный пользователь может опубликовать пост (new);
Неавторизованный посетитель не может опубликовать пост (его редиректит на страницу входа);
После публикации поста новая запись появляется на главной странице сайта (index), на персональной странице пользователя (profile), и на отдельной странице поста (post);
Авторизованный пользователь может отредактировать свой пост и его содержимое изменится на всех связанных страницах.
Авторизованный пользователь может подписываться на других пользователей и удалять их из подписок;
Новая запись пользователя появляется в ленте тех, кто на него подписан и не появляется в ленте тех, кто не подписан на него;
Только авторизированный пользователь может комментировать посты.
Стек технологий
Python3 Django Pytest Pillow Bootstrap
Запуск приложения
Установите зависимости из requirements.txt:
pip install -r requirements.txt
Выполните все необходимые миграции:
python manage.py makemigrations
python manage.py migrate
Для доступа к панели администратора создайте администратора:
python manage.py createsuperuser
Запустите приложение:
python manage.py runserver