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://inventory-portfolio-one.vercel.app で公開しています。「小規模チームで共有する台帳」という 設計のため、Googleログインさえすれば誰でも全品目を編集・削除できます(所有者の概念なし)。 訪問者ごとの分離もありません。デモ用途のため予告なくデータをリセットする場合があります。 プライバシーポリシー / 利用規約 • items/{id} … 品目: name, sku, category, quantity, minQuantity, unit, location, updatedAt • movements/{id} … 入出庫履歴: itemId, type(in|out|adjust), delta, resultingQuantity, reason, userId, userName, createdAt檢視完整 README ↗
備品・消耗品の在庫を管理する小規模チーム向けの在庫管理アプリ(PoC / ポートフォリオ)。 品目マスタの管理、入出庫・棚卸調整、発注点による低在庫アラート、品目ごとの履歴を提供します。
汎用サンプルとして一から実装したものです。特定企業のデータ・資産・社内システムには依存しません。
https://inventory-portfolio-one.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)]
U -.->|トランザクション| TX[items.quantity + movements を原子的に更新]
TX --> F
S[seed スクリプト<br/>firebase-admin] -->|items 投入| F
items/{id} … 品目: name, sku, category, quantity, minQuantity, unit, location, updatedAtmovements/{id} … 入出庫履歴: itemId, type(in|out|adjust), delta, resultingQuantity, reason, userId, userName, createdAt在庫増減と低在庫判定は UI/DB に依存しない純関数(lib/stock.ts)に切り出し、
lib/__tests__/stock.test.ts でカバーしています。在庫数の更新は Firestore トランザクション
(lib/inventory.ts の applyStockMovement)で、数量更新と履歴追加を原子的に行います。
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