Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
8c3cf9b
[wip]go-migration導入
May 12, 2025
f351841
[fix]: テーブル名変更
hikahana May 14, 2025
bbac0e4
[del]: fund_informationsのOAS削除
hikahana May 14, 2025
033f8f2
[genarated]: fund_informations削除周りの自動生成
hikahana May 14, 2025
6e0a0e2
[del]: fund_informationsAPI削除
hikahana May 14, 2025
82957fa
fund_information_repositoryを削除
hikahana May 15, 2025
5fb6ded
Add year_id column to campus_donations table and update insert statem…
hikahana May 24, 2025
d84763c
generated: campus_donation er
hikahana May 24, 2025
4de0c6f
foreign keyの修正
hikahana May 24, 2025
438e2d0
シードデータ追加コマンドの追加
Jun 4, 2025
e6a3670
Merge pull request #995 from NUTFes/fix/hikahana/change-table-name-ca…
hikahana Sep 22, 2025
106d93e
Merge branch 'develop' into feat/kubosaka/intro-db
Sep 26, 2025
e127193
migration実装
Sep 26, 2025
c92ed08
fix: makefileのコマンド修正
Nov 21, 2025
76151a4
fix: ユーザーのシードデータ修正
Nov 21, 2025
fc0751f
fix: README修正
Nov 21, 2025
c5c6083
mysqlの実行を待つスクリプト作成
Nov 21, 2025
5adcc2c
fund_informations削除
Nov 21, 2025
634f9e9
empty
Nov 21, 2025
bdfb719
収支管理csvダウンロード機能実装
Chikuwa0141 Nov 23, 2025
3d105c7
delete: fund_informations削除
Nov 26, 2025
eeb9f09
Merge pull request #992 from NUTFes/feat/kubosaka/intro-db
Kubosaka Nov 27, 2025
c86a94d
エンドポイントをincome_expenditure_managementに修正
Chikuwa0141 Nov 27, 2025
b43354a
CSVダウンロードURLに year=2025 を付与
Chikuwa0141 Nov 29, 2025
d84c840
Merge pull request #1022 from NUTFes/feat/chikuwa/fund-informations-csv
Wakai111 Nov 30, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 36 additions & 4 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# アプリコンテナ=view,api、DBコンテナ=db,minio
include finansu.env

# アプリコンテナのイメージのビルド
build:
Expand All @@ -22,12 +23,20 @@ down:
run-db:
docker compose -f compose.db.yml up -d

# dbコンテナの起動 + マイグレーション + シードデータ投入
run-db-init:
docker compose -f compose.db.yml up -d
./scripts/wait-for-mysql.sh
make migrate
make seed-db
@echo "Database initialization completed!"

# dbコンテナの停止(ずっと起動したくない時はこっちで停止)
stop-db:
docker compose -f compose.db.yml down

# ビルドと起動
build-run:
# ビルドと起動
docker compose -f compose.db.yml up -d
docker compose up --build

Expand All @@ -37,7 +46,7 @@ del-vol:

# 生成したコンテナ、イメージ、ボリューム、ネットワークを一括削除
del-all:
compose down --rmi all --volumes --remove-orphans
docker compose down --rmi all --volumes --remove-orphans

# ボリューム削除→ビルド→起動
run-rebuild:
Expand All @@ -46,7 +55,7 @@ run-rebuild:

# dbとminioの停止とボリューム削除(dbを初期化したい時)
del-db:
compose -f compose.db.yml down --volumes
docker compose -f compose.db.yml down --volumes

# apiの起動(db起動後)
run-api:
Expand Down Expand Up @@ -97,7 +106,7 @@ run-swagger:
docker compose -f compose.swagger.yml up -d

run-all:
make run-db
make run-db-init
make run
make run-swagger

Expand All @@ -106,3 +115,26 @@ gen-er:

format:
docker compose run --rm view npm run format

# マイグレーションの実行
migrate:
docker compose -f compose.migrate.yml run --rm migrate \
--path /migrations \
--database "mysql://${NUTMEG_DB_USER}:${NUTMEG_DB_PASSWORD}@tcp(${NUTMEG_DB_HOST}:${NUTMEG_DB_PORT})/${NUTMEG_DB_NAME}" \
up

# マイグレーションの実行(ダウングレード)
migrate-down:
docker compose -f compose.migrate.yml run --rm migrate \
--path /migrations \
--database "mysql://${NUTMEG_DB_USER}:${NUTMEG_DB_PASSWORD}@tcp(${NUTMEG_DB_HOST}:${NUTMEG_DB_PORT})/${NUTMEG_DB_NAME}" \
down

# マイグレーションファイルの作成
create-migration:
./scripts/create_migration.sh

# シードデータの投入
seed-db:
docker compose -f compose.db.yml run --rm db bash ./scripts/seed.sh

51 changes: 35 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,43 +1,49 @@
# FinanSu

FinanSuは、NUTFes/NUTMegの財務管理システムです。OpenAPI駆動開発により、Go + Next.jsで構築されています
FinanSu は、NUTFes/NUTMeg の財務管理システムです。OpenAPI 駆動開発により、Go + Next.js で構築されています

## 技術スタック (Tech Stack)

### Backend (API)

- **Language**: Go 1.23+ with Echo framework
- **Database**: MySQL 8.0 + GORM
- **Storage**: MinIO (S3-compatible)
- **Code Generation**: oapi-codegen (OpenAPI)
- **Testing**: Go test with testfixtures

### Frontend (View)

- **Framework**: Next.js 14 + React 18 + TypeScript
- **UI**: Chakra UI + Tailwind CSS
- **State Management**: Recoil with persistence
- **Data Fetching**: SWR with generated hooks
- **Code Generation**: Orval (OpenAPI to TypeScript)

### Infrastructure

- **Container**: Docker + Docker Compose
- **Development**: Hot reload with Air (Go) + Next.js dev server
- **API Documentation**: Swagger UI

## 環境構築 (set up)

### 基本セットアップ

```bash
make run-db # データベース起動 (MySQL + MinIO)
make run-db-init # データベース起動 (MySQL + MinIO)、マイグレーション実行、シードデータ追加
make build # アプリケーションビルド
make run # アプリケーション起動
```

### 全て一括起動

```bash
make run-all # DB + アプリ + Swagger UI
```

### 直接Docker Composeを使用する場合
### 直接 Docker Compose を使用する場合

```bash
docker compose -f compose.db.yml up -d
docker compose build
Expand All @@ -47,20 +53,23 @@ docker compose up
## 開発コマンド (Development Commands)

### コード生成 (重要)

```bash
make gen # OpenAPI仕様からAPI/フロントエンドコード生成
make gen-api # Go serverコード生成
make gen-front-api # TypeScript hooks生成
```

### テスト・品質チェック

```bash
make run-test # Go APIテスト実行
make run-eslint # フロントエンドLint実行
make format # コードフォーマット
```

### その他の便利コマンド

```bash
make run-sb # Storybook起動
make ent-db # MySQLシェルへ接続
Expand All @@ -71,6 +80,7 @@ make seed # データベースシード実行
## 開発環境詳細

### ポート設定

- **Frontend**: http://localhost:3000
- **API**: http://localhost:1323
- **Database**: localhost:3306
Expand Down Expand Up @@ -151,12 +161,13 @@ graph TB

### アーキテクチャの特徴

1. **OpenAPI駆動開発**: 全ての型安全性がOpenAPI仕様から生成
1. **OpenAPI 駆動開発**: 全ての型安全性が OpenAPI 仕様から生成
2. **Clean Architecture**: バックエンドは依存関係逆転により保守性を確保
3. **型安全性**: フロントエンドからバックエンドまで一貫した型チェック
4. **コンテナ化**: Docker Composeによる一貫した開発環境
4. **コンテナ化**: Docker Compose による一貫した開発環境

