Project Info
This project did not submit a demo video on Devpost.
Inspiration
We were inspired by the protégé effect, a psychological phenomenon where teaching others helps reinforce the student's own understanding. This concept motivated us to create a platform where users can actively learn by teaching an AI model, helping them deepen their comprehension through explanation and reflection. We wanted to develop a tool that not only allows users to absorb information but also empowers them to explain and teach back, simulating a learning loop that enhances retention and understanding.
What it does
Protégé enables users to: Create lessons on any subject, either from their own study notes or with AI-generated information. Teach the AI by explaining concepts aloud, using real-time speech-to-text conversion. The AI then evaluates the user’s explanation, identifies errors or areas for improvement, and provides constructive feedback. This helps users better understand the material while reinforcing their knowledge through active participation. The system adapts to user performance, offering customized feedback and lesson suggestions based on their strengths and weaknesses.
How we built it
Protégé was built using the Reflex framework to manage the front-end and user interface, ensuring a smooth, interactive experience. For the back-end, we integrated Google Gemini to generate lessons and evaluate user responses. To handle real-time speech-to-text conversion, we utilized Deepgram, a highly accurate speech recognition API, allowing users to speak directly to the AI for their explanations. By connecting these technologies through state management, we ensured seamless communication between the user interface and the AI models.
Challenges we ran into
One of the main challenges was ensuring seamless integration between the AI model and the front-end so that lessons and feedback could be delivered in real time. Any lag would have disrupted the user experience, so we optimized the system to handle data flow efficiently. Another challenge was real-time speech-to-text accuracy. We needed a solution that could handle diverse speech patterns and accents, which led us to Deepgram for its ability to provide fast and accurate transcriptions even in complex environments.
Accomplishments we're proud of
We’re particularly proud of successfully creating a platform that allows for real-time interaction between users and the AI, providing a smooth and intuitive learning experience. The integration of Deepgram for speech recognition significantly enhanced the teaching feature, enabling users to explain concepts verbally and receive immediate feedback. Additionally, our ability to simulate the protégé effect—where users reinforce their understanding by teaching—marks a key accomplishment in the design of this tool.
What we learned
Throughout this project, we learned the importance of real-time system optimization, particularly when integrating AI models with front-end interfaces. We also gained valuable experience in balancing accuracy with performance, ensuring that both lesson generation and speech recognition worked seamlessly without compromising user experience. Additionally, building a system that adapts to users’ teaching performance taught us how crucial customization and feedback are in creating effective educational tools.
What's next
Our next steps include: Developing personalized lesson plans that adapt based on user performance in teaching mode, making learning paths more tailored and effective. Adding gamified progress tracking, where users can earn achievements and track their improvement over time, keeping them motivated. Introducing community and peer learning features, allowing users to collaborate and share their teaching experiences with others. Building a mobile version of Protégé to make the platform more accessible for learning on the go.
Protégé
Overview
Protégé is an AI-powered platform designed to enhance learning through teaching. Users create lessons on various topics and explain them to the AI, which provides real-time feedback and suggestions for improvement. This interactive approach reinforces understanding and deepens knowledge retention.
Inspiration
Inspired by the protégé effect, where teaching others strengthens one's own understanding, Protégé aims to empower users to actively learn by explaining concepts to an AI model.
Features
- Lesson Creation: Users can prompt the model to generate lessons based on topics.
- Teaching Mode: Users "teach" the AI by explaining concepts verbally.
- Real-Time Feedback: The AI evaluates responses and provides constructive suggestions.
- Personalized Learning Paths: Future versions will offer customized lesson plans based on user performance.
Tech Stack
- Front-End: Built using the Reflex framework for a seamless user experience.
- Back-End: Integrated AI models for lesson generation and evaluation.
- Speech Recognition: Utilizes Deepgram for accurate real-time speech-to-text conversion.
Installation
-
Clone the repository:
git clone https://github.com/yourusername/protege.git -
Navigate to the project directory:
cd protege -
Install Reflex: If you haven't installed Reflex yet, follow the instructions from the Reflex documentation.
-
Install Python dependencies: Ensure you have Python installed, then run:
pip install -r requirements.txt -
Start the application:
reflex run
Challenges Faced
- Ensuring seamless integration between the AI model and front-end.
- Achieving accurate real-time speech-to-text functionality.
Accomplishments
- Developed a responsive platform for real-time interaction with the AI.
- Successfully integrated Deepgram for speech recognition, enhancing user experience.
Future Plans
- Introduce personalized lesson plans based on user performance.
- Expand subject coverage for broader educational content.
- Add gamification elements to motivate users.
- Develop community features for collaborative learning.
- Create a mobile version for accessibility on the go.
Analysis
View
Metric
- 7
Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.
Technology
- FastAPIIn code
- FlaskIn code
- Hugging FaceIn code
- OpenAIIn code
- PythonIn code
- PyTorchIn code
- RedisIn code
- TensorFlowIn code
8 of 8 appear in the indexed code.
AI coding agents
No AI coding agent signals were found in this repository.
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
21 KB
Source files
15
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
harsita-keerthi/protege
21 files · 166 KB · @ a5599da
Structure
Interface
3 files · 14%Screens, components and styles rendered to the user.
API & routing
3 files · 14%Request entry points: routes, handlers and controllers.
Application logic
8 files · 38%Domain rules, services and shared utilities.
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here — open the file browser to check anything the diagram implies.
Languages
- Python89%
- Markdown11%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
requirements.txt
pypi · 360- absl-py
- aiodns
- aiohappyeyeballs
- aiohttp
- aiosignal
- alembic
- alpaca-py
- alpaca-trade-api
- alpha_vantage
- aniso8601
- annotated-types
- anyio
- appdirs
- appnope
- APScheduler
- argon2-cffi
- argon2-cffi-bindings
- arrow
- +342 more
Declared in the repository’s manifests at the indexed commit. A declared package is not proof it is used, and runtime dependencies are listed first.
Feature verification
AI evaluation and feedback on user's explanationVerified
The AI evaluates the user's explanation, identifies errors, and provides constructive feedback
Claimed on Devposthigh confidenceserver/critique.py:26— generate_pointers() prompts Gemini to produce a positive/negative/review feedback table from a transcriptserver/transcribe.py:47— process() passes the Deepgram transcript into generate_pointers() and stores the result as curr_feedback
AI-generated lesson plan creation (Google Gemini)Verified
Create lessons on any subject with AI-generated information; back-end integrates Google Gemini to generate lessons
Claimed on Devposthigh confidenceserver/create.py:15— create_lesson_plan() calls genai.GenerativeModel (gemini-1.5-flash) with a system prompt to generate a structured lesson planprotege/components/prompt_form.py:32— FormInputState.submit() calls create_lesson_plan with topic/weeks/hours from the form and stores the result, wiring UI to the Gemini call
Reflex framework front-endVerified
Built using the Reflex framework to manage the front-end and UI
Claimed on Devposthigh confidenceprotege/protege.py:69— rx.App is instantiated with theme/stylesheets and pages added via app.add_page, using the reflex packagerxconfig.py— Reflex project config file present
End-to-end teaching UI wiring (upload audio, submit, view feedback)Code-supported
Users teach the AI by explaining concepts aloud and see feedback in the app
Claimed on readmelow confidenceprotege/teach.py:45— rx.upload zone and handle_upload/process_audio exist to accept an audio fileprotege/teach.py:55— The Submit button uses on_click=process() which calls process() immediately at component-definition time rather than binding a State event handler to the click, and process() always reads the hardcoded sample.m4a rather than the uploaded file, so the UI is not actually wired to transcribe what the user uploads
Speech-to-text transcription via DeepgramCode-supported
Teach the AI by explaining concepts aloud, using real-time speech-to-text conversion via Deepgram
Claimed on Devpostmedium confidenceserver/transcribe.py:20— DeepgramClient is used with PrerecordedOptions to transcribe an audio file, extracting a transcriptserver/transcribe.py:17— AUDIO_FILE is hardcoded to 'sample.m4a' rather than the file the user uploads, and Deepgram's prerecorded API is used (not a streaming/real-time endpoint), so the 'real-time' claim is not substantiated
Lesson creation from user's own study notesClaimed only
Create lessons... either from their own study notes or with AI-generated information
Claimed on Devposthigh confidencePersonalized/adaptive feedback and lesson suggestions based on user performanceClaimed only
The system adapts to user performance, offering customized feedback and lesson suggestions based on strengths and weaknesses
Claimed on Devposthigh confidenceReal-time / low-latency AI-frontend integrationClaimed only
Optimized the system to handle data flow efficiently so lessons and feedback are delivered in real time without lag
Claimed on Devpostmedium confidence
An AI agent derived these features from the project’s Devpost page and readme, then searched the code for each one. Verified features are backed by cited code; claimed-only features had no supporting code, which is not by itself proof a feature is missing.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.