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
翻訳待ち
Observers place each observation on a site map and answer the project's form, with or without signal. The research team prepares the maps, publishes the forms and reads what comes back.
翻訳待ち
データTypeScript · PythonGitHub @Audit-Tools-DECA-Lab-Cornellオンライン所有者未確認
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Custom offline field collection for research teams: a native collector, a web management application, an authenticated API, and a shared spatial database readable in QGIS.
This is one Git repository with independently managed components. The root owns product documentation and development commands; each application owns its dependencies, lockfile, and runtime. DECA Mark remains independent of Playspace, COPA, and YEE.
decamark/
├── web/ Next.js management application, source, public assets, and build config
├── mobile/ Expo / React Native collector with SQLite and MapLibre
├── backend/ FastAPI authentication and observation API
├── contracts/ Shared JSON schemas, form definitions and validation cases
├── database/ Local Supabase tooling, SQL tests and hosted verification
├── supabase/ Canonical schema migrations, local Supabase configuration and seeds
├── qgis/ Read-only live project, connection settings, and launcher
├── docs/ Requirements, architecture, research, and implementation scope
├── designs/ Design references
├── package.json Product command aliases; no application dependencies
└── Makefile Python, Docker, and database orchestration
Use Node 24 (nvm use), pnpm 10.17.1, and Docker Desktop for API/database work. Python development uses uv and Python 3.13 or newer.
pnpm setup:apps
pnpm backend:setup
pnpm dev
pnpm dev opens the web development server at http://localhost:3000. Root pnpm install only installs the dependency-free command package; use pnpm setup:apps to install web and mobile dependencies.
| Root command | What it does |
|---|---|
pnpm dev / pnpm build / pnpm start | Web development / production build / production server |
pnpm mobile:simulator | Metro for the existing iOS simulator development build |
pnpm mobile:ios / pnpm mobile:android | Build and run the native development app |
pnpm api:hosted:up / pnpm api:hosted:stop | Start/stop the local API connected to hosted Supabase |
pnpm check | Web and mobile type/lint checks, then Python Ruff/BasedPyright |
pnpm test | Web unit and mobile tests, local API integration tests, and local SQL assertions |
pnpm db:migrate:guide | Migration commands, hosted history check and schema2 rollout guide |
Run pnpm run help for the command overview. Integration tests need the local databases started with pnpm db:start; they do not run against Supabase. The hosted API needs the already provisioned local credential volume. See workspace operations for prerequisites, individual checks, and deployment instructions.
For migration commands and the current Forms schema mismatch, start with the database migration guide. Hosted schema2 application requires its validated transaction; web/API deployment does not apply it.
Start with current position and next work, reconciled October 15, 2026. The production plan owns sequencing; each component plan owns its task status.
The management web app uses real authenticated API data for identity, projects, sites, forms, invitations and review. Organizations are created by the bootstrap script; owners/admins create projects on the web. Managers import QGIS packages, edit server-backed zone drafts and publish immutable versions. Review pages retain recorded map/zone attribution, page through server-filtered observations and download server ZIP exports within explicit limits. Some observer/day/play-type panels still disclose a loaded subset. Scoped live QGIS connection provisioning, record correction and several destructive management actions remain open.
The collector uses SQLite and the existing foreground outbox (D27). Hosted package retention, exact pinned-session recovery and boundary-aware Contour screens are implemented. MOB-29 now implements the immutable bound /v1 upload body, exact receipt checks, structured rejection preservation and foreground save/reconnect/resume/retry handling. Local automated and disposable API/QGIS acceptance passes; current evidence must distinguish local runtime checks from pending physical iPad/Android collector acceptance. MOB-30 to MOB-32 retain simulator/VoiceOver checks, and QA-07 retains the physical-device publication/restart/reconnect and QGIS readback story. Closed-app background upload is not implemented. PowerSync remains a later gated transport, not the current sync engine.
Local web/API/database and component evidence is recorded with dates in the owner plans. The earlier practice uploads verified on September 18 do not prove the new zone contract. The October 14 hosted diagnosis recorded a schema/data mismatch; no hosted reconciliation, deployment or fresh device acceptance is claimed by this documentation pass. Account-deletion success/pending browser acceptance also needs the authorized Auth Admin runtime.
Web and collector share Contour, with Day default and Dusk preference. Tokens live only in contracts/contour.json, with separate map palettes. See DESIGN.md and PRODUCT.md. Janet's canonical form and reusable validation engine exist; protocol-content approval, exact publishing/binding and typed GIS acceptance remain distinct from source implementation.