Цель тестового задания Задание Дополнительные требования Дополнительные знания
Определить возможную динамику самообучения кандидата. А так же глубину понимания кода, реализующего тестовое задание.
Написать тестовое web-приложение по управлению электронной библиотекой:
- Редактирование (доступно авторизованному пользователю при наличии аутентификации):
- Управление списком книг: добавить / удалить / редактировать книгу.
- Управление списком авторов: добавить / удалить / редактировать автора.
- Запись о книге содержит следующие данные:
- ID
- Название
- Запись об авторе содержит следующие данные:
- ID
- Имя
- Свзязь между книгами и авторами - многие ко многим.
- Поиск книг по названию либо автору (доступно анонимному пользователю при наличии аутентификации).
- Аутентификации и авторизация (по желанию кандидата).
Технологии, которые должны быть задействованы:
- Flask
- SQLAlchemy (Declarative)
- SQLite (встроенный в приложение)
- Jinja2 Templates
- WTForms
- jQuery (желательно, но возможно использование альтернативных решений)
Список может быть расширен по усмотрению кандидата, но с обязательным использованием технологий, перечисленных выше.
##Дополнительные требования
Список дополнительных требований следующий:
- Код проекта должен быть доступен на сервисе http://github.org или http://bitbucket.org.
- Проект должен содержать SQL-скрипты для развертывания базы данных и наполнения ее тестовыми данными.
- Пользовательские данные должны валидироваться перед сохранением в БД.
- Дополнительные знания
##Дополнительные знания, необходимые при защите проекта:
- HTTP
- WSGI
- SQL, Transactions, Transaction Isolation Levels
- SQLAlchemy
- Уязвимости веб-сайтов
- User Experience