mnemo_cards/README.md

216 lines
8 KiB
Markdown
Raw Normal View History

2025-10-25 20:35:04 +00:00
# Mnemo Cards - Мобильное приложение для изучения языков
2024-05-22 20:48:44 +00:00
2025-10-25 20:35:04 +00:00
Полнофункциональная система для изучения языков, включающая мобильное приложение, веб-сервер, телеграм-бот и веб-игры.
2024-05-22 20:48:44 +00:00
2025-10-25 20:35:04 +00:00
## 🏗️ Структура проекта
2024-05-22 20:48:44 +00:00
2025-10-25 20:35:04 +00:00
Проект состоит из нескольких взаимосвязанных компонентов:
2024-05-22 20:48:44 +00:00
2025-10-25 20:35:04 +00:00
### 📱 Мобильное приложение (`mnemo_cards/`)
Основное Flutter приложение для iOS и Android с функциями:
- Изучение языков через карточки
- Интеграция с Firebase (Firestore, Analytics, Crashlytics)
- Система покупок (YooKassa, In-App Purchase)
- Реклама (Yandex Mobile Ads)
- Локальные уведомления
- Интеграция с веб-играми через WebView
- Поддержка Telegram Web App
2024-05-22 20:48:44 +00:00
2025-10-25 20:35:04 +00:00
**Технологии:** Flutter, BLoC, Auto Route, Firebase, WebView
2024-05-22 20:48:44 +00:00
2025-10-25 20:35:04 +00:00
### 🌐 Веб-приложение (`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'ов в веб-играх
## 📄 Лицензия
Проект является приватным и не предназначен для публикации.