mnemo_cards/mnemo_cards_web_v2/README.md

101 lines
3.4 KiB
Markdown
Raw Normal View History

2025-11-10 23:55:41 +00:00
# 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) раздел "Этапы разработки".