Spaces:
Sleeping
Sleeping
| from fastapi import FastAPI | |
| from pydantic import BaseModel | |
| from fastapi.middleware.cors import CORSMiddleware | |
| import uvicorn | |
| app = FastAPI() | |
| # Enable CORS for frontend requests | |
| app.add_middleware( | |
| CORSMiddleware, | |
| allow_origins=["*"], | |
| allow_credentials=True, | |
| allow_methods=["*"], | |
| allow_headers=["*"], | |
| ) | |
| # Request model | |
| class SIPRequest(BaseModel): | |
| P: float = 5000 # Monthly investment | |
| i: float = 12 # Annual interest rate | |
| n: int = 10 # Number of years | |
| # SIP Calculation Function | |
| def calculate_sip(P: float, i: float, n: int): | |
| monthly_rate = i / 12 / 100 # Convert annual rate to monthly decimal | |
| n_payments = n * 12 # Convert years to months | |
| M = P * (((1 + monthly_rate) ** n_payments - 1) / monthly_rate) * (1 + monthly_rate) | |
| total_invested = P * n_payments | |
| estimated_returns = M - total_invested | |
| return {"final_amount": M, "total_invested": total_invested, "estimated_returns": estimated_returns} | |
| async def sip_api(data: SIPRequest): | |
| return calculate_sip(data.P, data.i, data.n) | |
| if __name__ == "__main__": | |
| uvicorn.run(app, host="0.0.0.0", port=7860) | |