Создать веб-приложение «Справочник планет». На первой странице справочника должен выводиться список планет Солнечной системы в виде таблицы. По клику на строку таблицы должна открываться подробная информация о планете.
Обязательно:
- использовать шаблонизатор 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 - формат хранения и передачи данных
- Написать jquery-wrapper для работы с библиотекой dust для удобства работы и автоматической динамической компиляции шаблонов.
- Написать обработчик ошибок, обернуть "опасные" операции в блоки try/catch.
- Добавить библиотеку jquery.history.js для работы приложения в браузерах, не поддерживающих HTML5 history.
- Вынести настройки приложения во внешний json-файл и обеспечить интерфейс взаимодействия с ним
- Добавить возможность менять Представление на лету (мобильная версия, сервисная версия, и т.д.)