About the Project
Inspiration
SkyAssist AI was born from a real-world problem: airline passengers often face frustrating experiences with delays, lost baggage, accessibility issues, and other disruptions, but navigating the claims process can be overwhelming and time-consuming. We wanted to create an intelligent system that could:
- Automatically analyze customer complaints to understand severity and legal risk
- Provide actionable recommendations based on DOT regulations and industry best practices
- Generate professional documentation for claims processing
- Create personalized voice responses to improve customer communication
The goal was to build a hackathon MVP that demonstrates how AI can streamline airline customer service operations while ensuring compliance with regulations like the Air Carrier Access Act and DOT guidelines.
What I Learned
Building SkyAssist AI was an incredible learning experience across multiple domains:
Full-Stack Development:
- Next.js 14 App Router architecture and server-side route handlers
- TypeScript for type-safe development
- MongoDB Atlas integration with Mongoose for data persistence
- Modern React patterns with hooks and client-side state management
AI Integration:
- Working with Google Gemini API for natural language understanding
- Implementing keyword-based analysis as a fallback when API quotas are limited
- Structuring prompts for consistent JSON responses
- Error handling and graceful degradation when external services fail
Voice Technology:
- ElevenLabs Text-to-Speech API integration
- Converting text scripts to audio for customer communication
- Handling base64 audio data URLs for in-browser playback
UI/UX Design:
- Creating a modern, accessible dashboard with TailwindCSS
- Implementing responsive layouts for mobile and desktop
- Building intuitive user flows for case management
- Designing with a cohesive color scheme inspired by analytics dashboards
DevOps & Deployment:
- Environment variable management for API keys
- Git version control and GitHub repository setup
- Project structure best practices for scalability
How I Built It
Tech Stack:
- Frontend: Next.js 14 (App Router), TypeScript, TailwindCSS
- Backend: Next.js API Routes (serverless functions)
- Database: MongoDB Atlas with Mongoose ODM
- AI: Mock keyword-based analysis (Gemini API optional)
- Voice: ElevenLabs TTS API
- Deployment: Ready for Vercel/Netlify deployment
Architecture:
Data Layer (
models/Case.ts)- Mongoose schema for case documents
- Timeline tracking for audit trails
- Flexible metadata structure
API Layer (
app/api/cases/)- RESTful endpoints for CRUD operations
- Separate routes for analysis, proof generation, and voice synthesis
- Error handling and validation
Business Logic (
lib/)- Database connection management with connection pooling
- Mock AI analysis using keyword detection
- Voice script generation based on case data
Presentation Layer (
app/)- Dashboard with statistics and case listing
- Case detail page with interactive actions
- Form for submitting new complaints
Key Features Implemented:
- ✅ Case management with status tracking
- ✅ AI-powered complaint categorization and risk scoring
- ✅ Recommended actions based on complaint type
- ✅ Compensation suggestions aligned with DOT regulations
- ✅ Proof packet generation (structured JSON documentation)
- ✅ Voice response generation with ElevenLabs TTS
- ✅ Timeline tracking for case history
- ✅ Demo data seeding for quick testing
Challenges Faced
1. API Rate Limits & Quotas
- Challenge: Google Gemini API free tier has strict rate limits that were quickly exhausted during development
- Solution: Implemented a smart keyword-based fallback analysis system that works without external APIs, ensuring the demo always functions
2. Model Compatibility Issues
- Challenge: Different Gemini model versions (gemini-1.5-pro, gemini-2.0-flash) had varying availability and API compatibility
- Solution: Made the model configurable via environment variables and defaulted to mock analysis for reliability
3. ElevenLabs Model Deprecation
- Challenge: The original
eleven_monolingual_v1model was deprecated on the free tier - Solution: Updated to
eleven_turbo_v2_5which is available on free tier
4. MongoDB Authentication
- Challenge: Special characters in MongoDB passwords required URL encoding
- Solution: Documented proper password encoding and provided clear setup instructions
5. Next.js 14 vs 15 Syntax Differences
- Challenge: Initial implementation used Next.js 15 async params syntax (
use()hook) - Solution: Switched to
useParams()hook compatible with Next.js 14
6. Design Consistency
- Challenge: Creating a cohesive design system that looks professional and modern
- Solution: Adopted a light, airy color scheme with purple/pink accents, inspired by analytics dashboards, and implemented consistent component styling
7. Real-time State Management
- Challenge: Keeping UI in sync with backend state after async operations
- Solution: Implemented proper loading states, error handling, and automatic data refetching after mutations
Future Enhancements
- [ ] Real-time notifications for case updates
- [ ] Email integration for sending proof packets
- [ ] Advanced analytics dashboard with charts
- [ ] Multi-user authentication and role-based access
- [ ] Integration with airline booking systems
- [ ] Mobile app version
- [ ] Automated follow-up scheduling
- [ ] Integration with payment processing for compensation
Acknowledgments
- Built for hackathon demonstration purposes
- Inspired by real-world airline customer service challenges
- Uses industry-standard technologies and best practices
Built With
- elevenlabs
- gemini
- mongodb
- next.js
- react
- tailwind
- typescript
Log in or sign up for Devpost to join the conversation.