Skip to content

Repository files navigation

@mainpage Документация проекта LCTAR

Система захвата и просмотра AR-контента с элементами геймификации для повышения вовлеченности пользователей в музей СоюзМультФилма.

Полнофункциональная платформа для создания интерактивного опыта с использованием современных веб-технологий.

Описание проекта

LCTAR - это инновационная платформа для просмотра и взаимодействия с AR-контентом, где пользователи могут просматривать 3D модели различных фигур с помощью мобильных устройств.

Система использует современную микросервисную архитектуру для обеспечения высокой производительности и масштабируемости.

Основные особенности:

  • AR захват контента - трансляция камеры с наложением виртуальных объектов
  • Геймификация - система промокодов за прохождение контента
  • Аналитика - сбор статистики использования и прогресса пользователей
  • Стабилизация AR - алгоритмы сглаживания для устойчивого трекинга

Документация

Документация включает в себя:

  • @subpage backend Документация по бэкенду
  • @subpage frontend Документация по фронтенду
  • @subpage plan Бизнес план проекта и архитектура

Архитектура системы

┌─────────────────┐    ┌──────────────────┐    ┌─────────────────┐
│   React SPA     │◄──►│   Django API     │◄──►│    MySQL 8.0    │
│   (порт 3000)   │    │   (порт 8000)    │    │                 │
└─────────────────┘    └──────────────────┘    └─────────────────┘
         │                       │                       │
         ▼                       ▼                       ▼
┌─────────────────┐    ┌──────────────────┐    ┌─────────────────┐
│   WebAssembly   │    │     Redis 7.0    │    │   RabbitMQ 3    │
│   AprilTag      │    │   Cache/Broker   │    │   Message Queue │
└─────────────────┘    └──────────────────┘    └─────────────────┘
                                │
                                ▼
                       ┌──────────────────┐
                       │   Celery Worker  │
                       │   Async Tasks    │
                       └──────────────────┘

Компоненты архитектуры

  • React SPA: Современный интерфейс с Three.js для 3D визуализации
  • Django REST API: Основной бэкенд сервер, обрабатывающий HTTP запросы
  • MySQL 8.0: Реляционная база данных для хранения пользовательских данных
  • Redis 7.0+: Кэширование и брокер результатов для Celery
  • RabbitMQ 3: Брокер сообщений для асинхронных задач
  • Celery Workers: Асинхронные рабочие процессы для фоновых задач
  • WebAssembly AprilTag: Высокопроизводительная детекция AR-маркеров

Быстрый старт

Через Docker Compose (рекомендуется)

# Клонирование репозитория
git clone <repository-url>
cd LCTAR

# Создайте и настройте файл окружения
cp .env.example .env

# Запуск всей системы через Docker
docker-compose up --build

# Доступ к приложениям:
# Frontend: http://localhost:3000
# Backend API: http://localhost:8000
# Django Admin: http://localhost:8000/admin/

После успешного запуска сервисы будут доступны на:

Структура репозитория

LCTAR/
├── arb/                    # Django бэкенд приложение
│   ├── arb/               # Основной код бэкенда
│   │   ├── models.py      # Модели данных (пользователи, сессии, промокоды)
│   │   ├── views.py       # API представления и бизнес-логика
│   │   ├── urls.py        # Маршрутизация URL
│   │   ├── settings.py    # Конфигурация Django
│   │   ├── middleware.py  # Пользовательский middleware
│   │   ├── tasks.py       # Celery задачи
│   │   └── migrations/    # Миграции базы данных
│   ├── manage.py          # Django management скрипт
│   └── requirements.txt   # Зависимости Python
├── frontend/              # React SPA приложение
│   ├── src/              # Исходный код frontend'а
│   │   ├── App.jsx       # Основной компонент AR-рекордера
│   │   ├── SceneComponent.jsx # Компонент Three.js сцены
│   │   ├── apriltagPipeline.jsx # Пайплайн обработки AprilTag
│   │   └── api/          # Интеграция с бэкендом
│   ├── public/           # Статические файлы и WASM-модули
│   │   ├── apriltag_wasm.js    # JavaScript мост для AprilTag
│   │   ├── apriltag_wasm.wasm  # WebAssembly модуль детекции
│   │   └── models/       # 3D модели (GLTF/GLB формат)
│   ├── package.json      # Зависимости Node.js
│   └── webpack.config.js # Конфигурация сборки
├── docker-compose.yml     # Оркестрация всех сервисов
├── README-backend.md      # Подробная документация бэкенда
└── frontend/README.md     # Подробная документация frontend'а

