File tree Expand file tree Collapse file tree 13 files changed +296
-176
lines changed
future_muscle_partner/docs Expand file tree Collapse file tree 13 files changed +296
-176
lines changed Original file line number Diff line number Diff line change @@ -20,16 +20,14 @@ Markdown に限った話では無いが、どういった内容を設計書に
2020
2121本規約は以下の前提で作成されている
2222
23- - チーム/プロジェクトが 3 ~ 30 名程度規模程度
23+ - チーム/プロジェクトが 3 ~ 10 名程度の規模
2424- Git(GitHub, GitLab)で管理され、コードと設計書が同一リポジトリで管理される
2525- システム開発で必要なアプリケーション開発
2626
2727## フォルダ階層
2828
2929リポジトリ直下に ` docs ` フォルダを作成し、その配下に設計ドキュメントとなる Markdown ファイルを配備する。
3030
31- <!-- TODO 【相談】docsだと公開フォルダとみなされるかもなので、documentsとかにしたほうが良いか? -->
32-
3331次はバックエンド、フロントエンド、インフラのコードをモノリポで管理している例である。
3432
3533``` sh
6765
6866## システム構成図
6967
70- TODO 論理, 物理, etc.
68+ 図は基本的に変更差分がGitと相性が良い、PlantUML(またはMermaid.js)で作成すること。
69+
70+ システム構成図などは上記では対応しにくいことが多いため、diagrams.net(draw.io)で作成する。
71+
72+ 拡張子は以下のいずれかで作成する。
73+
74+ - ` .drawio.png `
75+ - ` .drawio.jpg `
76+ - ` .drawio.svg `
7177
7278## フロントエンド
7379
74- - UI設計(Figma)
75- - [ ] ( 画面設計書.md )
80+ 以下の方針を取る。
81+
82+ - Figmaを用いて、画面遷移、画面表示項目を定義する
83+ - Markdown設計書には、Figmaで判断可能な見た目の情報は記載しない
84+ - Markdown設計書には、Web APIの呼び出しやイベントの定義、パラメータの受け渡し、バリデーションロジックなどを定義する。
85+
86+ [ サンプル設計書] ( future_muscle_partner ) を参考にする。
7687
7788## バックエンド
7889
7990### テーブル定義書
8091
81- A5ER
92+ [ A5 : SQL Mk-2 ] ( https://a5m2.mmatsubara.com/ ) を用い、 ` erd.a5er ` という名称で管理する。
8293
83- 以下の情報の管理
94+ 以下の情報の管理は ` erd.a5er ` で行えないため、別で定義する。
8495
8596- 保持期限
8697- 個人情報有無
8798
88- パーティションなどはa5erで管理想定
89-
9099### 区分値
91100
92- TODO JSON/YAML で管理推奨など
101+ [ 区分値設計書 ] ( 区分値設計書.md ) を参考にする。
93102
94103### Web API 設計書
95104
96- API 定義書は OpenAPI.yaml で記載する
97-
98- TODO 各エンドポイント毎のプログラム設計
105+ API 定義書は ` openapi.yaml ` で記載すること。
99106
100107### プログラム設計書
101108
102- TODO
109+ [ プログラム設計書 ] ( プログラム設計書.md ) を参考にする。
103110
104111### I/F 定義書
105112
106113I/F 定義書は、システム間の連携について定義と、その受信/配信処理の設計書です。
107114
108115システム I/F は連携先の対向システムが存在するため、認識齟齬が無いように、どのようなプロトコル・項目であるかを定義する必要があります。
109116
110- - [ レイアウト ] ( IF定義書.md )
117+ [ IF定義書 ] ( IF定義書.md ) を参考にする。
111118
112119# Resources
113120
Original file line number Diff line number Diff line change 11# 画面
22
3- * Figma URL: xxx
3+ * Figma URL: <準備中>
44
55## 標準画面
66
1515
1616| ID | 論理名 | 備考 |
1717| --------------| ----------| ----|
18- | [ UIM01] ( UIM01 ) | xxx | |
19- | [ UIM02] ( UIM02 ) | xx | |
20- | [ UIM03] ( UIM03 ) | xx | |
21- | [ UIM04] ( UIM04 ) | xxx | |
18+ | [ UIM01] ( UIM01 ) | ログイン | |
19+ | [ UIM02] ( UIM02 ) | トレーナー検索 | |
20+ | [ UIM03] ( UIM03 ) | カレンダー予約 | |
21+ | [ UIM04] ( UIM04 ) | 決済 | |
Original file line number Diff line number Diff line change 1313
1414## イベント概要
1515
16- | No | イベント名 | イベント分類 | 処理説明 |
17- | ----| -----------| --------| -------------------------------------|
18- | 1 | 初期表示 | 初期表示 | xxxx |
19- | 2 | xxx | ボタン押下 | xxx |
16+ | No | イベント名 | イベント分類 | 処理説明 |
17+ | ----| --------| --------| ------|
18+ | 1 | 初期表示 | 初期表示 | |
19+ | 2 | ログインする | ボタン押下 | |
20+ | 3 | 会員登録 | ボタン押下 | |
2021
2122## イベント詳細
2223
2324### 1. 初期表示
2425
25- ### 2. xxx
26+ モーダルを起動。初期パラメータは無し。
27+
28+ ### 2. ログインする
29+
30+ 利用API:
31+
32+ | ID | URL | Parameter |
33+ | --------| -------------| -------------|
34+ | API001 | POST /login | 入力フォームの値を取得 |
35+
36+ 画面表示制御:
37+
38+ - HTTPステータスが400系
39+ - 「IDまたはパスワードが異なります」を表示
40+ - HTTPステータスが500系
41+ - メッセージID(MSG_BIZ_111)表示
42+ - HTTPステータスが200
43+ - [ UIS02] ( ../UIS02 ) に遷移
44+
45+ ### 3. 会員登録
46+
47+ ...
Original file line number Diff line number Diff line change 1515
1616## イベント概要
1717
18- | No | イベント名 | イベント分類 | 処理説明 |
19- | ----| ----------- | --------| ------------------------------- ------|
20- | 1 | 初期表示 | 初期表示 | xxxx |
21- | 2 | 検索 | 検索ボタン押下 | xxx |
18+ | No | イベント名 | イベント分類 | 処理説明 |
19+ | ----| -------| --------| ------|
20+ | 1 | 初期表示 | 初期表示 | |
21+ | 2 | 検索 | ボタン押下 | |
2222
2323## イベント詳細
2424
2525### 1. 初期表示
2626
27+ モーダルを起動。初期パラメータは無し。
28+
2729### 2. 検索
2830
2931利用API:
3032
31- | ID | URL | Parameter |
32- | --- | --- | -- |
33- | API-007 | GET /trainers | モーダルに指定された値をクエリパラメータに設定する |
33+ | ID | URL | Parameter |
34+ | -------- | --------------- | --------------------------- |
35+ | API007 | GET /trainers | モーダルに指定された値をクエリパラメータに設定する |
3436
3537画面表示制御:
3638
4042 - 「条件に一致するコーチは存在しませんでした」と表示する
4143- HTTPステータスが200以外
4244 - メッセージID(MSG_BIZ_111)表示
45+ - HTTPステータスが200
46+ - [ UIS03] ( ../UIS03 ) に遷移
Original file line number Diff line number Diff line change 1313
1414## イベント概要
1515
16- | No | イベント名 | イベント分類 | 処理説明 |
17- | ----| -----------| --------| -- -----------------------------------|
18- | 1 | 初期表示 | 初期表示 | xxxx |
19- | 2 | 日時設定 | カレンダーを選択 | xxx |
20- | 3 | 日時指定 | 設定された日時で予約を指定する | xxx |
16+ | No | イベント名 | イベント分類 | 処理説明 |
17+ | ----| -------| ----------------- | -----------------------------------|
18+ | 1 | 初期表示 | 初期表示 | 指定されたトレーナーと、ログイン中のトレーニーのスケジュールを表示 |
19+ | 2 | 日時設定 | カレンダーを選択 | ドラッグ&ドロップで範囲指定 |
20+ | 3 | 日時指定 | 設定された日時で予約を指定する | |
2121
2222## イベント詳細
2323
2424### 1. 初期表示
2525
26+ 起動パラメータ:
27+
28+ | Name | Value | Memo |
29+ | ------------| -------------------------------| ------|
30+ | trainer_id | {"trainer_id":"<trainer_id>"} | |
31+ | trainee_id | {"trainee_id":"<trainee_id>"} | |
32+
33+ 利用API:
34+
35+ | ID | URL | Parameter |
36+ | --------| -------------------------------------| ------------|
37+ | API011 | GET /trainers/{trainer_id}/schedule | 初期パラメータを設定 |
38+ | API013 | GET /bookings/{trainee_id} | 初期パラメータを設定 |
39+
40+ 画面表示制御:
41+
42+ - API011
43+ - 0件の場合は何もしない
44+ - 1件以上存在した場合は、カレンダーには「ブロック」と表示する
45+ - API026
46+ - 0件の場合は何もしない
47+ - 1件以上存在した場合は、カレンダーに「予約あり」と表示する
48+
2649### 2. 日時設定
2750
51+ 選択された日付がカレンダーに追加される。
52+
2853### 3. 日時指定
2954
30- UIM04 を起動する。
55+ [ UIM04] ( ../UIM04 ) を起動する。
Original file line number Diff line number Diff line change 1414
1515## イベント概要
1616
17- | No | イベント名 | イベント分類 | 処理説明 |
18- | ----| ----------- | --------| -------------------------- -----------|
19- | 1 | 初期表示 | 初期表示 | xxxx |
20- | 2 | 日時指定に戻る | ボタン押下 | xxx |
21- | 2 | 決済する | ボタン押下 | xxx |
17+ | No | イベント名 | イベント分類 | 処理説明 |
18+ | ----| ---------| --------| -----------|
19+ | 1 | 初期表示 | 初期表示 | |
20+ | 2 | 日時指定に戻る | ボタン押下 | UIM003に遷移 |
21+ | 2 | 決済する | ボタン押下 | |
2222
2323## イベント詳細
2424
2525### 1. 初期表示
2626
27+ 起動パラメータ:
28+
29+ | Name | Value | Memo |
30+ | ------------| -------------------------------| ------|
31+ | trainer_id | {"trainer_id":"<trainer_id>"} | |
32+ | menu_id | {"menu_id":"<menu_id>"} | |
33+
34+ 利用API:
35+
36+ | ID | URL | Parameter |
37+ | --------| ---------------| ---------------------------|
38+ | APIxxx | トレーニングメニュー取得 | 初期パラメータを設定 |
39+
2740### 2. 日時指定に戻る
2841
42+ [ UIM03] ( ../UIM03 ) に遷移
43+
2944### 3. 決済
45+
46+ ...
Original file line number Diff line number Diff line change 2323
2424### 1. 初期表示
2525
26+ 起動パラメータ:
27+
28+ | Name | Value | Memo |
29+ | -----------| -------------------------| --------|
30+ | userState | {"user_id":"<user_id>"} | ログイン状態 |
31+
32+ 初期表示イベント:
33+
34+ - ログイン済み判定
35+
36+ 利用API:
37+
38+ | ID | URL | Parameter |
39+ | ---------| ---------------------------| ------------------------------|
40+ | API-005 | GET /profile/{trainee_id} | trainee_id=userState.user_id |
41+
42+ 画面表示制御:
43+
44+ - HTTPステータスが500系
45+ - 何もしない(無視で良い)、初期表示のまま
46+ - HTTPステータスが400系
47+ - 未ログインとして、初期表示のまま
48+ - HTTPステータスが200
49+ - すでにログイン中と判断し、(画面表示制御1)へ
50+
51+ 画面表示制御1:
52+
53+ - 「会員登録/ログイン」表示を、サムネイル画像(thumbnail_url)に書き換える
54+
2655### 2. トレーナーを探す
2756
28- UIM02 呼び出し
57+ [ UIM002 ] ( ../ UIM02) 呼び出し
2958
3059### 3. 会員登録/ログイン
3160
32- UIM01 呼び出し
61+ [ UIM001 ] ( ../UI001 ) 呼び出し
Original file line number Diff line number Diff line change 2626
2727起動パラメータ:
2828
29- | Name | Value | Memo |
30- | --- | --- | --- |
29+ | Name | Value | Memo |
30+ | ----------- | ------------------------- | -------- |
3131| userState | {"user_id":"<user_id>"} | ログイン状態 |
3232
3333初期表示イベント:
3636
3737利用API:
3838
39- | ID | URL | Parameter |
40- | --- | --- | -- |
39+ | ID | URL | Parameter |
40+ | --------- | --------------------------- | ------------------------------ |
4141| API-005 | GET /profile/{trainee_id} | trainee_id=userState.user_id |
4242
4343画面表示制御:
4949
5050利用API:
5151
52- | ID | URL | Parameter |
53- | --- | --- | -- |
54- | API-013 | GET /bookings/{trainee_id} | trainee_id=userState.user_id |
52+ | ID | URL | Parameter |
53+ | -------- | ---------------------------- | ------------------------------ |
54+ | API013 | GET /bookings/{trainee_id} | trainee_id=userState.user_id |
5555
5656画面表示制御:
5757
5858- 起動条件
59- - API-016が有効な場合
59+ - API016が有効な場合
6060- HTTPステータスが200以外
6161 - メッセージID(MSG_BIZ_111)表示
6262
6363### 2. トレーナーを探す
6464
65- UIM02 を起動。
65+ [ UIM002 ] ( ../UIM002 ) を起動。
6666
6767### 3. 受講完了確認
6868
@@ -76,9 +76,9 @@ UIM02 を起動。
7676
7777利用API:
7878
79- | ID | URL | Parameter |
80- | --- | --- | -- |
81- | API-016 | PUT /booking/{booking_id}/status | 選択されたトレーニング予約ID |
79+ | ID | URL | Parameter |
80+ | --------- | ---------------------------------- | ----------------- |
81+ | API016 | PUT /booking/{booking_id}/status | 選択されたトレーニング予約ID |
8282
8383画面表示制御:
8484
@@ -91,13 +91,13 @@ UIM02 を起動。
9191
9292利用API:
9393
94- | ID | URL | Parameter |
95- | --- | --- | -- |
94+ | ID | URL | Parameter |
95+ | --------- | ---------------------------- | ------------------------------ |
9696| API-012 | GET /bookings/{trainee_id} | trainee_id=userState.user_id |
9797
9898画面表示制御:
9999
100100- 起動条件
101- - API-016が有効な場合
101+ - API016が有効な場合
102102- HTTPステータスが200以外
103103 - メッセージID(MSG_BIZ_111)表示
You can’t perform that action at this time.
0 commit comments