ワークショップ5 — REST API(ガソリンスタンド管理システム)

Web

概要

本リポジトリは「🛢️ REST API для мережі АЗС — Workshop 5」と題された学習用/演習用プロジェクトで、作者は Погоня Андрій。サーバーサイドは TypeScript 製の Express アプリで、データ永続化は TypeORM を通じて PostgreSQL を利用します。主要機能はガソリンスタンド業務に関する CRUD(顧客、オペレーター、燃料などのエンティティ)を提供する API 群で、Docker によるコンテナ化とマイグレーション管理が組み込まれています。Postman コレクションで API のテストを行うワークフローも示されており、学習や小規模サービスのプロトタイプに適した構成です。(約300字)

GitHub

リポジトリの統計情報

  • スター数: 1
  • フォーク数: 0
  • ウォッチャー数: 1
  • コミット数: 30
  • ファイル数: 30
  • メインの言語: TypeScript

主な特徴

  • Express + TypeORM による RESTful CRUD API 実装
  • PostgreSQL を想定した DB 設計とマイグレーション管理
  • Docker を使ったコンテナ化(開発・起動の再現性)
  • 開発品質向上のための ESLint / commitlint / commitizen 設定

技術的なポイント

このプロジェクトは TypeORM のエンティティ(src/orm/entities)でドメインモデルを定義し、controllers ディレクトリ下で各リソース(Client、Operator、Fuel 等)の CRUD ロジックを Express ルーターに紐付ける典型的なレイヤー分離を採っています。TypeScript による型付けでコントローラ・サービス間の契約を明確化し、DB 接続や環境依存値は .env 経由で管理することで環境差を吸収します。マイグレーションが用意されているためスキーマ変更をコードベースで追跡でき、Docker と組み合わせれば CI/CD パイプラインや本番デプロイ前の統一テスト環境を容易に構築できます。

開発ツール周りでは ESLint による静的解析、.commitlintrc.ts と .czrc(commitizen)によるコミットメッセージ規約の導入でリポジトリの可読性・メンテナンス性を高めています。Postman を用いた手動/自動テストが想定されており、API ドキュメント代替としてのコレクション運用が可能です。拡張点としては認証(JWT)・認可・入力バリデーション(class-validator 等)・ユニット/統合テスト(Jest + supertest)を追加すれば、学習用から実運用レベルへの橋渡しがスムーズになります。

さらに、Dockerfile / docker-compose を利用すると開発マシンに依存しない再現可能な環境が手に入り、複数サービス(API + DB)の起動とマイグレーション実行を自動化できます。TypeORM のRepository/API をうまく分離すれば、リポジトリを通したテストが容易になる設計です。(約900〜1200字程度の技術解説)

プロジェクトの構成

主要なファイルとディレクトリ:

  • .commitlintrc.ts: file
  • .czrc: file
  • .dockerignore: file
  • .env: file
  • .eslintrc.js: file

…他 25 ファイル

README 抜粋から分かる階層(例):

  • src/
    • controllers/
      • Client/
      • Operator/
      • Fuel/
    • orm/
      • entities/
        • Client/
        • Operator/
    • その他(config、migrations、routes、index/server 起動スクリプトなどが想定されます)

まとめ

学習からプロトタイプまで扱える、Express+TypeORM+Postgres を試すのに丁度良い構成です。(約50字)

リポジトリ情報:

READMEの抜粋:

🛢️ REST API для мережі АЗС — Workshop 5

Автор: Погоня Андрій ІПЗ‑3.03

📌 Опис проєкту

Проєкт реалізує серверну частину АЗС на базі Express + TypeORM + PostgreSQL. Передбачає CRUD API для основних сутностей, контейнеризацію через Docker, використання міграцій та тестування через Postman.


📁 Структура файлів

src/
 ├── controllers/
 │   ├── Client/
 │   ├── Operator/
 │   ├── Fuel/
 ├── orm/
 │   ├── entities/
 │   │   ├── Client/
 │   │   ├── Operator/
 │   │...