Jamorham
Nightscout용 xDrip+ 버전
Natural language nutrition tracking platform
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
The only tracking method accurate enough for Vietnamese home cooking is natural language description.
Kallo turns a sentence about what you ate into a structured breakdown of
ingredients, weights, and macros. It began around how Vietnamese meals are
actually composed — not how Western food trackers expect them to be — and now
handles meals globally, matching against both FAO and USDA food data with
multilingual input and output.README 전문 보기 ↗The only tracking method accurate enough for Vietnamese home cooking is natural language description.
Kallo turns a sentence about what you ate into a structured breakdown of ingredients, weights, and macros. It began around how Vietnamese meals are actually composed — not how Western food trackers expect them to be — and now handles meals globally, matching against both FAO and USDA food data with multilingual input and output.
bỏ da and the fat drops; say cân sống and the
weight basis changes; say 2 chén and the rice is counted rather than
assumed from a setting filled in once.A Next.js app at the root, with two satellites:
| Path | What it is |
|---|---|
app/, components/, lib/ | The web app — Next.js App Router, React 19 |
lib/ai/ | The estimation pipeline: decomposition, matching, portions, bounds |
apps/mobile-flutter/ | The Flutter mobile client |
apps/docs/, content/docs/ | The documentation site and its content |
supabase/, scripts/ | Schema, migrations, and operational scripts |
docs/ | Engineering docs — database, billing, email, deploy, data provenance |
Stack: Next.js 16 · React 19 · Drizzle ORM over Supabase Postgres · TanStack Query · next-intl · Tailwind v4 · Biome · Vitest.
You need Bun. Running Vitest also requires Node.js 22.12 or newer. A Supabase project plus a Gemini API key are required for anything that touches the pipeline.
bun install
bun run setup:env # scaffolds .env.local
bun run dev # http://localhost:3000
The estimation pipeline needs real food-composition data, which a bare local
Supabase does not have — point DATABASE_URL at a seeded project, or expect
matching to return nothing.
Common tasks:
bun run test # Vitest
bunx biome check --write <path> # lint and format; scope it to what you touched
bunx tsc --noEmit # types
bun run check:structure # size + folder + test-placement + barrel gate, enforced in CI
bun run eval:pipeline # estimation quality harness
bun run dev:mobile # Flutter client
Database work goes through bun run db:* (Drizzle) and bun run dbr:*
(remote Supabase). docs/DATABASE.md explains which to reach for.
Kallo is in active development. Versions follow
Semantic Versioning; see
CHANGELOG.md for what shipped in each release.
This repository is published under a source-available license
(see LICENSE). You may read, fork, build, and run the code
for non-production use. Commercial use, redistribution, or hosting Kallo as
a managed service requires a separate agreement — please get in touch.
Please report suspected vulnerabilities privately — see
SECURITY.md. Do not file public issues for security
problems.
Issues and pull requests are welcome. By submitting code you agree it can
ship under the project's source-available license. Use
Conventional Commit messages
(feat:, fix:, perf:, etc.) — they drive the automated changelog.
Nutrient reference data derives in part from the Vietnam National Food
Composition Table (2007) and the USDA FoodData Central database. Bootstrapped
with create-next-app
on Next.js 16 and React 19.