LearnMate
Inspiration
Many learners know what they want to learn, but they struggle to turn that goal into a clear, realistic plan. A beginner who wants to learn SQL, Python, cloud computing, or data analysis often has to search across videos, tutorials, notes, and task trackers without knowing what to study first or how to stay consistent.
LearnMate was built to make self-directed learning feel more structured. Instead of giving users a generic list of resources, LearnMate helps them create a practical day-by-day learning plan, track progress, write notes, and find relevant learning videos from one place.
What it does
LearnMate is a full-stack AI learning assistant for personalized study planning.
Users can:
- Create an account and sign in securely.
- Enter a learning goal, current level, preferred language, and daily study time.
- Generate a structured learning plan with Gemini.
- Save the active plan to MongoDB.
- View daily tasks and the next recommended learning step.
- Mark tasks and resources as completed.
- Add notes for each learning day.
- Search YouTube learning resources based on the plan topic.
The goal is to help learners move from "I want to learn this" to "Here is what I should do today."
How we built it
LearnMate is built as a full-stack web application.
The frontend is built with Next.js, React, and TypeScript. It provides the learner-facing experience for registration, login, learning plan generation, dashboard review, progress tracking, notes, and resource discovery.
The backend is built with FastAPI. It exposes API routes for authentication, learning plan generation, saved plans, daily tasks, notes, completion status, and YouTube resource search.
Gemini is used to generate structured learning plans from the user's learning goal, skill level, daily available time, and language preference. The backend prompts Gemini to return valid JSON so the plan can be rendered and saved consistently.
MongoDB is used as the persistence layer for users, active learning plans, tasks, resources, notes, and progress. This makes the learner's plan state durable across sessions.
The YouTube Data API is used to discover learning resources based on topics and search queries generated as part of the learning plan.
For deployment, the intended production architecture is:
- Next.js frontend deployed on Vercel.
- FastAPI backend deployed on Google Cloud Run.
- MongoDB Atlas as the hosted database.
- Gemini as the core AI model.
TODO before final submission: Add the final description of the Google Cloud Agent Builder and MongoDB MCP server integration after it is implemented and tested.
Challenges we ran into
One challenge was making the AI output reliable enough for an application flow. A normal natural-language response is easy for a person to read, but the app needs structured data. To solve this, the backend prompts Gemini to return only valid JSON and then parses that response before saving or displaying the plan.
Another challenge was connecting multiple parts of the learning workflow into one coherent experience. LearnMate is not just a prompt box. It needs authentication, saved plans, task completion, notes, resource search, and progress state to work together.
We also had to separate frontend and backend responsibilities cleanly. The frontend communicates through an API proxy, while the backend owns authentication, database access, AI generation, and third-party API calls.
Accomplishments that we're proud of
We are proud that LearnMate turns a broad learning goal into an actionable plan that can actually be followed day by day.
The project includes a working full-stack flow:
- User authentication
- AI plan generation
- Persistent saved plans
- Daily task tracking
- Notes
- Resource search
We are also proud of keeping the architecture practical. Each part of the system has a clear job: Gemini generates structured plans, MongoDB stores learning state, FastAPI coordinates backend logic, and Next.js provides the user experience.
What we learned
We learned that AI features become much more useful when they are connected to real application state. A generated plan is helpful, but a saved plan with tasks, notes, progress, and resources is much more valuable for a learner.
We also learned the importance of structured AI output. Asking Gemini for a useful response is not enough; the response must be predictable enough for the backend to validate, store, and display.
Finally, we learned how important it is to design around the user's real workflow. Learners do not only need recommendations. They need a system that helps them decide what to do next and continue from where they left off.
What's next for LearnMate
Next, we want to make LearnMate more agentic and more adaptive.
Planned improvements include:
- Integrating Google Cloud Agent Builder into the learning workflow.
- Adding the required MongoDB MCP server integration for the hackathon track.
- Making the learning plan adapt automatically when users fall behind or complete tasks early.
- Adding weekly progress summaries.
- Supporting more resource types beyond YouTube, such as documentation, articles, and practice exercises.
- Adding richer analytics so learners can understand their consistency and improvement over time.
- Improving deployment reliability on Google Cloud Run.
Built with
- Next.js
- React
- TypeScript
- FastAPI
- Python
- Google Gemini
- MongoDB
- YouTube Data API
- Cloudflare Turnstile
- JWT authentication
- Google Cloud Run
- Vercel
Built With
- cloudflare-turnstile
- docker
- fastapi
- github
- google-adk
- google-artifact-registry
- google-cloud-iam-/-workload-identity-federation
- google-cloud-run
- google-gemini-api
- jwt-authentication
- mongodb-atlas
- mongodb-mcp-server
- next.js
- python
- react
- tailwind-css
- typescript
- youtube-data-api
Log in or sign up for Devpost to join the conversation.