Kojirer
August 19, 2025 · View on GitHub
- AR会謹製豚そば「こうじろう」の食券管理システム
API仕様書
How to Start Develop
0. 前提
以下のインストールおよびセットアップをすること.
- VSCode
- Docker
- Git
- Node.js
- pnpm
また,VSCode内に以下の拡張機能のインストールが必要.
- Dev Containers
1. リポジトリのクローン
Workingディレクトリにおいて,GitHubからソースファイルをクローンする.
git clone "git@github.com:ARCircle/Kojirer.git"
クローンしたディレクトリに移動し,.envファイルをコピーする.
cd Kojirer
cp example.env .env
cp example.env.container .env.container
2. 依存関係のインストール
pnpm install
3. 開発サーバーの起動
docker composeを使用して開発用のDB、フロントエンド、バックエンドのサーバーを起動する。
docker compose up
サーバーが起動したら下記コマンドでDBのマイグレーションを実行する。
pnpm run migrate:dev
DBにシードを入れる。
docker exec -i kojirer-db-local psql -U kojirer -d kojirer < packages/backend/examples/devdata.sql
起動するサーバー
| サーバー | URL |
|---|---|
| フロントエンド | http://localhost:52800 |
| バックエンド | http://localhost:52600 |
| Prisma Studio | http://localhost:5555 |
| データベース | http://localhost:5333 |
ホットリロードが有効なのでこのサーバーを起動したままホストマシンでコードを編集して開発を進められる。
How to Start Production
本番環境も一応用意している。
docker compose -f docker-compose.prod.yml up
本番環境では統合されたバックエンドサーバー (port: 52600) のみが起動する。
ディレクトリ構成
packages
Kojirerのコア部分.基本的にここをいじくることになる.
packages/backend
| Feature | Package |
|---|---|
| HTTPサーバフレームワーク | Express.js |
| ORM/マイグレーションツール | Prisma.js |
| データベース | PostgreSQL |
Routeの追加
tsファイルをsrc/routesに追加すると,そのファイル名のパスが作られる.
APIスキーマ編集
バックエンド側の型再生成
pnpm run api
DBマイグレーション
データベースへのテーブルの追加や編集といったスキーマへの操作を記録し,それらを逐次実行することで,開発者間で環境を揃えることをマイグレーションという.
このリポジトリにおけるマイグレーションの手順は以下のとおりです.
prisma/schema.prismaにおいて,スキーマを編集するpnpm run migrate:createを実行し,sqlファイルをprismaディレクトリ以下に作成される- 作成されたsqlファイルを確認し,既存のスキーマを壊すことがないか確認
pnpm run migrate:devでsqlを実行する
packages/frontend
| Feature | Package |
|---|---|
| UIライブラリ | React |
| ルーティングライブラリ | @generouted/react-router |
| UIコンポーネント | Chakra UI |
Nodeのバージョンについて
pnpmの問題かは不明だが最新のNode24を使用するとpnpm install時にnodeのJavaScript heap out of memoryエラーが発生して失敗する
そのためプロジェクトのビルドおよびCIではNode.jsのバージョンを22に設定している。
インフラ
kubernetes dashboardがデプロイされているので以下で確認できる。
初回だけ
- kubectl が入っていなければまずは何らかの方法でkubectlをインストール
- kubeconfigを
~/.kube/configに貼り付ける。(※configはディレクトリではなく拡張子なしのファイル)
次回以降
# 一時的なトークンを生成
kubectl -n kubernetes-dashboard create token admin-user
# dashboard をポートフォワーディング
kubectl -n kubernetes-dashboard port-forward svc/kubernetes-dashboard-kong-proxy 8443:443
# ブラウザで https://localhost:8443 にアクセスして上のトークンでログイン
データベース
PostgreSQLはHelmでデプロイ・管理されています。直接アクセスは基本無し。
Prisma Studio
# ポートフォワーディングでアクセス
kubectl port-forward svc/prisma-studio 5555:5555
# ブラウザで http://localhost:5555 にアクセス