Музыкальная индустрия является одной из ведущих и быстрорастущих отраслей. Всё больше людей стремятся создавать музыку, однако возникает ряд проблем, связанных с её распространением через аудиостоки. Бесплатные сервисы часто перегружены, что приводит к медленной работе платформ и неудобствам для пользователей. Современные платформы либо закрыли доступ к регистрации для публикации, либо требуют значительную плату за услуги размещения. Это создаёт финансовые барьеры для многих начинающих музыкантов.
В результате личного опыта создания музыки неоднократно возникали проблемы, связанные с качеством и доступностью аудиостоков. Эти трудности послужили стимулом для разработки собственной платформы, предоставляющего высококачественный сервис без указанных ограничений.
Актуальность создания доступной и эффективной платформы для распространения аудиофайлов обусловлена ростом числа людей, занимающихся созданием музыки. Существующие проблемы, такие как перегруженность бесплатных сервисов и финансовые барьеры на платных платформах, значительно усложняют процесс публикации и продажи аудиоконтента. Разработка нового аудиостока способна устранить эти препятствия и предоставить музыкантам качественный инструмент для работы.
Целью данной работы является разработка аудиостока для продажи звуковых файлов, который обеспечит высокую производительность, удобство использования и доступность для всех категорий пользователей.
Для достижения поставленной цели были сформулированы следующие задачи:
1. Изучить существующие платформы для распространения аудиофайлов и выявить их основные недостатки.
2. Определить требования к разрабатываемой системе.
3. Разработать архитектуру системы и схему базы данных.
4. Реализовать ключевые модули платформы.
Текст данной выпускной квалификационной работы состоит из введения, двух глав, заключения и списка литературы.
В первой главе представлено изучение существующих решений в области аудиостоков, их основных функциональных возможностей и недостатков. Проведен анализ требований к нашему будущему проекту, выявлены ключевые аспекты, которые необходимо учесть при разработке. Также эта глава содержит содержится теоретическую часть, в которой рассматриваются различные подходы и методы, используемые при создании веб-сайтов и аудиостоков. Описаны современные технологии, которые могут быть применены для реализации проекта, а также обоснованы выборы тех или иных инструментов и методов.
Вторая глава посвящена проектированию и разработке собственной системы для продажи аудиофайлов. В ней описываются этапы проектирования, начиная с определения архитектуры системы и заканчивая разработкой схемы базы данных. Представлены диаграммы, схемы и описания, иллюстрирующие логику работы системы. Подробно описаны все модули системы, их функциональность и взаимодействие между собой. Приведены примеры кода, объяснены принятые решения.
В заключении подведены краткие итоги выпускной квалификационной работы.
ВВЕДЕНИЕ ................................................................................................... 3
1. АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ ................................................... 5
1.1. Обзор существующих решений........................................................ 5
1.1.1. Бесплатные аудиостоки ................................................................ 5
1.1.2. Платные аудиостоки...................................................................... 6
1.2. Основные требования ...................................................................... 7
1.3. Технологии построения серверной части......................................... 8
1.4. Технологии построения клиентской части....................................... 9
1.5. База данных .................................................................................... 10
1.6. Облачное хранилище ..................................................................... 11
1.7. Подход к разработке аудиостока................................................... 12
2. ПРОЕКТИРОВАНИЕ ПЛАТФОРМЫ ................................................. 13
2.1. Разработка схемы базы данных........................................................ 13
2.2. Описание логики работы системы.................................................... 14
2.3. Архитектура системы ....................................................................... 15
2.4. Модуль базы данных ....................................................................... 16
2.5. Модуль работы с аудиофайлами ..................................................... 20
2.6. Модуль авторизации и аутентификации .......................................... 25
2.7. Модуль управления процессами ...................................................... 27
2.8. Модуль клиентской части ................................................................. 31
ЗАКЛЮЧЕНИЕ............................................................................................ 39
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ..................................... 40
ПРИЛОЖЕНИЕ 42
1. Гольдштейн, И. В. Разработка веб-приложений на Go [Электронный ресурс]. (Дата обращения: 05.03.2024) URL: https://golangify.com/web- app-development
2. Авторизация и аутентификация в веб-приложениях с использованием JWT [Электронный ресурс]. (Дата обращения: 10.03.2024) URL: https://habr.com/ru/post/706248
3. Интеграция с VK Cloud Storage: руководство для разработчиков [Электронный ресурс]. (Дата обращения: 15.03.2024) URL: https://vk.com/dev/vkcloud
4. MongoDB: руководство по использованию [Электронный ресурс]. (Дата обращения: 20.03.2024) URL:
https://docs.mongodb.com/manual/tutorial/getting-started
5. HTMX: динамическое обновление страниц без перезагрузки [Электронный ресурс]. (Дата обращения: 25.03.2024) URL: https://htmx.org/docs
6. Tailwind CSS: быстрая и гибкая разработка интерфейсов [Электронный ресурс]. (Дата обращения: 30.03.2024) URL: https://tailwindcss.com/docs
7. Построение веб-сервисов с Go: подходы и лучшие практики [Электронный ресурс]. (Дата обращения: 05.04.2024) URL: https://golang.org/doc/effective go
8. Современные подходы к разработке клиентских приложений [Электронный ресурс]. (Дата обращения: 10.04.2024) URL: https://vc.ru/dev/130792-sovremennye-podhody-k-razrabotke-klientskih- prilozheniy
9. Реализация аудиоплеера в веб-приложениях [Электронный ресурс]. (Дата обращения: 15.04.2024) URL:
https://developer.mozilla.org/ru/docs/Web/API/HTMLAudioElement
10. Gin Web Framework [Электронный ресурс]. (дата обращения: 05.04.2024) URL: https:// github. com/gin- gonic/ gin
11. a-h/templ Documentation [Электронный ресурс]. (дата обращения:
02.04.2024) URL: https://github.com/a-h/templ
12. bcrypt Package in Go [Электронный ресурс]. (дата обращения:
10.04.2024) URL: https://pkg.go.dev/golang.org/x/crypto/bcrypt