215 lines
8 KiB
Markdown
215 lines
8 KiB
Markdown
# Mnemo Cards - Мобильное приложение для изучения языков
|
||
|
||
Полнофункциональная система для изучения языков, включающая мобильное приложение, веб-сервер, телеграм-бот и веб-игры.
|
||
|
||
## 🏗️ Структура проекта
|
||
|
||
Проект состоит из нескольких взаимосвязанных компонентов:
|
||
|
||
### 📱 Мобильное приложение (`mnemo_cards/`)
|
||
Основное Flutter приложение для iOS и Android с функциями:
|
||
- Изучение языков через карточки
|
||
- Интеграция с Firebase (Firestore, Analytics, Crashlytics)
|
||
- Система покупок (YooKassa, In-App Purchase)
|
||
- Реклама (Yandex Mobile Ads)
|
||
- Локальные уведомления
|
||
- Интеграция с веб-играми через WebView
|
||
- Поддержка Telegram Web App
|
||
|
||
**Технологии:** Flutter, BLoC, Auto Route, Firebase, WebView
|
||
|
||
### 🌐 Веб-приложение (`mnemo_cards_web/`)
|
||
Веб-версия Flutter приложения с функциями:
|
||
- Изучение языков через карточки в браузере
|
||
- Интеграция с Firebase (Firestore, Analytics, Crashlytics)
|
||
- Адаптивный дизайн для различных устройств
|
||
- Синхронизация данных с мобильным приложением
|
||
- Поддержка PWA (Progressive Web App)
|
||
- Интеграция с веб-играми
|
||
|
||
**Технологии:** Flutter Web, BLoC, Auto Route, Firebase, PWA
|
||
|
||
### 🔧 Общие компоненты (`mnemo_cards_common/`)
|
||
Общие DTO и утилиты для мобильного приложения:
|
||
- Модели данных
|
||
- Сетевые утилиты
|
||
- JSON сериализация
|
||
- Криптографические функции
|
||
|
||
### 🖥️ Backend сервер (`mnemo_cards_backend/`)
|
||
Dart сервер на базе Shelf framework:
|
||
- REST API для мобильного приложения
|
||
- База данных Isar
|
||
- Интеграция с Google APIs
|
||
- Система платежей YooKassa
|
||
- Периодические задачи
|
||
- Swagger документация
|
||
|
||
**Технологии:** Dart, Shelf, Isar, Google APIs
|
||
|
||
### 🔧 Backend общие компоненты (`mnemo_cards_common_backend/`)
|
||
Общие компоненты для backend:
|
||
- Модели данных
|
||
- Утилиты для работы с Isar
|
||
- Общие бизнес-логика
|
||
|
||
### 🤖 Telegram бот (`mnemo_cards_telegram_bot/`)
|
||
Telegram бот для управления приложением:
|
||
- Административные функции
|
||
- Распространение APK файлов
|
||
- Управление пользователями
|
||
- Интеграция с основным backend
|
||
|
||
**Технологии:** Dart, Teledart, Isar
|
||
|
||
### 🎮 Веб-игры и WebView Bridge (`games/`)
|
||
Система веб-игр с безопасной коммуникацией через WebView:
|
||
- **Host приложение** - Flutter приложение-контейнер
|
||
- **Web приложения** - Flutter Web игры (bus_word_game, web_app1)
|
||
- **Bridge Core** - система безопасной коммуникации
|
||
- **Payloads** - типизированные сообщения между приложениями
|
||
|
||
**Архитектура:**
|
||
- Изолированные payload'ы для каждого приложения
|
||
- JavaScript bridge для WebView коммуникации
|
||
- Типобезопасная обработка сообщений
|
||
- Поддержка сложных сценариев (авторизация, quiz, нативные диалоги)
|
||
|
||
**Технологии:** Flutter Web, WebView, JavaScript Bridge, Melos
|
||
|
||
## 🚀 Быстрый старт
|
||
|
||
### Мобильное приложение
|
||
```bash
|
||
cd mnemo_cards
|
||
flutter pub get
|
||
flutter run
|
||
```
|
||
|
||
### Веб-приложение
|
||
```bash
|
||
cd mnemo_cards_web
|
||
flutter pub get
|
||
flutter run -d chrome
|
||
```
|
||
|
||
### Backend сервер
|
||
```bash
|
||
cd mnemo_cards_backend
|
||
dart pub get
|
||
dart run
|
||
```
|
||
|
||
### Telegram бот
|
||
```bash
|
||
cd mnemo_cards_telegram_bot
|
||
dart pub get
|
||
dart run
|
||
```
|
||
|
||
### Веб-игры
|
||
```bash
|
||
cd games
|
||
melos bootstrap
|
||
cd apps/host_app
|
||
flutter run
|
||
```
|
||
|
||
## 🔗 Зависимости между компонентами
|
||
|
||
```
|
||
mnemo_cards
|
||
├── mnemo_cards_common (DTO)
|
||
├── games/mnemo_cards_web_bridge (WebView интеграция)
|
||
└── Firebase/Backend API
|
||
|
||
mnemo_cards_web
|
||
├── mnemo_cards_common (DTO)
|
||
├── mnemo_cards_frontend_common (общие компоненты)
|
||
├── games/payloads_shared (общие типы)
|
||
└── Firebase/Backend API
|
||
|
||
mnemo_cards_backend
|
||
├── mnemo_cards_common (общие DTO)
|
||
├── mnemo_cards_common_backend (backend утилиты)
|
||
└── Isar Database
|
||
|
||
mnemo_cards_telegram_bot
|
||
├── mnemo_cards_common_backend
|
||
└── Backend API
|
||
|
||
games/
|
||
├── bridge_core (WebView коммуникация)
|
||
├── payloads_shared (общие типы)
|
||
└── apps/ (веб-приложения)
|
||
```
|
||
|
||
## 📋 Основные функции
|
||
|
||
### Мобильное приложение
|
||
- 📚 Изучение языков через карточки
|
||
- 🎮 Интеграция с веб-играми
|
||
- 💳 Система покупок и подписок
|
||
- 📊 Аналитика и статистика
|
||
- 🔔 Push уведомления
|
||
- 🌐 Telegram Web App поддержка
|
||
|
||
### Веб-приложение
|
||
- 📚 Изучение языков через карточки в браузере
|
||
- 🎮 Интеграция с веб-играми
|
||
- 💳 Система покупок и подписок
|
||
- 📊 Аналитика и статистика
|
||
- 🔄 Синхронизация с мобильным приложением
|
||
- 📱 PWA поддержка для установки на устройство
|
||
|
||
### Backend
|
||
- 🔐 Аутентификация и авторизация
|
||
- 💾 Управление данными пользователей
|
||
- 💰 Обработка платежей
|
||
- 📈 Аналитика и метрики
|
||
- 🔄 Периодические задачи
|
||
- 📚 API для мобильного приложения
|
||
|
||
### Telegram бот
|
||
- 👨💼 Административные функции
|
||
- 📱 Распространение APK
|
||
- 👥 Управление пользователями
|
||
- 📊 Мониторинг системы
|
||
|
||
### Веб-игры
|
||
- 🎯 Интерактивные игры для изучения языков
|
||
- 🔗 Безопасная интеграция с мобильным приложением
|
||
- 📊 Отслеживание прогресса
|
||
- 🎨 Современный UI/UX
|
||
|
||
## 🛠️ Технологический стек
|
||
|
||
- **Frontend:** Flutter, Flutter Web
|
||
- **Backend:** Dart, Shelf, Isar
|
||
- **База данных:** Isar (локальная), Firestore (облачная)
|
||
- **Аутентификация:** Firebase Auth, Google Sign-In
|
||
- **Платежи:** YooKassa, In-App Purchase
|
||
- **Аналитика:** Firebase Analytics, Crashlytics
|
||
- **Реклама:** Yandex Mobile Ads
|
||
- **Уведомления:** Firebase Messaging, Local Notifications
|
||
- **Коммуникация:** WebView Bridge, REST API
|
||
- **Мониторинг:** Telegram Bot
|
||
|
||
## 📱 Поддерживаемые платформы
|
||
|
||
- **iOS** - нативное приложение
|
||
- **Android** - нативное приложение
|
||
- **Web** - Flutter Web приложение и игры
|
||
- **Telegram** - Web App интеграция
|
||
|
||
## 🔒 Безопасность
|
||
|
||
- Шифрование данных
|
||
- Безопасная WebView коммуникация
|
||
- Защита от root/jailbreak
|
||
- Валидация платежей
|
||
- Изоляция payload'ов в веб-играх
|
||
|
||
## 📄 Лицензия
|
||
|
||
Проект является приватным и не предназначен для публикации.
|