- Smart PDF Uploads: Effortlessly upload and parse your study materials.
- AI-Powered Explanations: Receive contextual, intelligent explanations directly from your documents.
- Seamless Authentication: Secure and fast login powered by Supabase.
- Modern & Responsive UI: A beautiful, intuitive layout built with Tailwind CSS and Framer Motion.
Frontend
- React 19 (Vite)
- Tailwind CSS + Framer Motion
- React PDF
Backend
- Python 3 & FastAPI
- SQLAlchemy
- PyMuPDF (Document Parsing)
- Supabase (Auth, PostgreSQL & Vector Embeddings)
AI & Machine Learning
- Hugging Face (
all-MiniLM-L6-v2): Leverages this lightweight, robust sentence-transformer model via the Hugging Face Inference API. It acts as the backbone for semantic search capabilities by efficiently converting PDF text chunks into semantic vector embeddings. This ensures that the context provided to the LLM is highly relevant to the specific questions. - Groq API: Powers the rapid, intelligent generation of explanations using cutting-edge LLMs.
An overview of the Easy Study architecture for the nerds!
flowchart LR
%% --- Users ---
U[User / Client<br>Web Browser]
%% --- Frontend ---
F[Frontend<br>React • Vite • Tailwind • React PDF]
%% --- Backend ---
B[Backend API<br>FastAPI]
%% --- Processing ---
DP[Document Processor<br>PyMuPDF]
RAG[RAG Engine<br>Retrieval Augmented Generation]
%% --- Storage ---
FS[File Storage<br>Supabase Storage]
DB[(Supabase Database<br>PostgreSQL + pgvector)]
%% --- AI Models ---
EMB[Embedding Model<br>HuggingFace all-MiniLM-L6-v2]
LLM[LLM Explainer<br>Groq • Llama 3]
%% -------- Upload Flow --------
U -->|Upload PDF| F
F -->|Send File| B
B -->|Store PDF| FS
B -->|Extract Text| DP
DP -->|Chunk Text| EMB
EMB -->|Save Embeddings| DB
%% -------- Explanation Flow --------
U -->|Highlight Text| F
F -->|Send Query| B
B --> RAG
RAG -->|Search Relevant Context| DB
RAG -->|Context + Question| LLM
LLM -->|Generated Explanation| B
B --> F
F --> U
The fastest way to get Easy Study running locally is using Docker Compose.
- Docker Desktop installed
- Git
-
Clone the repository:
git clone https://github.com/Samuel-Tefera/easy-study.git cd easy-study -
Setup Environment Variables: Configure the environment variables before running the application. An
.env.examplefile is provided in both the frontend and backend folders.- Frontend: Copy
frontend/.env.exampletofrontend/.envand fill in your Supabase details. - Backend: Copy
backend/.env.exampletobackend/.envand fill in the required API keys.
- Frontend: Copy
-
Run the Application:
docker-compose up --build
-
Access the App:
- Frontend:
http://localhost:5173 - Backend API / Swagger Docs:
http://localhost:8000/docs
- Frontend:
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
This project is licensed under the MIT License - see the LICENSE file for details.






