На этом курсе вы напишете социальную сеть. Она даст пользователям возможность создать учетную запись, публиковать записи, подписываться на любимых авторов и отмечать понравившиеся записи.
Обычно на Django пишут гораздо менее амбициозные проекты, вроде Youtube, Instagram или Pinterest, но этот популярный и мощный фреймворк должен справиться и с нашей задачей.
Идея и проектирование
Перед началом работы создаётся основная документация проекта.
В самом начале на одной-двух страницах простым языком описывают идею и задачу проекта. Такой документ называют «концепцией проекта».
Цель создания концепции — ввести в курс дела всех, кто включится в работу над проектом. На основе этой концепции будут написаны другие, более детальные документы.
Техническое задание — подробное описание проекта и его работы. Есть определенные международные стандарты создания такого документа, и если следовать им, то бюджет на создание такого документа может оказаться весьма большим. В реальности же техническим заданием (ТЗ) называют всё подряд, даже концепцию проекта (к сожалению, зачастую это единственный документ, который способен выдать заказчик).
Списки требований — гибкий (agile) метод разработки. Сперва собираются технические, функциональные и нефункциональные требования — и только после этого пишется спецификация на код.
Например, собирается информация о том, где и как будет использоваться проектируемая система. Некоторые требования могут быть очень важны: например, если программа будет выполняться на спутнике, который будет лететь через всю солнечную систему в течении десятков лет — разработчикам придётся предусмотреть множество нюансов.
Пользовательские истории — описание требований к проекту через перечень ролей и возможных действий пользователей. Описание роли может быть довольно лаконичным: «Незарегистрированный пользователь может отправить заявку на регистрацию», «Администратор может заблокировать учетную запись пользователя».
Тесты приемки — перечень сценариев, которым должен соответствовать проект. Такой перечень может быть оформлен в виде списка, где в процессе приёмки проекта будет отмечаться соответствие требованиям.
Мокапы (англ. “mock up” - макет) — схематическое изображение интерфейса или продукта, где понятен ход взаимодействия с системой, но не приходится сосредотачиваться на обсуждении дизайна и оформления.
Множество других документов, включая дизайн, эскизы, наброски, формальные документы, которые сделаны по определенному образцу, списки задач в программных менеджерах задач и так далее.
В нашем проекте мы ограничимся концепцией, которую нам предоставил заказчик.
Концепция проекта Yatube
Вот документ, который прислал вам заказчик. Стилистика и орфография полностью сохранены. Бывают концепции и похуже.
Необходимо разработать социальную сеть для публикации личных дневников.
Это будет сайт, на котором можно создать свою страницу. Если на нее зайти, то можно посмотреть все записи автора.
Пользователи смогут заходить на чужие страницы, подписываться на авторов и комментировать их записи.
Автор может выбрать имя и уникальный адрес для своей страницы.
Дизайн можно взять самый обычный, но красивый.
Тексты без особой разметки.
Должно выглядеть нормально, поиграйте со шрифтами.
Еще надо иметь возможность модерировать записи и блокировать пользователей, если начнут присылать спам.
Записи можно отправить в сообщество и посмотреть там записи разных авторов.
Вы же программисты, сами понимаете, как лучше сделать.
Приступаем к разработке.