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


Разработка серверной части ПО для задач найма и обучения сотрудников с использованием многомодульной архитектуры

Работа №127339

Тип работы

Бакалаврская работа

Предмет

информатика

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

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


Введение 3
Постановка задачи 4
Обзор литературы 6
Глава 1. Описание продукта 8
1.1. Описание сервиса 8
1.2. Преимущества и существующие аналоги 11
Глава 2. Построение архитектуры 14
2.1. Требования к продукту 14
2.2. Модули приложения 15
2.3. Зависимости между модулями 17
2.4. Архитектура серверной части 18
Глава 3. Реализация проекта 21
3.1. Инфраструктура сервиса 21
3.2. Используемые технологии 24
3.3. Методы тестирования 27
3.4. Полученные результаты 29
Выводы 33
Заключение 34
Список используемой литературы 35

Успех любой компании зависит от того, насколько профессиональны ее сотрудники. Программы обучения не только предоставляют возможность сотрудникам улучшить свои профессиональные навыки, но и позволяют компаниям повысить производительность труда и, как следствие, увеличить прибыль.
Также они помогают снизить текучесть кадров, что, согласно исследованию Work Institute 2020 года, важно для чистой прибыли компании. Согласно отчету, добровольная текучесть кадров обходится американским предприятиям более чем в 630 миллиардов долларов в год. Сотрудники, у которых есть регулярные возможности учиться, развиваться и продвигаться по службе, с большей вероятностью останутся в компании [1].
Правильная организация обучения сотрудников в итоге позволяет получить экономическую выгоду для предприятия. Для сотрудников же повышение квалификации дает уверенность в своей компетентности, сохранении рабочего места и высокий профессиональный статус, который также положительно влияет на развитие предприятия.
Постановка задачи
Целью данной работы является разработка серверной части программного обеспечения (далее по тексту ПО) для задач найма и обучения сотрудников, предназначенной для применения компаниями с целью обеспечения эффективного роста навыков сотрудников и удобства работы HR-специалистов (human resources или человеческие ресурсы - далее по тексту HR).
Рост компетенций сотрудника реализуется с помощью построения индивидуального плана развития, содержащего навыки, необходимые для изучения на определенном уровне. В связи с этим необходимо спроектировать гибкую систему с набором материалов для обучения определенным навыкам. Под материалом понимается документ, содержащий в себе источники информации.
Так как помимо пользователей, их индивидуальных планов развития и системы навыков в сервисе подразумевается ряд другой функциональности (выдача мероприятий, вакансий и кандидатов на должность компании), не имеющей сильной зависимости от уже описанной, необходимо выбрать такую архитектуру ПО, чтобы она была высоко масштабируемой и расширяемой.
Таким образом, приложение должно иметь многомодульную архитектуру, структура которой позволяла бы добиться возможности имплементации новых компонентов системы с уникальной бизнес-логикой, не вызывая изменений в других компонентах и имея возможность быстрой интеграции с ними. Вместе с этим, нефункциональные требования к системе подразумевают низкую трудозатратность в разработке и содержании сервиса, что в свою очередь предполагает необходимость в использовании монолитной архитектуры [2]. Однако в данной работе необходимо предусмотреть шаги для масштабирования сервиса в высоконагруженной среде с минимальными трудозатратами. В этом случае монолитная архитектура не является подходящим решением, так как не подразумевает возможности горизонтального масштабирования, при использовании которого используется несколько баз данных, и данные распределяются между ними.

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

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

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


В рамках работы разработан полноценный HR-инструмент, который может успешно использоваться для решения поставленных задач. Архитектура серверной части удовлетворяет требованиям к высоким показателям расширяемости приложения. Так как система может быть запущена с использованием как монолитного запуска, так и распределенного, она справится с растущим числом пользователей с помощью горизонтального и вертикального масштабирования.
В настоящий момент разработанное решение связано с HR нуждами, однако спроектированная архитектура позволяет добавлять новые модули, не связанные с HR, выращивая единую экосистему компании, чего в полной мере не могут дать конкуренты.



