Тип работы:
Предмет:
Язык работы:


Платформа NodeJS

Работа №77533

Тип работы

Дипломные работы, ВКР

Предмет

информационные системы

Объем работы55
Год сдачи2016
Стоимость4200 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
69
Не подходит работа?

Узнай цену на написание


Введение 3
Постановка задачи 4
I Технологии 5
1.1 NodeJS 5
1.1.1 Описание программной платформы NodeJ S 5
1.1.2 Сравнение производительности 7
Производительность различных языков программирования в количестве запросов за 1 секунду 7
1.1.3 Примеры использования NodeJS 8
1.2.1 Описание нереляционной СУБД MongoDB 9
1.2.2 Пример в проекте: 10
1.2.3 Примеры использования MongoDB 10
1.2.4 Сравнение производительности с PostgreSQL 11
1.2.5 Минусы MongoDB 13
II Реализация алгоритма bcrypt, OAuth 2.0, сессий 13
2.1 bcrypt 13
2.1.1 Описание 13
2.1.2 Безопасность 14
2.2 Сессии(cookie-sessions, mongoose-sessions) 15
2.2.1 Пример mongoose-sessions 15
2.3 OAuth 2.0 16
2.3.1 Как работает OAuth 2.0 16
2.3.2 Пример в проекте 18
2.3.3 Минусы OAuth 2.0 18
2.4 Защита от CSRF атак 18
2.4.1 Как обычно происходят эти атаки 18
2.4.2 Защита от атак 19
2.4.3 Пример: 20
2.4.3 Пример на сайте 20
2.5 CMS KeystoneJS 21
2.5.1 Для чего нужна CMS? 21
2.5.2 Выбор KeystoneJS: 22
III Описание интерфейса Web-приложения 23
3.1 Главная страница 23
3.2 Обратная связь 24
3.3 Регистрация и вход 25
3.4 Аутентификация через Facebook 26
3.5 Личный профиль 26
3.6 Главная страница после добавления товара 28
IV Описание технических особенностей 31
4.1 Пример View главной страницы 32
4.2 Пример модели Orders 32
4.3 Пример контроллера 33
4.3.1 Пример контроллера с регистрацией пользователя 33
4.4 UML диаграмма классов 34
V Заключение 35
VI Литература 36
VII Листинг 37

В пору развития новых технологий, взамен старых, но все еще актуальных, когда появляются новые способы получения одного и того же результата, основной критерий - это производительность и быстрота. Для чего же может понадобиться уходить с привычной всеми связки технологий PHP+Apache+MySQL, которая с 90-х годов прошлого века и до сих пор является очень хорошим вариантом для разработки Web-приложений. Дело в том, что в нынешних реалиях, уже требуется большая производительность, когда сайты сталкиваются с огромным количеством запросов.
Растущим требованиям пользователей, где важна каждая секунда загрузки сайта, может помочь новая программная платформа NodeJS с ее преимуществами:
• Асинхронность, разработчику не нужно самому контролировать параллельный доступ, всю работу за него выполняет платформа NodeJS.
• Запросы выполняются не последовательно, как на языке PHP, а параллельно.
• Для разработчиков плюс в том, что все скрипты пишутся для обработки всех запросов
• Увидеть результат без обновления страницы, к примеру, Twitter, где так же используется NodeJS, для того чтобы увидеть новое сообщение не нужно перезагружать страницу.
• NodeJS полноценный сервер, управляемый JavaSrcipt, когда же PHP - это скрипты для обработки определенных запросов на запрашиваемый URL.
Просмотрев много советов в интернете от западных разработчиков и проконсультировавшись с научным руководителем, было принято решение рассматривать дипломную работу, как возможность попробовать что-то новое, что не входит в бакалаврскую программу обучения в университете.
Постановка задачи
В рамках данной выпускной работы ставятся следующие задачи:
1) Подготовка теоретической базы по нереляционной СУБД MongoDB, программной платформы NodeJS.
2) Реализация запуска сервера на NodeJS, разворачивание нереляционной базы данных MongoDB, подключение веб-фреймворков Express и CMS(Content Management System) KeystoneJS.
3) Создание сетки сайта, ссылок на страницы личного кабинета, корзины, регистрации и входа.
4) Для регистрации реализовать алгоритм шифрования bcrypt. Для входа реализовать сессии. Добавить протокол авторизации OAuth 2.0 с социальной сетью Facebook.
5) Осуществить добавление выбранных пользователем товаров в корзину.
6) Создать форму для покупки, подключение платежной системы обработки электронных платежей stripe.com.
7) Реализовать алгоритм защиты от межсайтовой подделки запроса.
8) Используя CMS, дать пользователю форматировать свои товары, изменять размер шрифта, стиль, вставлять ссылки, добавить местоположение с карты, где он хочет продать товар.
9) Создание формы обратной связи с администратором сайта, посредством почты.
10) Выделить достоинства и недостатки выбранных технологий.


Возникли сложности?

Нужна помощь преподавателя?

Помощь в написании работ!


В результате выполнения дипломной работы, удалось достичь поставленные задачи:
• Сравнить ведущий язык программирования для Web сайтов PHP с новой программной платформой NodeJS. Выделить основные плюсы и минусы обоих.
• Сравнить нереляционную СУБД MongoDB с SQL решением, выделить плюсы и минусы.
• Разработать современное Web-приложение с методами защиты
информации, наглядно показывающее, что эти технологии действительно работают.
За счет гибкости NodeJS есть возможность подключать сторонние API(Application Programming Interface) с использованием менеджера пакетов npm, что дает возможность разработчику добавлять уже существующие решения.
NodeJS с MVC позволяет распределять проект между несколькими группами разработчиков, отделяя разработчиков Back-end(занимающийся написанием содержательной части программы, логики ее действий) от Front-end (разработчик создает то, что видит на своем экране пользователь, часть сервиса, с которой он контактирует и функционал, обычно использующийся на клиентской стороне.).
Базой данных MongoDB может администрировать отдельная группа администраторов баз данных, позволяя им делать Backup, увеличивать производительность самой архитектуры, просматривать файл Log, где вносятся данные об используемом месте на диске, индексах, когда был последний перенос с одной репликации на другую.
NodeJS - это та платформа, которая упрощает разработку, давая разработчику заниматься только кодом, потому что большую часть проблем, решает сама платформа.
Планируется дальнейшее изучение возможностей технологий, внедрение технологии в производство.



1. Mike Cantelon, Marc Harter, T.J. Holowaychuk, and Nathan Rajlich / NodeJS in Action / Foreword by Isaac Z. Schlueter, 2016
2. Gabriel Manricks / Instant Handlebars.js, Foreword by Alex Yelts, 2015
3. Kyle Banker, Peter Bakkum, Doug Garrett, Tim Hawkins / MongoDB in Action Foreword by Shaun Verch
4. Эрих Гамма, Ричард Хелм, Ральф Джонсон, Джон Влиссидес / Приёмы объектно-ориентированного проектирования. Паттерны проектирования. / Изд.
Addison-Wesley, «Питер», Перевод с англ. А. Слинкин, 1994
5. Брауде Э. Технология разработки программного обеспечения. - СПб.: Питер, 2004


Работу высылаем на протяжении 30 минут после оплаты.



Подобные работы


©2025 Cервис помощи студентам в выполнении работ