Тестовое задание:
Сделать простой веб-сайт для отображения табло рейсов в аэропорту
- У рейса есть номер, город вылета/прилета, тип самолета, время, фактическое время, статус (вылетел, приземлился, идет посадка, задержан до и т.п.).
- Возможность получать, добавлять, редактировать, удалять рейсы.
- Возможность сделать выборку по городу, статусу.
- Должно быть табло прилета, вылета и интерфейс администратора для управления.
- Должен быть счетчик рейсов.
- Должна быть подробная документация о том, как развернуть проект.
- Проект должен быть готов к тому, чтобы вывесить его на внешнем домене.
- Оформить все в git-репозитории (включая документацию по API)
Будет оцениваться именно качество готового решения.
Производится запуском скрипта deploy.sh на стороне сервера.
В процессе установки потребуется указать суперпользователя для БД.
По умолчанию проект сконфигурирован на использование sqlite3. Для использования другой БД (например, MySQL) необходимо дополнительно:
- Установить модуль mysqlclient==1.3.6
- Заменить в файле settings.py DATABASES на:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': '',
'USER': '',
'PASSWORD': '',
'HOST': '',
'PORT': '',
}
}
и, заполнив конфигурационные параметры, приступить к миграции. После миграции необходимо создать суперпользователя для работы с панелью администратора.
Возможно заполнить БД тестовыми данными через главное меню.
Используется встроенная админ панель Django. Доступ по адресу http://host:port/admin/
(Для полноценного проекта целесообразна разработка собственной панели администратора)
Доступно выполнение запроса к БД извне посредствам выполнения GET запроса по адресу http://host:port/api/v1/flights/ с параметрами фильтрации:
(Если фильтры не пустые, то производится фильтрация по вхождению подстроки)
- arr_or_dep - 'arr', 'dep' (прибытия или отправления соответственно)
- status - статус
- city - направление
- flight - рейс
Нужно установить Content-Type в значение application/json