2025-11-10 23:55:41 +00:00
|
|
|
|
# Mnemo Cards - Мобильное приложение для изучения языков
|
2024-05-22 20:48:44 +00:00
|
|
|
|
|
2025-11-10 23:55:41 +00:00
|
|
|
|
Полнофункциональная система для изучения языков, включающая мобильное приложение, веб-сервер, телеграм-бот и веб-игры.
|
2024-05-22 20:48:44 +00:00
|
|
|
|
|
2025-11-10 23:55:41 +00:00
|
|
|
|
## 🏗️ Структура проекта
|
2024-05-22 20:48:44 +00:00
|
|
|
|
|
2025-11-10 23:55:41 +00:00
|
|
|
|
Проект состоит из нескольких взаимосвязанных компонентов:
|
2024-05-22 20:48:44 +00:00
|
|
|
|
|
2025-11-10 23:55:41 +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-11-10 23:55:41 +00:00
|
|
|
|
**Технологии:** Flutter, BLoC, Auto Route, Firebase, WebView
|
2024-05-22 20:48:44 +00:00
|
|
|
|
|
2025-11-10 23:55:41 +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'ов в веб-играх
|
|
|
|
|
|
|
|
|
|
|
|
## 📄 Лицензия
|
|
|
|
|
|
|
|
|
|
|
|
Проект является приватным и не предназначен для публикации.
|