feat: deploy infrastructure + disk/drive, calendar, presentation, workspaces, onboarding, demo user
This commit is contained in:
@@ -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
|
||||
```
|
||||
Reference in New Issue
Block a user