DEV Community

Jaswanth Kumar Kamireddi
Jaswanth Kumar Kamireddi

Posted on AI-assisted

# StudyMate — An AI Study Partner Built for a Friend

Hacktoberfest Weekend Challenge: Build for a Friend Submission 🤝

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

What I Built

StudyMate — AI Study Partner Built for a Friend

I built StudyMate, an AI-powered study companion designed for a real friend who wanted a simpler way to understand class notes and prepare for exams.

The problem was simple: students often have long PDF notes, but finding the right information and understanding difficult topics can take a lot of time.

StudyMate lets them:

  • 📄 Upload PDF study notes
  • 💬 Ask questions about their notes
  • 🧠 Get simple explanations of difficult topics
  • 📝 Generate practice quizzes
  • 📚 View uploaded documents and extracted sections
  • 🗑️ Delete documents when they are no longer needed

The idea was not to build another general-purpose chatbot. I wanted to build something focused on one real person's study workflow:

Notes → Understanding → Practice

Demo

🌐 Live Demo: https://studymate-local-frontend.onrender.com/

The live version is deployed and can be used directly in the browser.

Code

💻 GitHub Repository: https://github.com/Jaswanth-Kumar-2007/StudyMate-Local

The complete source code for the frontend and backend is available in the repository.

How I Built It

StudyMate is built with React + TypeScript + Vite on the frontend and FastAPI + Python on the backend.

The main AI pipeline is:

PDF Study Notes
      ↓
PDF Text Extraction
      ↓
Text Chunking
      ↓
TF-IDF Retrieval
      ↓
Relevant Study Sections
      ↓
Qwen Open-Weight Model
      ↓
Answer / Explanation / Quiz
Enter fullscreen mode Exit fullscreen mode

the deployed version, I use Qwen/Qwen3-4B-Instruct-2507 through Hugging Face Inference Providers.

I also designed the project so that the AI layer can be run locally using Ollama with an open-weight Qwen model.

Tech Stack

Frontend

  • React
  • TypeScript
  • Vite
  • Lucide React

Backend

  • Python
  • FastAPI
  • pypdf
  • scikit-learn

AI

  • Qwen/Qwen3-4B-Instruct-2507
  • Hugging Face Inference Providers
  • Ollama for local inference

Database

  • MongoDB Atlas

Deployment

  • Render

MongoDB is used to persist the extracted document information and text chunks.

Why Does Open Innovation Matter?

Open innovation made it possible for me to build StudyMate around technologies that I can experiment with, understand, and adapt instead of depending entirely on a closed AI system.

The project uses the open-weight Qwen model as its AI foundation.

For the deployed application, Hugging Face provides convenient inference, while the same project can also be connected to Ollama for local model execution.

This gives StudyMate flexibility to:

  • Experiment with different open-weight models
  • Run AI locally
  • Learn how retrieval and AI inference work together
  • Avoid being completely locked into one AI provider
  • Combine multiple open-source technologies into one practical application

The project also relies on open-source technologies such as React, FastAPI, pypdf, scikit-learn, PyMongo, Vite, and Lucide React.

Prize Categories

🏆 Best Use of Render

StudyMate is deployed using Render, with the FastAPI backend and React frontend hosted as separate Render services.

Render made it possible to deploy the complete application and make the study companion accessible through a public web interface.

🗄️ Best Use of MongoDB Atlas

StudyMate uses MongoDB Atlas as its data layer.

When a student uploads a PDF, the application extracts the text, splits it into study-note chunks, and stores the document information and extracted chunks in MongoDB Atlas.

These stored chunks are then used by the retrieval pipeline to find relevant study material when the student asks a question, requests an explanation, or generates a quiz.

👤 Individual Submission

This is an individual submission by Jaswanth Kumar.

DEV Profile: https://dev.to/jaswanthkumarkamireddi

Top comments (0)