Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
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