外資就活ハッカソンのアプリケーションレポジトリ
- Go 1.23.3
- Node.js 20.x
make go-install-tools- localhost:8080
make start-backend
make migrate-up- localhost:3000
pnpm run dev| コマンド | 説明 |
|---|---|
| make help | ヘルプを出力 |
| make gen-help-md | ヘルプをMarkdown形式で出力 |
| make go-install-tools | Goツールをインストール |
| make migrate-new | マイグレーションファイル作成 |
| make migrate-status | マイグレーションステータス確認 |
| make migrate-up | マイグレーション実行 |
| make migrate-down | マイグレーションロールバック |
| make migrate-drop | データベース削除 |
| make migrate-seed | データベース初期データ投入 |
| make gen | 生成系のコマンドを実行 |
| make gen-dbmodel | DBモデルを生成 |
| make clean-dbmodel | DBモデルを削除 |
| make gen-api | schema.graphqlsとmodel.graphqlsからGoのコードを生成する |
| make start-backend | APIとDBの起動 |
| make stop-backend | APIとDBの停止 |
| make build-backend-nocache | nocacheでビルド |
rootにあるファイル・ディレクトリは以下のようになっています。
$ tree -L 1
.
├── Makefile
├── README.md
├── backend ⭐goを使ったAPIサーバーのディレクトリ
├── go.mod
├── go.sum
├── gqlgen.yml
├── graphql.config.ts
├── package.json
├── pnpm-lock.yaml
├── pnpm-workspace.yaml
├── process-compose.yml
├── tools.go
└── webapp ⭐React/Next.jsを使ったフロントエンドのディレクトリ
今回の実装で重要なディレクトリはbackendとwebappです。
backendとwebappの詳しい説明は、それぞれのディレクトリのREADME.mdに記載しています。
その他、様々な設定ファイルがrootディレクトリに配置されています。
- backendの設定ファイル
go.modは、backend配下のgoアプリケーションの依存関係を管理するためのファイルです。依存関係をインストールした結果、go.sumが生成され、依存関係の正確なバージョンが固定されます。gqlgen.ymlは、backend配下のgoのGraphQLサーバーを生成するためのツールgqlgenの設定ファイルです。tools.goは、コマンドで利用するgoのツールをインストールするためのファイルです。make go-install-toolsでインストールされます。- webappの設定ファイル
graphql.config.tsは、webapp配下のGraphQLクライアントを生成するためのツールgraphql-codegenの設定ファイルです。package.jsonは、webapp配下のReact/Next.jsアプリケーションの依存関係を管理するためのファイルです。- パッケージ管理ツール
pnpmでpackage.jsonの依存関係をインストールした結果、pnpm-lock.yamlが生成され、依存関係の正確なバージョンが固定されます。 pnpm-workspace.yamlではpnpmで管理するディレクトリを指定しています。- devboxの設定ファイル
devbox.jsonは、devboxの設定ファイルです。依存関係の正確なバージョン固定のために、devbox.lockが生成され、依存関係の正確なバージョンが固定されます。process-compose.ymlは、devboxで利用するプロセスマネージャーの設定ファイルです。
これらの設定ファイルがrootに置かれている事によって、goコマンドやpnpmコマンドを実行する際に、それぞれのディレクトリに移動する必要がなくなっています。