| import uvicorn |
| from fastapi import FastAPI, Request |
| from fastapi.middleware.cors import CORSMiddleware |
| from fastapi.middleware.gzip import GZipMiddleware |
| from fastapi.staticfiles import StaticFiles |
| from routers import auth, user, dashboard, medicine, session, analysis |
| from routers import ai_agent |
| from routers import preorder, admin, contact, subscription, device, caregiver, health_record, health_detection, cron, chatbot |
|
|
| from utils.reminders import reminder_worker |
| import asyncio |
|
|
| app = FastAPI( |
| title="AI-Powered Medicine Dispenser System", |
| description="Backend API for medicine scheduling, reminders, and user management.", |
| version="1.0.0" |
| ) |
|
|
| |
|
|
| |
| app.add_middleware( |
| CORSMiddleware, |
| allow_origins=[ |
| "http://localhost:3000", |
| "https://app.medisync-ai.site", |
| "https://medisync-ai.site", |
| "https://anique-1-medisync.hf.space", |
| ], |
| allow_credentials=True, |
| allow_methods=["*"], |
| allow_headers=["*"], |
| ) |
|
|
| |
| app.add_middleware(GZipMiddleware, minimum_size=1000) |
|
|
| @app.middleware("http") |
| async def log_requests(request: Request, call_next): |
| import sys |
| print(f"Incoming Request: {request.method} {request.url}") |
| sys.stdout.flush() |
| response = await call_next(request) |
| return response |
|
|
| @app.get("/") |
| async def root(): |
| return {"message": "MediSync AI API is running", "status": "optimal"} |
|
|
| |
| app.include_router(auth.router) |
| app.include_router(user.router) |
| app.include_router(user.public_router) |
| app.include_router(dashboard.router) |
| app.include_router(medicine.router) |
| app.include_router(session.router) |
| app.include_router(analysis.router) |
| app.include_router(ai_agent.router) |
| app.include_router(preorder.router) |
| app.include_router(admin.router) |
| app.include_router(contact.router) |
| app.include_router(subscription.router) |
| app.include_router(device.router) |
| app.include_router(caregiver.router) |
| app.include_router(health_record.router) |
| app.include_router(health_detection.router) |
| app.include_router(cron.router) |
| app.include_router(chatbot.router) |
|
|
|
|
|
|
| @app.on_event("startup") |
| async def startup_event(): |
| |
| loop = asyncio.get_event_loop() |
| from utils.reminders import reminder_worker, mark_missed_doses_worker |
| loop.create_task(reminder_worker()) |
| loop.create_task(mark_missed_doses_worker()) |
|
|
| if __name__ == "__main__": |
| uvicorn.run("main:app", host="0.0.0.0", port=8000, reload=True) |
|
|