Skip to content

romanpalmin/PlanetDirectory

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 

Repository files navigation

Тестовое задание "Справочник планет"

Постановка задачи

Создать веб-приложение «Справочник планет». На первой странице справочника должен выводиться список планет Солнечной системы в виде таблицы. По клику на строку таблицы должна открываться подробная информация о планете.

Обязательно:

  • использовать шаблонизатор dust.js и библиотеку jQuery.

Желательно:

  • реализовать приложение в виде одной html-страницы, использовать HTML5 History API (http://diveintohtml5.info/history.html)
  • реализовать RESTful JSON веб-сервис, который поддерживал бы выдачу списка всех планет и подробной информации об одной планете; использовать его в качестве источника данных
  • разместить итоговый проект на github.

Пример реализации

http://dev.romanpalmin.com/samples/PlanetDirectory/

Реализация задачи

Задание выполнено в виде одностраничного web-приложения. Источником данных выступают json-объекты (в тестовом режиме в виде подготовленных json-файлов, для продакшн-версии реализованы методы обработки ответа серверного веб-сервиса, загружаемого асинхронно). Приложение реализовано согласно шаблону проектирования псевдо-MVC, где

  • Модель. Модель описывает логические объекты, их взаимодействия, работу с источниками данных. Модель не "знает" ни о чем больше.
  • Вид. Вид "знает" о моделе, получает от нее информацию, подготавливает и предоставляет пользователю конечное представление данных.
  • Контроллер. Работает как с моделью, так и с Видом. Обеспечивает взаимодействие пользователя и приложения.

Разметка и заполнение страницы реализованы через js-объекты.

Пользовательские формы вывода информации генерируются через шаблоны.

Использование технологии HTML5 History позволяет реализовать "межстраничные" переходы(в рамках одной страницы), генерировать пользовательские ссылки на конкретную информацию, обрабатывать кнопки "Назад"/"Вперед"

Требования к серверу

Сервер должен предоставлять доступ к веб-методам getPlanets() и getPlanet(int id), возвращающие данные в следующем json-формате: { "success": true, "errors": [], "data": [{id, name, namerus, dist, img, weight, desc"}] }

Использованные технологии

  • HTML5 History API - работа с историей приложение, генерация интуитивно-понятных URI
  • AJAX - асинхронная подгрузка данных с сервера
  • jQuery - работа с DOM-объектами
  • DUST - генерация пользовательских форм через шаблоны
  • JSON - формат хранения и передачи данных

TODO список

  1. Написать jquery-wrapper для работы с библиотекой dust для удобства работы и автоматической динамической компиляции шаблонов.
  2. Написать обработчик ошибок, обернуть "опасные" операции в блоки try/catch.
  3. Добавить библиотеку jquery.history.js для работы приложения в браузерах, не поддерживающих HTML5 history.
  4. Вынести настройки приложения во внешний json-файл и обеспечить интерфейс взаимодействия с ним
  5. Добавить возможность менять Представление на лету (мобильная версия, сервисная версия, и т.д.)

About

Test task "Directory of the planets" / Тестовое задание "Справочник планет"

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors