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

8 KiB
Raw Blame History

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'ов в веб-играх

📄 Лицензия

Проект является приватным и не предназначен для публикации.