DEV Community

chanveer singh
chanveer singh

Posted on AI-assisted

Studymat

This is a submission for the Hacktoberfest Weekend Challenge: Build for a Friend

StudyMate: An AI Study Partner That Tells You What to Do Next

What I Built

I built StudyMate, an AI study partner for a friend who is a real student. She has plenty of study material, but when she gets stuck on a topic she often doesn't know what to do next: re-read, watch a video, practice, or revise.

Most AI tools work like this: Ask → Get answer. Then the student is on their own again.

StudyMate works like this:

Ask → Understand → Practice → Revise → Improve

It looks at what the student asked and offers the right next actions.

  • Concept question ("Explain electromagnetic induction"): Explain simply, Use an analogy, Real-world example, Quiz me.
  • Numerical ("Calculate the induced emf…"): Give me a hint, Show formula, Solve step-by-step, Similar problem.
  • Revision: Quick revision, Flashcards, Common mistakes, Quiz, Exam practice.

The options are adaptive, not fixed. The same app gives different next steps depending on what the student is doing.


Demo

Video Demo

Screenshot

StudyMate's chat interface. After each answer, it offers adaptive next actions based on what the student asked.

Code

GitHub logo chanveersinghdev / Studymate

AI study assistant that explains topics, adapts to your goals and level (Beginner to Advanced), and remembers context so you don't repeat yourself. Built with FastAPI, Ollama Cloud, and GPT-OSS. Privacy-first: it only uses what you provide or allow it to remember. Get quizzes, follow-ups, and clear answers in your style.

StudyMate — Ollama Cloud Edition

Personalized AI study partner with contextual learning actions.

AI provider

This version uses Ollama Cloud by default. The default configurable model is gpt-oss:120b.

Setup

1. Backend

cd backend
python -m venv .venv
.venv\\Scripts\\activate
pip install -r requirements.txt
copy .env.example .env
Enter fullscreen mode Exit fullscreen mode

Open backend/.env and add your Ollama Cloud API key:

AI_PROVIDER=ollama_cloud
OLLAMA_HOST=https://ollama.com
OLLAMA_API_KEY=YOUR_KEY_HERE
OLLAMA_MODEL=gpt-oss:120b
Enter fullscreen mode Exit fullscreen mode

Then:

uvicorn app.main:app --reload --port 8000
Enter fullscreen mode Exit fullscreen mode

Check:

http://127.0.0.1:8000/api/health

2. Frontend

In a second terminal:

cd frontend
npm install
npm run dev
Enter fullscreen mode Exit fullscreen mode

Open the Vite URL shown in the terminal.

Included

  • Rounded Claude-inspired chat UI
  • Hover and message animations
  • Dark/light mode
  • Responsive layout
  • Context-aware study actions
  • Learning-phase detection
  • Ollama Cloud API integration
  • Configurable model
  • Server-side API key handling
  • Fallback UI when no key is configured

Security

Never commit backend/.env. It contains your private API key.

The React frontend does…

The repo has the React + Vite frontend, the FastAPI backend, and a .env.example with setup instructions.

📧 Contact: chanveersinghdev@gmail.com


How I Built It

        Student (question / doubt)
                  │
                  ▼
         React + Vite (UI)
                  │
                  ▼
           FastAPI backend
                  │
                  ▼
      Context / prompt engine
                  │
                  ▼
   Ollama Cloud ─► gpt-oss:120b
                  │
                  ▼
     Answer + adaptive actions
Enter fullscreen mode Exit fullscreen mode

Tech stack

Part Tool
Frontend React + Vite
Backend FastAPI
AI gpt-oss:120b (open-weight) via Ollama Cloud
Storage SQL database for user data
Built with Claude Code

Learning phases

StudyMate is designed around how people actually learn:

Discover → Understand → Practice → Revise → Exam prep

The prompt engine detects the question type and phase, then chooses which actions to show.

Why open-weight AI is the core

The AI is an open-weight model (gpt-oss:120b) running through Ollama Cloud, not a closed proprietary API. The learning logic is separated from the provider and model:

StudyMate learning logic → AI provider → Model
Enter fullscreen mode Exit fullscreen mode

The model is set in .env, so I can switch models or providers, or move to local inference later, without rewriting the product. That means less vendor lock-in and more control over the AI layer.

Security

The Ollama API key stays on the FastAPI backend (.env). The browser never sees it, and only .env.example is committed to GitHub.

Honest about PYQs

StudyMate never calls AI-generated questions "PYQs." They are labelled Practice question. Real previous-year questions will come from a verified database (year + exam + subject + chapter), so students can trust what they study.

UI

I designed the interface like a real product: dark theme, rounded chat and composer, contextual action buttons, hover animations, chat history, and a responsive layout.


Challenges

  • Adaptive actions: making the options change correctly by question type (concept vs numerical vs revision) instead of showing the same buttons every time.
  • Keeping the key safe: routing every AI call through the backend so the Ollama key never reaches the browser.
  • Academic trust: separating AI-generated practice questions from real PYQs so the app never misleads a student.
  • Model independence: keeping the learning logic separate from the model so changing models doesn't mean a rewrite.

What's Next

  • PDF and notes upload with RAG, so students can ask questions about their own material
  • Verified PYQ database and NCERT integration, with chapter-wise and exam filters
  • Quiz engine, flashcards, progress tracking, and weak-topic detection
  • Web sources and book/resource recommendations
  • Streaming responses, image-based question solving, and a personalized learning profile

Final Thoughts

The biggest lesson was that a good study tool shouldn't stop at the answer. Knowing what to do next is what turns an answer into learning. StudyMate is the foundation for that, and I want to keep building it with my friend's feedback.

Top comments (1)

Collapse
 
chanveer_singh profile image
chanveer singh •

🚀 StudyMate is live!

I built StudyMate for a real student problem: getting an answer isn't always enough — you also need to know what to do next.

StudyMate uses Ollama Cloud + GPT-OSS + FastAPI + React to provide contextual actions like explanations, hints, quizzes, revision, and practice.

🔓 GitHub: github.com/chanveersinghdev/Studymate
🎥 Demo: youtu.be/Cn-L-TjlGUA

Would love to hear what you think and what feature I should build next!

Hacktoberfest #BuildForAFriend #OpenSource #AI #Ollama #React #Python