209 lines
9.0 KiB
Markdown
209 lines
9.0 KiB
Markdown
# 📁 Структура проекта NANAHUI CRM
|
|
|
|
```
|
|
NANAHUI/
|
|
│
|
|
├── 📄 README.md # Общая информация о проекте
|
|
├── 📄 QUICKSTART.md # Быстрый старт и настройка
|
|
├── 📄 ARCHITECTURE.md # Архитектурное описание
|
|
├── 📄 FIREBASE_SETUP.md # Инструкция по настройке Firebase
|
|
├── 📄 .env.example # Шаблон переменных окружения
|
|
├── 📄 .gitignore # Git ignore файл
|
|
├── 📄 pubspec.yaml # Зависимости Flutter
|
|
│
|
|
├── 📂 lib/ # Исходный код приложения
|
|
│ │
|
|
│ ├── 📄 main.dart # Точка входа
|
|
│ │
|
|
│ ├── 📂 core/ # Ядро приложения
|
|
│ │ ├── firebase_config.dart # Конфигурация Firebase
|
|
│ │ ├── firestore_service.dart # Сервис для работы с Firestore
|
|
│ │ ├── local_storage_service.dart # Локальное хранилище (Hive)
|
|
│ │ ├── ai_service.dart # AI сервис (OpenAI, Anthropic)
|
|
│ │ ├── router.dart # Маршрутизация (GoRouter)
|
|
│ │ └── theme.dart # Темы оформления
|
|
│ │
|
|
│ ├── 📂 models/ # Модели данных
|
|
│ │ ├── user_model.dart # Пользователь
|
|
│ │ ├── task_model.dart # Задача
|
|
│ │ ├── project_model.dart # Проект
|
|
│ │ ├── mind_map_model.dart # Mind-карта
|
|
│ │ ├── calendar_event_model.dart # Событие календаря
|
|
│ │ └── alarm_model.dart # Будильник/Напоминание
|
|
│ │
|
|
│ ├── 📂 providers/ # State Management (Riverpod)
|
|
│ │ └── auth_provider.dart # Провайдер аутентификации
|
|
│ │
|
|
│ ├── 📂 screens/ # Экраны приложения
|
|
│ │ ├── auth_screen.dart # Экран входа
|
|
│ │ ├── home_screen.dart # Главная навигация
|
|
│ │ ├── dashboard_screen.dart # Дашборд
|
|
│ │ ├── tasks_screen.dart # Задачи
|
|
│ │ ├── mind_map_screen.dart # Mind-карта
|
|
│ │ ├── calendar_screen.dart # Календарь
|
|
│ │ └── alarms_screen.dart # Будильники
|
|
│ │
|
|
│ ├── 📂 widgets/ # Переиспользуемые виджеты
|
|
│ │ └── (создаётся по мере необходимости)
|
|
│ │
|
|
│ └── 📂 features/ # Функциональные модули
|
|
│ └── (для будущего расширения)
|
|
│
|
|
├── 📂 assets/ # Ресурсы приложения
|
|
│ ├── 📂 images/ # Изображения
|
|
│ │ └── .gitkeep
|
|
│ └── 📂 icons/ # Иконки
|
|
│ └── .gitkeep
|
|
│
|
|
├── 📂 test/ # Тесты
|
|
│ └── widget_test.dart # Widget тесты
|
|
│
|
|
├── 📂 android/ # Android платформа
|
|
│ ├── 📂 app/
|
|
│ │ ├── src/main/
|
|
│ │ │ ├── AndroidManifest.xml
|
|
│ │ │ ├── kotlin/ # Kotlin код
|
|
│ │ │ ├── res/ # Ресурсы Android
|
|
│ │ │ └── ...
|
|
│ │ └── build.gradle # Android build config
|
|
│ └── google-services.json # ⚠️ Firebase config (нужно добавить)
|
|
│
|
|
├── 📂 ios/ # iOS платформа
|
|
│ ├── 📂 Runner/
|
|
│ │ ├── AppDelegate.swift
|
|
│ │ ├── Info.plist
|
|
│ │ └── ...
|
|
│ └── GoogleService-Info.plist # ⚠️ Firebase config (нужно добавить)
|
|
│
|
|
├── 📂 web/ # Web платформа
|
|
│ ├── index.html
|
|
│ └── manifest.json
|
|
│
|
|
├── 📂 windows/ # Windows платформа
|
|
│ └── ...
|
|
│
|
|
├── 📂 linux/ # Linux платформа
|
|
│ └── ...
|
|
│
|
|
├── 📂 macos/ # macOS платформа
|
|
│ └── ...
|
|
│
|
|
└── 📂 build/ # ⚠️ Build artifacts (не в git)
|
|
└── (генерируется при сборке)
|
|
```
|
|
|
|
## 🔑 Ключевые файлы
|
|
|
|
### Конфигурация
|
|
| Файл | Описание |
|
|
|------|----------|
|
|
| `pubspec.yaml` | Зависимости и настройки Flutter |
|
|
| `.gitignore` | Исключения для Git |
|
|
| `.env.example` | Шаблон переменных окружения |
|
|
|
|
### Firebase (нужно добавить)
|
|
| Файл | Где взять | Куда положить |
|
|
|------|-----------|---------------|
|
|
| `google-services.json` | Firebase Console → Android | `android/app/` |
|
|
| `GoogleService-Info.plist` | Firebase Console → iOS | `ios/Runner/` |
|
|
|
|
### Основные модули
|
|
| Модуль | Файл | Описание |
|
|
|--------|------|----------|
|
|
| **Entry Point** | `lib/main.dart` | Инициализация и запуск |
|
|
| **Firebase** | `lib/core/firebase_config.dart` | Настройка Firebase |
|
|
| **Auth** | `lib/providers/auth_provider.dart` | Аутентификация через Google |
|
|
| **Firestore** | `lib/core/firestore_service.dart` | CRUD операции с БД |
|
|
| **AI** | `lib/core/ai_service.dart` | Интеграция с OpenAI |
|
|
| **Storage** | `lib/core/local_storage_service.dart` | Офлайн кэш на Hive |
|
|
| **Router** | `lib/core/router.dart` | Навигация между экранами |
|
|
| **Theme** | `lib/core/theme.dart` | Светлая/тёмная темы |
|
|
|
|
## 📦 Основные зависимости
|
|
|
|
### State Management
|
|
- `flutter_riverpod: ^2.5.0` - Реактивное управление состоянием
|
|
- `riverpod_annotation: ^2.3.5` - Code generation для Riverpod
|
|
|
|
### Firebase
|
|
- `firebase_core: ^2.32.0` - Ядро Firebase
|
|
- `firebase_auth: ^4.19.0` - Аутентификация
|
|
- `cloud_firestore: ^4.17.0` - Firestore база данных
|
|
- `firebase_messaging: ^14.9.0` - Push уведомления
|
|
|
|
### Local Storage
|
|
- `hive_flutter: ^1.1.0` - Быстрое локальное хранилище
|
|
- `hive: ^2.2.3` - Hive ядро
|
|
|
|
### Navigation
|
|
- `go_router: ^13.1.0` - Декларативная маршрутизация
|
|
|
|
### AI
|
|
- `http: ^1.2.0` - HTTP клиент для API запросов
|
|
- `dio: ^5.4.0` - Продвинутый HTTP клиент
|
|
|
|
### UI
|
|
- `graphview: ^1.2.0` - Визуализация графов (для mind-карт)
|
|
- `flutter_mind_map: ^1.0.23` - Готовый mind-map виджет
|
|
- `flutter_staggered_grid_view: ^0.7.0` - Сетка для карточек
|
|
|
|
### Google Integration
|
|
- `google_sign_in: ^6.2.1` - Вход через Google
|
|
- `googleapis: ^13.2.0` - Google API (Calendar и др.)
|
|
|
|
### Notifications
|
|
- `flutter_local_notifications: ^17.0.0` - Локальные уведомления
|
|
- `workmanager: ^0.5.2` - Фоновые задачи
|
|
|
|
## 🎯 Точки расширения
|
|
|
|
### Для добавления новой фичи:
|
|
|
|
1. **Создать модель** в `lib/models/`
|
|
2. **Создать сервис** в `lib/core/` или `lib/features/`
|
|
3. **Создать провайдер** в `lib/providers/`
|
|
4. **Создать экран** в `lib/screens/`
|
|
5. **Добавить маршрут** в `lib/core/router.dart`
|
|
6. **Добавить виджеты** в `lib/widgets/`
|
|
|
|
### Пример: Добавление заметок
|
|
|
|
```
|
|
lib/
|
|
├── models/
|
|
│ └── note_model.dart # ✨ Новая модель
|
|
├── features/
|
|
│ └── notes/
|
|
│ ├── note_service.dart # ✨ Сервис
|
|
│ └── note_provider.dart # ✨ Провайдер
|
|
├── screens/
|
|
│ └── notes_screen.dart # ✨ Экран
|
|
└── widgets/
|
|
└── note_card.dart # ✨ Виджет
|
|
```
|
|
|
|
## 📊 Метрики проекта
|
|
|
|
```
|
|
Строки кода: ~2000+
|
|
Файлов: ~20
|
|
Модулей: 6 (Auth, Tasks, MindMap, Calendar, Alarms, Dashboard)
|
|
Моделей данных: 6
|
|
Экранов: 6
|
|
Сервисов: 4 (Firebase, Firestore, AI, LocalStorage)
|
|
```
|
|
|
|
## 🔄 CI/CD (будущее)
|
|
|
|
```yaml
|
|
.github/workflows/
|
|
├── build.yml # Сборка APK
|
|
├── test.yml # Запуск тестов
|
|
└── deploy.yml # Деплой в Store
|
|
```
|
|
|
|
---
|
|
|
|
**Структура создана для команды NANAHUI** 🚀
|
|
Последнее обновление: Март 2026
|