Inspiration 💡

Since AI & ML (especially Generative AI) became a trending force in tech, many tools & technologies got discovered for helping users to learn different subjects, languages, skills etc. based on their interest in a smarter & more managable way. This exciting shift, along with my love for Python, inspired me for creating PyBot.

The main purpose behind building this project is to create such a tool for Python learners which not just lets them communicate (via voice calls + chats) with the AI assisstant but also acts a friendly personalized coach dedicated for Python learning. This not only will help them to resolve their queries but will also help them improve in their weaker areas with proper set of resources (quizzes, DSA questions, tutorials, articles & documentations).

What it does? 📌

PyBot's key features include:

  • Intelligent text chat for resolving queries, learning concepts, or discussing Python topics.

  • Natural & interactive voice conversations (with real-time transcription) for Q&A, explanations, or interview practice.

  • A personalized dashboard which provides you with a personalized list of DSA questions, learning resources and a detailed analysis of your knowledge about Python, based on your conversations and keeps updating the same as you go.

  • Personalized quizzes (based on your interaction with PyBot) with progress tracking for evaluating your knowledge in Python.

  • Resume analysis to help you with building a ATS-friendly resume with actionable feedback.

  • Secure database for storing chats, progress & user's data along with email based authentication.

How I built it? ⚒️

  • For frontend, I used Next.js, TailwindCSS, ShadCN UI & TypeScript.

  • For backend & database, I used Flask, Python & Appwrite.

  • For text chats, quizzes, personalized dashboard & resume analysis, I used Google's Gemini.

  • For voice assisstant, I used Vapi.

Challenges I ran into ⛓️‍💥

There were some challenges I ran into while working on this. They're as follows:

  • Dealing with Google Gemini API timeouts and browser CORS errors in voice requests.

  • Ensuring Appwrite collections were correctly queried and deleted when users reset sessions.

  • Preventing improperly rendered markdown from collapsing into one block on the frontend.

  • Ensuring Gemini maintains context across multiple chat/voice interactions without losing the user’s intent or previous data.

Accomplishments that I'm proud of 🏆

  • The biggest accomplishment is that I finally built what I've always been thinking about since I got intoduced to Python.

  • Second, while building this, I got to learn many new things especially how to integrate AI in real-world applications for enhancing user experience.

  • Third, I was finally able to contribute to the Python learning community in a meaningful way.

What I learned? 📝

I've learnt many new things that helped me upskill myself in both domains i.e. Web Dev & AI/ML. They include:

  • Integration of LLMs like Google Gemini & voice agents like Vapi into a single application and establishing coordination b/w them.

  • Using Next.js, TypeScript, TailwindCSS, ShadCN UI, Python, Flask & Appwrite to develop a full-stack web application equipped with many interactive features to ensure smooth user experience.

  • Designing user-friendly features like interactive dashboards, collapsible markdown sections, progress visualizations, and downloadable reports.

  • Implementing email-based authentication & secure data handling using Appwrite.

What's next for PyBot? 🌟

Started just as a CLI-based chatbot, PyBot is ever-evolving and it's improving day-by-day to provide users with smarter questions, sharper insights & a better and interactive way to learn Python. And talking about the next updates, I plan to add more features such as:

  • A coding playground for practicing coding and getting AI insights on real-time basis.

  • Weekly performance reports highlighting areas of improvement & progress in specific topics, delivered right to user's email.

  • Gamification elements like level badges and milestones based on learning progress and quiz performance.

  • Integration of project-based learning and challenges to help users apply what they’ve learned in real-world scenarios.

Built With

Share this project:

Updates