### プロジェクト構造

```
/api/ # Go backend (Clean Architecture)
├── main.go # エントリーポイント
Expand All @@ -177,13 +188,15 @@ graph TB

## 開発ワークフロー

### OpenAPI駆動開発
1. `/openapi/openapi.yaml` を編集してAPI変更
2. `make gen` でGo serverコードとTypeScript hooksを再生成
3. サーバーサイドロジックをcontrollers/use casesで実装
4. 生成されたhooksをReactコンポーネントで使用
### OpenAPI 駆動開発

1. `/openapi/openapi.yaml` を編集して API 変更
2. `make gen` で Go server コードと TypeScript hooks を再生成
3. サーバーサイドロジックを controllers/use cases で実装
4. 生成された hooks を React コンポーネントで使用

### 環境管理

- **開発**: `compose.yml`
- **ステージング**: `compose.stg.yml`
- **本番**: `compose.prod.yml`
Expand All @@ -192,38 +205,44 @@ graph TB
## ドキュメント (Documents)

### プロジェクト概要

- [FinanSu について](https://www.notion.so/nutfes-nutmeg/FinanSu-6f207506947b475aad3610210016a8a3) - 背景・目的や技術仕様
- [FinanSu 開発ガイド](https://www.notion.so/nutfes-nutmeg/FinanSu-OK-3a12e725374742608959b6bac61d702c) - 開発全般の情報

### 開発ルール
- [Git ワークフロー](https://www.notion.so/nutfes-nutmeg/git-clone-41a4a1a2df324c92a56b6d0b1b244747) - 開発時のGit使用手順

- [Git ワークフロー](https://www.notion.so/nutfes-nutmeg/git-clone-41a4a1a2df324c92a56b6d0b1b244747) - 開発時の Git 使用手順
- [Git/GitHub 基本操作](https://www.notion.so/nutfes-nutmeg/Git-Github-478cabf96e3e44909e35b3476fe08886)
- [ブランチルール](https://www.notion.so/nutfes-nutmeg/9d1646b47e184ab1b85b35e02de76e3f)
- [コミットルール](https://www.notion.so/nutfes-nutmeg/f4ace67ac1c14d849aee084327914c0f)

### API・技術仕様

- [API 一覧](https://www.notion.so/nutfes-nutmeg/FinanSu-API-92b657ec9ff64157be94486fbfc8382f)
- [OpenAPI 仕様書](http://localhost:1323/swagger/index.html) - 開発中にアクセス可能
- [Storybook](http://localhost:6006) - コンポーネントドキュメント

### 関連記事

- [FinanSu タグ記事一覧](https://www.notion.so/nutfes-nutmeg/FinanSu-db5914909df34786b7f1e4a205ebfea7)

## AI 開発支援

このプロジェクトは AI アシスタント(Claude Code、GitHub Copilot)による開発を支援しています。

- **CLAUDE.md** - Claude Code 用の開発ガイダンス
- **GitHub Copilot** - カスタム指示付きコード支援(日本語ITギャル設定
- **GitHub Copilot** - カスタム指示付きコード支援(日本語 IT ギャル設定

## 重要な注意事項

### コード生成の依存関係
- OpenAPI仕様を変更したら必ず `make gen` を実行

- OpenAPI 仕様を変更したら必ず `make gen` を実行
- 生成されたコードは手動で編集しない
- 型安全性はOpenAPI仕様からバックエンド・フロントエンドに流れる
- 型安全性は OpenAPI 仕様からバックエンド・フロントエンドに流れる

### 品質管理

- フロントエンドコミット前に `make run-eslint` と `make format` を実行
- APIテストは `make run-test` で実行
- PRは `.github/pull_request_template.md` テンプレートを使用
- API テストは `make run-test` で実行
- PR は `.github/pull_request_template.md` テンプレートを使用
119 changes: 0 additions & 119 deletions api/externals/controller/fund_information_controller.go

This file was deleted.

Loading
Loading