Skip to content
This repository has been archived by the owner on Nov 27, 2023. It is now read-only.

Latest commit

 

History

History
37 lines (34 loc) · 3.11 KB

ARCHITECTURE.md

File metadata and controls

37 lines (34 loc) · 3.11 KB

アーキテクチャの概要

ChatGPT に作ってもらいました.

ディレクトリ構造

  • LICENSE:プロジェクトのライセンス情報が含まれるファイルです.
  • README.md:プロジェクトの概要やドキュメンテーションが含まれるファイルです.
  • next.config.js:Next.js の環境設定ファイルです.
  • package-lock.jsonおよびpackage.json:プロジェクトの依存関係とパッケージ情報が含まれるファイルです.
  • prisma/:Prisma ORM の関連ファイルが格納されるディレクトリです.
    • schema.prisma:Prisma のスキーマファイルです.
    • migrations/:Prisma のマイグレーションファイルが格納されるディレクトリです.
  • public/:公開される静的ファイルが格納されるディレクトリです.
    • manifest.json:PWA(プログレッシブウェブアプリ)のマニフェストファイルです.
    • 残りはアイコン系です.
    • next build時に生成される Service Worker 関連のファイルが置かれます(.gitignore済み)
  • src/:ソースコードが格納されるディレクトリです.
    • components/:コンポーネントが格納されるディレクトリです.
      • 複数画面で共通なコンポーネントだけ置いてあります.
      • それ以外は各画面のファイルに置いてあります.
    • hooks/:フロントエンド用カスタムフックが格納されるディレクトリです.
      • Alert.tsx:左下に表示されるアラートを管理するフックです.Context を利用しています.
      • DBState.tsx:IndexedDB の状態を管理するフックです.Context を利用しています.
      • idb.ts:IndexedDB のラッパー関数が格納されるファイルです.SWR で包んでいます.
      • swr.ts:REST API のラッパー関数が格納されるファイルです.SWR で包んでいます.
      • UserState.tsx:インターネットの接続状態とサインイン状態を管理するフックです.Context を利用しています.
    • lib/:バックエンド用の共通コードが格納されるディレクトリです.
      • auth.ts:認証関係の複数の関数を定義しています.
      • env.ts:環境変数をスキーマにより検証し,型付きでエクスポートしています.
      • handler.ts:Route Handler に REST API の型をつける簡単なラッパーです.
      • prisma.ts:Prisma のインスタンスを置いています.
    • app/:ページコンポーネントが格納されるディレクトリです.
      • api/:REST API および認証系のエンドポイントが格納されるディレクトリです.
    • styles/:スタイル関連のファイルが格納されるディレクトリです.
    • types/:型定義ファイルが格納されるディレクトリです.REST API の型定義を含みます.
  • tsconfig.json:TypeScript のビルド設定と関連するビルド情報が含まれるファイルです.