[1] Work Institute. 2020 Retention Report: Insights on 2019 Turnover Trends, Reasons, Costs & Recommendations // Work Institute. - 2020. - с. 35. - URL: https://info.workinstitute.com/en/retention-report-2020(дата обращения: 10.12.2021).
[2] Pattern: Monolithic Architecture // microservices.io - URL: https://microservices.io/patterns/monolithic.html(дата обращения: 18.04.2022).
[3] Крис Ричардсон. Микросервисы. Паттерны разработки и рефакторинга / Крис Ричардсон - СПб: Питер, 2019.
[4] Martin L. Abbott. The Art of scalability: scalable web architecture, processes, and organizations for the modern enterprise / Martin L. Abbott, Michael T. Fisher. - Boston: Pearson Education, Inc., 2009.
[5] С. Ньюмэн. Создание Микросервисов / C. Ньюмэн - СПб: Питер, 2016.
[6] Teachbase // teachbase.ru- URL: https://teachbase.ru/vozmozhnosti/(дата обращения: 20.04.2022)
[7] ispringlearn // ispring.ru - URL:
https://www.ispring.ru/ispring-learn/key-features(дата обращения: 20.04.2022)
[8] What is Extensibility? // propelplm.com - URL: https://www.propelplm.com/articles/what-is-extensibility(дата обращения: 20.04.2022)
[9] Data Access Object Pattern // geeksforgeeks.org - URL: https://www.geeksforgeeks.org/data-access-object-pattern/(дата обращения: 27.04.2022)
[10] Orchestration Pattern // medium.org - URL: https://medium.com/gbtech/orchestration-pattern-3d8f5abc3be3(дата обращения: 27.04.2022)
[11] Virtual Dedicated Server (VDS) // technopedia.com - URL: https://www.techopedia.com/definition/26808/virtual-dedicated-server-vds(дата обращения: 27.04.2022)
[12] What Is a Reverse Proxy Server? // nginx.com - URL:
https://www.nginx.com/resources/glossary/reverse-proxy-server/ (дата
обращения: 29.04.2022)
[13] Compression and Decompression // nginx.com - URL:
https://docs.nginx.com/nginx/admin-guide/web-server/compression/ (дата
обращения: 29.04.2022)
[14] What is a REST API? // redhat.com - URL: https://www.redhat.com/en/topics/api/what-is-a-rest-api(дата обращения: 27.04.2022)
[15] What is a CDN? | How do CDNs work? // cloudfare.com - URL: https://www.cloudflare.com/learning/cdn/what-is-a-cdn/(дата обращения: 30.04.2022)
[16] What is Amazon S3? // amazon.com - URL:
https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html(дата обращения: 30.04.2022)
[17] Back-End Web Architecture // codeacademy.com - URL: https://www.codecademy.com/article/back-end-architecture(дата обращения: 01.05.2022)
[18] MongoDB Documentation // mongodb.com - URL: https://www.mongodb.com/docs/manual/tutorial/getting-started/(дата обращения: 03.05.2022)
[19] Nodejs v18.2.0 documentation // nodejs.org - URL: https://nodejs.org/api/documentation.html(дата обращения: 25.03.2022)
[20] Compiler Options // typescriptlang.org - URL: https://www.typescriptlang.org/tsconfig(дата обращения: 10.04.2022)
[21] 4.x API // expressjs.com - URL: https://expressjs.com/en/4x/api.html(дата обращения: 15.04.2022)
[22] @glangeo/pollux // npmjs.com - URL: https://www.npmjs.com/package/@glangeo/pollux(дата обращения: 20.05.2022)
[23] yup // npmjs.com - URL: https://www.npmjs.com/package/yup(дата обращения: 15.04.2022)
[24] Expect // jestjs.io - URL: https://jestjs.io/docs/expect(дата обращения: 17.05.2022)


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



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


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