JornAPIは、複式簿記システムのAPIサーバーである。仕訳帳、元帳、試算表の機能を提供し、外部公開を想定したセキュリティ機能を備えている。 又、本プロジェクトはバックエンドエンジニアリングのポートフォリオとして作成されたものである。
- 仕訳管理: 仕訳の登録・照会・編集・削除
- 元帳管理: 勘定科目別の元帳照会
- 試算表: 期間別試算表の生成
- 期間ロック: 会計期間の締め切り管理
- 勘定科目マスタ: 勘定科目の管理
- データ整合性: 複式簿記の整合性チェック
- セキュリティ機能: CORS、レート機能、セキュリティヘッダ
- 監視・ログ: パフォーマンス監視と構造化ログ
JournAPIは複式簿記の原則に従って設計されている。
- 借方・貸方の一致: 全ての取引で借方合計と貸方合計が一致
- 勘定科目体系: 資産、負債、純資産、収益、費用の5つの区分
- 期間管理: 会計期間(YYYY-MM)による取引の管理
- データ整合性: 仕訳→元帳→試算表の一貫性を保証
このプロジェクトは以下のSpring Boot Initializrコマンドで作成されました:
curl https://start.spring.io/starter.zip \
-d type=maven-project \
-d language=java \
-d bootVersion=3.5.4 \
-d javaVersion=21 \
-d groupId=com.journapi \
-d artifactId=journapi \
-d name=JournAPI \
-d packaging=jar \
-d dependencies=web,data-jpa,validation,postgresql,flyway,lombok \
-o journapi.zip
unzip -q journapi.zip -d journapi- Spring Boot: 3.5.4
- Java: 21
- Maven: プロジェクト管理
- Spring Web: RESTful API
- Spring Data JPA: データアクセス
- Spring Validation: 入力検証
- PostgreSQL: データベース
- Flyway: データベースマイグレーション
- Lombok: ボイラープレートコード削減
詳細な環境設定については environment_rules.md を参照してください。
macOSの場合:
brew install postgresql初回セットアップ時(一度だけ実行):
# PostgreSQLサービスの起動
brew services start postgresql
# 起動確認
brew services list | grep postgresql開発作業時の起動・停止:
# PostgreSQLサービスの起動
brew services start postgresql
# PostgreSQLサービスの停止
brew services stop postgresql
# PostgreSQLサービスの再起動
brew services restart postgresql
# サービス状態の確認
brew services list | grep postgresql注意: 開発作業を開始する前に、必ずPostgreSQLサービスを起動してください。
自動セットアップスクリプトを使用:
./setup-database.sh手動セットアップの場合:
-- PostgreSQLに接続
psql -U postgres
-- データベースとユーザーの作成
CREATE DATABASE journapi;
CREATE USER devuser WITH PASSWORD 'devpass';
GRANT ALL PRIVILEGES ON DATABASE journapi TO devuser;./mvnw spring-boot:run- Docker Desktop をインストール
- Docker Composeが含まれていることを確認
# アプリケーションとデータベースの起動
docker-compose up -d
# ログの確認
docker-compose logs -f
# 停止
docker-compose down# PostgreSQLコンテナの起動
docker run --name journapi-postgres \
-e POSTGRES_DB=journapi \
-e POSTGRES_USER=devuser \
-e POSTGRES_PASSWORD=devpass \
-p 5432:5432 \
-d postgres:14
# アプリケーションの起動
./mvnw spring-boot:runアプリケーション起動時に自動実行されます:
# マイグレーション状況の確認
./mvnw flyway:info
# 手動マイグレーション実行
./mvnw flyway:migrate# データベース接続テスト
./mvnw test -Dtest=DatabaseConnectionTest
# 直接データベースに接続
psql journapi -U devuser -c "SELECT COUNT(*) FROM accounts;"-
データベース & マイグレーション ✅
- Flyway 初期マイグレーション (accounts, journal_headers, journal_lines)
- JDBC 接続確認 (dev環境)
-
勘定科目マスタ管理
- 勘定科目のCRUD操作
- 勘定科目の階層構造管理
- 勘定科目の検索・フィルタリング
-
仕訳帳管理
- 仕訳の登録・更新・削除
- 仕訳の検索・フィルタリング
- 複式簿記の整合性チェック
-
基本的な会計処理
- 元帳の生成
- 試算表の生成
- 期間別データの管理
-
API設計 & 実装
- RESTful API設計
- エラーハンドリング
- バリデーション
-
セキュリティ機能
- CORS設定
- レート制限
- セキュリティヘッダー
-
監視・ログ
- パフォーマンス監視
- 構造化ログ
- メトリクス収集
-
テスト
- 単体テスト
- 統合テスト
- E2Eテスト
- データベーススキーマ仕様 - 勘定科目マスタ・仕訳帳管理の基盤
- ER図 - データベース設計の視覚的理解
- マイグレーションスクリプト - データベース構築・運用
- API設計ドキュメント - RESTful API設計・実装