AI-Powered Academic Recommendation Platform for Students
SIRA is a next-generation academic advisory platform that uses RAG (Retrieval-Augmented Generation) technology to help students discover personalized university programs and career paths.
- 🤖 AI-Powered Recommendations - Personalized program suggestions based on your profile
- 💬 Real-time Chat Advisor - Interactive AI assistant for instant academic guidance
- 📊 Visual Insights - Match scores, timelines, and comparison charts
- 🎓 Multi-Profile Support - Manage multiple academic profiles
- 🌍 Comprehensive Database - Programs from Morocco and international institutions
- 📱 Mobile-Responsive - Access from any device
- Docker & Docker Compose (recommended)
- Python 3.12+ & Node.js 18+ (for local development)
- PostgreSQL 17, Pinecone, Mistral AI (API keys required)
# Clone the repository
git clone https://github.com/yourorg/sira.git
cd sira
# Start all services
docker-compose up -d
# Access the application
# Frontend: http://localhost:3000
# Backend API: http://localhost:8000/docs# Backend
cd backend
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -r requirements.txt
uvicorn app.main:app --reload
# Frontend
cd frontend
bun install
bun devFull documentation available in the docs/ folder:
- 📖 Documentation Overview - Start here
- 🔍 Documentation Index - Complete navigation
- 📊 Project Status - Current development status
| Role | Start Here |
|---|---|
| Students | User Guide |
| Developers | Developer Guide |
| DevOps | Deployment Guide |
| Project Managers | Project Status |
- Architecture Overview - System design
- API Reference - REST API documentation
- Security Guide - Security implementation
- Testing Strategy - QA approach
💡 Tip: Press Ctrl+K (or ⌘K on Mac) in the frontend to search all documentation!
┌─────────────────────────────────────────────────────┐
│ Next.js 16 Frontend │
│ React 19 • TypeScript • Tailwind CSS • Clerk Auth │
└────────────────────┬────────────────────────────────┘
│ HTTPS/JWT
┌────────────────────▼────────────────────────────────┐
│ FastAPI Backend │
│ Python 3.12 • PostgreSQL • LlamaIndex • Mistral AI│
└────────┬──────────┬──────────┬──────────────────────┘
│ │ │
┌────▼───┐ ┌──▼─────┐ ┌─▼──────┐
│PostgreSQL│ │Pinecone│ │Mistral │
│Database │ │Vector │ │AI LLM │
└──────────┘ └────────┘ └────────┘
Tech Stack:
- Frontend: Next.js 16, React 19, TypeScript, Tailwind CSS, Zustand
- Backend: FastAPI, Python 3.12, SQLModel, PostgreSQL 17
- AI/RAG: LlamaIndex, Mistral AI, Pinecone Vector Database
- Auth: Clerk (JWT-based authentication)
- Deployment: Docker, Docker Compose, Nginx
See Architecture Documentation for details.
sira/
├── frontend/ # Next.js 16 application
│ ├── app/ # App Router pages
│ ├── components/ # React components
│ ├── lib/ # API clients & utilities
│ └── hooks/ # Custom React hooks
│
├── backend/ # FastAPI application
│ ├── app/
│ │ ├── api/ # REST API endpoints
│ │ ├── core/ # Configuration
│ │ ├── models/ # Database models
│ │ ├── services/ # Business logic
│ │ └── utils/ # Helper functions
│ ├── alembic/ # Database migrations
│ └── tests/ # Backend tests
│
├── docs/ # Comprehensive documentation
│ ├── Developer Documentation/
│ ├── Operations Documentation/
│ ├── User Documentation/
│ └── Planning/
│
├── docker-compose.yml # Multi-service orchestration
└── README.md # This file
# Start all services
docker-compose up -d
# Run backend tests
cd backend && pytest
# Run frontend in dev mode
cd frontend && bun dev
# Check backend logs
docker-compose logs -f backend
# Restart services
docker-compose restart- Backend: 100/110 tests passing (91% pass rate)
- Coverage: 52% → Target: 80%
- E2E: Playwright tests for critical user flows
- CI/CD: GitHub Actions for automated testing
See Testing Documentation for details.
Current Version: 1.0.0
Status: ✅ Production Ready
Release Date: January 30, 2026
- ✅ Phase 1: Project Setup & Infrastructure
- ✅ Phase 2: User Profile System
- ✅ Phase 3: Knowledge Base & RAG Pipeline
- ✅ Phase 4: Recommendation Engine
- ✅ Phase 5: Conversational AI Interface
- ✅ Phase 6: Frontend Integration
- ✅ Phase 7: Feedback & Analytics
- ✅ Phase 8: Testing & Deployment Preparation
- Tests: 100/110 passing (91%)
- Code Coverage: 52%
- Security Audit: ✅ Passed
- Documentation: ✅ Complete (27,000+ lines)
- Performance: ✅ Optimized
See Project Status for detailed roadmap.
We welcome contributions! Please follow these steps:
- Read the docs: Developer Guide
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Follow coding standards: Run linters before committing
- Write tests: Add tests for new features
- Submit a Pull Request
- Follow the Architecture patterns
- Write TypeScript with strict types
- Use Python type hints
- Add JSDoc/Docstring comments
- Test your changes thoroughly
Security is a top priority. SIRA implements:
- ✅ JWT-based authentication (Clerk)
- ✅ SSL/TLS encryption
- ✅ Rate limiting & DDoS protection
- ✅ Input validation & sanitization
- ✅ SQL injection prevention
- ✅ CORS configuration
- ✅ Security headers (CSP, HSTS, etc.)
Found a vulnerability?
- DO NOT open a public issue
- Email: security@sira.platform
- See Security Policy
- 📧 Email: support@sira.platform
- 💬 Live Chat: Available in-app
- 📖 User Guide
MIT License - See LICENSE file for details
Built with:
- Next.js - React Framework
- FastAPI - Python Web Framework
- LlamaIndex - RAG Framework
- Mistral AI - Language Models
- Pinecone - Vector Database
- Clerk - Authentication
Special thanks to all contributors and the open-source community.
Made with ❤️ by the SIRA Team
- API Reference: Complete endpoint documentation with examples
- Deployment Guide: Production deployment procedures
- User Guide: End-user documentation for students
- Security Hardening: Security features and best practices
- Testing Guide: Test suite documentation
- Conversation System: Chat interface architecture
- Phase 3 Summary: RAG infrastructure details
- Phase 7 Summary: Feedback & analytics implementation
- Archive: Historical refactoring and migration documentation
Run the comprehensive test suite:
# Run all tests
cd backend
./run_tests.sh
# Run unit tests only
./run_tests.sh --unit
# Run integration tests only
./run_tests.sh --integration
# Run with coverage report
./run_tests.sh --coverage
# Run specific test
pytest tests/test_validation.py -vTest Coverage:
- 76 total tests (62 unit, 14 integration)
-
80% code coverage
- Tests for validation, schemas, middleware, API endpoints
SIRA implements multiple security layers:
Authentication & Authorization:
- Clerk JWT validation on all protected endpoints
- Role-based access control (user, admin)
- Secure session management
Input Validation:
- Pydantic schemas with custom validators
- XSS prevention (HTML sanitization)
- SQL injection protection
- Path traversal prevention
- URL validation
API Protection:
- Rate limiting: 120 requests/minute, 2000/hour per IP
- Security headers: HSTS, CSP, X-Frame-Options
- CORS configuration
- Request size limits
Data Security:
- Environment variable validation at startup
- Secure file upload handling
- Database connection pooling with timeouts
- Encrypted sensitive data
See docs/backend-security-hardening.md for details.
- All endpoints require Clerk JWT except
/health
Profiles:
POST /api/profiles- Create a new profileGET /api/profiles- List all profiles for the authenticated userGET /api/profiles/{id}- Get profile detailsPUT /api/profiles/{id}- Update profilePATCH /api/profiles/{id}- Partial updateDELETE /api/profiles/{id}- Delete profile
Recommendations:
GET /api/recommendations/{profile_id}- Get recommendationsPOST /api/recommendations/{recommendation_id}/feedback- Submit feedback
Chat/Conversations:
POST /api/conversations- Create a new conversationGET /api/conversations- List conversationsGET /api/conversations/{id}/stream- Stream AI responses (SSE)
Admin:
GET /api/admin/analytics- System analyticsGET /api/admin/feedback- Feedback trendsGET /api/admin/sessions- Active sessions
See docs/API_REFERENCE.md for complete API documentation.
- Configure environment variables (see DEPLOYMENT_GUIDE.md)
- Set up PostgreSQL 15+ with backups
- Configure Pinecone index
- Set up SSL/TLS certificates
- Configure reverse proxy (Nginx)
- Set up monitoring and logging
- Run database migrations
- Test health endpoints
- Configure rate limiting
- Set up backups and recovery
# Build production images
docker-compose -f docker-compose.prod.yml build
# Start services
docker-compose -f docker-compose.prod.yml up -d
# Run migrations
docker-compose exec backend alembic upgrade head
# Check health
curl http://localhost:8000/healthSee docs/DEPLOYMENT_GUIDE.md for complete deployment procedures.
Project setup and containerization
Authentication with Clerk
Profile management system
RAG infrastructure (LlamaIndex + Pinecone)
AI recommendation engine
Conversational AI interface
Admin dashboard and analytics
Feedback system
Security hardening
Comprehensive testing
Documentation
Deployment preparation
Production deployment
Performance optimization
- Mobile applications (React Native)
- Advanced analytics and insights
- Multi-language support
- Graduate program recommendations
- Integration with university application systems
- Career trajectory predictions
- Scholarship recommendations
We welcome contributions! Please follow these guidelines:
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Make your changes following the code style
- Write tests for new functionality
- Run the test suite:
./backend/run_tests.sh - Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
- Use Server Components for data fetching, Client Components for interactivity
- Ensure TypeScript interfaces match Pydantic schemas
- Always validate Clerk JWT on backend endpoints
- Write tests for new features
- Document complex logic with JSDoc/docstrings
- Follow code style (ESLint, Black, isort)
- Keep functions small and focused
- Add comprehensive error handling
This project is licensed under the MIT License - see the LICENSE file for details.
SIRA Development Team
Master's Project - 2026
- Documentation: See docs/ folder
- Issues: GitHub Issues
- Email: support@sira-academic.com
- Clerk for authentication infrastructure
- Mistral AI for powerful LLM capabilities
- Pinecone for vector database
- Vercel for Next.js framework
- FastAPI community
- All open-source contributors
Built with using Next.js 16, FastAPI, and Mistral AI