Данное приложение является тестовым заданием на позицию Senior разработчика в команду приложения "Незабудка".
Напишите и разверните веб-приложение на языке Python
, используя фреймворк Django
и любую СУБД. Приложение - это простой сервис, накапливающий информацию о клиентах.
Оно должно состоять из нескольких разделов:
- таблица с контактами
- форма создания нового контакта
- форма редактирования контакта
- форма удаления контакта
- форма просмотра контакта
Форма с контактами
Стартовый экран приложения. На нем отображаются все контакты из базы данных (БД).
Форма должна содержать постраничную навигацию и поиск на серверной стороне. 1 страница = max 10 записей. При этом, количество страниц зависит от количества записей в БД и от результатов поиска. Поиск должен фильтровать количество записей в таблице и количество страниц.
Форма создания нового контакта
Сохраняет новый контакт в БД. Необходимо реализовать валидацию полей Email
и Phone
на клиентской и серверной стороне.
Форма редактирования контакта
Эта форма позволяет редактировать и сохранить контакт из БД. Необходимо реализовать валидацию полей Email
и Phone
на клиентской и серверной стороне.
Форма удаления контакта
Удаление контакта из БД.
Форма просмотра контакта
Содержит детальную информацию о контакте, включая идентификатор записи и внешний ключ.
Экспорт и импорт
Сделайте возможность загружать и выгружать контакты в БД, используя форматы: json
или csv
.
Сделать на главном экране кнопку
Экспорт
. При нажатии на кнопку (ссылку) отправляется запрос на сервер, данные выбираются из БД, преобразуются в нужный формат и возвращаются на клиент. Ответ должен восприниматься как файл и браузер начинал скачивание.
Сделать на главном экране кнопку
Импорт
. При нажатии на кнопку (ссылку) открывается новая форма с возможностью выбора файла. Окно выбора файла фильтрует все файлы, кроме указанных выше. После отправки файла на сервер, нужно сверить содержимое файла с ожидаемым форматом и затем распарсить его.Каждую запись необходимо провалидировать перед загрузкой в БД.
Парсинг
Необходимо распарсить страницу http://breffi.ru/ru/about, выделить 5 базовых ценностей компании и отобразить их на главной форме, над таблицей.
Внешний сервис
Реализуйте загрузку контактов, используя данные из внешнего сервиса https://jsonplaceholder.typicode.com/users
REST API
Сделайте REST API для управления контактами (CRUD).