factcircuit
FactCircuit: an auditable claim-and-evidence verification loop with immutable provenance, staged checks, bounded retrieval, and reproducible evaluation.
Open-science platform by the Jan Ingenhousz Institute for real-time analysis and visualization of photosynthesis data from IoT sensors, enabling collaborative plant science research.
DataTypeScript · HCLGitHub @Jan-IngenHousz-InstituteOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
openJII is an open-source platform for analyzing photosynthesis data from IoT and manual sensors, enabling real-time processing and visualization for plant science research.
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
An open-source platform for photosynthesis research and plant phenotyping, developed by the Jan IngenHousz Institute. openJII helps researchers collect, process, and analyze sensor data from MultispeQ devices and continuous IoT sensors.
openJII supports plant researchers throughout their workflow:Read the full README ↗An open-source platform for photosynthesis research and plant phenotyping, developed by the Jan IngenHousz Institute. openJII helps researchers collect, process, and analyze sensor data from MultispeQ devices and continuous IoT sensors.
openJII supports plant researchers throughout their workflow:
A pnpm + Turborepo workspace.
| App | What it is |
|---|---|
apps/web | Next.js web platform — public site (Contentful-driven) plus the authenticated research platform; deployed with OpenNext |
apps/backend | NestJS API — contract-first oRPC endpoints, Better Auth, Drizzle ORM, AWS integrations (IoT Core, S3, Lambda, Cognito) |
apps/mobile | Expo / React Native app for field measurements with MultispeQ devices (Bluetooth + USB serial, offline-first with SQLite) |
apps/data | Databricks workspace — Lakeflow pipelines, notebooks, and Python packages (managed with uv) |
apps/macro-sandbox | Sandboxed AWS Lambda environment that executes user-written analysis macros in Python, JavaScript, and R |
apps/docs | Documentation site (docs.openjii.org) built with Fumadocs; API reference generated from OpenAPI/AsyncAPI specs |
apps/tools | Developer tools, e.g. the MultispeQ MQTT interface (apps/tools/multispeq_mqtt_interface) for bridging devices to AWS IoT |
| Package | What it is |
|---|---|
packages/api | oRPC API contract shared by backend, web, and mobile; generates the OpenAPI spec |
packages/auth | Better Auth configuration (web + mobile) |
packages/database | Postgres and ClickHouse schemas and migrations, Postgres seeding and compose scripts |
packages/ui | Shared React component library (shadcn/Radix, charts, maps, forms) |
packages/cms | Contentful integration for the public site (GraphQL codegen, live preview) |
packages/i18n | i18next internationalization (en-US, de-DE) |
packages/iot | Shared IoT device types and connector logic |
packages/transactional | Transactional email templates (React Email) |
packages/analytics | PostHog analytics and feature flags (client + server) |
Infrastructure lives in infrastructure/ (AWS, managed with OpenTofu), and shared configs (ESLint, TypeScript, Tailwind, Vitest, release tooling) in tooling/.
.nvmrc)apps/data Databricks workspace)git clone https://github.com/Jan-IngenHousz-Institute/open-jii.git
cd open-jii
nvm use
corepack enable
pnpm install
pnpm dev:fb # Run just the web app + backend (most common)
pnpm dev # Run all development servers
pnpm db:setup # First-time setup: start Postgres and reset + migrate the DB (wipes existing local data)
pnpm db:migrate # Apply pending migrations (non-destructive)
pnpm db:studio # Browse the database with Drizzle Studio
pnpm --filter database db:seed # Seed the local DB with development data (needed to see data in the platform)
pnpm lint # Check code style
pnpm typecheck # Type-check all packages
pnpm test # Run tests
pnpm format # Format with Prettier
pnpm build # Build all apps and packages
pnpm clean:workspaces # Wipe node_modules/.turbo across the workspace, then `pnpm install` (fixes broken/stale deps)
API documentation is generated from the oRPC contract (pnpm --filter @repo/api generate:openapi) and rendered in the docs site's API reference.
Visit the Documentation Hub or browse apps/docs for:
To enable live preview of content on the Contentful website for your deployed development site, update the preview URL in Contentful: Settings → Content preview → edit the blog preview entry and point it at your deployed dev site.
We welcome contributions! Please check our Contributing Guidelines and Code of Conduct.
This project is licensed under the terms found in LICENSE.