EduMorph AI transforms static PDF educational materials into interactive, multi-modal learning experiences using Google Gemini Flash 2.5 and AWS services.
- Document Ingestion: Upload PDFs and extract text using AWS Textract
- RAG Pipeline: Semantic search with local embeddings using sentence-transformers
- Podcast Generation: Convert content into conversational audio using Amazon Polly
- AI Tutor: Interactive Q&A powered by Gemini Flash 2.5
- Quiz Engine: Spaced repetition-based assessments
- Mind Map Visualization: Interactive concept mapping with React Flow
- Backend: Python FastAPI with async processing
- Frontend: React + Vite + Tailwind CSS
- AI: Google Gemini Flash 2.5 via API key
- Vector DB: ChromaDB (dev) / OpenSearch (prod)
- Storage: AWS S3 (free tier)
- Text Extraction: AWS Textract
- Text-to-Speech: Amazon Polly
- Python 3.9+
- Node.js 18+
- AWS Account (free tier)
- Google AI Studio API key
# Navigate to backend directory
cd backend
# Create virtual environment
python -m venv venv
# Activate virtual environment
# Windows:
venv\Scripts\activate
# macOS/Linux:
source venv/bin/activate
# Install dependencies
pip install -r requirements.txt
# Copy environment template
cp .env.example .env
# Edit .env file with your API keys:
# - GEMINI_API_KEY (from Google AI Studio)
# - AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY
# - AWS_S3_BUCKET name
# Test the setup
python test_setup.py
# Start the backend server
python main.pyThe backend will be available at http://localhost:8000
# Navigate to frontend directory
cd frontend
# Install dependencies
npm install
# Start development server
npm run devThe frontend will be available at http://localhost:5173
For convenience, you can use the provided batch files:
# Start backend
start_backend.bat
# Start frontend (in another terminal)
start_frontend.batOnce the backend is running, visit:
- API Documentation:
http://localhost:8000/docs - Health Check:
http://localhost:8000/health
├── backend/ # Python FastAPI backend
│ ├── app/
│ │ ├── core/ # Configuration and settings
│ │ │ └── config.py # Application settings
│ │ └── services/ # Business logic services
│ │ ├── embedding_service.py # Local embeddings with sentence-transformers
│ │ └── gemini_service.py # Google Gemini API integration
│ ├── venv/ # Python virtual environment
│ ├── main.py # FastAPI application entry point
│ ├── requirements.txt # Python dependencies
│ ├── test_setup.py # Setup verification script
│ └── .env.example # Environment variables template
├── frontend/ # React frontend
│ ├── src/
│ │ ├── App.tsx # Main React component
│ │ ├── main.tsx # React entry point
│ │ └── index.css # Tailwind CSS imports
│ ├── package.json # Node.js dependencies
│ ├── vite.config.ts # Vite configuration
│ ├── tailwind.config.js # Tailwind CSS configuration
│ └── tsconfig.json # TypeScript configuration
├── start_backend.bat # Windows backend startup script
├── start_frontend.bat # Windows frontend startup script
├── .env.example # Global environment template
└── README.md # This file
Create a .env file in the backend directory with the following variables:
# Google Gemini API Configuration
GEMINI_API_KEY=your_gemini_api_key_here
# AWS Configuration
AWS_ACCESS_KEY_ID=your_aws_access_key_here
AWS_SECRET_ACCESS_KEY=your_aws_secret_key_here
AWS_REGION=us-east-1
AWS_S3_BUCKET=edumorph-documents
# Application Configuration
ENVIRONMENT=development
DEBUG=true
# Vector Database Configuration
VECTOR_DB_TYPE=chromadb
CHROMADB_PATH=./data/chromadb- Visit Google AI Studio
- Create a new API key
- Copy the key to your
.envfile
- Sign up for AWS (free tier available)
- Create an IAM user with permissions for S3, Textract, and Polly
- Generate access keys
- Copy to your
.envfile
- FastAPI automatic docs:
http://localhost:8000/docs - Health check:
http://localhost:8000/health - Run tests:
pytest - Verify setup:
python test_setup.py
- Hot reload enabled with Vite
- Tailwind CSS for styling
- Lucide React for icons
- Run tests:
npm test
cd backend
venv\Scripts\activate # Windows
source venv/bin/activate # macOS/Linux
pytestcd frontend
npm testcd backend
python test_setup.py- Import errors with sentence-transformers: Make sure numpy<2.0 is installed
- ChromaDB compatibility: Ensure numpy version is <2.0
- API key errors: Verify your Gemini API key is correctly set in
.env - AWS permissions: Ensure your AWS user has S3, Textract, and Polly permissions
If you encounter dependency issues:
# Backend
cd backend
pip install --upgrade pip
pip install -r requirements.txt
# Frontend
cd frontend
npm installAfter setup is complete, you can:
- Implement Document Upload: Add PDF upload functionality
- Set up RAG Pipeline: Configure vector database and embeddings
- Add Content Generation: Implement podcast, quiz, and mind map generation
- Create AI Tutor: Build conversational Q&A interface
- Add Authentication: Implement user management
- Deploy to Cloud: Set up production deployment
MIT License - see LICENSE file for details.
For issues and questions:
- Check the troubleshooting section above
- Verify your environment setup with
python test_setup.py - Check API documentation at
http://localhost:8000/docs