Spaces:
Sleeping
Sleeping
File size: 1,845 Bytes
09760bc ae2cee3 09760bc d9ae15f ae2cee3 d9ae15f 810a59d ae2cee3 810a59d 09760bc 388b3ad 09760bc bd5a661 ae2cee3 388b3ad ae2cee3 54c4584 810a59d 388b3ad bd5a661 ae2cee3 6a74830 ae2cee3 388b3ad 810a59d bd5a661 ae2cee3 810a59d 09760bc 9f6845f ae2cee3 6a74830 ae2cee3 388b3ad ae2cee3 473a9f0 ae2cee3 810a59d ae2cee3 fbde370 ae2cee3 09760bc 810a59d | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 | 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) |