💡 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.jsxvisualize performance metrics, while theConversationcomponent 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.
Log in or sign up for Devpost to join the conversation.