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:

  1. Data Layer (models/Case.ts)

    • Mongoose schema for case documents
    • Timeline tracking for audit trails
    • Flexible metadata structure
  2. API Layer (app/api/cases/)

    • RESTful endpoints for CRUD operations
    • Separate routes for analysis, proof generation, and voice synthesis
    • Error handling and validation
  3. Business Logic (lib/)

    • Database connection management with connection pooling
    • Mock AI analysis using keyword detection
    • Voice script generation based on case data
  4. 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_v1 model was deprecated on the free tier
  • Solution: Updated to eleven_turbo_v2_5 which 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

Share this project:

Updates