Основные требования к заданию
● вводимые данные должны проверяться на соответствие формату (Email валиден);
● логин и пользовательский e-mail – уникальные данные, не должны повторяться;
● пароли должны храниться в закодированном виде;
● URL должны быть «чистыми», по правилу ЧПУ (Человеку Понятные URL-ы, удобные для восприятия человеком, без использования знака “?” и переменных после него);
● Необходимы комментарии к блокам кода с описанием того что реализуется в том или ином блоке;
● Бронирование должно сопровождаться визуальными изменениями состояния мест на макете космического аппарата.
● Каждое место на макете космического аппарата должно визуально соответствовать своему состоянию: свободно, не доступно, забронировано вами.
● Общее количество свободных мест должно отображаться в реальном времени на специальном табло на макете звездолета.
● Обязательно использование возможности открытых библиотек. Такие технологии как Flash, Silverlight оцениваться не будут (разрешены JQuery).
● Обязательно использование технологии Ajax при бронировании и отмене бронирования.
# | Критерий | Балл |
Авторизация и регистрация | ||
С1O1 | Регистрация функционирует: после отправки формы, все поля заносятся в БД в отдельную строку | |
C1O2 | Пароли хранятся в закодированном виде | |
C1O3 | При отправке формы на стороне сервера проверяется валидность введенного e-mail. Регистрация не осуществляется, если e-mail не валиден | |
C1O4 | При отправке формы проверяется уникальность введенных данных: e-mail, логин. Регистрация не осуществляется, если данные не уникальны (штраф 0,5 за каждую проверку) | |
C1O5 | При вводе некорректных данных, выводится соответствующая ошибка: некорректный e-mail, логин занят, e-mail занят, пустой пароль | |
C1O6 | Авторизация функционирует: при вводе корректных данных пользователя авторизовывает и перенаправляет на главную страницу | |
C1O7 | Если данные не верные, выводится соответствующее сообщение об ошибке | |
C1O8 | Заведен демо-пользователь | |
C1O9 | Предусмотрена функционирующая кнопка выхода | |
Бронирование | ||
С1O10 | На моделе шаттла изображены статусы мест: свободно, занято, занято вами | |
С1O11 | Форма бронирования функционирует: случайно выбирается место в выбранном салоне, все данные о брони заносятся в БД | |
C1O12 | При отправке пустых полей, занятого номера паспорта или при условии, что все места в салоне уже заняты, бронирование не осуществляется | |
C1O13 | Если пользователь исчерпал лимит мест(3 места на аккаунт), бронирование не осуществляется. | |
C1O14 | При отправке некорректных данных, выводится соответствующее сообщение об ошибке: поля пустые, номер паспорта уже зарегистрирован на рейс, исчерпан лимит броней | |
D1O1 | Форма бронирования функционирует без обновления страницы(AJAX) | |
D1O2 | При успешном бронировании на моделе шаттла сразу без перезагрузки страницы отображается место, которое забронировал пользователь | |
D1O3 | При клике на свою бронь выводится сообщение с подтверждением удаления | |
D1O4 | При заказе места на шатле учитывается класс салона "Люкс", "Эконом", "Зеро". Штраф 0.5 за каждый отсутсвующий класс | |
D1O5 | Бронь удаляется при подтверждении удаления без перезагрузки страницы | |
Комментарии | ||
C1O15 | Форма комментариев функционирует: после отправки формы, комментарий заносится в БД | |
C1O16 | Нельзя добавить пустой комментарий. Если отправится пустой комментарий, то выводится соответствующая ошибка | |
C1O17 | Комментарии выводятся на главной страницы из БД. В комментарии выводится логин пользователя, дата и сам комментарий | |
Общее | ||
C1O18 | Используются ЧПУ | |
С1O10 | Используются комментарии к PHP-коду | |
D1O5 | Используются комментарии к JS-коду | |
C1O20 | Используется фреймворк архитектуры MVC | |
С1O21 | Неавторизованному пользователю не доступны функции авторизованного |
Модуль 3
Программирование на стороне клиента и сервера
Время выполнения: 4 часа
ЗАДАНИЕ
Компания ОАО «Покусись на марс» была довольна вашим приложением по бронированию билетов и решила заказать у вас административную часть.
ОПИСАНИЕ ЗАДАНИЯ
Панель администратора должна располагаться по адресу “ваша_папка/admin-panel” и работать независимо от приложения из модуля 2. Также необходимо создать учетную запись администратора с логином “admin” и паролем “wsr123”.
Вам необходимо реализовать следующий функционал: