An intelligent alarm app with AI-powered voice briefings that helps you wake up informed and ready for the day.
- β Custom alarms with labels
- β Recurring alarms (daily, weekdays, weekends, custom)
- β Snooze functionality
- β Custom alarm sounds
- β Beautiful, modern UI with glassmorphic design
- π£οΈ Interactive Voice Assistant - Speak naturally to get your morning briefing
- π§ Email Summary - Unread email count
- π Calendar Preview - Today's events and meetings
- βοΈ Weather Report - Current conditions and forecast
- π App Integrations - Connect Gmail, Google Calendar, Weather, and more
- π¬ Real-time Transcriptions - See what you and the AI are saying
- π― Personalized - Briefing based on YOUR connected apps
Start Here: π QUICKSTART.md (10 minutes to get running!)
- QUICKSTART.md - Get up and running in 10 minutes
- LIVEKIT_SETUP.md - Detailed setup instructions
- IMPLEMENTATION_SUMMARY.md - What was built and how
- ARCHITECTURE.md - System architecture and design
- backend/README.md - Backend deployment guide
- Set Your Alarm - Choose time, label, sound, and recurrence
- Connect Your Apps - Link Gmail, Calendar, Weather (Settings β Apps)
- Wake Up - Alarm goes off, tap "Wake Up"
- Voice Briefing - AI assistant greets you with your personalized morning briefing
- Interact - Ask questions, get updates, start your day informed!
- Swift 5.9+ with SwiftUI
- LiveKit Swift SDK for real-time voice
- UserNotifications for alarm triggering
- AVFoundation for audio playback
- Python 3.9+ for agent and token server
- LiveKit Agents framework for AI conversation
- OpenAI GPT-4o-mini for intelligent responses
- OpenAI Whisper for speech-to-text
- OpenAI TTS for text-to-speech
- Flask for token server
- LiveKit Cloud for real-time communication
- OpenAI API for AI capabilities
Alara/
βββ frontend/
β βββ Alarm MVP/
β βββ Managers/
β β βββ AlarmManager.swift # Alarm lifecycle management
β β βββ NotificationManager.swift # System notifications
β β βββ SoundManager.swift # Audio playback
β β βββ AppManager.swift # Connected apps
β β βββ Config.swift # π Configuration & env vars
β β βββ BriefingService.swift # π Morning briefing data
β β βββ LiveKitService.swift # π Voice connection
β βββ Models/
β β βββ Alarm.swift # Alarm data model
β β βββ Sound.swift # Sound data model
β β βββ App.swift # App integration model
β βββ Views/
β βββ ContentView.swift # Main tab view
β βββ AddEditAlarmView.swift # Create/edit alarms
β βββ AlarmDismissView.swift # Alarm dismiss screen
β βββ AudioWaveView.swift # π Audio wave + voice UI
β βββ VoiceAssistantView.swift # π Voice interaction UI
β βββ AlarmRowView.swift # Alarm list item
β βββ AppsTabView.swift # App connections
β βββ SoundLibraryView.swift # Sound selection
β βββ SharedComponents.swift # Reusable UI components
β
βββ backend/
β βββ livekit_agent.py # π AI voice agent
β βββ token_server.py # π Secure token generation
β βββ requirements.txt # Python dependencies
β βββ README.md # Backend setup guide
β
βββ QUICKSTART.md # π Quick setup guide
βββ LIVEKIT_SETUP.md # π Detailed setup
βββ IMPLEMENTATION_SUMMARY.md # π What was built
βββ ARCHITECTURE.md # π System architecture
βββ README.md # This file
π = New for voice integration
π = Modified for voice integration
This project demonstrates:
- Real-time AI Voice Interaction using LiveKit
- Multi-App Integration for personalized experiences
- Modern iOS Development with SwiftUI best practices
- Secure Backend Architecture with proper token handling
- Production-Ready Code with error handling and scalability
- macOS 14+ with Xcode 15+
- Python 3.9+
- LiveKit Cloud account (free tier available)
- OpenAI API key
# Clone the repository
git clone <your-repo>
cd Alara
# Follow the QUICKSTART.md guide
open QUICKSTART.md- Open
frontend/Alarm MVP.xcodeprojin Xcode - Build and run (βR)
- Grant microphone and notification permissions
# Terminal 1: Token Server
cd backend
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
python token_server.py
# Terminal 2: Voice Agent
cd backend
source venv/bin/activate
python livekit_agent.py start- Navy Blue (
#1A2332) - Primary background - Warm Accent (
#F4A261) - Highlights and CTAs - Cream (
#F8F4EA) - Text primary - Muted Purple (
#A8A0D4) - Text secondary
- System Rounded - Modern, friendly feel
- Bold weights for important information
- Dynamic Type support for accessibility
- β No Credentials in Code - All secrets in .env files (gitignored)
- β Server-Side Token Generation - API secrets never exposed to clients
- β Encrypted Communication - WSS (WebSocket Secure) and HTTPS only
- β Microphone Permissions - Explicit user consent required
- β Data Minimization - Only collect what's needed for features
- Update bundle identifier
- Configure signing & capabilities
- Build for release
- Upload to App Store Connect
- Token Server: Deploy to AWS Lambda, Google Cloud Functions, or Railway
- Voice Agent: Deploy to AWS ECS, Google Cloud Run, or Kubernetes
- See backend/README.md for details
- Cold Start: < 2 seconds to connect to voice assistant
- Latency: < 500ms for voice responses (local network)
- Battery Impact: Minimal (only active during briefing)
- Memory: < 50MB additional for voice features
This is a hackathon project, but improvements are welcome!
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is available for educational and hackathon purposes.
- LiveKit - Real-time communication platform
- OpenAI - AI models (GPT, Whisper, TTS)
- Cal Hacks - Hackathon inspiration and deadline motivation! π
See LIVEKIT_SETUP.md Β§ Troubleshooting
- Check the documentation files listed above
- Review the code comments
- Check LiveKit and OpenAI documentation
Built this project and want to learn more?
- LiveKit Documentation
- LiveKit Agents Guide
- Swift Programming Guide
- SwiftUI Tutorials
- OpenAI API Reference
[Add your Cal Hacks demo video here]
[Add screenshots of your app here]
Built with β€οΈ for Cal Hacks 2025
Made by Anthony Zhao