💡 About the Project

Inspiration

Athletes scrimmage, actors rehearse, and programmers have LeetCode — but communicators rarely have a way to practice their skills. Extrovert AI was inspired by that gap. We wanted to create a platform where people could practice interviews, presentations, or casual conversations with lifelike AI personas — and receive detailed, objective feedback after every session. Our mission was to help creative and technical individuals gain confidence and master real-world communication through interactive AI-driven practice.

How We Built It

Extrovert AI is a full-stack web application combining real-time video AI interactions with intelligent feedback and analytics.

  • Frontend: Built with React, styled with Tailwind CSS for a modern, responsive interface. Components like SkillWheel.jsx visualize performance metrics, while the Conversation component handles live AI interaction via Tavus.
  • Backend: Developed with Flask, connecting to Tavus API for video conversations, Connected to DeepSeek-V3 via Hugging Face's Inference Provider API for feedback & video chat prompt generation, and Supabase for storing ML contexts, session logs, and performance scores.

What We Learned

Throughout development, we gained experience in:

  • Building full-stack applications that integrate multiple external APIs
  • Structuring Flask-React systems for efficient data exchange
  • Designing real-time analytics dashboards with Supabase
  • Crafting effective prompt engineering for language models to ensure natural, consistent responses
  • Managing state and asynchronous data between the frontend and backend
  • We also learned how to balance creativity and functionality under tight hackathon deadlines.

Challenges

We faced several technical and design challenges while building Extrovert AI:

  • Integrating unfamiliar APIs: Tavus and Hugging Face Inferences Provider APIs were new to us, requiring deep research and debugging to achieve stable real-time communication.
  • Database integration: Configuring Supabase for storing ML contexts and analytical data proved tricky.
  • Prompt engineering: Getting large language models (LLMs) to behave naturally, stay in context, and give useful feedback took multiple iterations and careful prompt tuning.
  • Personalized Personas: Automating the process of generating personalized situations and personas to give the user a uniquely beneficial and tailored experience.

Each challenge strengthened our understanding of AI integration and improved our ability to design robust, data-driven systems.

Built With

Share this project:

Updates