smooth-app
전 세계 식품의 성분·영양·정보를 자유롭게 협업하고 공개하는 데이터베이스
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
A web app that demonstrates the Panacea concept: AI performs the anamnesis and
recommends supporting examinations through a chatbot, the results flow into an
integrated AI-EMR, and the physical examination and final plan are filled
in and verified by the examining (human) doctor. The patient identity is kept
continuously integrated across every module — always carrying vital signs and
supporting results as support for longevity. Built for continuous monitoring of
patients with chronic disease, the elderly, and the immunocompromised.README 전문 보기 ↗One longitudinal patient state — daily life, outpatient care, ward, OR, ICU,
follow-up — projected into AI-EMR, Clinical, Body Exposure, sport/performance
and longevity surfaces. AI drafts (anamnesis, assessment, education); a
licensed clinician reviews and signs. See CLAUDE.md for the
full working contract and AGENTS.md for governing doctrine.
⚕️ AI supports, never replaces, a licensed clinician. Diagnosis, dosing and final plans require clinician verification.
| Frontend | React + TypeScript + Vite (src/), Tailwind CSS v4 |
| Backend | Node + TypeScript, tsx runtime (server/) |
| Deploy | Vercel (frontend), Render (render.yaml, backend) |
| CI | GitHub Actions (.github/workflows/) |
Dependency direction is one-way, inward:
pages/ → components/ / domains/*/ui → lib/ (pure logic) → data/ (constants, corpora)
↓
lib/api.ts (the only HTTP boundary)
↓
server/src (routes → service → store)
lib/ — domain logic and use-cases. Pure and deterministic: no React,
no DOM, no direct fetch, no hidden Date.now()/Math.random(). This is
what makes it testable offline.components/ — presentation only. No formulas, clinical rules or
parsing; calls into lib/ and renders the result.pages/ — composition (routing, lazy-loading, assembling components).
No domain logic.domains/ — newer bounded-context folders (physiology,
body-exposure, clinical-operations, lab-results, marketplace, …),
each holding its own model/engine/data/adapters/ui. This is the target
shape for the whole codebase; migration is incremental (see below).routes (input validation + auth) → service (business
rules) → store/adapter (DB, FHIR, external APIs). Handlers hold no
business logic; services know nothing about HTTP.The codebase is mid-migration from a flat structure to the domain-first
layout described in CLAUDE.md §2:
src/pages/landing/ is the reference implementation — composed of
sections/, components/, isolated data/SVG/CSS files. New domain work
should follow this pattern.src/pages/ root still holds ~250 files: real pages plus transitional
one-line re-export stubs (kept so existing imports and tests don't break).
Newer page groups already live under subfolders (clinical/, emr/,
dashboard/, bodyhub/, fitness/, discovery/, medstudy/).
Ungrouped pages are being sorted into domain folders incrementally — see
scripts/arch/ratchet.mjs and lint:arsitektur for the enforced boundary.src/lib/ is still largely flat (~500 files, some subfolders). Rule: no
new files land in the flat lib/ root — new logic goes into
src/domains/<domain>/ instead.src/domains/ already holds newer bounded contexts: physiology,
body-exposure, clinical-operations, clinical-review,
clinical-calculators, lab-results, personal-health, affect,
training-goals, sports-roster, club, data-lab, macro-policy,
marketplace, owner-analytics, observability, wallet.dependency-cruiser
(.dependency-cruiser.cjs, violations ratcheted down via
.dependency-cruiser-known-violations.json), not just convention.npm install
npm run dev # http://localhost:5173
Without VITE_API_URL set, the app runs on seeded localStorage demo data —
every screen and flow is explorable offline.
# 1) backend
cd server
npm install
npm run dev # http://localhost:8787 (tsx watch)
# 2) frontend, in a separate terminal
cp .env.example .env.local # sets VITE_API_URL=http://localhost:8787
npm install
npm run dev # http://localhost:5173
npm run build # dozens of gates (registry/feature/academic/capability
# validators + unit tests) + tsc -b + vite build — slow
npm run uji # frontend deterministic test suite
cd server && npm run typecheck && npm run uji # backend typecheck + tests
npm run lint:arsitektur # dependency-cruiser boundary check
See docs/RUN.md (workspace root) for the combined
Panacea + PanaceaMed-v2 run guide, and docs/engineering/PANDUAN-SETUP.md
for first-time environment setup details.
Logo: red cross + green tP letterform. Palette #00BF63 · #FF3131 ·
#000000 · #FFFFFF. Typeface: Montserrat.