NourishAI / app.py
Infinity-1995's picture
Update app.py
ae2cee3 verified
from flask import Flask, request, jsonify
from flask_cors import CORS
import random, math
app = Flask(__name__)
CORS(app)
NGOS = [
{"name":"Dubai Food Bank","type":"Food Bank","lat":25.20,"lon":55.27},
{"name":"Sharjah Elderly Care","type":"Elderly Home","lat":25.34,"lon":55.42},
{"name":"UAE Relief Center","type":"Shelter","lat":25.27,"lon":55.29},
{"name":"Abu Dhabi Kitchen","type":"Kitchen","lat":24.45,"lon":54.37},
{"name":"Ajman Support Home","type":"Elderly Home","lat":25.41,"lon":55.51}
]
def dist():
return random.uniform(2,10)
def reason(food, ngo):
reasons = [
f"{ngo} has urgent demand for {food}",
f"{food} matches dietary needs of {ngo}",
f"High priority distribution zone for {ngo}",
f"Efficient delivery route for {ngo}"
]
return random.choice(reasons)
@app.route("/analyze", methods=["POST"])
def analyze():
data = request.json
meals = int(data["meals"])
foodType = data["foodType"]
seed = data.get("seed", 1)
random.seed(seed)
results = []
for ngo in NGOS:
score = random.randint(50,95)
if meals > 120:
score += 5
km = round(dist(),1)
results.append({
"recipient": ngo["name"],
"km": km,
"score": score,
"reason": reason(foodType, ngo["name"]),
})
results.sort(key=lambda x: x["score"], reverse=True)
highs = results[:2]
meds = results[2:4]
lows = results[4:6]
final = []
for r in highs:
r["priority"] = "High"
final.append(r)
for r in meds:
r["priority"] = "Medium"
final.append(r)
for r in lows:
r["priority"] = "Low"
final.append(r)
return jsonify(final)
if __name__ == "__main__":
app.run(host="0.0.0.0", port=7860)