Основные возможности

Frontend (React + Three.js)

  • AR захват контента - трансляция камеры с наложением виртуальных объектов
  • Детекция AprilTag - WebAssembly детекция маркеров для позиционирования
  • Стабилизация AR - алгоритмы сглаживания для устойчивого трекинга
  • Запись AR-видео - захват видео с аудио в WebM/MP4 формате
  • Управление сценами - гибкая система конфигурации сцен и объектов
  • AlvaAR интеграция - улучшенное отслеживание плоскостей и поз камеры

Backend (Django REST API)

  • Управление сессиями - отслеживание сессий просмотра AR-контента
  • Геймификация - система промокодов за прохождение контента
  • Аналитика - сбор статистики использования и прогресса пользователей
  • Пользовательские данные - профили и персонализация опыта
  • Асинхронная обработка - Celery задачи для отправки email и фоновых операций

Технологический стек

Backend

  • Django 5.2.6+ - высокоуровневый веб-фреймворк на Python
  • Django REST Framework 3.15+ - мощный инструментарий для создания Web API
  • MySQL 8.0 - надежная реляционная база данных
  • Redis 7.0+ - хранилище данных в памяти для кэширования
  • RabbitMQ 3 - надежный брокер сообщений
  • Celery 5.3+ - распределенная система обработки задач
  • Python 3.13+ - современная версия языка программирования

Frontend

  • React 18+ - пользовательский интерфейс
  • Three.js 0.180.0 - 3D графика и рендеринг
  • React Three Fiber 9.3.0 - React интеграция для Three.js
  • OpenCV 4.11.0 - компьютерное зрение в браузере
  • WebAssembly - высокопроизводительная обработка AprilTag
  • Webpack 5.95.0 - сборка и бандлинг

DevOps

  • Docker & Docker Compose - контейнеризация и оркестрация
  • Poetry - управление зависимостями Python
  • Ruff - линтинг и форматирование кода
  • Doxygen - генерация документации

Установка и настройка

Предварительные требования

  • Docker и Docker Compose
  • Git
  • Node.js 18+ и npm 9+ (для локальной разработки frontend'а)

Локальная разработка

# 1. Клонировать репозиторий и перейти в директорию
git clone <repository-url>
cd LCTAR

# 2. Настроить окружение
cp .env.example .env

# 3. Запустить сервисы базы данных и очереди
docker-compose up -d mysql redis rabbitmq

# 4. Установить зависимости бэкенда и применить миграции
cd arb
poetry install
python manage.py migrate
python manage.py createsuperuser

# 5. Запустить бэкенд и Celery
python manage.py runserver &
celery -A arb worker -l info &

# 6. Установить зависимости frontend'а и запустить
cd ../frontend
npm install
npm start &

# 7. Открыть браузер:
# Frontend: http://localhost:3000
# Backend API: http://localhost:8000/api/
# Django Admin: http://localhost:8000/admin/

Продакшн развертывание

# Сборка и запуск всех сервисов
docker-compose -f docker-compose.prod.yml up --build -d

# Сборка статических файлов (если необходимо)
docker-compose exec app python manage.py collectstatic --noinput

API Endpoints

Основные эндпоинты

Метод Эндпоинт Описание
POST /session/start/ Создание новой сессии просмотра
POST /view/ Регистрация просмотра актива пользователем
POST /user/email/ Привязка email к сессии пользователя
GET /progress/ Получение прогресса просмотра активов
GET /promo/ Получение промокода за прохождение
GET /stats/ Сводная статистика просмотров

Документация компонентов

Лицензия и вклад

Проект разработан командой LCTAR для создания инновационных AR-решений.

Лицензия

Этот проект является проприетарным. Все права защищены.

Вклад в разработку

Мы приветствуем вклад в развитие проекта:

  1. Форкните репозиторий
  2. Создайте feature branch (git checkout -b feature/amazing-feature)
  3. Закоммитьте изменения (git commit -m 'Add amazing feature')
  4. Запушьте branch (git push origin feature/amazing-feature)
  5. Создайте Pull Request

Контакты команды разработки

Для вопросов и предложений обращайтесь к команде разработки.


LCTAR - инновационная платформа для создания увлекательного AR-опыта с современными веб-технологиями.

About

LCT AR 7 2025

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages