Repository navigation
Expand file tree
/
Copy pathmain.py
More file actions
67 lines (55 loc) · 2.19 KB
/
Copy pathmain.py
File metadata and controls
67 lines (55 loc) · 2.19 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
from contextlib import asynccontextmanager
import os
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from routes.BaseAI import router as AIrouter
from routes.student import router as student_router
from routes.auth import router as auth_router
from routes.skills import router as skills_router
from routes.certifications import router as certifications_router
from routes.project import router as project_router
from routes.resume import router as resume_router
from routes.admin import router as admin_router
from models.basemodel import Base
from database.database import engine
@asynccontextmanager
async def lifespan(_app: FastAPI):
Base.metadata.create_all(bind=engine)
yield
app = FastAPI(
title="SkillSyncAI",
description="A platform that syncs student skills, projects & certifications powered by AI.",
version="1.0.0",
docs_url="/docs",
redoc_url="/redoc",
lifespan=lifespan,
)
cors_origins = [
origin.strip()
for origin in os.getenv(
"CORS_ORIGINS",
"http://localhost:5173,https://skillsyncai-1-dx50.onrender.com",
).split(",")
if origin.strip()
]
app.add_middleware(
CORSMiddleware,
allow_origins=cors_origins,
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
@app.get("/", tags=["health"])
def root():
return {"message": "Welcome to SkillSyncAI API 🚀", "docs": "/docs"}
app.include_router(auth_router, prefix="/auth", tags=["Auth"])
app.include_router(AIrouter, prefix="/ai", tags=["AI"])
app.include_router(student_router, prefix="/students", tags=["Students"])
app.include_router(skills_router, prefix="/skills", tags=["Skills"])
app.include_router(certifications_router, prefix="/certifications", tags=["Certifications"])
app.include_router(project_router, prefix="/projects", tags=["Projects & Resumes"])
app.include_router(resume_router, prefix="/resume", tags=["Resumes"])
app.include_router(admin_router, prefix="/admin", tags=["Admin"])
if __name__ == "__main__":
import uvicorn
uvicorn.run("main:app", host="127.0.0.1", port=8000, reload=True)