Аннотация 4
Оглавление 6
Определения 8
Введение 10
1. Исследование существующих на рынке решений для приложений, решающих сходные задачи 11
1.1. AI-Powered Meeting Recorder – «tl;dv» 11
1.2. Zoom AI Companion 14
2. Определение основных требований к приложению 17
2.1. Расшифровка записи встречи 18
2.2. Генерация ключевых слов 18
2.3. Генерация резюме встречи 19
2.4. Получение ключевых цитат встречи 19
2.5. Редактирование сгенерированных данных 19
2.6. Получение видеозаписи Zoom и Zoom-чата 19
2.7. Получение информации о встрече 19
3. Выбор подходящего технологического стека и архитектуры для создания клиентской части веб-приложения 20
3.1. React 20
3.2. React Redux 21
3.3. TypeScript 21
3.4. Feature-Sliced Design 22
4. Создание подготовительного окружения для клиентской части 23
4.1. Инициализация и публикация проекта 24
4.2. Конфигурация Eslint, Prettier, husky 24
4.3. Настройка Webpack для сборки 25
4.4. Реализация роутинга 26
5. Настройка облачной инфраструктуры для веб-приложения 27
6. Настройка непрерывной интеграции и непрерывного развертывания клиентской части приложения на облачный сервер 29
6.1. Настройка GitHub Actions 29
6.2. Описание Dockerfile 30
6.3. Настройка спецификации Docker Compose 30
6.4. Настройка конфигурации Nginx и обеспечение работы приложения
по HTTPS 31
7. Добавление Storybook для разработки библиотеки компонентов 32
7.1. Написание компонентов для Storybook 32
7.2. Публикация Storybook с помощью GitHub Pages 34
8. Верстка основных страниц 35
8.1. Лендинг 35
8.2. Страница итогов встречи 36
8.3. Страница ошибки 38
9. Разработка программных компонентов для взаимодействия с серверной частью 39
10. Покрытие кодовой базы автотестами 41
Заключение 43
Использованные источники 44
В современных IT-компаниях, а также в процессе дистанционного обучения и ведения бизнеса наблюдается проблема перенасыщения онлайн-встречами. Такие встречи часто занимают продолжительное время и могут пересекаться между собой, что затрудняет их полный охват. В связи с этим возникла потребность в инструменте, способном автоматически резюмировать видеоконференции, облегчая доступ к ключевой информации без необходимости просмотра всей записи встречи. Существование приложений, реализующих сходные задачи, подчеркивает актуальность данной разработки. Например, популярная платформа для видеоконференций Zoom недавно интегрировала технологию, облегчающую взаимодействие с данными во время встречи в платные версии своего сервиса.
В качестве темы выпускной квалификационной работы было выбрано создание клиентской части веб-приложения для подведения итогов видеоконференций. Разрабатываемое веб-приложение призвано обеспечить доступ к текстовым итогам встреч пользователя (ключевые слова, краткое содержание, важные цитаты, расшифровка и другие варианты обзора встречи).
Целью данной выпускной квалификационной работы является разработка функциональной клиентской части веб-приложения для подведения итогов видеоконференций. Для достижения данной цели в рамках выполнения выпускной квалификационной работы были поставлены следующие задачи:
1. Исследование существующих на рынке решений для аналогичных приложений и формирование основных требований;
2. Выбор технологического стека и определение оптимальной архитектуры для разработки клиентской части веб-приложения;
3. Настройка облачной инфраструктуры веб-приложения;
4. Настройка непрерывной интеграции и непрерывного развертывания клиентской части приложения на облачный сервер;
5. Создание библиотеки компонентов и реализация верстки веб-страниц;
6. Разработка программных компонентов для взаимодействия с серверной частью;
7. Покрытие кодовой базы автотестами.
В результате выполнения выпускной квалификационной работы была разработана функциональная клиентская часть веб-приложения, направленного на обеспечение доступа к текстовым итогам видеоконференций.
Проанализированы существующие на рынке решения для аналогичных приложений, выделены основные требования, выбран технологический стек и определена оптимальная архитектура клиентской части. Настроена облачная инфраструктура веб-приложения, реализованы непрерывная интеграция и развертывание клиентской части на облачный сервер. Разработаны программные компоненты для взаимодействия с серверной частью, выполнена верстка основных частей пользовательского интерфейса, а также произведено покрытие существенной части кода автотестами. Таким образом, были выполнены все поставленные задачи в рамках работы над ВКР.
В ходе выполнения работы был накоплен значительный опыт создания веб-приложений и взаимодействия с серверной частью.
Приложение готово к тестированию на реальных рабочих и личных встречах. Это открывает перспективы для его будущего внедрения в реальные бизнес-процессы. В дальнейшем приложение можно развивать в соответствии с потребностями пользователей и изменениями в IT-сфере.
Сервис доступен по адресу https://points-app.ru/. Исходный код клиентской части размещен в открытом доступе для разработчиков и заинтересованных лиц на платформе Github: https://github.com/NastyaSulina/meetingAI.