DEV Community

Cover image for How We Built EduSathi, An Open-Source AI Learning Platform Using Streamlit, LangChain and FAISS
Mohammed Muzamil C
Mohammed Muzamil C

Posted on

How We Built EduSathi, An Open-Source AI Learning Platform Using Streamlit, LangChain and FAISS

How We Built EduSathi, An Open-Source AI Learning Platform Using Streamlit, LangChain and FAISS

Introduction

Over the past few months, my team and I built EduSathi, an AI-powered learning platform designed to help students study more effectively using Retrieval-Augmented Generation (RAG).

The idea was simple:

Students spend hours searching through PDFs, notes and study materials. We wanted to create a platform where students could upload documents, ask questions, generate quizzes and revise using flashcards.

Today, EduSathi is fully open source.

What EduSathi Does

EduSathi provides:

  • AI Chat Tutor for document-based Q&A
  • PDF upload and processing
  • Semantic search using vector embeddings
  • Automatic quiz generation
  • Flashcard generation
  • Student progress tracking
  • Role-based authentication system

Technology Stack

Backend:

  • Python
  • SQLite

AI Stack:

  • LangChain
  • FAISS
  • Sentence Transformers
  • Groq LLaMA 3

Frontend:

  • Streamlit

System Architecture

The workflow follows a RAG pipeline:

  1. User uploads PDFs
  2. Documents are chunked into smaller sections
  3. Text embeddings are generated
  4. Embeddings are stored in FAISS
  5. Relevant chunks are retrieved based on user queries
  6. Retrieved context is sent to the LLM
  7. Responses are generated and returned to the user

This significantly improves answer quality compared to sending raw prompts directly to an LLM.

Challenges We Faced

1. Retrieval Quality

Initially we focused heavily on model selection.

Later we discovered retrieval quality had a much bigger impact.

Poor chunking and retrieval often produced inaccurate answers regardless of the model.

2. Authentication

Even for a student project, authentication became more complex than expected.

We implemented:

  • Role-based access control
  • Secure session handling
  • User-specific progress tracking

3. Building Reliable AI Features

Creating AI features was straightforward.

Making them reliable across different documents and edge cases required much more effort.

4. Modular Design

Separating ingestion, retrieval and generation components made the project easier to maintain and extend.

Key Lessons

  • Retrieval quality matters more than model size
  • User experience matters as much as AI accuracy
  • Modular architectures reduce future technical debt
  • Security should be considered from the beginning
  • AI applications require extensive testing

Open Source

EduSathi is now fully open source.

GitHub:
https://github.com/Not-muzzyy/EduSathi

I would appreciate feedback, suggestions and contributions from the developer community.

If you find the project useful, consider giving it a GitHub star.

Final Thoughts

Building EduSathi taught us much more than AI development.

It taught us system design, authentication, retrieval engineering, user experience and the challenges of building production-style applications.

I hope sharing this journey helps other developers interested in AI-powered applications.

Top comments (0)