Skip to content

ARCircle/Kojirer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Kojirer

  • AR会謹製豚そば「こうじろう」の食券管理システム

API仕様書

How to Start Develop

0. 前提

以下のインストールおよびセットアップをすること.

  • VSCode
  • Docker
  • Git
  • Node.js
  • pnpm

また,VSCode内に以下の拡張機能のインストールが必要.

  • Dev Containers

1. リポジトリのクローン

Workingディレクトリにおいて,GitHubからソースファイルをクローンする.

git clone "[email protected]: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マイグレーション

データベースへのテーブルの追加や編集といったスキーマへの操作を記録し,それらを逐次実行することで,開発者間で環境を揃えることをマイグレーションという.

このリポジトリにおけるマイグレーションの手順は以下のとおりです.

  1. prisma/schema.prismaにおいて,スキーマを編集する
  2. pnpm run migrate:createを実行し,sqlファイルをprismaディレクトリ以下に作成される
  3. 作成されたsqlファイルを確認し,既存のスキーマを壊すことがないか確認
  4. 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 にアクセス

About

AR会が学祭で提供するラーメン「こうじろう」の注文管理システム

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors 10