Files
Hardik Sankhla 202e51c8a1 Initial commits
2025-06-27 05:56:40 +05:30

56 lines
2.4 KiB
Python

# D:\GNPL-Private\TimeCraft\backend\main.py
import os
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from dotenv import load_dotenv # For loading environment variables
from app.api import endpoints # Import your API router
# Load environment variables from the .env file.
# This should be called early in your application's lifecycle.
load_dotenv()
# Initialize the FastAPI application instance
# Add additional metadata for professional API documentation
app = FastAPI(
title="AI-Powered Schedule and Task Planning Backend",
description="FastAPI backend for ingesting user tasks, using an LLM for intelligent scheduling, and returning structured schedules.",
version="1.0.0",
docs_url="/docs", # Enable interactive API documentation (Swagger UI)
redoc_url="/redoc", # Enable ReDoc documentation
openapi_url="/openapi.json" # Specify the OpenAPI schema URL
)
# Configure CORS (Cross-Origin Resource Sharing) middleware.
# This is crucial for allowing your React frontend (running on a different port/domain)
# to make requests to your FastAPI backend.
origins = [
os.getenv("FRONTEND_URL", "http://localhost:3000"), # Get frontend URL from .env, default to React's development port
# Add other origins if your frontend is deployed elsewhere or has multiple access points
# e.g., "https://your-production-frontend.com",
# "http://localhost:8080" # If testing with another local frontend setup
]
app.add_middleware(
CORSMiddleware,
allow_origins=origins, # List of allowed origins
allow_credentials=True, # Allow cookies and authentication headers to be sent
allow_methods=["*"], # Allow all HTTP methods (GET, POST, PUT, DELETE, etc.)
allow_headers=["*"], # Allow all headers in the request
)
# Include the API router defined in app.api.endpoints.
# All routes defined in endpoints.py will be prefixed with "/api/v1".
app.include_router(endpoints.router, prefix="/api/v1")
# Define a root endpoint for basic health check or welcome message
@app.get("/", summary="Root Endpoint", description="Provides a welcome message for the API.")
async def root():
"""
Root endpoint for the API.
Returns a simple welcome message to indicate the API is running.
"""
return {"message": "Welcome to the AI-Powered Schedule and Task Planning API! Access docs at /docs"}