РЕФЕРАТ 3
СОДЕРЖАНИЕ 4
ОПРЕДЕЛЕНИЯ, ОБОЗНАЧЕНИЯ И СОКРАЩЕНИЯ 4
ВВЕДЕНИЕ 13
1 ОПИСАНИЕ ИНФРАСТРУКТУРЫ ВЕБ-ПРИЛОЖЕНИЯ 15
2 ВЫБОР ФРЕЙМВОРКА ДЛЯ РЕАЛИЗАЦИИ ВЕБ-ПРИЛОЖЕНИЯ 19
2.1 Angularjs 20
2.2 Reactjs 21
2.3 Vue.js 23
2.4 Next .js 24
3 РАЗРАБОТКА КЛИЕНТСКОЙ ЧАСТИ ВЕБ-ПРИЛОЖЕНИЯ 25
4 CONTENT DELIVERY NETWORK 34
5 КОНТЕЙНЕРИЗАЦИЯ ВЕБ-ПРИЛОЖЕНИЯ 37
6 CI и CD 39
7 КЛИЕНТСКИЙ И СЕРВЕРНЫЙ МОНИТОРИНГИ 41
ЗАКЛЮЧЕНИЕ 44
БИБЛИОГРАФИЧЕСКИЙ СПИСОК 45
ПРИЛОЖЕНИЕ А 47
ПРИЛОЖЕНИЕ Б 48
ПРИЛОЖЕНИЕ В 49
ПРИЛОЖЕНИЕ Г 50
ПРИЛОЖЕНИЕ Д 51
ПРИЛОЖЕНИЕ Ж 52
ПРИЛОЖЕНИЕ З 53
ПРИЛОЖЕНИЕ К 5
Пандемия С0УГО-19 изменила жизнь миллионов людей по всему миру: практически все образовательные учреждения и компании перешли на удалённый режим работы, много массовых мероприятий было отменено. Таким образом, жизнь «в режиме онлайн» постепенно стала нормой, а ценность самообразования возросла.
Если раньше многие узнавали о предстоящих мероприятиях от знакомых или видели баннеры с анонсами на улице, то теперь количество личных контактов сократилось, а на улицу стали выходить реже. То же самое произошло и с анонсами 1Т-конференций - уменьшилось количество способов узнать о них.
Вышеперечисленные проблемы стали предпосылкой для разработки сервиса, который позволяет:
• заранее узнать о предстоящей 1Т-конференции;
• запланировать её просмотр в удобное для пользователя время вместо того, чтобы тратить время на поиски видеозаписи мероприятия или подстраиваться под часовой пояс страны/города-организатора;
• настроить профиль пользователя, чтобы добавлять интересные или понравившиеся доклады в «избранное». Такой метод позволяет ускорить и облегчить поиск в дальнейшем;
• у каждого доклада есть «тег», спикер и конференция, это позволяет группировать и сортировать доклады по упомянутым выше признакам, а также позволяет упрощать, ускорять и облегчать поиск понравившегося или интересующего доклада в дальнейшем.
Актуальность работы обосновывается необходимостью разработки веб-сервиса, который включает себя описанную выше функциональность, чтобы удовлетворить потребности пользователей, которые возникли в рамках пандемии С0УГО-19.
Целью ВКР является разработка клиентской части для веб-приложения «Мониторинг IT-конференций». Для достижения цели необходимо поставить следующие задачи:
1) спроектировать инфраструктуру веб-приложения;
2) выбрать фреймворк для разработки клиентской части веб-приложения;
3) разработать клиентскую часть веб-приложения согласно макетам;
4) разместить статический контент веб-приложения на CDN серверах сервиса Surge;
5) произвести контейнеризацию веб-приложения на основе программного обеспечения Docker;
6) настроить сценарии для непрерывной интеграции и доставки веб-приложения на основе GitHub [11] Actions;
7) реализовать интеграцию с системой мониторинга Sentry [10].
Целью нашей работы была разработка клиентской части веб-приложения «Мониторинг IT-конференций» для повышения слушательского комфорта, а также снижения количества социальных контактов, которое влечёт за собой, в свою очередь, снижение рисков заболеваемости населения и распространения инфекций среди населения.
Результатом работы стала демонстрация лучших практик для создания веб-приложений, собранных на основе личного опыта и современных тенденций в мире веб-разработки, а также были рассмотрены достоинства и недостатки существующих популярных инструментов и подходов.
В ходе работы был представлен тщательный сравнительный анализ фреймворков для разработки веб-приложений с полным разбором преимуществ и недостатков, исходящих из целей поставленной нами задачи. Исходя из них же, нами был аргументирован и выбран фреймворк Nextjs.
Помимо этого, были реализованы и другие задачи проекта, а именно:
• спроектировать инфраструктуру веб-приложения;
• разработать клиентскую часть веб-приложения согласно макетам;
• размещён статический контент веб-приложения на CDN серверах сервиса Surge;
• произведена контейнеризацию веб-приложения на основе программного обеспечения Docker;
• полностью настроены сценарии для непрерывной интеграции и доставки веб-приложения на основе GitHub Actions;
• реализовать интеграцию с системой мониторинга Sentry.
Если говорить подробнее, одной из основных целей работы было описать структуру клиентской части веб-приложения «Мониторинг IT-конференций» и реализовать её.
Таким образом, описанная нами выше инфраструктура включает в себя следующие позиции:
• Docker-образ с веб-приложением на основе Nextjs;
• интеграцию с серверами CDN для доставки статического контента;
• интеграцию с GitHub Actions для реализации CI/CD сценариев по сборке Docker-образа и доставке статического контента на сервера CDN;
• Docker-образ с собственной инсталляцией Sentry для клиентского и серверного логирования ошибок;
• мониторинг на возникновение клиентских и серверных ошибок, который уведомляет разработчиков в Telegram.
Исходя из вышеперечисленного, можно сделать вывод, что цель работы, а именно - разработка клиентской части для веб-приложения «Мониторинга IT-конференций» была достигнута в полном объёме и с должным уровнем аналитического подхода к современной ситуации в IT-индустрии.
А исходя из вышеперечисленных современных реалий, можно сделать заключение, что веб-приложение «Мониторинг IT-конференций» будет пользоваться популярностью среди специалистов и не только, а значит, обладает высоким потенциалом для развития.