Всем привет! Меня зовут Юля Афанасенко и я занимаюсь разработкой приложений. Помимо различных увлечений, у меня есть ещё тайная страсть выполнять сложные SQL запросы. Но в последнее время задач, связанных с базами данных, для меня, увы, не возникало.  И вот наконец-то мечты сбылись 🙂 Да еще какие: создать приложение с NoSQL  базой данных и серверной частью на Node.js для поиска абитуриентами направлений подготовки по списку сертификатов ВНО и расчета их рейтинга.

Дела обстоят следующим образом: абитуриент выбирает из предложенного на сайте списка предметы, по которым он сдал ВНО. В зависимости от выбранных предметов отображается список направлений с ссылками на сайты факультетов, вес конкурсных предметов для каждого направления подготовки и минимальный необходимый бал. При наличии, абитуриент вносит количество баллов сертификата ВНО и по нажатию кнопки рассчитывается его конкурсный бал для всех направлений подготовки. При чем, если он не набрал необходимое количество баллов – в рейтинг он не попадает и свой конкурсный балл по направлению не увидит.

Я решила использовать службу Azure DocumentDB для хранения данных и обеспечить доступ к ним из приложения Node.js Express, размещенного на веб-сайте Azure.

nodejsvsdocumentdb

В качестве платформы я выбрала Node.js – серверная реализация языка программирования JavaScript. Преимуществом Node.js в данном случае я считаю то, что он гибкий и легкий в использовании благодаря поддержки менеджера пакетов Node (npmjs), предоставляющего репозиторий общих модулей, а также быстро справляется с построением REST/JSON интерфейсов. Благодаря асинхронному вводу/выводу и JavaScript он является хорошим вариантом для написания обертки вокруг базы данных, которая общается с клиентом в формате JSON. Node.js может одновременно обрабатывать много запросов и имеет при этом низкое время отклика. Используемый мною модуль Express помогает разрабатывать полноценные MVC веб-сайты. Не обошлось без дополнительных утилит, например,  request – удобный и простой HTTP клиент, async – библиотека для создания асинхронных операций, documentdb – для работы с DocumentDB.

Созданное приложение Node.js Express использует в качестве обработчика представлений Jade – препроцессор HTML и шаблонизатор, который написан на JavaScript для Node.js.

Все данные хранятся в виде документов JSON в Azure DocumentDB – полностью управляемой службе базы данных NoSQL. DocumentDB обеспечивает согласованное и быстрое выполнение операций чтения и записи, гибкость и возможность легко масштабировать базу данных в отношении расширения или уменьшения ее по требованию. Она не подразумевает и не требует указания каких-либо схем для документов JSON. DocumentDB позволяет выполнять сложные нерегламентированные запросы, используя язык SQL. Azure DocumentDB предоставляет ресурсы посредством интерфейса API REST, который можно вызвать с помощью любого языка, позволяющего отправлять запросы HTTP или HTTPS. Для этих целей я выбрала пакет SDK для Node.js.

Итак, я задействовала все технологии, которые меня уже так давно интересовали. Очень довольна такому experience 🙂 Исходный код можно посмотреть на нашем GitHub. Будем рады, если наше мини-решение пригодится ещё кому-нибудь )
RatingApp