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

100 lines
3.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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) раздел "Этапы разработки".