main.py 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. """FastAPI application entry point."""
  2. from fastapi import FastAPI
  3. from fastapi.middleware.cors import CORSMiddleware
  4. from .config import APP_NAME, APP_VERSION, APP_DESCRIPTION, CORS_ORIGINS
  5. from .database import init_db
  6. from .routers import projects, plans, experience, generation, analytics, ai, search, ai_plan, analysis, adaptive, tasks, monitor
  7. app = FastAPI(
  8. title=APP_NAME,
  9. version=APP_VERSION,
  10. description=APP_DESCRIPTION,
  11. )
  12. # CORS middleware (allow frontend dev server)
  13. app.add_middleware(
  14. CORSMiddleware,
  15. allow_origins=CORS_ORIGINS,
  16. allow_credentials=True,
  17. allow_methods=["*"],
  18. allow_headers=["*"],
  19. )
  20. # Include routers
  21. app.include_router(projects.router)
  22. app.include_router(plans.router)
  23. app.include_router(experience.router)
  24. app.include_router(generation.router)
  25. app.include_router(analytics.router)
  26. app.include_router(ai.router)
  27. app.include_router(search.router)
  28. app.include_router(ai_plan.router)
  29. app.include_router(analysis.router)
  30. app.include_router(adaptive.router)
  31. app.include_router(tasks.router)
  32. app.include_router(monitor.router)
  33. @app.on_event("startup")
  34. def on_startup():
  35. """Initialize database on startup."""
  36. init_db()
  37. @app.get("/api/health")
  38. def health_check():
  39. """Health check endpoint."""
  40. return {"status": "ok", "app": APP_NAME, "version": APP_VERSION}
  41. @app.get("/")
  42. def root():
  43. """Root endpoint - redirect to API docs."""
  44. return {
  45. "message": APP_NAME,
  46. "version": APP_VERSION,
  47. "docs": "/docs",
  48. "api_health": "/api/health",
  49. }