Opentrons Labworks Inc
Software for writing protocols and running them on the Opentrons Flex and Opentrons OT-2
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗A fair test for your skincare. Measure your skin with the YouCam AI Skin Analysis API, choose one product for one goal, and check back weeks later. ProofLoop tells you whether a score moved further than normal scan-to-scan variation — or says plainly that it can't tell yet.
Built for the YouCam API Skin AI & eCommerce VTO Hackathon (Skin AI track).
People wonder whether a product is working while standing in front of a mirror — a bad instrument with different light every morning. Skin scanners give a number; shops give a product; nobody tells you whether the next number is actually different from the last one. ProofLoop closes that loop honestly:
| API | Endpoint | Where |
|---|---|---|
| File upload | POST /s2s/v2.0/file/skin-analysis + presigned PUT | every live scan / preview |
| AI Skin Analysis | POST /s2s/v2.0/task/skin-analysis, GET …/{task_id} (format: json, 8 SD concerns, 12 units) | baseline, instrument-check and check-in scans; per-concern detection masks shown over the user's photo |
| AI Skin Simulation | POST /s2s/v2.0/task/skin-simulation, GET …/{task_id} (4 units) | optional goal preview on the product page |
All of the above were verified against the live API through ProofLoop's own client — see
docs/youcam-integration.md for evidence, costs and the repeatability study.
Requirements: Python 3.12, Node 22.
# backend (http://localhost:8000)
cd backend
python3.12 -m venv venv
./venv/bin/pip install -r requirements-dev.txt
cp .env.example .env # add YOUCAM_API_KEY for live scans; leave blank for sample data only
./venv/bin/uvicorn app.main:app --reload --port 8000
# frontend (http://localhost:3000)
cd frontend
npm install
npm run dev
Without a key, everything except live scans and previews works, and live scans fail with a clear message instead of inventing results. Try with sample data replays a recorded YouCam response, labelled as such.
cd backend && ./venv/bin/python -m pytest # 91 tests, no network; 2 opt-in live tests skipped
cd backend && TEST_DATABASE_URL=postgresql://… ./venv/bin/python -m pytest # same suite on PostgreSQL, schema via Alembic
cd backend && ./venv/bin/ruff check . && ./venv/bin/ruff format --check .
cd frontend && npm run lint && npm run typecheck && npm run build
cd frontend && npm run test:e2e # Playwright, desktop + mobile, axe; isolated keyless backend
Live checks (spend units only when asked): YOUCAM_LIVE=1 ./venv/bin/python -m pytest -m live.
Hosted on free tiers: Next.js on Vercel (Hobby), FastAPI on Render (Free web service), PostgreSQL on Neon (Free).
Schema changes go through Alembic (backend/migrations). Runbook, settings and limits: docs/deployment.md.
Photos are cleaned (metadata stripped) and sent to YouCam, never stored by ProofLoop. The server keeps scores, capture metadata and trials under an anonymous session token; "Delete all my data" removes them immediately. ProofLoop is not a medical device and never attributes a change to a product.
The product catalogue is fictional sample data created to demonstrate matching.