Сценарии использования (use-cases) к первому уроку курса Django курса Девман.
Ваш заказчик Артём хочет потестировать сайт — убедиться что всё работает и всё красиво. Проверять от будет со своего ноутбука. У него уже есть доступ к админке, вы сообщили ему логин и пароль ранее. Также у него есть ссылка на репозиторий.
- Артём перешёл по ссылке на репозиторий GitHub
- В репозитории Артём нашёл ссылку на работающий сайт
- Артём тестирует сайт в действии: зумит, кликает по локациям, листает фотки.
- Артём находит в репозитории ссылку на админку
- Артём заходит в админку и добавляет новую локацию: название, координаты, фоточки
- Проверяет как выглядит новая локация на сайте
Артём ничего не знает про модели данных, особенности Django и вашего проекта. В админке он действует по наитию, поэтому интерфейc должен вести себя просто, понятно и предсказуемо.
Артём тестирует сайт на desktop
Артёму важно, чтобы сайт хорошо работал со смартфонов. Он ожидает, что до половины трафика будет с телефонов.
- Артём открывает сайт на смартфоне
- Артём тестирует сайт в действии: зумит, кликает по локациям, листает фотки.
Артём попросил вас выдать доступ к админке контент-менеджеру Ирине. Она будет следить за наполнением сайта: обновлять текст и загружать картинки. В админке сайта она чаще всего будет выполнять две операции: добавлять новые локации на карту и редактировать старые. В обоих случаях случаях алгоритм действий такой:
- Из закладок в браузере зайти в админку
- Перейти в список локаций
- Найти локацию по названию (здесь пригодится
ModelAdmin.search_fields
?) - Перейти на страницу редактирования
- Обновить текстовки
- Залить новые картинки и удалить старые
- Выбрать самые яркие картинки и переместить их в начало списка
Примечательно, что и добавление новой локации и редактирование старой Ирина начинает со списка локаций. Получается, что страница админки со списком всех картинок, загруженных на сайт ей вообщем-то и не нужна. Страница эта может пригодится программистам для тестирования и отладки, но контент-менеджеру она не нужна.
Другой программист случайно наткнулся на ваш репозиторий на GitHub. У него нет пока желания вникать в нюансы и делать что-либо. Он хочет понять где оказался и как это относится к нему.
- Бегло, не вчитываясь пролистал README
- Понял что это сайт
- Рядом заметил ссылку на опубликованную версию
- Перешёл на сайт, покликал, убедился что работает
- Вернулся в README
- Нашёл, с какого сайта были взяты данные
- Заметил, что это учебный проект
Другой программист, уже знакомый с проектом, хочет развернуть сайт у себя и слегка "доработать напильником".
- Скачал репозиторий к себе
- Следуя инструкциям быстро и легко установил зависимости
- По инструкции наполнил БД тестовыми данными
- Скопировал команду для запуска сайта
- По инструкции или из сообщений в консоли понял, что скрипт исправен и работает
- Нашёл ссылку, открыл в браузере, убедился что сайт работает
- Следуя инструкциям смог попасть в админку и отредактировать данные
- Полез читать код
- ...
- Profit!