HariLogicgo's picture
deployment ready
b8fc47f
import uvicorn
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from app.db import close_mongo, connect_to_mongo
from app.routes.budget import router as budget_router
from app.scheduler import BudgetScheduler
app = FastAPI(title="Early Overspending Alerts")
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
scheduler = BudgetScheduler()
@app.on_event("startup")
async def startup_event():
db = await connect_to_mongo()
app.state.db = db
scheduler.start(db)
print("Budget scheduler running every 10 seconds")
@app.on_event("shutdown")
async def shutdown_event():
scheduler.shutdown()
await close_mongo()
app.include_router(budget_router)
if __name__ == "__main__":
uvicorn.run("app.main:app", host="0.0.0.0", port=7860, reload=False)