Inspiration

I started working on CogniVault because I wanted to build something that could actually help students study, rather than just give them another chatbot. We usually have our notes, PDFs, PPTs, and other study materials scattered across different places. Even when we use AI to understand a topic, it can give an answer without showing where that information came from, and it does not really keep track of what we have understood and what we still need to work on.

I wanted to bring these two things together: answers that are connected to our actual course materials and a learning system that can adapt as we practise.

What it does

CogniVault lets students upload their course materials, ask questions about them, and practise through assessments. The tutor is designed to provide answers with source references, so students can check the original material instead of blindly trusting an AI response. When the available material does not support an answer, the system is designed to say so rather than guess.

The other important part is tracking learning progress. CogniVault uses Bayesian Knowledge Tracing to update topic-level mastery based on assessment attempts. It also connects practice results with misconception diagnosis and recommendations, helping students decide what to revise next.

How we built it

I developed the project using Python for the backend and Next.js for the web interface. The backend uses FastAPI and Agno AgentOS to connect the different parts of the application. For retrieval, I combined SQLite FTS5 keyword search with ChromaDB vector search, so the system can find relevant material using both exact terms and semantic similarity.

I then worked on the evidence checks, citation handling, assessment verification, learner modelling, and recommendations. I also built an evaluation and testing workflow to check the important behaviours instead of relying only on whether the interface looked correct.

As the project grew, I focused on bringing the separate modules together into one usable application. I also worked on the hosted setup so that the project could be accessed through a browser without requiring a judge to install the entire development environment.

Challenges we ran into

One of the biggest challenges was making the different components work together reliably. Finding relevant text is only one part of the problem; the system also needs to check whether the evidence is sufficient, preserve the source reference, handle unsupported questions, and update the learner's progress correctly.

Running the system within the limits of free cloud hosting brought another set of trade-offs, especially around model availability, memory, startup time, and storage persistence. This pushed me to think beyond individual features and consider how the complete application behaves.

Accomplishments that we're proud of

I'm proud that CogniVault brings several important parts of learning into one application: course-material ingestion, evidence-based tutoring, source citations, adaptive assessments, mastery tracking, and personalised recommendations.

Another achievement was building the evaluation and testing workflow alongside the application itself. Instead of focusing only on generating answers, I wanted to check whether the system could handle unsupported questions, verify its sources, and maintain a consistent learning workflow.

I'm also proud of bringing the frontend and backend together into a browser-accessible application, making it easier for someone to try the project without setting up the complete development environment locally.

What we learned

Working on CogniVault taught me that building a useful AI application involves much more than connecting a model to a chat interface. The system needs reliable data processing, retrieval, evidence checks, testing, and a way to measure whether its features behave as intended.

I also learned how important integration is. Individual components may work separately, but making them work together reliably, especially under cloud resource constraints, is a different challenge. The project helped me gain practical experience with full-stack development, retrieval systems, learner modelling, evaluation, and deployment.

What's next for CogniVault

I want to continue improving CogniVault based on how students actually use it. This includes making source verification more useful, improving the handling of complex study materials, and making recommendations more relevant as the system collects more learning history.

There is also room to expand the learning experience with better visual topic maps, more flexible revision support, and additional ways to interact with course content. The long-term goal is to make CogniVault a dependable study companion that helps students understand concepts, identify their weak areas, and decide what to learn next.

Built With

  • agno-agentos
  • antigravity
  • bayesian-knowledge-tracing
  • chromadb
  • fastapi
  • google
  • google-gemini
  • next.js
  • ollama
  • pymupdf
  • pytest
  • python
  • python-pptx
  • react
  • render
  • sentence-transformers
  • sqlite
  • sqlite-fts5
  • tailwind-css
  • typescript
  • vercel
Share this project:

Updates

Submission history