smooth-app
전 세계 식품의 성분·영양·정보를 자유롭게 협업하고 공개하는 데이터베이스
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Bubbles: a chat-first personal health companion (not a diagnostic engine) ! usage without permission will cause legal notice
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗A cycle-aware, chat-first personal health companion. Bubbles listens, remembers and connects the dots over time. It is not a diagnostic engine: urgent symptoms get fixed, deterministic safety guidance before any AI is involved.
Double-click start_bubbles.bat. It uses backend\venv if present, otherwise a Python that already has the
dependencies, otherwise it builds the venv once; starts the backend (auto-restarting) on http://127.0.0.1:8000 and the
frontend on http://localhost:3000, waits until both answer, prints the database status and opens the browser.
Manual:
cd backend; python -m uvicorn main:app --host 127.0.0.1 --port 8000 # API (docs at /docs)
cd frontend; npm ci; npm run dev # app
Needs backend/.env (Supabase URL + service key, AI provider keys, policy flags; see backend/.env.example) and
frontend/.env.local (NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY, NEXT_PUBLIC_API_URL).
Never commit these files.
Fitness (diet planner, workout planner, calorie / whole-meal calculator, strict Transformation mode), the Cycle section, and richer Sleep, Water, Medications, Mind and Notifications are built on the same chat-first core. Chat can answer "how many calories do I have left?" and logs meals ("2 rotis, dal and curd") with quantities.
backend/doc_store.py). A proper-tables proposal is in docs/proposals/whole-health-os-schema.sql (not applied).backend/clinical_constants.py. Give docs/clinical/BUBBLES_CLINICAL_REVIEW_PACKET.html (print it to PDF) to a doctor, a registered dietitian and a pharmacist. Until it is signed off, every plan shows a "pending clinician review" notice. After sign-off set BUBBLES_CLINICALLY_REVIEWED=true in backend/.env.docs/proposals/lock-bubbles-doc-rows.sql in the Supabase SQL editor (after reading it) so browsers cannot write the feature documents directly. The server already ignores forged documents (they are signed), so this is defence in depth.BUBBLES_ENABLE_OPENFOODFACTS, default on), email via your own SMTP (off by default).GET http://127.0.0.1:8000/health reports services.database: ok, permission_denied, unreachable or unknown.
If it says permission_denied the app keeps working in a compatibility mode, but you should run
supabase/migrations/20261006_coco_service_role_grants.sql once in the Supabase SQL editor.
"Can't reach Bubbles" in the UI means the backend process is not running (the banner reconnects by itself once it is).
cd backend; python -m pytest tests -q # backend (safety engine, chat pipeline, trackers, contracts)
cd frontend; npx tsc --noEmit; npm run lint; npx vitest run; npm run build
backend/health_semantics.py reads negation, tense, questions, quotations and who a symptom belongs to;
backend/safety_engine.py decides NO_REDFLAG / POTENTIAL_REDFLAG_NEEDS_CLARIFICATION / URGENT / EMERGENCY from that
(RED is a hard gate with no model call); backend/chat_pipeline.py orchestrates a chat turn (history, corrections,
event reconciliation, daily-log parsing). The independent language corpus lives in backend/tests/health_language_corpus.py.
Brand: the approved character is docs/brand/bubbles-identity-final.png; the drawing lives in frontend/app/landing/BubblesMark.tsx.
DEPLOY.md. Public site: https://heybubbles.in./partner): you pick exactly which summaries one trusted person can see (cycle estimate with gentle tips for them, 7-night sleep average, a note from you). They can connect with their own Bubbles account using a one-time invite code (48 hours), or you can send a quick link that expires in 7/30/90 days. Either side can end it instantly, and nothing from chat, symptoms, medications, labs, reports or notes can ever be shared. Backend: backend/partner_sharing.py; no database change needed.