- AR会謹製豚そば「こうじろう」の食券管理システム
以下のインストールおよびセットアップをすること.
- VSCode
- Docker
- Git
- Node.js
- pnpm
また,VSCode内に以下の拡張機能のインストールが必要.
- Dev Containers
Workingディレクトリにおいて,GitHubからソースファイルをクローンする.
git clone "git@github.com:ARCircle/Kojirer.git"
クローンしたディレクトリに移動し,.env
ファイルをコピーする.
cd Kojirer
cp example.env .env
cp example.env.container .env.container
pnpm install
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 |
ホットリロードが有効なのでこのサーバーを起動したままホストマシンでコードを編集して開発を進められる。
本番環境も一応用意している。
docker compose -f docker-compose.prod.yml up
本番環境では統合されたバックエンドサーバー (port: 52600) のみが起動する。
Kojirerのコア部分.基本的にここをいじくることになる.
Feature | Package |
---|---|
HTTPサーバフレームワーク | Express.js |
ORM/マイグレーションツール | Prisma.js |
データベース | PostgreSQL |
tsファイルをsrc/routes
に追加すると,そのファイル名のパスが作られる.
バックエンド側の型再生成
pnpm run api
データベースへのテーブルの追加や編集といったスキーマへの操作を記録し,それらを逐次実行することで,開発者間で環境を揃えることをマイグレーションという.
このリポジトリにおけるマイグレーションの手順は以下のとおりです.
prisma/schema.prisma
において,スキーマを編集するpnpm run migrate:create
を実行し,sqlファイルをprisma
ディレクトリ以下に作成される- 作成されたsqlファイルを確認し,既存のスキーマを壊すことがないか確認
pnpm run migrate:dev
でsqlを実行する
Feature | Package |
---|---|
UIライブラリ | React |
ルーティングライブラリ | @generouted/react-router |
UIコンポーネント | Chakra UI |
pnpmの問題かは不明だが最新のNode24を使用するとpnpm install時にnodeのJavaScript heap out of memoryエラーが発生して失敗する
そのためプロジェクトのビルドおよびCIではNode.jsのバージョンを22に設定している。