Spaces:
Running
Running
| 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) | |
| 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) |