Study-Mate / main.py
Hamdy005's picture
feat: implement authentication system, add quiz history support, and update API endpoints for material and tutor interactions
8c7a11b
from contextlib import asynccontextmanager
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from fastapi.responses import RedirectResponse
from src.materials.routes import router as materials_router
from src.summary_generator.routes import router as summary_router
from src.rag.routes import router as tutor_router
from src.quiz_generator.routes import router as quiz_router
from src.auth.routes import router as auth_router
from src.config import settings
@asynccontextmanager
async def lifespan(app: FastAPI):
from src.rag.rag import get_embedder
get_embedder()
yield
app = FastAPI(
title="AI Tutor API",
description="Backend API for the AI Tutor for Students application",
version="1.0.0",
lifespan=lifespan,
)
app.add_middleware(
CORSMiddleware,
allow_origins=settings.cors_allowed_origins or ["*"],
allow_credentials=True,
allow_methods=["GET", "POST"],
allow_headers=["Authorization", "Content-Type"],
)
app.include_router(materials_router)
app.include_router(summary_router)
app.include_router(tutor_router)
app.include_router(quiz_router)
app.include_router(auth_router)
@app.get("/")
async def root():
return RedirectResponse(url="/docs")
@app.get("/api/health")
async def health_check():
return {"status": "ok", "service": "AI Tutor API"}