В качестве хобби, я решил открыть для себя мир веб-разработки, попутно освещая свои успехи, а может и неудачи на пути к просветлению…

В настоящее время я публично описываю процесс создания веб-сайта с нуля на Django и Bootstrap, где задача разработать такие приложения как: аккаунты, вопросы, статьи и книги.

В проекте решаются только реальные задачи, которые почему-то так любят обходить стороной в учебной литературе.

Создание веб-сайта с нуля на Django и Bootstrap. Функциональная спецификация

Сергей Серов

Самый простой способ изучить какие-либо новые технологии — это написать несколько типовых приложений с использованием оных.

В качестве каркаса был выбран Django. Популярный фреймворк для построения динамических сайтов написанный на не менее популярном языке Python.

За вывод внешней части проекта будет отвечать Bootstrap. Известный фреймворк для разработки адаптивных сайтов. Предоставляет ряд готовых веб-компонентов "из коробки".

Заказчиком будет выступать мой брат. Он довольно давно планировал начать публичную деятельность, но его останавливал ряд факторов: начиная от выбора хостинга и движка, заканчивая оформлением.

Мне же сторонний заказчик позволит выйти за рамки субъективности и начать мыслить более непредвзято.

Дополнительной мотивацией для успешного завершения проекта послужит публичное описание процесса разработки приложений.

Приложения

Проект, как и проповедует философия Django будет разбит на приложения. Это удобно, как и на этапе планирования так и на этапах сопровождения и администрирования.

Статьи (articles):

  • Визуальный редактор для написания и редактирования статей;
  • Загрузка изображений и прочих документов;
  • Статус статьи: черновик или опубликована;
  • Запланированная публикация статей;
  • Индексная страница, список статей;
  • Редактирование заголовка статей без "вымирания ссылок";
  • Подробный вид статьи;
  • Лента последних статей;
  • Список публикации для карты сайта;
  • Администрирование.

Аккаунты (accounts):

  • Регистрация нового пользователя, без требования уникальности имен;
  • Генерация цифрового кода для различия имен пользователей;
  • Строгая проверка имени и пароля при регистрации;
  • Подтверждение аккаунта по электронной почте, отправка проверочного кода;
  • Вход и выход пользователя;
  • Смена и сброс пароля;
  • Смена адреса электронной почты;
  • Администрирование.

Вопросы (questions):

  • Формы "задать вопрос" и "написать ответ" для авторизированных пользователей;
  • Визуальный редактор для написания вопросов и ответов;
  • Список разрешенных html-тегов в формах;
  • Ограничения на кол-во символов в формах вопросов и ответов;
  • Индексная страница, список вопросов, постраничная навигация;
  • Статус вопроса: отвечен или без ответа;
  • Редактирование заголовка статей без "вымирания ссылок";
  • Подробный вид вопроса и ответов к нему;
  • Лента последних вопросов;
  • Список вопросов для карты сайта;
  • Администрирование.

Основное приложение проекта — это Статьи. Приложения Аккаунты и Вопросы являются второстепенными и планируются вводиться по мере надобности.

Но, если существует необходимость использовать свою или модифицированную систему пользователей, то ее необходимо подключить до первой миграции приложений.

Следовательно, приложение Аккаунты надлежит разработать первым.