mnemo_cards/README.md
2025-11-11 02:55:41 +03:00

215 lines
8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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'ов в веб-играх
## 📄 Лицензия
Проект является приватным и не предназначен для публикации.