Lalabase
Tickets, Doku, Zeiterfassung und Kundengespräche an einem Ort, durchsuchbar per KI. Für Softwarefirmen mit Kundenprojekten. Open Source: auf deinem eigenen Server oder in unserer Cloud in Deutschland.
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证正在加载完整 README。 以下为已保存的摘录。
整骨院・整体・エステなどのサロン向け予約管理システム。 Next.js (App Router) + TypeScript + Prisma/PostgreSQL で構築。Vercel にそのままデプロイできます。 1. ホスト型 PostgreSQL を用意(Neon 無料枠など)し、接続文字列を取得 2. Vercel でこのリポジトリを Import 3. Project → Settings → Environment Variables に DATABASE_URL(上の接続文字列)を追加 4. Deploy。build 時に prisma db push でテーブル作成、初回のみシード投入されます 画面が真っ白なときは、(1) npm install が正常終了しているか、(2) ターミナルに ✓ Ready / ✓ Compiled が出てから開いているか(初回コンパイルは数秒かかります)、 (3) ブラウザを再読み込み(キャッシュ無効)したか、を確認してください。查看完整 README ↗
整骨院・整体・エステなどのサロン向け予約管理システム。 Next.js (App Router) + TypeScript + Prisma/PostgreSQL で構築。Vercel にそのままデプロイできます。
DATABASE_URL(上の接続文字列)を追加build 時に prisma db push でテーブル作成、初回のみシード投入されますログイン: [email protected] / beau1234
npm install
echo 'DATABASE_URL="postgresql://..."' > .env.local # ホスト型PostgreSQLの接続文字列
npm run db:reset # テーブル作成 + シード
npm run dev # http://localhost:3000
画面が真っ白なときは、(1)
npm installが正常終了しているか、(2) ターミナルに✓ Ready/✓ Compiledが出てから開いているか(初回コンパイルは数秒かかります)、 (3) ブラウザを再読み込み(キャッシュ無効)したか、を確認してください。
/reservation — 店舗ごとのタイムライン、新規/編集/削除、ステータス管理、スタッフ重複予約の自動ブロック、日付ナビ。予約カードには患者名・患者No.・メモを表示。カードの背景色は標準の8色(黄色・赤・青・緑・茶色・ピンク・オレンジ・紫)からワンタップで選べる(「その他」で任意の色、名前を付けて保存も可)/reservation 上部 — 患者番号でその人の予約一覧を表示。各予約の登録日時(予約を入力して確定した日時)・最終更新・ネット予約かどうかを出すので、二重予約の消し忘れなど予約ミスの調査に使える/settings → 特別営業日 — 特定の日だけ営業時間を変える(例: 12/29 は全店舗 8:30〜15:30)/休診・午前休・午後休にする設定を、複数店舗へまとめて登録・編集・削除できる。その日の予約表・ネット予約の枠は登録した時間で作られ、定休日に入れればその日だけ営業日になる(休憩は入力したときだけ)。保存先は各店舗の Shop.dateOverrides(JSON。特別営業は type: "custom" に営業時間・休憩を持つ)で、店舗の編集画面のカレンダーにも同じ内容が出る。ロジックは helper/utils/shopHours.ts/settings(メニュー) — メニューごとに担当できるスタッフを限定。未設定なら全員対応。設定するとオンライン予約の空き(◎/×)・自動割当がその人だけになる/booking-links — 公開予約ページ(/book/<slug>)の発行・編集・複製。対象店舗/予約可能メニュー/リマインド設定/公開停止を slug 単位で制御/booking-links → 編集「予約できる日時」 — 通常(営業日いつでも)/期間限定(◯日〜◯日)/日付限定(選んだ日だけ)/枠限定(例: 21日 14:15〜・16:15〜 の2枠だけ)から選べる。曜日・時間帯での絞り込み(枠限定と、時間帯を入れた日付限定は営業時間・休業日に関係なく受け付ける)、1枠あたりの受付数、先着の上限、受付締切(開始◯時間前まで)、受付期間(リンクを使える期間)も設定可能。同時申込でも定員を超えないよう、登録はリンク・店舗単位のロックで直列化している。設定は BookingLink.schedule(JSON)に保存し、ロジックは feature/booking-link/lib/schedule.ts/products /orders — 商品・在庫・入出庫、注文管理、クーポン発行、販売ページ設定(送料・送料無料になる金額・ポイント付与率・お知らせ・ヒーロー画像・ポイント利用の可否)/products → 販売ページ設定「ポイント」 — 通常の付与率(新規店舗は3%)とは別に、期間を区切った付与率を複数登録できる(例: 11/1〜11/30 は10%)。期間は日本時間の日付で両端を含み、重なる日は高い方。販売ページにはキャンペーン帯と「期間限定」表示が出て、付与ポイントは注文時点の率で確定する。設定は Shop.pointCampaigns(JSON)に保存し、ロジックは helper/utils/pointCampaign.ts/shop/<storeSlug> — オーガニック系の商品に合わせた専用デザイン(リネン地×モスグリーンの配色・明朝の見出し・スクロールで現れる動き。配色は app/globals.css の .theme-store、フォントは app/shop/[slug]/layout.tsx)。おすすめ/人気ランキング/セール表示、検索・絞り込み、カート、会員確認(会員番号 or メール+電話番号)によるポイント利用とマイページ(残高・ポイント履歴・注文履歴)、クーポン、店頭受取/配送、Stripe Checkout 決済(全額ポイント払いは決済なしで確定)/customers — 顧客ごとのポイント台帳・購入履歴、来院ポイント等の手動付与/減算。注文キャンセル・返金時は付与/利用ポイントを正味で自動巻き戻し設定 → 店舗 → 編集 で「通知先メールアドレス」を入れると同じ内容をメールでも受け取れます。手動登録の予約を通知するかも店舗ごとに切替可能。メール送信は任意で、失敗しても予約は成立しますbeau_active_shop_id)、Email+Password 認証、全テーブル soft deleteベル通知は追加設定なしで動きます。メールも飛ばす場合のみ、環境変数を設定してください。 送信は Resend の HTTP API を fetch で直接叩くので、追加パッケージは不要です。
RESEND_API_KEY に設定(Vercel の Environment Variables)NOTIFY_MAIL_FROM も設定(未設定なら Resend のサンドボックス送信元)設定 → 店舗 → 編集 → 通知先メールアドレス に受信したいアドレスを入力(カンマ区切りで複数可)RESEND_API_KEY が未設定、または通知先が空のときはメールを送らず、ベル通知だけが記録されます。
メール送信が失敗しても予約の登録・キャンセルは成功し、ベル通知も残ります。
本番DBが connection pooler 経由の場合、ビルド時の prisma db push はスキップされます
(transaction pooler 越しの DDL は不安定なため)。代わりに、ビルド時に
prisma/manual-migrations.sql を1文ずつ自動適用します。通常は手作業不要で、
デプロイすればスキーマが反映されます。
そのため、スキーマに列・テーブルを足したときは:
prisma/schema.prisma を編集ADD COLUMN IF NOT EXISTS / CREATE TABLE IF NOT EXISTS 等)を
prisma/manual-migrations.sql の末尾に追記適用に失敗してもビルドは通ります。その場合はビルドログに失敗した文が出るので、 Supabase SQL Editor で同じファイルを実行すれば手動でも復旧できます。 なお未適用の機能は実行時に自動で無効化されるため、画面がエラーになることはありません。
DIRECT_URL(Supabase の Session pooler / 直接接続の接続文字列)を設定すると、
上記に加えてビルド時に prisma db push による完全なスキーマ同期も走ります。
npm run dev # 開発サーバー
npm run build # プロダクションビルド
npm run lint # ESLint
npm run typecheck # 型チェックのみ
npm run db:reset # DB 初期化 + シード
prisma/manual-migrations.sqlは本番(pooler 経由)向けの仕組みです。ローカルはprisma db pushでスキーマ全体が反映されるため、実行する必要はありません。
app/ ルーティング・ページ ((auth)/(dashboard)/book)
feature/[name]/ actions(Server Actions) / services(Read) / schema(zod) / components
components/ 共通UI(ui) / レイアウト(layout)
helper/lib/ db, auth, shop-context
helper/utils/ time(Asia/Tokyo), status, cn
prisma/ schema.prisma, seed.ts
技術スタック・開発ルールの詳細は元プロジェクト概要に準拠(Supabase の代わりに Prisma/PostgreSQL を採用)。