Основные требования к заданию

● вводимые данные должны проверяться на соответствие формату (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”.

Вам необходимо реализовать следующий функционал: