An intelligent educational platform powered by Google's Gemini AI that analyzes student data, provides detailed insights, and offers personalized recommendations for improved learning outcomes.
- 🔒 Secure JWT-based authentication system
- 📊 Excel/CSV file upload and advanced data analysis
- 🧠 Gemini AI 2.5-powered educational insights (REQUIRES API KEY)
- 🎓 Personalized Nigerian university course recommendations
- 📈 Performance tracking with AI-based analysis
- 🎯 Smart, data-driven recommendations with JAMB/WAEC info
- 💬 Interactive AI chat interface with context awareness
- 📋 Comprehensive student performance metrics
- 🔄 Real-time data processing and visualization
- 📱 Responsive design for all devices
- 📄 Professional PDF report generation
- 🔍 SS1-SS3 academic performance pattern recognition
- HTML5, TailwindCSS for styling
- Vanilla JavaScript for interactivity
- Lucide icons for UI elements
- Responsive design for all devices
- Python Flask REST API
- Scikit-learn for AI analysis
- Pandas for data processing
- JWT authentication
- File upload handling
- Install system dependencies:
sudo apt install python3-venv python3-pip- Set up virtual environment and install requirements:
# Create and activate virtual environment
python3 -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
# Install dependencies
python -m pip install --upgrade pip setuptools wheel
pip install -r backend/requirements.txt- Set up environment variables:
# Create .env file
cp backend/.env.example backend/.env
# Edit backend/.env and add your Gemini AI API key
# Get your key from: https://makersuite.google.com/app/apikey
# GEMINI_API_KEY=your_actual_api_key_here- Run the Flask server:
cd backend
python app.pyThe server will start at https://edu-aid.onrender.com
- Open the frontend in VS Code
- Install Live Server extension
- Right-click on
frontend/login.htmland select "Open with Live Server"
The application will open in your default browser.
- POST
/api/login- Login endpoint- Body:
{ "email": "user@example.com", "password": "password" } - Returns:
{ "token": "jwt_token", "user_id": "user_id" }
- Body:
- POST
/api/analyze- Analyze uploaded Excel/CSV file- Headers:
Authorization: Bearer <token> - Body: FormData with file
- Returns: Analysis results including stats, clusters, and recommendations
- Headers:
- POST
/api/analyze/ai- Get Gemini AI analysis- Headers:
Authorization: Bearer <token> - Body:
{ "data": { student_data } } - Returns:
{ "analysis": "", "insights": [], "recommendations": [] }
- Headers:
- POST
/api/chat- Interact with AI assistant- Headers:
Authorization: Bearer <token> - Body:
{ "message": "your question", "context": { data } } - Returns:
{ "response": "", "insights": "" }
- Headers:
edu-aid/
├── frontend/
│ ├── css/
│ │ ├── main.css
│ │ └── tailwind.css
│ ├── js/
│ │ ├── api.js
│ │ ├── auth.js
│ │ └── chat.js
│ ├── login.html
│ └── dashboard.html
├── backend/
│ ├── services/
│ │ ├── analyzer.py
│ │ ├── ai_analyzer.py
│ │ └── ai_assistant.py
│ ├── middleware/
│ │ └── auth.py
│ ├── routes/
│ │ ├── auth.py
│ │ ├── analysis.py
│ │ └── chat.py
│ ├── tests/
│ │ └── test_endpoints.py
│ ├── requirements.txt
│ └── app.py
└── README.md
Run backend tests:
cd backend
pytest tests/- Use the mock authentication for development
- Test with sample Excel files containing:
- Student grades
- Attendance (optional)
- Participation scores (optional)
- Use .env.example as a template for your .env file
- Follow REST API best practices
- Write tests for new endpoints
- Document API changes
For production deployment, see DEPLOYMENT.md for comprehensive guide.
Critical Requirements:
- ✅ Configure GEMINI_API_KEY (required for AI analysis)
- ✅ Set secure JWT_SECRET
- ✅ Enable HTTPS/SSL encryption
- ✅ Configure proper CORS origins
- ✅ Set up rate limiting
- ✅ Enable error logging and monitoring
- ✅ Implement data backup strategy
- ✅ Replace mock authentication with real user management
- ✅ Configure security headers (helmet.js)
- ✅ Test with actual student data
System Status Indicators:
- 🟢 AI-Powered: Gemini API key configured, full AI analysis enabled
- 🟡 Rule-Based: No API key, using fallback logic (not recommended for production)
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
MIT License - feel free to use this project for educational purposes.