Skip to content

A web platform for collaborative content creation with the audience

License

Notifications You must be signed in to change notification settings

Lolitron-0/augventure

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

augventure

A platform for collaborative content creation with the audience.

Содержание

Концепт

Для авторов контента существует масса способов получения фидбека от аудитории: комментарии, стримы, сервисы подписки, но что если объединить процесс создания контента и взаимодействие с аудиторией?

Такой подход частично реализован стриминговыми платформами, однако живое взаимодействие подойдет не для всех видов творчества (например, литература и рисование) и не всем авторам. Веб-платформа augventure позволит авторам реагировать на запросы аудитории и получать обратную связь в более масштабных проектах из большего спектра форматов. Все заинтересованные могут участвовать в "событиях", оставлять предложения по развитию проекта, а самые популярные предложения будут реализованы на следующем отрезке работы - "спринте".

Такой вариант взаимодействия может быть масштабирован на любой вид творчества: от написания музыки до создания видеоигр, а также легко расширяется монетизацией для авторов.

Concept

Архитектура

Для проекта использовалась классическая трехслойная архитектура. На диаграмме представлена схема взаимодействия контейнеров, развертывающихся через Docker compose.

Containers

Пользователи взаимодействуют с платформой через интерфейс веб-приложения Vue.js. Для получения актуальных данных фронтенд отправляет REST запросы контейнеру бэкенда через proxy в Nginx (приведение запроса к cross-origin).

Серверная часть использует C++ фреймворк Drogon. Входящий запрос обрабатывается контроллером, где разбивается на более мелкие CRUD запросы, которые отправляются контейнеру базы данных MariaDB. Также при развертывании бэкенд контейнера запускается отдельный поток планировщика, который делает регулярные запросы к базе данных и обновляет ресурсы, состояние которых привязано к UTC-меткам.

Для проекта была выбрана монолитная архитектура, так как требовалось быстро создать рабочий прототип. Также таблицы базы данных платформы сильно связаны (см. схему) и концептуально функции бэкенда нельзя разбить на микросервисы.

DB

Перспективой дальнейшей разработки можно назвать создание системы монетизации, которая может быть выделена в микросервис.

Другие ресурсы

Локальный запуск

Для развертывания сервиса необходимы Docker и Docker Compose.

Важно: для запуска необходимы файлы конфигурации с секретными ключами. В репозитории предоставлены шаблоны для этих файлов, которые требуется скопировать и переименовать:
backend/exampleConfig.json -> backend/config.json
backend/models/exampleModel.json -> backend/models/model.json
Для развертывания при помощи docker compose требуется раскомментировать строку "host":"db" в файле backend/config.json

  1. git clone --recurse-submodules https://github.com/Lolitron-0/augventure
  2. cd augventure
  3. docker compose up
    • Запуск всех контейнеров может занять некоторое время, так как они зависят от контейнера базы данных. Сервис полностью запущен, когда развернут фронтенд.
  4. Развернутые приложения находятся по адресам:
    • backend:80 - адрес бэкенда
    • frontend:3000 - адрес Vue приложения (фронтенд)
    • db:3306 - адрес базы данных

About

A web platform for collaborative content creation with the audience

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •