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