openvibers/openvibe.food STATUS.json

STATUS.json

main 5.1 KB · 58 lines · json

1{
2 "repository": "OpenVibers/OpenVibe.Food",
3 "stage": "product",
4 "code": true,
5 "wave": "W20",
6 "plan": "The food tools move here from OpenVibe.Tools (apps/maps grocery source, the food proxy app), ported as clean modules without the Walmart page scraping. The manifests' other pillars — delivery comparison and meal kits, cupboard recipes with the network's AI — are still to come.",
7 "runtime": "node 22, express 4, PostgreSQL 18 (openvibe-sdk/db, async) + Valkey 9",
8 "port": "4970",
9 "domain": "openvibe.food",
10 "contracts": "openvibe-contracts v0.419.0",
11 "sdk": "openvibe-sdk v0.161.0",
12 "shared": "openvibe-shared v4.241.0",
13 "packages": [
14 "openvibe-contracts v0.419.0",
15 "openvibe-sdk v0.161.0",
16 "openvibe-shared v4.241.0"
17 ],
18 "summary": "OpenVibe.Food — What should we eat? Food near you (food banks, pantries and budget grocery stores from OpenStreetMap, paced and cached to stay inside the OSM usage policies), a deterministic meal planner with a shopping list and an estimated cost, a 42-item food database with nutrition per serving and per 100 g, and a pantry with a plain 'what can I make' against ten basic recipes. Server-rendered pages, an API at /api/v1, per-caller limits on the place search, and a test suite that never calls the internet.",
19 "works": [
20 "Food near you: /near and GET /api/v1/places — a place name (Nominatim) or coordinates, food banks, soup kitchens, community fridges, free pantry boxes and budget grocery stores from Overpass, with distance, address, opening hours and operator",
21 "The OpenStreetMap attribution and the ODbL link on every result page and in every place answer, as ODbL requires",
22 "Inside the Nominatim and Overpass usage policies: the User-Agent identifies us, at most one request a second per host through an in-process queue, every answer cached in food_geo_cache for 7 days, only small around: radius queries, never a bulk download",
23 "Meal planner: /plan and POST /api/v1/plans — one person, a couple or a group for 1–14 days, all six MyPlate groups, a shopping list, the cheapest store per line and an estimated cost; deterministic, with a budget as a hard cap",
24 "Signed-in people save plans (food_plans) and keep a pantry (food_pantry)",
25 "The food list at /foods and /foods/:slug (and GET /api/v1/foods[/:slug]): nutrition per serving and per 100 g, the typical price band and the chain-by-chain comparison, server-rendered",
26 "Pantry matching: GET/PUT /api/v1/pantry and /pantry — a deterministic 'what can I make' against ten basic recipes, clearly labelled basic suggestions, no AI call",
27 "Discovery: the sitemap carries every food page, /near, /plan and /foods; llms.txt and llms-full.txt list the same set; a pantry and a saved plan are never crawled",
28 "Capabilities (food.place.read, food.food.read, food.plan.read|write, food.pantry.read|write) and per-caller limits, with the tightest budget on the place search because it spends OpenStreetMap's shared request budget",
29 "Tests with a stand-in Nominatim and Overpass: results and attribution, the one-request-a-second queue, cache hits, escaping of an OSM name, the search's per-caller limit, the plan's arithmetic, the pantry match, signed-in saves and anonymous refusals",
30 "Sign-in with OpenVibe.Network (PKCE S256, httpOnly session cookies), the OpenVibe Frame, PostgreSQL migrations applied at boot, deploy files",
31 "Account export and deletion (ADR-033): the plans and the pantry a person saved are exported to OpenVibe.Network on network.account.export_requested and deleted whole on network.account.deleted, with the counts confirmed back; the two Events topics are subscribed at boot (server/identity/account-data.js)"
32 ],
33 "notYet": [
34 "Delivery-price comparison across delivery apps, and meal kits and boxes (the manifests' other pillars)",
35 "Recipes from the cupboard with the network's AI: this version is deterministic matching against ten recipes written by hand",
36 "A 'food near me' from the browser's location (only a place name or explicit coordinates today)",
37 "Fresh/live grocery prices: the price bands are typical 2025 US prices carried over from OpenVibe.Tools, not a live price",
38 "Its service and capability manifests in openvibe-contracts (contracts-service is food), and a deployment"
39 ],
40 "capabilitiesRegistered": false,
41 "serviceManifestRegistered": true,
42 "deployed": true,
43 "placeholderInSites": false,
44 "features": [
45 "food near you (OpenStreetMap: food banks, pantries, budget grocery stores)",
46 "meal planner with a shopping list and estimated cost",
47 "food database with nutrition per serving and per 100 g",
48 "pantry and 'what can I make'",
49 "signed-in saving of plans and pantries",
50 "public API with per-caller limits",
51 "server-rendered pages and crawl artifacts",
52 "Network sign-in",
53 "deploy files"
54 ],
55 "deployment": "openvibe-ovh: unit openvibe-food.service on 127.0.0.1:4970 (git checkout /opt/openvibe.food, env /etc/openvibe/food.env, database ov_food), deployed with `sudo ovhost deploy food`; public at https://openvibe.food since 2026-10-08.",
56 "updated": "2026-11-13"
57}
58