EdAgent is a conversational AI system designed to help beginners learn new skills and advance their careers through personalized guidance, skill assessments, and curated educational content recommendations.
edagent/
├── __init__.py # Main package initialization
├── models/ # Data models and schemas
│ └── __init__.py
├── services/ # Business logic services
│ └── __init__.py
├── interfaces/ # Abstract base classes and interfaces
│ ├── __init__.py
│ ├── ai_interface.py
│ ├── user_context_interface.py
│ ├── content_interface.py
│ └── conversation_interface.py
├── api/ # REST API and WebSocket endpoints
│ └── __init__.py
├── database/ # Database models and connection management
│ └── __init__.py
└── config/ # Configuration and environment management
├── __init__.py
├── settings.py
└── environment.py
-
Copy
.env.exampleto.envand configure your API keys:cp .env.example .env
-
Install dependencies:
pip install -r requirements.txt
-
Set up your environment variables in
.env:GEMINI_API_KEY: Your Google Gemini API key (Get it here)YOUTUBE_API_KEY: Your YouTube Data API key (Get it here)SECRET_KEY: A secure secret key for session management (generate withopenssl rand -hex 32)
- Visit Google AI Studio
- Sign in with your Google account
- Click "Create API Key"
- Copy the generated key to your
.envfile
- Go to the Google Cloud Console
- Create a new project or select an existing one
- Enable the YouTube Data API v3
- Go to "Credentials" and create an API key
- Copy the key to your
.envfile
- Conversational AI: Natural language interactions powered by Google Gemini
- Skill Assessment: Comprehensive evaluation of technical and soft skills
- Learning Path Generation: Personalized roadmaps based on goals and current skills
- Content Recommendation: Curated resources from YouTube and educational platforms
- Career Coaching: Resume analysis, interview preparation, and career guidance
- Streamlit Web App: Comprehensive web interface with interactive components
- Real-time Chat: WebSocket-powered live conversations with EdAgent
- Interactive Dashboards: Progress tracking, analytics, and learning insights
- Mobile-Friendly: Responsive design that works on all devices
- REST API: Complete FastAPI backend with comprehensive endpoints
- WebSocket Support: Real-time bidirectional communication
- Privacy Controls: Comprehensive data management and privacy features
- Docker Support: Containerized deployment with Docker Compose
# Start both FastAPI backend and Streamlit frontend
python run_app.py# Terminal 1: Start FastAPI backend
uvicorn main:app --reload
# Terminal 2: Start Streamlit frontend
./scripts/start_frontend.sh# Run Streamlit with mock data (no backend required)
./scripts/start_demo.sh- Streamlit Frontend: http://localhost:8501
- FastAPI Backend: http://localhost:8000
- API Documentation: http://localhost:8000/docs
The application uses environment-based configuration with support for:
- Development, testing, staging, and production environments
- Streamlit frontend configuration
- WebSocket and real-time features
- Configurable AI model parameters
- Database connection settings
- Rate limiting and security options
- Logging configuration
EdAgent follows a modular architecture with clear separation of concerns:
- Models: Data structures and validation
- Services: Business logic and external integrations
- Interfaces: Abstract contracts for service implementations
- API: HTTP endpoints and WebSocket connections
- Database: Data persistence and migrations
- Config: Environment and application settings
This project follows Python best practices:
- Type hints for all functions and methods
- Async/await for I/O operations
- Comprehensive error handling
- Unit testing with pytest
- Code formatting with black and isort
- Linting with flake8 and mypy
We welcome contributions! Please see CONTRIBUTING.md for guidelines on how to contribute to this project.
This project is licensed under the MIT License - see the LICENSE file for details.
If you encounter any issues or have questions, please:
- Check the documentation
- Search existing issues
- Create a new issue if needed
- Google Gemini API for conversational AI capabilities
- YouTube Data API for educational content discovery
- The open source community for the amazing tools and libraries that make this project possible