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
- π GitHub Issues
- π‘ GitHub Discussions
- π Documentation
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
Documentation β’ API Reference β’ Report Bug
- 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