Javis OS
Javis OS는 기업가를 돕는 에이전시 AI로, 업무를 지원하고 함께 성장합니다
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기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 を採用)。