An intelligent, personalized tutoring system powered by AI agents that delivers customized educational experiences tailored to individual student needs.
eSanju is a comprehensive AI-driven tutoring platform built with CrewAI and Streamlit that creates personalized learning experiences. The system uses intelligent agents to research content, create learning plans, prepare materials, and deliver engaging lessons adapted to each student's learning style and objectives.
- Personalized Learning Paths: Custom-tailored education based on student profile, learning style, and objectives
- Multi-Subject Support: Mathematics, Portuguese, English, Science, History, and Programming
- Adaptive Difficulty Levels: Content adjusts based on student comprehension and engagement
- Multiple Learning Styles: Visual, Auditory, Reading/Writing, and Kinesthetic learning support
- Progress Tracking: Real-time monitoring of student achievements and understanding levels
- Interactive Tutoring: Follow-up questions, assessments, and immediate feedback
- Multi-Language Support: English, Portuguese, and French instruction
- Curriculum Alignment: Content aligned with Portugal, UK, and Angola education curricula
.
├── tutor.py # Main Streamlit application
├── src/
│ ├── tutoring_agents.py # AI agent definitions
│ ├── tutoring_tasks.py # Task definitions for the tutoring crew
│ └── tutoring_crew.py # Crew orchestration
├── tools/
│ ├── browser_tools.py # Web scraping and content extraction
│ ├── calculator_tools.py # Mathematical calculation utilities
│ ├── email_tool.py # Email draft creation
│ └── image_tools.py # Visual aid generation
├── data/
│ ├── learning_plan_*.md # Generated learning plans
│ ├── lesson_*.md # Delivered lessons
│ ├── learning_research_*.md # Research findings
│ └── lesson_materials_*.md # Prepared lesson materials
└── logs/
└── tutoring_crew_logs_*.txt # Execution logs
- Senior Tutor: Expert educator responsible for lesson delivery and feedback
- Tutor Assistant: Support professional handling materials, progress monitoring, and practice explanations
The tutoring system follows this workflow:
- Assessment: Evaluate student's current knowledge and learning needs
- Research: Gather information about the subject and learning objectives
- Planning: Create a comprehensive, structured learning plan
- Materials: Prepare engaging lesson materials and resources
- Delivery: Deliver interactive, personalized lessons
- Progress Tracking: Monitor student advancement
- Feedback: Provide comprehensive feedback and recommendations
- Python 3.8+
- Ollama (for local LLM)
- Streamlit
- CrewAI and dependencies
- Clone the repository:
git clone <repository-url>
cd tutor- Create a virtual environment:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate- Install dependencies:
pip install -r requirements.txt- Set up environment variables in
.env:
LANGTRACE_KEY=your_key_here
BROWSERLESS_API_KEY=your_key_here
SERPER_API_KEY=your_key_here
OPENAI_API_KEY=your_key_here- Start Ollama:
ollama serve- Pull the required models:
ollama pull gemma2-9b-32k
ollama pull granite-embedding:278mstreamlit run tutor.pyThe application will open in your browser at http://localhost:8501
-
Start Learning Tab 📚
- Enter your name and basic information
- Select your grade level and preferred language
- Choose your subject and learning objectives
- Select your learning style preferences
- Set session duration and time preference
-
Learning Tips Tab 💡
- Access study strategies and techniques
- Review active learning methods
- Access learning resources and PDFs
-
Progress Tracker Tab 📊
- View your learning journey statistics
- Monitor understanding level progression
- Interact with your AI tutor
- Ask follow-up questions
- Frontend: Streamlit
- AI Framework: CrewAI with Claude Haiku 4.5
- LLM: Ollama (local) with Gemma2 9B
- Embeddings: Granite Embedding Model
- Backend: Python
- Graph Processing: LangGraph
- Tools: LangChain, SerperDev, Web Scraping
- Algebra
- Numbers and Operations
- Geometry
- Calculus
- Statistics
- Approximations
- Polynomial Decomposition
- Portuguese (Grammar, Literature, Writing, Vocabulary)
- English (Grammar, Literature, Writing, Vocabulary)
- Biology
- Chemistry
- Physics
- Environmental Science
- World History
- US History
- European History
- Ancient Civilizations
- Python
- Java
- Web Development
- Data Science
Students define SMART learning objectives:
- Specific: Clear and well-defined
- Measurable: Quantifiable outcomes
- Achievable: Realistic goals
- Relevant: Connected to student needs
- Time-bound: Specific timeframes
- 🇵🇹 Portugal Education Curriculum
- 🇬🇧 United Kingdom Curriculum
- 🇦🇴 Angola Education Curriculum
The system generates several output files during operation:
data/learning_plan_TIMESTAMP.md- Comprehensive learning plandata/learning_research_TIMESTAMP.md- Research findingsdata/lesson_materials_TIMESTAMP.md- Prepared materialsdata/lesson_TIMESTAMP.md- Delivered lesson contentlogs/tutoring_crew_logs_TIMESTAMP.txt- Detailed execution logs
For evaluating AI agent responses and model performance, the system includes:
- Student response evaluation functions
- Understanding level tracking
- Progress metrics monitoring
- Follow-up question generation
- Difficulty analysis
When using eSanju:
- Set Clear Goals: Define specific, measurable learning objectives
- Choose Your Style: Select learning methods that work best for you
- Stay Consistent: Regular practice leads to better results
- Track Progress: Monitor improvements and celebrate wins
- Ask Questions: Actively engage with the tutor
- Practice Regularly: Use spaced repetition and active recall
- Ensure Ollama is running:
ollama serve - Check the connection URL:
http://localhost:11434 - Verify models are downloaded:
ollama list
- Pull required models:
ollama pull gemma2-9b-32k - Ensure sufficient disk space and RAM
- Verify all keys in
.envfile - Check API quotas and limits
- Ensure keys have proper permissions
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch
- Submit a pull request with clear descriptions
This project is licensed under the MIT License - see LICENSE file for details.
For issues, questions, or suggestions, please open an issue on the repository or contact the development team.
- Advanced analytics dashboard
- Parent/Teacher portal for monitoring
- Peer collaboration features
- Gamification elements
- Mobile application
- Advanced assessment tools
- Integration with learning management systems
- Voice-based interaction
- Adaptive learning algorithms
Version: 1.0.0
Last Updated: December 2024
Status: Active Development