Instructions: Fill out this section in your forked repo. This is what judges will see first.
| Field | Your Answer |
|---|---|
| Name | Atharva Santosh Mavale |
| University / Employer | Deakin University |
| Field | Your Answer |
|---|---|
| Project Name | StudyMate AI (AI Questioning Tutor for Code Repos) |
| One-Line Description | An AI-powered Questioning coding tutor that helps students understand code (especially intimidating GitHub repositories) by asking the right questions, giving progressive hints, and guiding learning step-by-step. |
| Live App Link | https://atharvamavle-hackathon-uiapp-ps07su.streamlit.app/ |
| Demo Video Link | https://youtu.be/CJm-7gzGaEs |
| Tech Stack | FastAPI Uvicorn, OpenAI ,Python SDK, LangChain |
| AI Provider(s) Used | OpenAI , GPT |
An AI-powered Questioning coding tutor that helps students understand code (especially intimidating GitHub repositories) by asking the right questions, giving progressive hints, and guiding learning step-by-step.
This project was built for the Sophiie AI Agents Hackathon 2026.
- Backend: FastAPI (deployed on Render)
- Frontend: Streamlit (deployed on Streamlit Community Cloud)
- LLM: OpenAI (configured via
OPENAI_API_KEY)
You’ve identified a massive gap in AI education that most tools don’t solve well:
Current reality
- Students copy‑paste AI-generated code without understanding.
- They get stuck when code breaks or needs changes.
- Typical chatbots either dump code or give overwhelming explanations.
- Large GitHub repos feel impossible to start (lots of files, complex structure).
- Traditional step-by-step tutorials don’t adapt to a student’s confusion.
Our solution
- A Questioning AI agent that teaches by asking questions instead of giving answers.
- Students learn by doing: the agent helps them reason, not copy.
- Adaptive dialogue based on student level (beginner/intermediate/advanced).
- Progressive hints when needed.
- Unique & impactful
- Directly addresses the “AI copy‑paste crisis” in education.
- Focuses on understanding and reasoning, not output.
- Agentic behavior (not just a chatbot)
- Multi-turn memory (session-based chat).
- Guided questioning (Questioning method).
- Prompt-driven teaching behavior.
- Production-ready architecture
- Deployed backend + UI.
- Health endpoint and API docs.
- 🤖 Questioning dialogue: Probing questions instead of direct answers.
- 💬 Session-based chat: Each user gets a
session_id. - 🧠 Adaptive teaching: Student name + knowledge level influence the tone and depth.
- 🧪 API docs included: FastAPI Swagger at
/docs. - 🚀 Deployed: Backend on Render, UI on Streamlit.
- FastAPI
- Uvicorn
- OpenAI Python SDK
- LangChain
ChatOpenAI
- Streamlit
- Requests
- Live APP : https://atharvamavle-hackathon-uiapp-ps07su.streamlit.app/
- Backend (Render): https://hackathon-24mr.onrender.com/docs#/default/create_session_session_create_post
hackathon/
├── agent/ # Core agent logic
└── __init__.py
└── core.py
└── prompts.py
└── tools.py
├── api/ # FastAPI backend
│ └── main.py # API routes: /session/create, /chat, /health
├── ui/ # Streamlit UI
│ └── app.py # Frontend app
├── requirements.txt
├── .gitignore
└── README.md
Student selects a GitHub repo (or future: paste text / upload file)
↓
Backend creates a session and agent
↓
Agent: “What interests you most about this project?”
↓
Student answers
↓
Agent asks guided questions + gives hints
↓
Student builds understanding step-by-step
- Python 3.9+
- Git
- OpenAI API key
git clone https://github.com/atharvamavle/hackathon.git
cd hackathonWindows (PowerShell):
python -m venv .venv
. .\.venv\Scripts\Activate.ps1macOS/Linux:
python3 -m venv .venv
source .venv/bin/activatepip install -r requirements.txtCreate a local .env file in the repo root:
OPENAI_API_KEY=sk-your-real-key
OPENAI_MODEL=gpt-4o-miniImportant: Do not commit .env.
uvicorn api.main:app --host 0.0.0.0 --port 8000 --reloadVerify:
streamlit run ui/app.pyOpen the URL Streamlit prints (usually http://localhost:8501).
- Create a Render Web Service connected to this repo.
- Set environment variables:
OPENAI_API_KEY= your real keyOPENAI_MODEL= optional
- Set Health Check Path to:
/health - Deploy.
In Streamlit app settings → Secrets, add:
API_BASE_URL = "https://hackathon-24mr.onrender.com"In ui/app.py, set:
API_BASE = st.secrets["API_BASE_URL"].rstrip("/")GET /— basic statusGET /health— health + whetherOPENAI_API_KEYis configuredPOST /session/create— start a session, returnssession_idand greetingPOST /chat— send a message, returns model responseGET /session/{session_id}/history— session transcriptGET /session/{session_id}/progress— progress tracking (if enabled)
- Make sure
OPENAI_API_KEYis set (Render env vars for production,.envfor local). - Ensure
.envis not committed and you are not overriding production env vars.
- In Streamlit Cloud,
localhostwon’t work. - Use
API_BASE_URLsecret pointing to your Render URL.
- Repo cloning + indexing: actually clone GitHub repos server-side.
- Retrieval / RAG grounded in real files and code snippets.
- “Explain this file” and “trace call path” tools using AST parsing.
- Better persistence: database for sessions + progress tracking.
- Streaming responses and richer UI.
- Auth + rate limiting + safer CORS defaults.
Atharva Santosh Mavale
Contact: atharvamavale40@gmail.com
Status: ✅ Live and deployed