@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-маркеров
# Клонирование репозитория
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/После успешного запуска сервисы будут доступны на:
- React Frontend: http://localhost:3000
- Django API: http://localhost:8000
- MySQL: localhost:3306
- Redis: localhost:6379
- RabbitMQ Management: http://localhost:15672
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'а
- AR захват контента - трансляция камеры с наложением виртуальных объектов
- Детекция AprilTag - WebAssembly детекция маркеров для позиционирования
- Стабилизация AR - алгоритмы сглаживания для устойчивого трекинга
- Запись AR-видео - захват видео с аудио в WebM/MP4 формате
- Управление сценами - гибкая система конфигурации сцен и объектов
- AlvaAR интеграция - улучшенное отслеживание плоскостей и поз камеры
- Управление сессиями - отслеживание сессий просмотра AR-контента
- Геймификация - система промокодов за прохождение контента
- Аналитика - сбор статистики использования и прогресса пользователей
- Пользовательские данные - профили и персонализация опыта
- Асинхронная обработка - Celery задачи для отправки email и фоновых операций
- 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+ - современная версия языка программирования
- 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 - сборка и бандлинг
- 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| Метод | Эндпоинт | Описание |
|---|---|---|
| POST | /session/start/ |
Создание новой сессии просмотра |
| POST | /view/ |
Регистрация просмотра актива пользователем |
| POST | /user/email/ |
Привязка email к сессии пользователя |
| GET | /progress/ |
Получение прогресса просмотра активов |
| GET | /promo/ |
Получение промокода за прохождение |
| GET | /stats/ |
Сводная статистика просмотров |
- README-backend.md - подробная документация Django бэкенда
- frontend/README.md - подробная документация React frontend'а
Проект разработан командой LCTAR для создания инновационных AR-решений.
Этот проект является проприетарным. Все права защищены.
Мы приветствуем вклад в развитие проекта:
- Форкните репозиторий
- Создайте feature branch (
git checkout -b feature/amazing-feature) - Закоммитьте изменения (
git commit -m 'Add amazing feature') - Запушьте branch (
git push origin feature/amazing-feature) - Создайте Pull Request
Для вопросов и предложений обращайтесь к команде разработки.
LCTAR - инновационная платформа для создания увлекательного AR-опыта с современными веб-технологиями.