Заявка на обратный звонок
Мы свяжемся с вами и ответим на любые возникшие вопросы!
Нажимая на кнопку «Отправить» , я соглашаюсь с политикой конфиденциальности и условиями обработки персональных данных, а также даю согласие на получение информационных рассылок
Институт IT
19-24 сентября
1 этап
Олимпиада
WorldSkills
Прикрепите и отправьте выполненные задания
Нажимая на кнопку «Участвовать» , я соглашаюсь с политикой конфиденциальности и условиями обработки персональных данных, а также даю согласие на получение информационных рассылок
до 19:00 24.09.2020
Задание 1
Разработка промо-сайта
«Школа обучения IT профессиям» специализируется на качественной и доступной IT-подготовке и помогает в подготовке программистов, компьютерных дизайнеров, специалистов в области сетей и информационной безопасности. Главной особенностью школы является то, что курс ведется независимо от возраста и базового образования.
Получить востребованные познания за короткий срок — мечта каждого. Поиск работы, самореализация, желание дать детям широкие возможности для будущего — вот что приводит клиентов всех возрастов в «Школу обучения IT профессиям».
«Школа обучения IT профессиям» решила выйти на новые горизонты рынка образовательных услуг и заказала сайт. Обратившись в несколько веб-студий города руководители школы пришли к выводу что разработку полноценного сайта они себе позволить не могут из-за ограниченного бюджета и решили заказать сайт-визитку.
ОПИСАНИЕ ПРОЕКТА
Предметом разработки является разработка сайта для сетевой образовательной организации «Школа обучения IT профессиям» (при выполнении задания можно использовать WordPress).
Цель проекта: Разработка сайта для привлечения клиентов по обучению, с возможностью расчета стоимости обучения.
Структура интернет-ресурса и навигация.
1. Карта сайта:
1. Главная
2. Наши школы (фото, контактная информация)
2.1 Москва
2.2 Санкт-Петербург
2.3 Казань
2.4 Брянск
2.5 Екатеринбург
2.6. Смоленск
2.7. Владивосток
3. Расписание занятий
4. Новости
5. Наши услуги
5.1. Курсы для школьников
5.2 Курсы для студентов
5.3. Курсы для работающих граждан
5.4. Курсы для пенсионеров
5.5. Калькулятор стоимости услуг
6. Преподаватели
6.1. Высшая категория
6.2. Первая категория
7. Отзывы
8. Контакты
2. Главная страница должна быть выполнена в виде Landing Page и включает в себя следующие блоки:
- Шапка с элементами фирменного стиля академии, иллюстрациями услуг компании (баннер), контактной информацией.
- Выбор города. При выборе города в шапке контактная информация меняется.
- Блок меню. Главное меню должно быть зафиксировано в верхней части веб-страницы. Для показа контента будет использована прокрутка.
- Описание преимуществ компании. С возможностью записи на пробное занятие.
- Информация о преподавателях (фотография, ФИО, краткая информация).
- Новости. Должно выводится не более 3 последних новостей.
- Отзывы (фото, текстовая информация). Должно выводиться не менее 3 отзывов.
- Футер (реквизиты организации, ссылки на социальные сети).
3. Внутренние страницы:
- Наша школа. После выбора города на странице отображается изображение и контактная информация школы.
- Расписание занятий (для группового обучения).
- Новости. Каждая новость содержит: текст, изображение, дату публикации. На странице должно выводится не более 4 новостей. Если новостей больше должна выводится пагинация, каждая последующая новость добавляется вниз ленты без перезагрузки страницы.
- Наши услуги. При выборе услуги дается краткое пояснение образовательной услуги и предоставляется возможность рассчитать ее стоимость с помощью калькулятора, а также возможность записаться на пробное занятие.
4. Модули и плагины:
- Калькулятор цен на обучение. Цена формируется из следующих параметров в зависимости от выбора пользователя:
- Преподаватель (высшей категории – 500 руб/час, первой категории – 200 руб/час);
- Курс (для школьников – 0,5, для студентов – 0,7, для работающих граждан – 2, для пенсионеров – 1);
- Город (Москва – 3, Санкт-Петербург – 2, Казань – 0.8, Брянск – 0.7, Екатеринбург – 0.6, Смоленск – 1, Владивосток – 1,5);
- Интенсивность (72 часа, 144 часа, 288 часов);
Формула расчета: Цена обучения = Преподаватель * Курс * Город * Интенсивность
Модуль должен быть реализован в отдельной форме и размещен в разделе «Наши услуги».
Весь необходимый контент предоставляется в папке «Media». Графические элементы участники разрабатывают самостоятельно.
Задание 2
Создание игры
Наш заказчик сделал срочный заказ: необходимо разработать игру под названием «Индейские приключения».
Технологии этого модуля: HTML 5, CSS3, JavaScript, Граф. дизайн, PHP
Вам необходимо реализовать дизайнерское решение и функционал игры.
Вам предоставлены необходимые медиа данные и шрифты, их заказчик подбирал самостоятельно, но можно использовать и собственный медиаконтент.

ОПИСАНИЕ ПРОЕКТА
В игре используются элементы, описанные ниже:
1. Аламеда или Макки: персонаж, который контролируется игроком.
2. Волки: элементы, от которых необходимо уклоняться игроку.
3. Шкала жизней (HP): шкала, отражающая запас жизненной энергии игрока.
4. Куриная ножка: элемент, при поедании которого у персонажа восстанавливается здоровье.
5. Имя игрока: имя игрока, которое он ввел на стартовом экране.
6. Съедено: количество съеденных куриных ножек.
7. Возвышенность: элемент, на который можно запрыгивать.
8. Таймер: элемент, отображающий время игры
Игра должна начинаться со стартового экрана, который содержит название игры, инструкцию к игре, поле для ввода имени игрока и кнопку "Начать". Если поле имени пустое, то кнопка не активна. Инструкция к игре должна быть представлена анимировано. Так же на стартовом экране можно выбрать персонажа для игры.
Перед началом игры после нажатия кнопки «Начать» должен проигрываться небольшой мультик – предыстория, который предоставлен в медиафайлах. Должна быть предоставлена возможность пропустить мультик и сразу начать игру при нажатии на пробел.
Игровой функционал:
1. По нажатию на кнопку "Начать" и просмотра ролика игрок попадает на экран игры. На игровом экране отображается имя игрока, количество HP, количество съеденных куриных ножек и время игры. Изначально у игрока 0 съеденных куриных ножек, 100 HP и таймер в состоянии 00:00 (в формате mm:ss).
2. В начале игры запускается таймер, персонаж располагается в левой стороне игрового поля, что является начальной границей карты.
3. При начале игры должно включиться музыкальное оформление.
4. В начале игры случайным образом генерируются возвышенности (не менее 10)
5. Игрок может передвигаться с помощью клавиш-стрелок: налево и направо. Для прыжка используется клавиша вверх, а для ухода под землю клавиша вниз. Когда игрок находится в левой половине видимой части экрана фон не передвигается, а «замирает». Когда игрок доходит до центральной точки он остается в центральной части экрана, а фон в свою очередь начинает «прокручиваться». При этом когда фон достигает конца, игрок должен передвигаться в правую часть экрана. При движении справа налево фон прокручивается в обратную сторону.
6. По мере прохождения игры на игрока нападают волки, которые случайно генерируются в видимой части игрового поля и двигаются влево-вправо в пределах 500 пикселей от точки появления. Игра заканчивается, как только игрок доходит до конца карты и достигает правого местоположения или происходит смерть персонажа, а таймер останавливается.
7. За каждую съеденную куриную ножку дается 5 HP.
8. За каждое соприкосновение с волком отбирается 30 HP. Если контакт длится больше 1 секунды, то 30 HP списывается за каждую полную секунду контакта.
9. Если жизни игрока кончаются (0HP), то игра заканчивается.
10. Жизни игрока (HP) расходуются со скоростью 1HP/с на протяжении всей игры.
11. Куриные ножки на карте должны генерироваться случайный образом, одновременно на экране должно быть не более 2 штук. Куриные
ножки располагаются на возвышенностях. Чтобы на них забраться необходимо подпрыгнуть.
12. Для того чтобы достать куриную ножку персонажу необходимо запрыгнуть на возвышенность, подпрыгнув. Он может находиться на возвышенности неограниченное время.
13. Для того чтобы увернуться от волка персонажу необходимо перепрыгнуть его, закопаться под землю или запрыгнуть на возвышенность.
14. При уходе под землю персонаж не виден на экране, и не может передвигаться влево-вправо. Для того чтобы персонаж появился из-под земли необходимо нажать клавишу вверх.
15. При нажатии на кнопку ESC игра ставится на паузу, а при повторном нажатии - снимается с паузы. Во время паузы останавливаются все интерактивные действия, а также вся анимация, таймер тоже замирает, прекращается трата HP, игрок и волки не двигаются.
16. Когда игрок идет обратно, он поворачивается в обратную сторону.
17. Ваша игра должна работать без отображения JavaScript ошибок или сообщений в консоли браузера.
18. Ваш HTML/CSS и JavaScript код должен быть организован и понятным. Используйте корректные наименования переменных, методов и не забывайте оставлять комментарии для дальнейшей поддержки в будущем.
19. После завершения игры результаты должны быть сохранены на сервере и показана таблица с рейтингом. Баллы для рейтинга рассчитываются по формуле: 1000 – затраченное время в секундах + количество съеденных куриных ножек*10
20. После завершения игры открывается экран результатов, в котором формируется таблица с лучшими 10 игроками, если игрок не вошел в таблицу, то выводятся 9 лучших игроков, а в последней строке указывается место и результат игрока только что завершившего игру.
21. На экране результатов должна быть кнопка «Играть сначала», которая позволяет начать игру с начала, первый экран и ролик не отображаются.
Проявите все свои навыки для создания качественной игры, с анимацией и интерактивностью. Также важен дизайн игры и соответствие целевой группе: дети 10-12 лет.
Задание 3
Создание RESTful API для веб-сервиса
Часть 1

Организация "Insta Technologies" решила разработать фотосервис, который позволит людям регистрироваться в нем, загружать фотографии, модифицировать их и делиться ими с другими пользователями.


Вам необходимо разработать RESTful API для сервиса.


Технологии этого модуля: PHP, Python

описание проекта

Вашей задачей является создание RESTful API для вышеописанного сервиса. Документация с описанием API предоставляется вам в приложении к заданию.



Вместо {service} необходимо подставить xxxxx-m2.wsr.ru/api, где xxxxx - это ваш логин.



Заказчик хочет в дальнейшем использовать разработанное API совместно с другими сервисами. Поэтому при написании API вам необходимо разрешить кросс-доменные запросы (CORS) для обращения с другого домена.



Ниже описаны некоторые нюансы логики взаимодействия с API:

  • При создании фото название по умолчанию должно быть "Untitled"
  • Все загруженные фотографии сохраняются с уникальным именем файла на сервер в папку "xxx-m2/photos", где xxx - ваш логин
  • Измененная фотография на сервере конвертируется в png и сохраняется на сервере в ту же папку.
  • Пользователь не может изменить, удалить и поделиться фотографией, если не является её владельцем.
  • При поиске, пользователь не видит себя в списке.


Вы можете использовать известные Вам библиотеки и фреймворки.



Часть 2



Компания "Insta Technologies" решила доработать свой фотосервис. Теперь компании требуется клиентское приложение для взаимодействия с ранее созданным RESTful API.



Вам необходимо разработать клиентскую часть сервиса и ваши задачи касаются только front-end программирования, верстки и дизайнерских решений.



Компания предоставляет вам уже разработанное RESTFul API для работы с ним. Исходный код данного API не предоставляется.



Технологии этого модуля: Дизайн, Верстка, JavaScript

описание проекта и задач

Документация с описанием API предоставлена в приложении к заданию.



В документации к API вместо {service} необходимо подставить wsr.ru/photos/api



Ниже описан функционал, который вам необходимо реализовать.



Регистрация – любой человек должен иметь возможность зарегистрироваться в сервисе. При регистрации необходимо указать следующие обязательные поля:

  • Имя
  • Фамилия
  • Номер телефона
  • Пароль


Авторизация – для авторизации необходимо ввести номер телефона и пароль.



В случае неправильного заполнения данных в формах должны отображаться ошибки, которые вернул сервер.



Пользователь должен иметь возможность загрузить фотографию.

Редактирование фотографии – должна быть возможность изменить название для уже загруженной фотографии, а также обрезать фотографию.



Удаление фотографий – пользователь должен иметь возможность удалить уже загруженную фотографию. Также должна быть возможность удалить группу фотографий, отметив их.



Пользователи должны иметь возможность поделиться своими фотографиями с другими людьми. Для этого нужно реализовать следующий функционал:

1. Выбор фотографий, которыми нужно поделиться.

2. Поиск пользователей по Имени, Фамилии и (или) номеру телефона.

3. Выбор пользователей из поиска, с кем пользователь хочет поделиться фотографиями.



Пользователи должны иметь возможность увидеть фотографии которыми он поделился с другими людьми. Для этого нужно реализовать следующий функционал:

1. Поиск пользователей по Имени, Фамилии и (или) номеру телефона.

2. Выбор одного пользователя из поиска.

3. Просмотр расшаренных ему фотографий.



Разработанный сервис должен быть удобным для использования на разных устройствах. Не забывайте об использовании анимации и микро-анимации для улучшения впечатления.


Все запросы отправляются с заголовком Content-Type: application/json, если в запросе не указан другой вариант.

Все передаваемые и получаемые параметры должны строго соответствовать тому, что описано ниже!



Регистрация

URL: {service}/signup

Method: POST

Data params:

● first_name - обязательное

● surname - обязательное

● phone - обязательное, уникальное, ровно 11 цифр, может быть с ведущими нулями

● password - обязательное

Success response:

● Code: 201 Created

● Content:

○ id - идентификатор созданного пользователя

Error Response:

● Code: 422 Unprocessable entity

● Content - объект, где ключи - это поля, которые не прошли валидацию, а их значения - текст ошибки валидации



Авторизация

URL: {service}/login

Method: POST

Data params:

● phone - обязательное

● password - обязательное

Success response

● Code: 200 OK

● Content:

o token - сгенерированный токен для дальнейшего доступа к странице

Error Response (ошибка валидации):

● Code: 422 Unprocessable entity

● Content - объект, где ключи - это поля, которые не прошли валидацию, а их значения - текст ошибки валидации

Error Response (неверный логин или пароль):

● Code: 404 Not found

● Content:

○ login: "Incorrect login or password"



Все последующие запросы требуют авторизации с использованием Bearer-токена. Токен должен быть отправлен в заголовке Authorization.



При отправке запроса без заголовка авторизации сервер должен вернуть следующий ответ:

Error Response:

● Code: 403 Forbidden

● Content:

○ message: You need authorization



Выход

URL: {service}/logout

Method: POST

Success response

● Code: 200 OK



Загрузка фотографии

URL: {service}/photo

Method: POST

Content-Type: FormData

Data params:

● photo – обязательное, файл с изображением, только jpg, jpeg или png.

Success response

● Code: 201 Created

● Content:

o id – уникальный идентификатор фотографии

o name – название фотографии, по умолчанию "Untitled"

o url – абсолютная ссылка на фотографию (с http://)

Error Response:

● Code: 422 Unprocessable entity

● Content - объект, где ключи - это поля, которые не прошли валидацию, а их значения - текст ошибки валидации



Изменение фотографии

URL: {service}/photo/{ID}

Method: POST

Data params:

_method: обязательное поле, со значением "patch", без кавычек

● name – необязательное

● photo – необязательное, измененная фотография в формате base64

Success response

● Code: 200 OK

● Content:

○ id – уникальный идентификатор фотографии

○ name – название фотографии

○ url – абсолютная ссылка на фотографию (с http://)

Error Response (ошибка валидации):

● Code: 422 Unprocessable entity

● Content - объект, где ключи - это поля, которые не прошли валидацию, а их значения - текст ошибки валидации

Error Response (Ошибка доступа) - В случае, если пользователь пытается изменить не свою фотографию, ему возвращаются следующие параметры:

● Code: 403 Forbidden





Получение фотографий

URL: {service}/photo

Method: GET

Success response

● Code: 200 OK

● Content: массив объектов, где каждый объект имеет следующие свойства:

o id

o name

o url

o owner_id – id пользователя, которому принадлежит фотография

o users – массив с id пользователей, которые имеют доступ к этой фотографии



Получение одной фотографии

URL: {service}/photo/{ID}

Method: GET

Success response

● Code: 200 OK

● Content:

o id

o name

o url

o owner_id – id пользователя, которому принадлежит фотография

o users – массив с id пользователей, которые имеют доступ к этой фотографии



Удаление фотографии

URL: {service}/photo/{ID}

Method: DELETE

Success response:

● Code: 204 Deleted

Error Response (Ошибка доступа) - В случае, если пользователь пытается изменить не свою фотографию, ему возвращаются следующие параметры:

● Code: 403 Forbidden



Шаринг фотографий

URL: {service}/user/{ID}/share

Method: POST

Data params:

● photos – массив с идентификаторами фотографий. В случае, если в массиве будет id фотографии которая уже была расшарена, то повторно она расшарена не будет.

Success response:

● Code: 201 Created

● Content:

○ existing_photos - массив с идентификаторами фотографий, которые уже есть на сервере.





Поиск пользователей

URL: {service}/user

Method: GET

Query parameters:

search – строка запроса, в которой указывается имя(или часть имени) фамилия(или часть фамилии) и (или) номер телефона(или часть номера телефона). Например: Иван Иванов 7951, И Иван 7.

Success response:

Code: 200 OK

Content - массив объектов, которые содержат идентификатор, имя, фамилию и телефон пользователя:

o id

o first_name

o surname

o phone

Прикрепите и отправьте выполненые задания до 19:00 19.09.2020
Нажимая на кнопку «Отправить» , я соглашаюсь с политикой конфиденциальности и условиями обработки персональных данных, а также даю согласие на получение информационных рассылок
© 2019 Университет «Синергия»
Разработка и продвижение – Synergy Digital
8 (495) 280-03-50
ПОЛИТИКА КОНФИДЕНЦИАЛЬНОСТИ
Ваша конфиденциальность очень важна для нас. Мы хотим, чтобы Ваша работа в Интернет по возможности была максимально приятной и полезной, и Вы совершенно спокойно использовали широчайший спектр информации, инструментов и возможностей, которые предлагает Интернет. Персональные данные, собранные при регистрации (или в любое другое время) преимущественно используется для подготовки Продуктов или Услуг в соответствии с Вашими потребностями. Ваша информация не будет передана или продана третьим сторонам. Однако мы можем частично раскрывать личную информацию в особых случаях, описанных в данной Политике конфиденциальности.
Рамки Политики конфиденциальности
Настоящая Политика конфиденциальности (далее — «Политика») применяется к информации, полученной через данный сайт, иные сайты, виджеты и другие используемые интерактивные средства, на которых есть ссылка на данную Политику (далее — «Сайт») от пользователей Сайта (далее — «Пользователи»).
Нижеследующие правила описывают, как Университет «Синергия» обращается с любой информацией, относящейся к прямо или косвенно определенному или определяемому физическому лицу (субъекту персональных данных) (далее — «Персональные данные»), для целей оказания услуг с использованием Сайта.
Пользователи включают в себя всех физических лиц, которые подключаются к Сайту и используют Сайт.
Пользователи прямо соглашаются на обработку своих Персональных данных, как это описано в настоящей Политике. Обработка означает любое действие (операцию) или совокупность действий (операций), совершаемых с использованием средств автоматизации или без использования таких средств с Персональными данными, включая сбор, запись, систематизацию, накопление, хранение, уточнение (обновление, изменение), извлечение, использование, передачу (распространение, предоставление, доступ), блокирование, удаление, уничтожение Персональных данных.
Настоящая Политика конфиденциальности действует с 03 марта 2016 г.
Контролирующие и обрабатывающие лица
Пользователи соглашаются с тем, что:
  • Пользуясь Сайтом, и принимая условия использования, опубликованные на Сайте, пользователь заявляет о своем однозначном согласии с обработкой его Персональных данных способами, описанными в настоящей Политике.
  • Обработка Персональных данных Пользователей осуществляется Оператором персональных данных — Университет «Синергия» (ИНН: 7729152149, ОГРН: 1037700232558).

С какой целью собираются эти данные
Имя используется для обращения лично к вам, а ваш e-mail для отправки вам писем рассылок, новостей тренинга, полезных материалов, коммерческих предложений. Вы можете отказаться от получения писем рассылки и удалить из базы данных свои контактные данные в любой момент, кликнув на ссылку для отписки, присутствующую в каждом письме.
Сбор Персональных данных
При регистрации на Сайте Пользователи подтверждают свое согласие с условиями настоящей Политики и свое согласие на обработку своих Персональных данных в соответствии с условиями настоящей Политики, кроме того они соглашаются на обработку своих Персональных данных на серверах Университета «Синергия», расположенных на территории Российской Федерации.
Обработка Персональных данных осуществляется не дольше, чем этого требуют цели обработки Персональных данных, изложенные в настоящей Политике (за исключением случаев, предусмотренных законодательством Российской Федерации). Университет «Синергия» может обрабатывать следующие Персональные данные:
  • адрес электронной почты и иную контактную информацию;
  • сообщения, направляемые с использованием Сайта, и сообщения, направляемые в Университет «Синергия»;
  • иную информацию о взаимодействии Пользователя с Сайтом Университета «Синергия», результаты сбора статистики посещений Сайта Университета «Синергия» и общедоступной информации о программах и устройствах, используемых для такового доступа;
  • дополнительную информацию, которую Университет «Синергия» запрашивает у Пользователей для удостоверения их личности.

Как эти данные используются
На сайте используются куки (Cookies) и данные о посетителях сервиса Google Analytics. При помощи этих данных собирается информация о действиях посетителей на сайте с целью улучшения его содержания, улучшения функциональных возможностей сайта и, как следствие, создания качественного контента и сервисов для посетителей. Вы можете в любой момент изменить настройки своего браузера так, чтобы браузер блокировал все файлы cookie или оповещал об отправке этих файлов. Учтите при этом, что некоторые функции и сервисы не смогут работать должным образом.
Как эти данные защищаются
Для защиты Вашей личной информации мы используем разнообразные административные, управленческие и технические меры безопасности. Наша Компания придерживается различных международных стандартов контроля, направленных на операции с личной информацией, которые включают определенные меры контроля по защите информации, собранной в Интернет. Наших сотрудников обучают понимать и выполнять эти меры контроля, они ознакомлены с нашим Уведомлением о конфиденциальности, нормами и инструкциями. Тем не менее, несмотря на то, что мы стремимся обезопасить Вашу личную информацию, Вы тоже должны принимать меры, чтобы защитить ее. Мы настоятельно рекомендуем Вам принимать все возможные меры предосторожности во время пребывания в Интернете. Организованные нами услуги и веб-сайты предусматривают меры по защите от утечки, несанкционированного использования и изменения информации, которую мы контролируем. Несмотря на то, что мы делаем все возможное, чтобы обеспечить целостность и безопасность своей сети и систем, мы не можем гарантировать, что наши меры безопасности предотвратят незаконный доступ к этой информации хакеров сторонних организаций.
В случае изменения данной политики конфиденциальности вы сможете прочитать об этих изменениях на этой странице или, в особых случаях, получить уведомление на свой e-mail.