Busabase
Busabase is an open-source (MIT) database and workspace for AI agents — data, docs, skills, and apps in one place. Run it locally, self-host it inside your network, or use Busabase Cloud, and turn age
翻訳待ち
No updates detected yet. GitHub releases will appear here.
This is for my EO WebApp
翻訳待ち
Loading the full README.
Read the full README ↗Water, Agriculture & Food systems Earth Observation platform. Live: https://wafeo-webapplication.vercel.app
The home page opens first on every visit. Anyone with a Google account can sign in;
first-time users get an account automatically (role researcher). Try the demo
(next to Sign in / Sign up) opens the whole platform with no account: a 12-hour
session where nothing is saved. Admins manage roles on the Users page.
index.html, style.css, app.js Frontend (single-page app, no build step)
landing.css, landing.js Home page: pinned scroll hero, sections, hand-off to sign-in
eo.js Site Intelligence analysis UI (click a field, point + radius, or draw)
atlas.js Dashboard world map: rotating globe / flat map, 208-country atlas with flags,
country cards (World Bank statistics, hazards), click-to-select a field
compare.js Change over time: period slider and then/now swipe viewer (Dashboard, Site Intelligence)
livenews.js Live News panel (Reports): auto-refresh, date archive, region and topic filters
report.js PDF report "Analysis_Report_WAFEO_<area>.pdf" (jsPDF)
pages.js Live Dashboard and domain pages (plain + expert views, charts, maps)
assets/ Logo, images and countries.json (the 208 countries and territories)
data/users.json Local user store (development only; production uses Firestore)
server.js Local entry point: `npm start`
api/index.js Vercel serverless entry (same app)
server/
app.js Express app: middleware, routing, static files
config.js All environment settings in one place
store.js Data layer: Firestore if configured, else data/*.json
auth.js Password hashing, JWT, auth/role middleware, rate limit
routes/auth.js /api/auth/* login, google, register, demo, me, logout
routes/data.js /api/news (live and by date)
routes/platform.js AI assistant, reports, activity log, admin
routes/eo.js /api/eo/analyze, /api/eo/field, /api/eo/ndvi-series, /api/live/hazards
services/news.js Verified live news: trusted outlet feeds, Google News and GDELT search, 3-min refresh
services/eo/ Satellite analysis engine:
sentinel2.js Sentinel-2 L2A: NDVI/EVI/SAVI, red-edge N, NDMI, BSI, water, NDTI, NDCI, 24-month NDVI
planetary.js Landsat 8/9 LST, Copernicus DEM, ESA WorldCover, JRC Global Surface Water
soil.js ISRIC SoilGrids (WCS): texture, pH, SOC, N, CEC, bulk density, WRB type, AWC
climate.js Open-Meteo: weather, ET0, soil moisture, ERA5 rainfall anomaly, GloFAS rivers
analyze.js Fuses sources into scores, ranked issues, and actions for farmers/government/public
lib/firebase.js Firebase Admin initialisation
firebase-seed.js One-off: copy data/*.json into Firestore (`npm run seed`)
tests/api.test.js API tests (`npm test`)
npm install
cp .env.example .env # optional locally; see below
npm run dev # http://localhost:8080, restarts on file changes
npm test # API test suite (never touches data/)
Without a .env the server uses the JSON files in data/ and a random session
secret (you'll be signed out when the server restarts).
Demo accounts (password wafeo2024): admin, farmer, policy, researcher.
| Variable | Needed | Purpose |
|---|---|---|
JWT_SECRET | Production | Signs session tokens. Any long random string. Without it (and without Firebase), the production API refuses to run. |
FIREBASE_PROJECT_ID, FIREBASE_CLIENT_EMAIL, FIREBASE_PRIVATE_KEY | Production | Firestore storage for users, reports and activity. Without them, new accounts are not saved on Vercel. |
GOOGLE_CLIENT_ID | Optional | OAuth client ID(s), comma-separated. Defaults to the WAFEO client. |
ADMIN_EMAILS | Optional | Comma-separated Google emails that are made admin whenever they sign in with Google. |
DEFAULT_ROLE | Optional | Role for new sign-ups (default researcher). |
EARTHDATA_TOKEN | Optional | NASA Earthdata token (urs.earthdata.nasa.gov → Generate Token). Enables ECOSTRESS, SMAP, GRACE-FO and SWOT. |
ISDA_USERNAME, ISDA_PASSWORD | Optional | iSDAsoil API account. Enables 30 m soil nutrients. |
GROQ_API_KEY, GROQ_MODEL | Optional | Enables the AI assistant (free key at console.groq.com). |
CORS_ORIGINS | Optional | Extra origins allowed to call the API. |
JWT_EXPIRES_IN | Optional | Session length (default 7d). |
Set these on Vercel under Project → Settings → Environment Variables, then redeploy.
The button works with the OAuth client in GOOGLE_CLIENT_ID. For any Google
account (not just test users) to sign in, in Google Cloud Console:
openid email profile scopes, so Google does not require verification.https://wafeo-webapplication.vercel.app, http://localhost:8080, and
https://norbertmuzila.github.io if you still use GitHub Pages.All endpoints except health and auth require Authorization: Bearer <token>.
This is the beginning of the README. Read the rest at the original. Read the full README ↗