ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
ワインのAOP(原産地呼称)を地図で学ぶアプリ
Translation pending
EducationTypeScript · JavaScriptGitHub @mpppkOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
ワインのAOP(原産地呼称)を地図で学ぶWebアプリ。TanStack Start + MapLibre GL JS + Cloudflare Workers/D1。 公開URL: https://wine.nibo.sh (カスタムドメイン)。Workers のデフォルトドメイン https://wine.niboshi.workers.dev でも動作する。 • ディレクトリ構成・アーキテクチャ・ドメインモデリングのルール: docs/architecture.md • デプロイ・環境構成: docs/deployment.md public/data/aop/*.geojson は INAO / EU PDO のオープンデータから生成する(生成物はコミット済み。データ更新時のみ再実行)。手順・データソース・再生成時の注意は docs/geodata.md を参照。 AOPのメタデータ(土壌・品種・生産者)は src/lib/wine/aops.json にあり、src/lib/wine/aop-schema.ts のスキーマで読み込み時に検証される。 This project uses Vitest for testing. You can run the tests with:Read the full README ↗
ワインのAOP(原産地呼称)を地図で学ぶWebアプリ。TanStack Start + MapLibre GL JS + Cloudflare Workers/D1。
公開URL: https://wine.nibo.sh (カスタムドメイン)。Workers のデフォルトドメイン https://wine.niboshi.workers.dev でも動作する。
public/data/aop/*.geojson は INAO / EU PDO のオープンデータから生成する(生成物はコミット済み。データ更新時のみ再実行)。手順・データソース・再生成時の注意は docs/geodata.md を参照。
AOPのメタデータ(土壌・品種・生産者)は src/lib/wine/aops.json にあり、src/lib/wine/aop-schema.ts のスキーマで読み込み時に検証される。
To run this application:
bun install
bun --bun run dev
To build this application for production:
bun --bun run build
This project uses Vitest for testing. You can run the tests with:
bun --bun run test
This app uses Cloudflare D1 (the DB binding in wrangler.jsonc) to persist Better Auth data (users / sessions / OAuth clients) and the app's own domain data (learning progress, cellar records, credit ledger, etc.).
Create the D1 database:
bunx --bun wrangler d1 create wine-db
Copy the generated database_id into wrangler.jsonc, replacing 00000000-0000-0000-0000-000000000000, then regenerate Worker binding types:
bun run cf-typegen
Migrations are hand-written sequential SQL files under drizzle/ (0000_*.sql, 0001_*.sql, …). Drizzle ORM (src/db/schema.ts / src/db/auth-schema.ts) is the runtime query layer only — schema changes are authored by hand as the next numbered SQL file and applied with wrangler d1 migrations apply. drizzle-kit (db:generate / db:push / db:pull) is intentionally not used, since its tracking state does not include the Better Auth tables and could propose destructive diffs against the production DB. See CLAUDE.md for the schema-change workflow.
Apply migrations to the local D1 (run once initially and after every schema change, before bun run dev):
bun run db:migrate:local
Migrations are applied to the remote databases automatically on deploy — Cloudflare Workers Builds runs db:migrate:remote / db:migrate:preview after a successful build (see docs/deployment.md). To apply them manually against the production D1:
bun run db:migrate:remote
This project uses Biome for linting and formatting. The following scripts are available:
bun --bun run lint
bun --bun run format
bun --bun run check
Add components using the latest version of Shadcn.
pnpm dlx shadcn@latest add button
Authentication is handled by Better Auth. It requires a
BETTER_AUTH_SECRET in every environment — it signs session cookies and OAuth tokens.
Generate one with:
bunx --bun @better-auth/cli secret
Local: put it in .dev.vars as BETTER_AUTH_SECRET=... (see .dev.vars.example).
Production / Preview (Cloudflare Workers): set it as a secret so it is never committed:
bunx --bun wrangler secret put BETTER_AUTH_SECRET
bunx --bun wrangler secret put BETTER_AUTH_SECRET --env preview
wrangler secret put values are not emitted by wrangler types, so the binding is declared
for TypeScript in src/env-secrets.d.ts. If BETTER_AUTH_SECRET is missing, Better Auth falls
back to a built-in default and, with NODE_ENV=production, fails fast at startup.
For local OAuth/MCP verification, also set BETTER_AUTH_URL=http://localhost:3000 in .dev.vars (see .dev.vars.example).
このリポジトリの成果物は PolyForm Noncommercial License 1.0.0 の下で提供されます(SPDX: PolyForm-Noncommercial-1.0.0、原文: https://polyformproject.org/licenses/noncommercial/1.0.0)。
package.json / bun.lock に記載のもの)は各々のライセンスに従います。本リポジトリのライセンス設定とは無関係です。