feat: deploy infrastructure + disk/drive, calendar, presentation, workspaces, onboarding, demo user

This commit is contained in:
2026-05-19 16:26:26 +03:00
parent 688d043dad
commit 3529c39b22
304 changed files with 18826 additions and 1176 deletions
+115
View File
@@ -0,0 +1,115 @@
# VoIdea Flutter App
Мобильное приложение для голосового управления идеями.
## Требования
- Flutter SDK 3.22+ (https://flutter.dev)
- Dart 3.4+
- Android Studio / Xcode (для сборки)
## Установка
```bash
cd flutter
# 1. Сгенерировать platform-специфичные файлы (android/ios/web)
# НЕ ИСПОЛЬЗУЙТЕ flutter create . — это перезапишет lib/
# Используйте скрипт:
.\init_project.ps1
# 2. Установить зависимости
flutter clean
flutter pub get
# 3. Если ошибка "namespace not specified" (старый device_info):
.\fix_build.ps1
# 4. Запустить (выбрать Chrome/Edge для web, или подключить Android/iOS)
flutter run
# 5. Собрать APK
# debug (для тестирования):
flutter build apk --debug --dart-define=API_BASE_URL=http://10.0.2.2:8000/api/v1
# release (для публикации):
flutter build apk --release --dart-define=API_BASE_URL=https://voidea.app/api/v1
# APK будет в: build/app/outputs/flutter-apk/app-release.apk
# split per ABI (меньше размер):
flutter build apk --split-per-abi --release
# 6. Собрать IPA (требуется macOS + Xcode)
flutter build ios --release
# 7. AppBundle (Google Play)
flutter build appbundle --release
```
## Известные проблемы и решения
### dot-shorthands error
```
Error: This requires the experimental 'dot-shorthands' language feature.
```
Причина: `flutter create` сгенерировал шаблонный `lib/main.dart` с синтаксисом `.fromSeed()`.
Решение: перегенерировать платформенные папки через `init_project.ps1` (он не трогает `lib/`).
## Переменные окружения
Установите через `--dart-define`:
```bash
flutter run --dart-define=API_BASE_URL=https://voidea.app/api/v1
```
## Структура проекта
```
flutter/
├── lib/
│ ├── main.dart # Entry point
│ ├── app.dart # MaterialApp.router
│ ├── core/
│ │ ├── api/ # Dio client, endpoints, exceptions
│ │ ├── theme/ # Material 3 theme (light/dark)
│ │ ├── router/ # go_router config
│ │ ├── constants/ # App constants, colors, funnel config
│ │ └── utils/ # Validators
│ ├── models/ # Data classes (auth, idea, workspace...)
│ ├── providers/ # Riverpod state (auth, ideas, workspace...)
│ ├── widgets/ # Shared widgets (loading, error, vote...)
│ └── features/ # Feature-first structure
│ ├── auth/ # Login, register, 2FA, password reset
│ ├── dashboard/ # Main dashboard with list/kanban toggle
│ ├── ideas/ # CRUD, view, edit, funnel, kanban
│ ├── voice/ # Voice input, sessions
│ ├── workspaces/ # Workspace list, detail, members
│ ├── notifications/ # Notification list
│ ├── settings/ # Profile, theme, integrations, logout
│ ├── integrations/ # Calendar connection UI
│ ├── onboarding/ # Onboarding slides
│ └── admin/ # Admin panel (7 tabs)
├── test/ # Widget tests
├── assets/ # Static assets
├── pubspec.yaml
└── analysis_options.yaml
```
## Фичи
- **Голосовой ввод** через speech_to_text (Native Android/iOS)
- **Воронка идей**: 6 статусов (raw → retrospective), Kanban-доска
- **Рабочие пространства**: личные и командные, управление участниками
- **Совместная работа**: голосования, комментарии, лента активности
- **Календарь**: Google, Яндекс, Apple (CalDAV)
- **Уведомления**: push, in-app, unread badge
- **Админ-панель**: статистика, пользователи, агенты, логи, тарифы, бот, сервисы
- **Тёмная/светлая тема**: переключение, сохранение в Secure Storage
- **Анимации**: flutter_animate (fade, slide, scale)
## Сборка для VPS
Установите `API_BASE_URL` на продакшн-адрес:
```bash
flutter build apk --release --dart-define=API_BASE_URL=https://voidea.app/api/v1
```