The idea for Coursemate was born out of a simple observation: many university students, especially in Uganda and similar academic environments, struggle to access well-organized academic resources. Notes are scattered, past papers are hard to find, and preparing for exams often becomes overwhelming. This personal frustration, combined with my passion for educational technology, inspired me to build a solution that could help students study smarter, not harder. We envisioned a system that could serve as a personal academic assistant simplifying content, encouraging engagement, and supporting exam readiness using artificial intelligence. That vision became Coursemate. Coursemate is a mobile-based application designed to help students upload their academic content such as notes, past tests, and exam papers, and convert it into actionable learning tools. It leverages Retrieval-Augmented Generation (RAG) to provide accurate, context-aware responses based strictly on the content provided by the student. Students can query the content using natural language, and the app will retrieve the most relevant sections, summarize them, or generate possible exam-style questions and answers. In addition to individual learning, Coursemate also supports peer-to-peer engagement through a built-in Discussion Forum, where users can post academic questions and receive help from fellow students in a collaborative and supportive environment. The system’s architecture is built with accessible, powerful tools. The mobile frontend was developed using Flutter, ensuring a smooth, cross-platform experience. For embeddings and generative AI, we used OpenAI’s embedding model and OpenAI GPT models (such as GPT-4) for summarization, question generation, and contextual responses. We integrated Pinecone as our vector database to store and retrieve semantic representations of student content for the RAG pipeline. The entire retrieval and generation logic was orchestrated using LangChain, ensuring clean integration between vector queries and AI responses. For storage and authentication, we used Supabase, which made user and file management seamless. An additional standout feature is the Listen Mode, a voice-enabled option that allows students to have notes and explanations read aloud, helping auditory learners and visually impaired users better engage with their content. Throughout the project, we learned a lot about deploying AI systems at scale, structuring document pipelines for retrieval, and designing mobile interfaces that feel intuitive and productive for university students. We also gained insights into prompt engineering, especially when working with RAG pipelines to keep the LLM grounded to uploaded content. However, there were challenges primarily related to costs. Using OpenAI's models comes with token-based billing, which can become expensive as the app scales with more content and user queries. Pinecone, while highly performant, is also a paid service as storage size increases, making it difficult to maintain the vector database on a budget. These challenges forced us to think carefully about optimization and explore batching strategies, caching, and selective embedding to manage both performance and affordability. Coursemate was built not just as a hackathon project, but as a potential real-world solution to support students academically, socially, and mentally. By blending structured learning, community collaboration, and AI-powered personalization, we’re bringing the future of education closer one student at a time. To personalize academic planning further, the system is also expected to integrate academic scoring logic based on the University CGPA formulae. This allows Coursemate to recommend targeted grades and simulate what a student must score in each course to reach their CGPA goals. We believe that Coursemate is just the beginning of what’s possible when AI meets African education, and we are excited to keep building it.

Built With

  • figma-(ui-design)
  • javascript-(for-langchain-logic)-frameworks:-flutter-(mobile-app)
  • langchain-(rag-orchestration)-apis:-openai-api-(embeddings-+-gpt-model)
  • languages:-dart-(flutter)
  • openai-(ai-services)
  • pinecone-(vector-search)-other-tools:-github-(version-control)
  • pinecone-api-(vector-database)
  • postman
  • supabase-(postgresql-for-user/content-metadata)-cloud-services:-supabase-(hosted-backend)
  • supabase-api-(auth-+-storage)-databases:-pinecone-(vector-db)
Share this project:

Updates