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。 以下為已儲存的摘錄。
会議室・フォンブースを予約する小規模オフィス向けの予約システム(PoC / ポートフォリオ)。 日単位のタイムグリッドから空きスロットを選んで予約でき、同一リソースの時間帯重複は自動でブロックします。 汎用サンプルとして一から実装したものです。特定企業のデータ・レイアウト・社内システムには依存しません。 https://room-booking-portfolio.vercel.app で公開しています。Googleログイン後のデータは 全ログインユーザーで共有されます(訪問者ごとの分離なし)。予約は本人のものだけ編集・削除できますが、 デモ用途のため予告なくデータをリセットする場合があります。 プライバシーポリシー / 利用規約 • resources/{id} … 予約対象(会議室・フォンブース): name, type, capacity, location, active • bookings/{id} … 予約: resourceId, userId, userName, title, start, end, createdAt 競合判定は UI/DB に依存しない純関数(lib/overlap.ts)に切り出し、lib/__tests__/overlap.test.ts でカバーしています。檢視完整 README ↗
会議室・フォンブースを予約する小規模オフィス向けの予約システム(PoC / ポートフォリオ)。 日単位のタイムグリッドから空きスロットを選んで予約でき、同一リソースの時間帯重複は自動でブロックします。
汎用サンプルとして一から実装したものです。特定企業のデータ・レイアウト・社内システムには依存しません。
https://room-booking-portfolio.vercel.app で公開しています。Googleログイン後のデータは 全ログインユーザーで共有されます(訪問者ごとの分離なし)。予約は本人のものだけ編集・削除できますが、 デモ用途のため予告なくデータをリセットする場合があります。
| 領域 | 採用 | 理由 |
|---|---|---|
| フロント | Next.js 16 (App Router / TypeScript) | 型安全・App Routerで見通しの良い構成 |
| スタイル | Tailwind CSS | 小規模UIを素早く一貫したデザインで実装 |
| 認証 | Firebase Authentication | Googleログインを最小実装で導入 |
| DB | Cloud Firestore | 予約データのリアルタイム性・無料枠・ルールでの権限制御 |
| テスト | Vitest | 競合判定ロジックのユニットテスト |
flowchart LR
U[ブラウザ / Next.js] -->|Google Sign-In| A[Firebase Auth]
U -->|CRUD| F[(Cloud Firestore)]
F -.->|セキュリティルールで権限制御| U
S[seed スクリプト<br/>firebase-admin] -->|resources 投入| F
resources/{id} … 予約対象(会議室・フォンブース): name, type, capacity, location, activebookings/{id} … 予約: resourceId, userId, userName, title, start, end, createdAt競合判定は UI/DB に依存しない純関数(lib/overlap.ts)に切り出し、lib/__tests__/overlap.test.ts でカバーしています。
npm install
cp .env.local.example .env.local
# .env.local に Firebase の設定値を入力
firestore.rules の内容を Firebase Console の Firestore → ルール に貼り付けて公開。
サービスアカウント鍵(プロジェクトの設定 → サービスアカウント → 新しい秘密鍵)を
serviceAccountKey.json として保存(コミット禁止・.gitignore済み)。
GOOGLE_APPLICATION_CREDENTIALS=./serviceAccountKey.json npm run seed
npm run dev # http://localhost:3000
npm test # 競合判定ロジックのテスト
npm run build # 本番ビルド
Firebase Hosting か Vercel にデプロイ可能。環境変数(NEXT_PUBLIC_FIREBASE_*)を
デプロイ先に設定すればそのまま動作します。
MIT