業務効率化のためのビジネス管理システムです。Excelベースのデータ入力と自動計算機能を提供します。

- メール/パスワードログイン
- ロールベース権限管理(管理者、一般ユーザー)
- グローバルパラメータの管理
- システム全体の設定変更
- Excelライクなデータ入力フォーム
- リアルタイム自動計算
- データの自動保存
- PDF出力機能
- スタート
- MQ(現状)
- ①利益
- ②⑧MQ(未来)
- ③給料
- ④経費
- ⑤製造原価(人)
- ⑥製造(経費)
- ⑦原価詳細
- 損益分岐点
- 進捗実績値入力シート
- 部門別販売計画
- 利益計画表
- フロントエンド: Next.js 14 (App Router), TypeScript, Tailwind CSS
- バックエンド: Node.js + Express (独立サーバー)
- データベース: MongoDB
- ODM: Mongoose
- 認証: JWT
- PDF生成: jsPDF
- Excel処理: ExcelJS
- UIコンポーネント: shadcn/ui
- 開発: フロントエンドとバックエンドの分離アーキテクチャ
- Node.js 18以上
- MongoDB 4.4以上
- npm または yarn
- LibreOffice (PDF出力機能に必要)
- 日本語フォント (Ubuntu/Linux環境で日本語表示に必要)
- リポジトリをクローン
git clone <repository-url>
cd business-system- LibreOfficeのインストール
Windows:
- LibreOffice公式サイトからダウンロードしてインストール
- または Chocolatey を使用:
choco install libreoffice
macOS:
- LibreOffice公式サイトからダウンロードしてインストール
- または Homebrew を使用:
brew install --cask libreoffice
Ubuntu/Debian:
sudo apt-get update
sudo apt-get install libreoffice- 日本語フォントのインストール(Ubuntu/Linux環境のみ)
# 日本語フォントをインストール
sudo apt-get install fonts-noto-cjk fonts-noto-cjk-extra
# フォントキャッシュを更新
sudo fc-cache -fv注意: Ubuntu/Linux環境では、PDF出力時に日本語文字が正しく表示されるよう、上記のフォントインストールが必要です。
- 依存関係をインストール
自動セットアップ(推奨)
# Windows
setup.bat
# Linux/Mac
chmod +x setup.sh
./setup.sh手動セットアップ
# すべての依存関係をインストール
npm run install:all
# または個別にインストール
npm install
cd server && npm install
cd ../client && npm install- 環境変数を設定
サーバー側
cp server/env.example server/.envクライアント側
cp client/env.example client/.env.local各.envファイルを編集して、適切な設定を行ってください。
- データベースをセットアップ
# MongoDBを起動(ローカル環境の場合)
mongod
# サンプルデータを作成
npm run db:seed- 開発サーバーを起動
オプション1: フロントエンドとバックエンドを同時に起動
npm run devオプション2: 個別に起動
# バックエンドサーバー (ポート3001)
npm run dev:server
# フロントエンド (ポート3000) - 別のターミナルで
npm run dev:clientアプリケーションは以下でアクセスできます:
- フロントエンド:
http://localhost:3000 - バックエンドAPI:
http://localhost:3001
├── server/ # Express バックエンド
│ ├── index.ts # メインサーバー
│ ├── routes/ # API ルート
│ │ ├── auth.ts # 認証
│ │ ├── admin.ts # 管理者機能
│ │ ├── user.ts # ユーザー機能
│ │ ├── exportExcel.ts # Excel出力
│ │ └── exportPDF.ts # PDF生成
│ ├── middleware/ # ミドルウェア
│ ├── models/ # MongoDBモデル
│ ├── services/ # ビジネスロジック
│ ├── repositories/ # データアクセス層
│ ├── lib/ # ユーティリティ
│ └── package.json # サーバー依存関係
├── client/ # Next.js フロントエンド
│ ├── app/ # Next.js App Router
│ ├── components/ # React コンポーネント
│ │ ├── ui/ # shadcn/ui コンポーネント
│ │ ├── auth/ # 認証コンポーネント
│ │ ├── layout/ # レイアウトコンポーネント
│ │ └── sheets/ # シートコンポーネント
│ ├── lib/ # フロントエンドユーティリティ
│ └── package.json # クライアント依存関係
├── package.json # ルート依存関係
└── README.md # ドキュメント
- _id: ユーザーID (ObjectId)
- email: メールアドレス
- name: 名前
- password: ハッシュ化されたパスワード
- role: ロール(ADMIN/USER)
- createdAt: 作成日時
- updatedAt: 更新日時
- _id: パラメータID (ObjectId)
- key: パラメータキー
- value: パラメータ値
- description: 説明
- createdAt: 作成日時
- updatedAt: 更新日時
- _id: 入力ID (ObjectId)
- user: ユーザーID
- sheet: シート名
- cellKey: セルキー
- value: 入力値
- createdAt: 作成日時
- updatedAt: 更新日時
すべてのAPIエンドポイントは http://localhost:3001 で提供されます。
POST /api/auth/login- ログインPOST /api/auth/logout- ログアウトGET /api/auth/me- 現在のユーザー情報
GET /api/admin/parameters- グローバルパラメータ取得POST /api/admin/parameters- グローバルパラメータ更新
GET /api/user/inputs- ユーザー入力データ取得POST /api/user/inputs- ユーザー入力データ保存POST /api/calculate- 計算実行POST /api/export/pdf- PDF生成POST /api/export/excel- Excel生成
GET /api/health- サーバー状態確認
TypeScriptで実装された純粋関数ベースの計算エンジンです。
- 基本的な四則演算
- ビジネス固有の計算(利益率、損益分岐点など)
- リアルタイム計算
- 依存関係の自動解決
- 利益計算:
売上 - コスト - 利益率:
(利益 / 売上) × 100 - 損益分岐点:
固定費 / 貢献利益
問題: PDF出力時に日本語文字が四角形(□)で表示される
- 原因: Ubuntu/Linux環境で日本語フォントが不足
- 解決方法:
sudo apt-get install fonts-noto-cjk fonts-noto-cjk-extra sudo fc-cache -fv
問題: LibreOfficeのGUIウィンドウが表示される
- 原因: Windows環境でLibreOfficeがヘッドレスモードで実行されていない
- 解決方法: 最新のコードでは自動的にヘッドレスモードで実行されます
問題: PDF出力が失敗する
- 原因: LibreOfficeがインストールされていない、またはパスが通っていない
- 解決方法:
- LibreOfficeが正しくインストールされているか確認
- 環境変数でLibreOfficeのパスを指定(必要に応じて)
Windows:
- LibreOfficeは自動的に検出されます
- GUIウィンドウは表示されません(ヘッドレスモード)
macOS:
- LibreOfficeは自動的に検出されます
- 日本語フォントは標準で利用可能
Ubuntu/Linux:
- 日本語フォントのインストールが必要
- LibreOfficeのインストールが必要
- フォントキャッシュの更新が必要
- 環境変数の設定
MONGODB_URI="mongodb+srv://username:password@cluster.mongodb.net/business_system"
JWT_SECRET="your-production-jwt-secret"
FRONTEND_URL="https://your-domain.com"
CONVERTAPI_SECRET="your-convertapi-secret"- データベースセットアップ
# MongoDBクラスターに接続してデータベースを作成
# サンプルデータを投入
npm run db:seed- アプリケーションのビルド
npm run build
npm startこのプロジェクトはMITライセンスの下で公開されています。
問題や質問がある場合は、GitHubのIssuesページで報告してください。