diff --git a/backend/app/main.py b/backend/app/main.py index 7d94259..7348f87 100644 --- a/backend/app/main.py +++ b/backend/app/main.py @@ -1,3 +1,7 @@ +import platform +from datetime import datetime, timezone + +import psutil from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware @@ -24,6 +28,32 @@ app.include_router(training.router, prefix=f"{settings.API_VER_STR}/training", t app.include_router(samples.router, prefix=f"{settings.API_VER_STR}/samples", tags=["samples"]) +@app.get("/") +async def root(): + """ + Root endpoint providing API status and system information + """ + return { + "name": "Training Monitor API", + "version": "1.0.0", + "status": "operational", + "timestamp": datetime.now(timezone.utc).isoformat(), + "system_info": { + "cpu_usage": f"{psutil.cpu_percent()}%", + "memory_usage": f"{psutil.virtual_memory().percent}%", + "platform": platform.platform(), + "python": platform.python_version(), + }, + "endpoints": { + "docs": "/docs", + "health": "/health", + "training_status": "/api/v1/training/status", + "training_log": "/api/v1/training/log", + "samples_list": "/api/v1/samples/list", + "samples_latest": "/api/v1/samples/latest" + } + } + @app.get("/health") async def health_check(): return {"status": "healthy"} diff --git a/backend/requirements.txt b/backend/requirements.txt index 65b88a5..b834626 100644 --- a/backend/requirements.txt +++ b/backend/requirements.txt @@ -10,4 +10,5 @@ python-dotenv>=1.0.0 aiofiles>=23.2.1 pytest>=7.4.3 httpx>=0.25.1 -pytest-asyncio>=0.21.1 \ No newline at end of file +pytest-asyncio>=0.21.1 +psutil>=5.9.8 \ No newline at end of file