Overview
Built an intelligent AI-powered personal assistant application that helps users manage their daily life through natural voice and text conversations. Nora acts as a smart companion, handling reminders, notes, events, and providing personalized assistance while learning user preferences over time.
Key Features
Conversational AI Assistant
- Real-time AI chat system with natural language understanding
- Context-aware responses that understand user intent
- Message feedback system for continuous AI improvement
Voice-First Experience
- Advanced speech-to-text for hands-free voice commands
- Dual TTS engines (OpenAI TTS & ElevenLabs) with emotional voice synthesis
- Real-time audio feedback and waveform visualization
Smart Alarm & Reminder System
- Intelligent alarm scheduling with platform-native integration
- iOS AlarmKit & Android AlarmManager support
- Background task handling for reliable alarm triggers
Calendar & Event Management
- Native device calendar sync for seamless event management
- Event creation through natural conversation
- Smart date/time parsing from natural language inputs
Notes & Memory System
- Note-taking with categories for organized storage
- Quick note capture through voice or text
- Search and retrieval for easy access
Fitness & Wellness Tracking
- Fitness tracking module for health monitoring
- Personalized fitness recommendations
- Goal-based tracking and progress insights
Real-Time Notifications
- Firebase Cloud Messaging for instant alerts
- Foreground/background notification handling
- Deep linking for seamless navigation
Personalization & Accessibility
- Dynamic theming with Dark/Light mode switching
- Multi-language support with real-time switching
- Responsive UI with smooth animations
Tech Stack
FrontendFlutter, Dart, GetX
Real-TimeSocket.IO
AI/VoiceOpenAI TTS, ElevenLabs, STT
BackendFirebase (Auth, FCM, Functions)
NativeiOS AlarmKit, Android AlarmManager
ArchitectureClean Architecture, Feature-First
Architecture Highlights
Clean Architecture
Separated domain, data, and presentation layers for maintainability and testability
Feature-First Structure
Organized codebase by features (Chat, Alarms, Notes, Events) for scalable development
Reactive State Management
GetX for efficient state management and dependency injection
Offline-First Approach
Local caching for core features to ensure app usability without connectivity