| .cursor/rules | ||
| .forgejo | ||
| .vscode | ||
| chat/mnemo_cards_chat | ||
| debug_report | ||
| funny_letters | ||
| games | ||
| mnemo_cards | ||
| mnemo_cards_backend | ||
| mnemo_cards_common | ||
| mnemo_cards_common_backend | ||
| mnemo_cards_frontend_common | ||
| mnemo_cards_snake_game | ||
| mnemo_cards_telegram_bot | ||
| mnemo_cards_web_v2 | ||
| .gitignore | ||
| .metadata | ||
| project_config.md | ||
| README.md | ||
| test_json_deserialization.dart | ||
| test_pubspec.yaml | ||
| test_regex.dart | ||
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
🚀 Быстрый старт
Мобильное приложение
cd mnemo_cards
flutter pub get
flutter run
Веб-приложение
cd mnemo_cards_web
flutter pub get
flutter run -d chrome
Backend сервер
cd mnemo_cards_backend
dart pub get
dart run
Telegram бот
cd mnemo_cards_telegram_bot
dart pub get
dart run
Веб-игры
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'ов в веб-играх
📄 Лицензия
Проект является приватным и не предназначен для публикации.