Skip to content

Commit

Permalink
Markdown設計書 (#176)
Browse files Browse the repository at this point in the history
  • Loading branch information
ma91n authored Oct 4, 2024
1 parent 89cd772 commit 0123b70
Show file tree
Hide file tree
Showing 13 changed files with 296 additions and 176 deletions.
39 changes: 23 additions & 16 deletions documents/forMarkdown/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,16 +20,14 @@ Markdown に限った話では無いが、どういった内容を設計書に

本規約は以下の前提で作成されている

- チーム/プロジェクトが 3 ~ 30 名程度規模程度
- チーム/プロジェクトが 3 ~ 10 名程度の規模
- Git(GitHub, GitLab)で管理され、コードと設計書が同一リポジトリで管理される
- システム開発で必要なアプリケーション開発

## フォルダ階層

リポジトリ直下に `docs` フォルダを作成し、その配下に設計ドキュメントとなる Markdown ファイルを配備する。

<!-- TODO 【相談】docsだと公開フォルダとみなされるかもなので、documentsとかにしたほうが良いか? -->

次はバックエンド、フロントエンド、インフラのコードをモノリポで管理している例である。

```sh
Expand Down Expand Up @@ -67,47 +65,56 @@ docs

## システム構成図

TODO 論理, 物理, etc.
図は基本的に変更差分がGitと相性が良い、PlantUML(またはMermaid.js)で作成すること。

システム構成図などは上記では対応しにくいことが多いため、diagrams.net(draw.io)で作成する。

拡張子は以下のいずれかで作成する。

- `.drawio.png`
- `.drawio.jpg`
- `.drawio.svg`

## フロントエンド

- UI設計(Figma)
- [](画面設計書.md)
以下の方針を取る。

- Figmaを用いて、画面遷移、画面表示項目を定義する
- Markdown設計書には、Figmaで判断可能な見た目の情報は記載しない
- Markdown設計書には、Web APIの呼び出しやイベントの定義、パラメータの受け渡し、バリデーションロジックなどを定義する。

[サンプル設計書](future_muscle_partner)を参考にする。

## バックエンド

### テーブル定義書

A5ER
[A5:SQL Mk-2](https://a5m2.mmatsubara.com/)を用い、`erd.a5er` という名称で管理する。

以下の情報の管理
以下の情報の管理は `erd.a5er` で行えないため、別で定義する。

- 保持期限
- 個人情報有無

パーティションなどはa5erで管理想定

### 区分値

TODO JSON/YAML で管理推奨など
[区分値設計書](区分値設計書.md) を参考にする。

### Web API 設計書

API 定義書は OpenAPI.yaml で記載する

TODO 各エンドポイント毎のプログラム設計
API 定義書は `openapi.yaml` で記載すること。

### プログラム設計書

TODO
[プログラム設計書](プログラム設計書.md)を参考にする。

### I/F 定義書

I/F 定義書は、システム間の連携について定義と、その受信/配信処理の設計書です。

システム I/F は連携先の対向システムが存在するため、認識齟齬が無いように、どのようなプロトコル・項目であるかを定義する必要があります。

- [レイアウト](IF定義書.md)
[IF定義書](IF定義書.md)を参考にする。

# Resources

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# 画面

* Figma URL: xxx
* Figma URL: <準備中>

## 標準画面

Expand All @@ -15,7 +15,7 @@

| ID | 論理名 | 備考 |
|--------------|----------|----|
| [UIM01](UIM01) | xxx | |
| [UIM02](UIM02) | xx | |
| [UIM03](UIM03) | xx | |
| [UIM04](UIM04) | xxx | |
| [UIM01](UIM01) | ログイン | |
| [UIM02](UIM02) | トレーナー検索 | |
| [UIM03](UIM03) | カレンダー予約 | |
| [UIM04](UIM04) | 決済 | |
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,35 @@

## イベント概要

| No | イベント名 | イベント分類 | 処理説明 |
|----|-----------|--------|-------------------------------------|
| 1 | 初期表示 | 初期表示 | xxxx |
| 2 | xxx | ボタン押下 | xxx |
| No | イベント名 | イベント分類 | 処理説明 |
|----|--------|--------|------|
| 1 | 初期表示 | 初期表示 | |
| 2 | ログインする | ボタン押下 | |
| 3 | 会員登録 | ボタン押下 | |

## イベント詳細

### 1. 初期表示

### 2. xxx
モーダルを起動。初期パラメータは無し。

### 2. ログインする

利用API:

| ID | URL | Parameter |
|--------|-------------|-------------|
| API001 | POST /login | 入力フォームの値を取得 |

画面表示制御:

- HTTPステータスが400系
- 「IDまたはパスワードが異なります」を表示
- HTTPステータスが500系
- メッセージID(MSG_BIZ_111)表示
- HTTPステータスが200
- [UIS02](../UIS02)に遷移

### 3. 会員登録

...
Original file line number Diff line number Diff line change
Expand Up @@ -15,22 +15,24 @@

## イベント概要

| No | イベント名 | イベント分類 | 処理説明 |
|----|-----------|--------|-------------------------------------|
| 1 | 初期表示 | 初期表示 | xxxx |
| 2 | 検索 | 検索ボタン押下 | xxx |
| No | イベント名 | イベント分類 | 処理説明 |
|----|-------|--------|------|
| 1 | 初期表示 | 初期表示 | |
| 2 | 検索 | ボタン押下 | |

## イベント詳細

### 1. 初期表示

モーダルを起動。初期パラメータは無し。

### 2. 検索

利用API:

| ID | URL | Parameter |
| --- | --- | -- |
| API-007 | GET /trainers | モーダルに指定された値をクエリパラメータに設定する |
| ID | URL | Parameter |
|--------|---------------|---------------------------|
| API007 | GET /trainers | モーダルに指定された値をクエリパラメータに設定する |

画面表示制御:

Expand All @@ -40,3 +42,5 @@
- 「条件に一致するコーチは存在しませんでした」と表示する
- HTTPステータスが200以外
- メッセージID(MSG_BIZ_111)表示
- HTTPステータスが200
- [UIS03](../UIS03)に遷移
Original file line number Diff line number Diff line change
Expand Up @@ -13,18 +13,43 @@

## イベント概要

| No | イベント名 | イベント分類 | 処理説明 |
|----|-----------|--------|-------------------------------------|
| 1 | 初期表示 | 初期表示 | xxxx |
| 2 | 日時設定 | カレンダーを選択 | xxx |
| 3 | 日時指定 | 設定された日時で予約を指定する | xxx |
| No | イベント名 | イベント分類 | 処理説明 |
|----|-------|-----------------|-----------------------------------|
| 1 | 初期表示 | 初期表示 | 指定されたトレーナーと、ログイン中のトレーニーのスケジュールを表示 |
| 2 | 日時設定 | カレンダーを選択 | ドラッグ&ドロップで範囲指定 |
| 3 | 日時指定 | 設定された日時で予約を指定する | |

## イベント詳細

### 1. 初期表示

起動パラメータ:

| Name | Value | Memo |
|------------|-------------------------------|------|
| trainer_id | {"trainer_id":"<trainer_id>"} | |
| trainee_id | {"trainee_id":"<trainee_id>"} | |

利用API:

| ID | URL | Parameter |
|--------|-------------------------------------|------------|
| API011 | GET /trainers/{trainer_id}/schedule | 初期パラメータを設定 |
| API013 | GET /bookings/{trainee_id} | 初期パラメータを設定 |

画面表示制御:

- API011
- 0件の場合は何もしない
- 1件以上存在した場合は、カレンダーには「ブロック」と表示する
- API026
- 0件の場合は何もしない
- 1件以上存在した場合は、カレンダーに「予約あり」と表示する

### 2. 日時設定

選択された日付がカレンダーに追加される。

### 3. 日時指定

UIM04 を起動する。
[UIM04](../UIM04) を起動する。
Original file line number Diff line number Diff line change
Expand Up @@ -14,16 +14,33 @@

## イベント概要

| No | イベント名 | イベント分類 | 処理説明 |
|----|-----------|--------|-------------------------------------|
| 1 | 初期表示 | 初期表示 | xxxx |
| 2 | 日時指定に戻る | ボタン押下 | xxx |
| 2 | 決済する | ボタン押下 | xxx |
| No | イベント名 | イベント分類 | 処理説明 |
|----|---------|--------|-----------|
| 1 | 初期表示 | 初期表示 | |
| 2 | 日時指定に戻る | ボタン押下 | UIM003に遷移 |
| 2 | 決済する | ボタン押下 | |

## イベント詳細

### 1. 初期表示

起動パラメータ:

| Name | Value | Memo |
|------------|-------------------------------|------|
| trainer_id | {"trainer_id":"<trainer_id>"} | |
| menu_id | {"menu_id":"<menu_id>"} | |

利用API:

| ID | URL | Parameter |
|--------|---------------|---------------------------|
| APIxxx | トレーニングメニュー取得 | 初期パラメータを設定 |

### 2. 日時指定に戻る

[UIM03](../UIM03)に遷移

### 3. 決済

...
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,39 @@

### 1. 初期表示

起動パラメータ:

| Name | Value | Memo |
|-----------|-------------------------|--------|
| userState | {"user_id":"<user_id>"} | ログイン状態 |

初期表示イベント:

- ログイン済み判定

利用API:

| ID | URL | Parameter |
|---------|---------------------------|------------------------------|
| API-005 | GET /profile/{trainee_id} | trainee_id=userState.user_id |

画面表示制御:

- HTTPステータスが500系
- 何もしない(無視で良い)、初期表示のまま
- HTTPステータスが400系
- 未ログインとして、初期表示のまま
- HTTPステータスが200
- すでにログイン中と判断し、(画面表示制御1)へ

画面表示制御1:

- 「会員登録/ログイン」表示を、サムネイル画像(thumbnail_url)に書き換える

### 2. トレーナーを探す

UIM02 呼び出し
[UIM002](../UIM02) 呼び出し

### 3. 会員登録/ログイン

UIM01 呼び出し
[UIM001](../UI001) 呼び出し
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@

起動パラメータ:

| Name | Value | Memo |
| --- | --- | --- |
| Name | Value | Memo |
|-----------|-------------------------|--------|
| userState | {"user_id":"<user_id>"} | ログイン状態 |

初期表示イベント:
Expand All @@ -36,8 +36,8 @@

利用API:

| ID | URL | Parameter |
| --- | --- | -- |
| ID | URL | Parameter |
|---------|---------------------------|------------------------------|
| API-005 | GET /profile/{trainee_id} | trainee_id=userState.user_id |

画面表示制御:
Expand All @@ -49,20 +49,20 @@

利用API:

| ID | URL | Parameter |
| --- | --- | -- |
| API-013 | GET /bookings/{trainee_id} | trainee_id=userState.user_id |
| ID | URL | Parameter |
|--------|----------------------------|------------------------------|
| API013 | GET /bookings/{trainee_id} | trainee_id=userState.user_id |

画面表示制御:

- 起動条件
- API-016が有効な場合
- API016が有効な場合
- HTTPステータスが200以外
- メッセージID(MSG_BIZ_111)表示

### 2. トレーナーを探す

UIM02 を起動。
[UIM002](../UIM002) を起動。

### 3. 受講完了確認

Expand All @@ -76,9 +76,9 @@ UIM02 を起動。

利用API:

| ID | URL | Parameter |
| --- | --- | -- |
| API-016 | PUT /booking/{booking_id}/status | 選択されたトレーニング予約ID |
| ID | URL | Parameter |
|---------|----------------------------------|-----------------|
| API016 | PUT /booking/{booking_id}/status | 選択されたトレーニング予約ID |

画面表示制御:

Expand All @@ -91,13 +91,13 @@ UIM02 を起動。

利用API:

| ID | URL | Parameter |
| --- | --- | -- |
| ID | URL | Parameter |
|---------|----------------------------|------------------------------|
| API-012 | GET /bookings/{trainee_id} | trainee_id=userState.user_id |

画面表示制御:

- 起動条件
- API-016が有効な場合
- API016が有効な場合
- HTTPステータスが200以外
- メッセージID(MSG_BIZ_111)表示
Loading

0 comments on commit 0123b70

Please sign in to comment.