Easy-to-manage touch screens
무료 오픈소스 터치스크린으로 USB 설정 가이드, 드래그‑드롭 편집기, 로컬 제어를 제공하며 Home Assistant용으로 제작되었습니다
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Thai-language household inventory mobile app. Implementation of design/Home Inventory.dc.html (Claude Design canvas doc) as a Vite + React + TypeScript app, backed by a Google Sheet via Vercel serverless functions. Full-bleed on phones and installable (Add to Home Screen → standalone, no URL bar via manifest.webmanifest + apple-mobile-web-app-capable); on wide screens it renders inside a scaled iPhone frame (src/IOSFrame.tsx).README 전문 보기 ↗
Thai-language household inventory mobile app. Implementation of
design/Home Inventory.dc.html (Claude Design canvas doc) as a
Vite + React + TypeScript app, backed by a Google Sheet via Vercel
serverless functions.
Live: https://maebaan-home-inventory.vercel.app
Full-bleed on phones and installable (Add to Home Screen → standalone, no URL
bar via manifest.webmanifest + apple-mobile-web-app-capable); on wide
screens it renders inside a scaled iPhone frame (src/IOSFrame.tsx).
npm install
npx vercel dev # http://localhost:5273 — app + /api together (needs env, below)
npm run dev # plain Vite — /api unavailable, app runs on seed data (ตัวอย่าง pill)
npm run build # type-check + production bundle -> dist/
npm test # vitest — 59 tests (domain logic, mappers, mutate handler)
api/state.ts GET → { items, locations, history } from the Sheetapi/mutate.ts POST → { type, owner, ...payload } → applies applyMutation, writes the Sheet, returns the fresh snapshotapi/init.ts POST → idempotent: creates the 3 tabs + headers + seed from src/data.ts if emptygoogle-auth-library JWT from env GOOGLE_SERVICE_ACCOUNT_JSON; sheet id from env SHEET_ID. Server-only.items/locations tabs rewritten in full per mutation, history append-only (newest-first on read, Asia/Bangkok timestamps)./api only after a successful GET /api/state (hydrated); a boot-time failure = local-only demo session on seed data.| var | value |
|---|---|
SHEET_ID | the id from the Sheet URL |
GOOGLE_SERVICE_ACCOUNT_JSON | full contents of the service-account JSON key |
After the first deploy, POST /api/init once to seed the Sheet.
docs/superpowers/specs/2026-09-06-sheets-backend-vercel-design.md (spec),
docs/superpowers/plans/2026-09-06-sheets-backend-vercel.md (implementation plan).
A clay / neumorphic single-screen phone UI with a bottom nav and 10 screens:
| Screen | Purpose |
|---|---|
| หน้าแรก (home) | ready-% headline, stat tiles, pending count, quick actions, alert cards, LINE daily summary |
| รายการรอบันทึก (pending) | photos waiting to be filed (from app / LINE Official) → ADD / MOVE / USE |
| กล้อง (cam) | capture step 1 of every record; choose event type; send now or to pending |
| เก็บของ (add) | ADD — multi-row; name, kind, EXP (days or date) for food, qty, location search |
| ย้ายของ (move) | MOVE — pick an existing item, qty, destination location |
| ใช้ของ (use) | USE — search stock, decrement, low/out warnings |
| ของในบ้าน (inv) | browse by location or item, live qty / EXP badges |
| ประวัติ (hist) | read-only audit trail, filter by item / date range / location |
| รายการซื้อ (shop) | auto shopping list: out / low / bought, aggregated by name |
| ตั้งค่า (set) | clay tone (lilac / peach / mint), storage places CRUD, per-item min/target, notifications |
State is in-memory and seeded from the design doc (src/data.ts); "today" is
pinned to 2026-09-06 so the demo alerts stay stable.
design/Home Inventory.dc.html source design doc (canvas templating)
design/home-inventory-mockup.jsx earlier rough React mockup (reference only)
src/data.ts seed data (locations, items, pending, history, tones)
src/logic.ts pure domain logic: days(), autoCode(), shopRows(), applyAdd/Move/Use()
src/logic.test.ts unit tests for the above
src/css.ts CSS-string -> React style-object parser (lets design styles paste verbatim)
src/ui.ts style-string factories (chip, codeBadge, pill, shot, ...)
src/icons.tsx inline SVGs from the design
src/IOSFrame.tsx 440x956 iPhone shell, scales to fit (replaces the doc's ios-frame.jsx import)
src/App.tsx state machine + view-model builder + screen components
support.js / ios-frame.jsx from the original design are the Claude Design
runtime and are not needed here — the templating (sc-if / sc-for / {{ }})
was ported to JSX and the device frame reimplemented in IOSFrame.tsx.