somali Visual Assistant
# SomAI Assistant
AI-Powered Virtual Assistant Mobile Application for Task Automation and Natural Language Interaction.
Bachelor Thesis project: **SomAI Assistant**, a Flutter and Firebase assistant for Somali and English language users.
## Technology Stack
- Flutter with Material 3 UI
- Firebase Authentication
- Cloud Firestore
- Firebase Cloud Messaging
- Firebase Storage
- Speech-to-Text
- Text-to-Speech
- Provider-based MVVM state management
- Repository pattern for Firestore access
## Firebase Project
Configured Firebase project:
- Project ID: `somaliai`
- Realtime Database URL: `
somaliai-default-rtdb.fireb…`
- Firestore is used for the thesis database schema and app data.
## Firestore Schema
Top-level collections implemented by the app:
- `users/{userId}`
- `userId`
- `displayName`
- `email`
- `authProvider`
- `createdAt`
- `lastActive`
- `preferences/{userId}`
- `userId`
- `responseVerbosity`
- `preferredLanguage`
- `voiceGender`
- `privacyMode`
- `serviceTokens`
- `sessions/{sessionId}`
- `sessionId`
- `userId`
- `startTime`
- `endTime`
- `dialogueTurns`
- `dialogueTurns/{turnId}`
- `turnId`
- `sessionId`
- `timestamp`
- `userUtterance`
- `intent`
- `slots`
- `systemResponse`
- `taskOutcome`
- `tasks/{taskId}`
- `taskId`
- `userId`
- `taskType`
- `parameters`
- `status`
- `createdAt`
- `completedAt`
- `errorLog`
- `feedbackLogs/{logId}`
- `logId`
- `userId`
- `sessionId`
- `rating`
- `comment`
- `timestamp`
## Folder Structure
```text
lib/
models/
firestore_models.dart
chat_message.dart
conversation.dart
task_item.dart
repositories/
somai_repository.dart
services/
auth_service.dart
ai_service.dart
messaging_service.dart
schedule_sync_service.dart
text_to_speech_service.dart
voice_service.dart
firebase_storage_service.dart
providers/
app_state.dart
screens/
chat_screen.dart
login_screen.dart
tasks_screen.dart
settings_screen.dart
history_screen.dart
dashboard_screen.dart
widgets/
theme/
firebase_options.dart
main.dart
```
## …