# mnemo_cards_web_v2 Flutter web приложение для изучения языков с использованием **yx_scope** и **yx_state**. ## 🏗️ Архитектура ### Скоупы (yx_scope): - **AppScope** - корневой скоуп (роутер, аналитика, авторизация) - **UserScope** - пользовательский скоуп (темы, игры, статистика) ### State Management (yx_state): - `ThemeStateManager` - управление темой - `UserStateManager` - состояние пользователя (гость/авторизован) - `PacksStateManager` - состояние тем/карточек - `GamesStateManager` - состояние игр ## 🚀 Быстрый старт ### Установка зависимостей: ```bash flutter pub get ``` ### Генерация кода (freezed): ```bash flutter pub run build_runner build --delete-conflicting-outputs ``` ### Запуск приложения: ```bash flutter run -d chrome ``` ## 📁 Структура проекта ``` lib/ ├── di/ # Dependency Injection (yx_scope) │ ├── app_scope/ # AppScope │ └── user_scope/ # UserScope ├── domain/ # Бизнес-логика │ ├── services/ # Сервисы │ └── state/ # State Managers ├── presentation/ # UI слой │ ├── pages/ # Страницы │ ├── widgets/ # Виджеты │ ├── router/ # Роутинг │ └── theme/ # Темы ├── app.dart # Главный виджет └── main.dart # Точка входа ``` ## 🎯 Основные функции - ✅ Авторизация через Google и Telegram - ✅ Гостевой режим - ✅ 3 вкладки: Темы, Игры, Профиль - ✅ Светлая/темная тема - 🚧 Изучение карточек (TODO) - 🚧 Мини-игры (TODO) - 🚧 Статистика (TODO) ## 📚 Технологии - Flutter Web - yx_scope / yx_state - DI и state management - go_router - роутинг - Firebase - аналитика, авторизация - freezed - code generation - dio - HTTP клиент ## 📖 Документация См. [PLAN.md](./PLAN.md) для детального плана разработки. ## 🔧 Настройка Firebase 1. Установите Firebase CLI: ```bash npm install -g firebase-tools ``` 2. Настройте Firebase проект: ```bash firebase login flutterfire configure ``` 3. Это обновит `lib/firebase_options.dart` с правильными конфигурациями. ## ⚠️ Важные примечания - **Web Only**: Этот проект предназначен ТОЛЬКО для web платформы - UserScope создается сразу при запуске (для гостевого режима) - При logout UserScope НЕ удаляется, только меняется состояние - Используйте `flutter pub run build_runner watch` для автоматической генерации кода ## 📝 TODO См. текущие задачи в [PLAN.md](./PLAN.md) раздел "Этапы разработки".