ai-spector 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +150 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +173 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/analyze.d.ts +9 -0
- package/dist/commands/analyze.d.ts.map +1 -0
- package/dist/commands/analyze.js +62 -0
- package/dist/commands/analyze.js.map +1 -0
- package/dist/commands/bootstrap.d.ts +4 -0
- package/dist/commands/bootstrap.d.ts.map +1 -0
- package/dist/commands/bootstrap.js +58 -0
- package/dist/commands/bootstrap.js.map +1 -0
- package/dist/commands/graph-impact.d.ts +10 -0
- package/dist/commands/graph-impact.d.ts.map +1 -0
- package/dist/commands/graph-impact.js +31 -0
- package/dist/commands/graph-impact.js.map +1 -0
- package/dist/commands/graph-merge.d.ts +11 -0
- package/dist/commands/graph-merge.d.ts.map +1 -0
- package/dist/commands/graph-merge.js +88 -0
- package/dist/commands/graph-merge.js.map +1 -0
- package/dist/commands/graph-query.d.ts +10 -0
- package/dist/commands/graph-query.d.ts.map +1 -0
- package/dist/commands/graph-query.js +31 -0
- package/dist/commands/graph-query.js.map +1 -0
- package/dist/commands/graph-visualize.d.ts +10 -0
- package/dist/commands/graph-visualize.d.ts.map +1 -0
- package/dist/commands/graph-visualize.js +72 -0
- package/dist/commands/graph-visualize.js.map +1 -0
- package/dist/commands/init.d.ts +6 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +47 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/validate.d.ts +10 -0
- package/dist/commands/validate.d.ts.map +1 -0
- package/dist/commands/validate.js +89 -0
- package/dist/commands/validate.js.map +1 -0
- package/dist/config/load.d.ts +21 -0
- package/dist/config/load.d.ts.map +1 -0
- package/dist/config/load.js +77 -0
- package/dist/config/load.js.map +1 -0
- package/dist/config/types.d.ts +22 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/config/types.js +2 -0
- package/dist/config/types.js.map +1 -0
- package/dist/graph/InMemoryGraph.d.ts +20 -0
- package/dist/graph/InMemoryGraph.d.ts.map +1 -0
- package/dist/graph/InMemoryGraph.js +181 -0
- package/dist/graph/InMemoryGraph.js.map +1 -0
- package/dist/graph/defaults.d.ts +10 -0
- package/dist/graph/defaults.d.ts.map +1 -0
- package/dist/graph/defaults.js +10 -0
- package/dist/graph/defaults.js.map +1 -0
- package/dist/graph/impact.d.ts +32 -0
- package/dist/graph/impact.d.ts.map +1 -0
- package/dist/graph/impact.js +88 -0
- package/dist/graph/impact.js.map +1 -0
- package/dist/graph/knowledge.d.ts +53 -0
- package/dist/graph/knowledge.d.ts.map +1 -0
- package/dist/graph/knowledge.js +79 -0
- package/dist/graph/knowledge.js.map +1 -0
- package/dist/graph/load.d.ts +4 -0
- package/dist/graph/load.d.ts.map +1 -0
- package/dist/graph/load.js +12 -0
- package/dist/graph/load.js.map +1 -0
- package/dist/graph/loadGraph.d.ts +3 -0
- package/dist/graph/loadGraph.d.ts.map +1 -0
- package/dist/graph/loadGraph.js +7 -0
- package/dist/graph/loadGraph.js.map +1 -0
- package/dist/graph/merge.d.ts +15 -0
- package/dist/graph/merge.d.ts.map +1 -0
- package/dist/graph/merge.js +63 -0
- package/dist/graph/merge.js.map +1 -0
- package/dist/graph/query.d.ts +18 -0
- package/dist/graph/query.d.ts.map +1 -0
- package/dist/graph/query.js +132 -0
- package/dist/graph/query.js.map +1 -0
- package/dist/registry/build.d.ts +3 -0
- package/dist/registry/build.d.ts.map +1 -0
- package/dist/registry/build.js +53 -0
- package/dist/registry/build.js.map +1 -0
- package/dist/registry/slug.d.ts +4 -0
- package/dist/registry/slug.d.ts.map +1 -0
- package/dist/registry/slug.js +16 -0
- package/dist/registry/slug.js.map +1 -0
- package/dist/types.d.ts +45 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/util/fs.d.ts +6 -0
- package/dist/util/fs.d.ts.map +1 -0
- package/dist/util/fs.js +24 -0
- package/dist/util/fs.js.map +1 -0
- package/dist/util/paths.d.ts +16 -0
- package/dist/util/paths.d.ts.map +1 -0
- package/dist/util/paths.js +19 -0
- package/dist/util/paths.js.map +1 -0
- package/dist/visualize/html.d.ts +13 -0
- package/dist/visualize/html.d.ts.map +1 -0
- package/dist/visualize/html.js +374 -0
- package/dist/visualize/html.js.map +1 -0
- package/dist/visualize/stats.d.ts +21 -0
- package/dist/visualize/stats.d.ts.map +1 -0
- package/dist/visualize/stats.js +45 -0
- package/dist/visualize/stats.js.map +1 -0
- package/documents.json +64 -0
- package/package.json +65 -0
- package/scaffold/.ai-spector/.docflow/config/analyze.graphify.json +40 -0
- package/scaffold/.ai-spector/.docflow/config/completeness-rules.basic-design.json +18 -0
- package/scaffold/.ai-spector/.docflow/config/completeness-rules.detail-design.json +57 -0
- package/scaffold/.ai-spector/.docflow/config/completeness-rules.srs.json +72 -0
- package/scaffold/.ai-spector/.docflow/config/dag.basic-design.json +38 -0
- package/scaffold/.ai-spector/.docflow/config/dag.detail-design.json +64 -0
- package/scaffold/.ai-spector/.docflow/config/dag.srs.json +87 -0
- package/scaffold/.ai-spector/.docflow/config/data-source.json +5 -0
- package/scaffold/.ai-spector/.docflow/config/index.docs.json +22 -0
- package/scaffold/.ai-spector/.docflow/config/workflow.dependencies.json +271 -0
- package/scaffold/.ai-spector/.docflow/extract/patch.example.json +20 -0
- package/scaffold/.ai-spector/.docflow/state.json +11 -0
- package/scaffold/.ai-spector/docflow.config.json +7 -0
- package/scaffold/.ai-spector/index/README.md +18 -0
- package/scaffold/.ai-spector/index/basic-design.md +5 -0
- package/scaffold/.ai-spector/index/srs.md +5 -0
- package/scaffold/.cursor/commands/_cli-failures.md +110 -0
- package/scaffold/.cursor/commands/_graph.md +48 -0
- package/scaffold/.cursor/commands/_prerequisites.md +48 -0
- package/scaffold/.cursor/commands/_workflow.md +50 -0
- package/scaffold/.cursor/commands/analyze.md +92 -0
- package/scaffold/.cursor/commands/generate-basic-design.md +26 -0
- package/scaffold/.cursor/commands/generate-detail-design.md +19 -0
- package/scaffold/.cursor/commands/generate-srs.md +63 -0
- package/scaffold/.cursor/commands/graph-impact.md +45 -0
- package/scaffold/.cursor/commands/index-docs.md +36 -0
- package/scaffold/.cursor/commands/sync-graph.md +30 -0
- package/scaffold/.cursor/commands/validate-graph.md +28 -0
- package/scaffold/.cursor/commands/visualize-graph.md +24 -0
- package/scaffold/.cursor/skills/ai-spector/SKILL.md +39 -0
- package/scaffold/docs/data-source/README.md +7 -0
- package/schemas/rules.impact.json +17 -0
- package/schemas/rules.traceability.json +30 -0
- package/schemas/schema.extract-patch.json +19 -0
- package/schemas/schema.graph.json +83 -0
- package/schemas/schema.knowledge.json +107 -0
- package/templates/basic_design/db-design-template.md +177 -0
- package/templates/basic_design/detail-api-template.md +278 -0
- package/templates/basic_design/detail-screen-template.md +281 -0
- package/templates/basic_design/list-api-template.md +130 -0
- package/templates/basic_design/list-screen-template.md +242 -0
- package/templates/detail_design/common/architecture-overview-template.md +302 -0
- package/templates/detail_design/common/deployment-infrastructure-template.md +461 -0
- package/templates/detail_design/common/error-handling-patterns-template.md +460 -0
- package/templates/detail_design/common/integration-patterns-template.md +410 -0
- package/templates/detail_design/common/performance-standards-template.md +406 -0
- package/templates/detail_design/common/security-patterns-template.md +395 -0
- package/templates/detail_design/feature-detail-design-template.md +773 -0
- package/templates/detail_design/feature-list-template.md +39 -0
- package/templates/srs/1-introduction.md +58 -0
- package/templates/srs/2-overall-description.md +91 -0
- package/templates/srs/3-use-case-detail-template.md +142 -0
- package/templates/srs/3-use-cases.md +53 -0
- package/templates/srs/4-system-feature-detail-template.md +131 -0
- package/templates/srs/4-system-features-list-template.md +39 -0
- package/templates/srs/5-data-requirements.md +59 -0
- package/templates/srs/6-external-interfaces.md +56 -0
- package/templates/srs/7-quality-attributes.md +74 -0
- package/templates/srs/8-internationalization.md +36 -0
- package/templates/srs/9-other-requirements.md +46 -0
|
@@ -0,0 +1,278 @@
|
|
|
1
|
+
# API Detail: <Project Name>
|
|
2
|
+
|
|
3
|
+
> This document specifies detailed request/response schemas, path/query parameters, and error handling for each API endpoint. For the endpoint list and overview, see the API List document.
|
|
4
|
+
|
|
5
|
+
**Source Requirements:** SRS Section 4 (System Features), Section 6.2 (Software Interfaces)
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 1. Detailed Endpoint Specifications
|
|
10
|
+
|
|
11
|
+
### 1.1 `POST /resource`
|
|
12
|
+
|
|
13
|
+
**Summary:** <Brief description>
|
|
14
|
+
|
|
15
|
+
**Operation ID:** `createResource`
|
|
16
|
+
|
|
17
|
+
**Source Requirement:** SRS Section <X.X> - <Feature Name>
|
|
18
|
+
|
|
19
|
+
**Authentication:** Required
|
|
20
|
+
|
|
21
|
+
**Request:**
|
|
22
|
+
|
|
23
|
+
**Headers:**
|
|
24
|
+
```
|
|
25
|
+
Authorization: Bearer <token>
|
|
26
|
+
Content-Type: application/json
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
**Body Schema:**
|
|
30
|
+
```json
|
|
31
|
+
{
|
|
32
|
+
"field1": "<type>",
|
|
33
|
+
"field2": "<type>",
|
|
34
|
+
"field3": "<type>"
|
|
35
|
+
}
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
**Field Descriptions:**
|
|
39
|
+
|
|
40
|
+
| Field | Type | Required | Validation | Description |
|
|
41
|
+
|-------|------|----------|------------|-------------|
|
|
42
|
+
| `field1` | `<type>` | Yes | <Validation rules> | <Description> |
|
|
43
|
+
| `field2` | `<type>` | No | <Validation rules> | <Description> |
|
|
44
|
+
|
|
45
|
+
**Example Request:**
|
|
46
|
+
```json
|
|
47
|
+
{
|
|
48
|
+
"field1": "value1",
|
|
49
|
+
"field2": "value2"
|
|
50
|
+
}
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
**Responses:**
|
|
54
|
+
|
|
55
|
+
**201 Created:**
|
|
56
|
+
```json
|
|
57
|
+
{
|
|
58
|
+
"id": 123,
|
|
59
|
+
"status": "success",
|
|
60
|
+
"message": "<Message>"
|
|
61
|
+
}
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
**400 Bad Request:**
|
|
65
|
+
```json
|
|
66
|
+
{
|
|
67
|
+
"error": "validation_error",
|
|
68
|
+
"message": "<Error message>",
|
|
69
|
+
"details": [
|
|
70
|
+
{
|
|
71
|
+
"field": "field1",
|
|
72
|
+
"message": "<Field-specific error>"
|
|
73
|
+
}
|
|
74
|
+
]
|
|
75
|
+
}
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
**401 Unauthorized:**
|
|
79
|
+
```json
|
|
80
|
+
{
|
|
81
|
+
"error": "unauthorized",
|
|
82
|
+
"message": "Authentication required"
|
|
83
|
+
}
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
**500 Internal Server Error:**
|
|
87
|
+
```json
|
|
88
|
+
{
|
|
89
|
+
"error": "internal_error",
|
|
90
|
+
"message": "<Error message>"
|
|
91
|
+
}
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
### 1.2 `GET /resource/{id}`
|
|
97
|
+
|
|
98
|
+
**Summary:** <Brief description>
|
|
99
|
+
|
|
100
|
+
**Operation ID:** `getResource`
|
|
101
|
+
|
|
102
|
+
**Source Requirement:** SRS Section <X.X>
|
|
103
|
+
|
|
104
|
+
**Authentication:** Required
|
|
105
|
+
|
|
106
|
+
**Path Parameters:**
|
|
107
|
+
|
|
108
|
+
| Parameter | Type | Required | Description |
|
|
109
|
+
|-----------|------|----------|-------------|
|
|
110
|
+
| `id` | integer | Yes | Resource identifier |
|
|
111
|
+
|
|
112
|
+
**Query Parameters:**
|
|
113
|
+
|
|
114
|
+
| Parameter | Type | Required | Description |
|
|
115
|
+
|-----------|------|----------|-------------|
|
|
116
|
+
| `include` | string | No | Related resources to include |
|
|
117
|
+
| `fields` | string | No | Fields to return |
|
|
118
|
+
|
|
119
|
+
**Responses:**
|
|
120
|
+
|
|
121
|
+
**200 OK:**
|
|
122
|
+
```json
|
|
123
|
+
{
|
|
124
|
+
"id": 123,
|
|
125
|
+
"field1": "value1",
|
|
126
|
+
"field2": "value2",
|
|
127
|
+
"created_at": "2025-01-01T00:00:00Z"
|
|
128
|
+
}
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
**404 Not Found:**
|
|
132
|
+
```json
|
|
133
|
+
{
|
|
134
|
+
"error": "not_found",
|
|
135
|
+
"message": "Resource not found"
|
|
136
|
+
}
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
---
|
|
140
|
+
|
|
141
|
+
### 1.3 `PUT /resource/{id}`
|
|
142
|
+
|
|
143
|
+
**Summary:** <Brief description>
|
|
144
|
+
|
|
145
|
+
**Operation ID:** `updateResource`
|
|
146
|
+
|
|
147
|
+
**Authentication:** Required
|
|
148
|
+
|
|
149
|
+
**Path Parameters:**
|
|
150
|
+
- `id`: Resource identifier
|
|
151
|
+
|
|
152
|
+
**Request Body:**
|
|
153
|
+
> Similar structure to POST
|
|
154
|
+
|
|
155
|
+
**Responses:**
|
|
156
|
+
> Similar structure to GET/POST
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
### 1.4 `DELETE /resource/{id}`
|
|
161
|
+
|
|
162
|
+
**Summary:** <Brief description>
|
|
163
|
+
|
|
164
|
+
**Operation ID:** `deleteResource`
|
|
165
|
+
|
|
166
|
+
**Authentication:** Required
|
|
167
|
+
|
|
168
|
+
**Path Parameters:**
|
|
169
|
+
- `id`: Resource identifier
|
|
170
|
+
|
|
171
|
+
**Responses:**
|
|
172
|
+
|
|
173
|
+
**204 No Content:**
|
|
174
|
+
> Success response with no body
|
|
175
|
+
|
|
176
|
+
**404 Not Found:**
|
|
177
|
+
> Error response
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
## 2. Data Models
|
|
182
|
+
|
|
183
|
+
### 2.1 Resource Model
|
|
184
|
+
|
|
185
|
+
**Description:** <Description of the data model>
|
|
186
|
+
|
|
187
|
+
**Schema:**
|
|
188
|
+
```json
|
|
189
|
+
{
|
|
190
|
+
"id": "integer",
|
|
191
|
+
"field1": "string",
|
|
192
|
+
"field2": "integer",
|
|
193
|
+
"created_at": "datetime",
|
|
194
|
+
"updated_at": "datetime"
|
|
195
|
+
}
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
**Field Details:**
|
|
199
|
+
|
|
200
|
+
| Field | Type | Description | Constraints |
|
|
201
|
+
|-------|------|-------------|-------------|
|
|
202
|
+
| `id` | integer | Unique identifier | Auto-generated |
|
|
203
|
+
| `field1` | string | <Description> | Max 255 chars |
|
|
204
|
+
| `field2` | integer | <Description> | Min 0, Max 100 |
|
|
205
|
+
|
|
206
|
+
---
|
|
207
|
+
|
|
208
|
+
## 3. Error Handling
|
|
209
|
+
|
|
210
|
+
**Standard Error Response Format:**
|
|
211
|
+
```json
|
|
212
|
+
{
|
|
213
|
+
"error": "<error_code>",
|
|
214
|
+
"message": "<Human-readable message>",
|
|
215
|
+
"details": {
|
|
216
|
+
"<additional_info>": "<value>"
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
**Error Codes:**
|
|
222
|
+
|
|
223
|
+
| Code | HTTP Status | Description |
|
|
224
|
+
|------|-------------|-------------|
|
|
225
|
+
| `validation_error` | 400 | Request validation failed |
|
|
226
|
+
| `unauthorized` | 401 | Authentication required |
|
|
227
|
+
| `forbidden` | 403 | Insufficient permissions |
|
|
228
|
+
| `not_found` | 404 | Resource not found |
|
|
229
|
+
| `conflict` | 409 | Resource conflict |
|
|
230
|
+
| `internal_error` | 500 | Server error |
|
|
231
|
+
|
|
232
|
+
---
|
|
233
|
+
|
|
234
|
+
## 4. Rate Limiting
|
|
235
|
+
|
|
236
|
+
**Limits:**
|
|
237
|
+
- <Limit description>
|
|
238
|
+
|
|
239
|
+
**Headers:**
|
|
240
|
+
```
|
|
241
|
+
X-RateLimit-Limit: <number>
|
|
242
|
+
X-RateLimit-Remaining: <number>
|
|
243
|
+
X-RateLimit-Reset: <timestamp>
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
**Response when limit exceeded:**
|
|
247
|
+
```json
|
|
248
|
+
{
|
|
249
|
+
"error": "rate_limit_exceeded",
|
|
250
|
+
"message": "Too many requests",
|
|
251
|
+
"retry_after": 60
|
|
252
|
+
}
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
---
|
|
256
|
+
|
|
257
|
+
## 5. Webhooks (if applicable)
|
|
258
|
+
|
|
259
|
+
**Events:**
|
|
260
|
+
- `<event_name>`: <Description>
|
|
261
|
+
|
|
262
|
+
**Payload Format:**
|
|
263
|
+
```json
|
|
264
|
+
{
|
|
265
|
+
"event": "<event_name>",
|
|
266
|
+
"timestamp": "<ISO 8601>",
|
|
267
|
+
"data": {
|
|
268
|
+
"<resource_data>": "..."
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
---
|
|
274
|
+
|
|
275
|
+
## 6. Future Enhancements
|
|
276
|
+
|
|
277
|
+
- <Enhancement 1>
|
|
278
|
+
- <Enhancement 2>
|
|
@@ -0,0 +1,281 @@
|
|
|
1
|
+
# Screen Detail:
|
|
2
|
+
|
|
3
|
+
> This document provides detailed layout, component, and interaction specifications for each screen. For the screen map and design system, see the Screen Map (List Screen) document. Use one section per screen; duplicate the structure below for each screen in the Screen Index.
|
|
4
|
+
|
|
5
|
+
**Source Requirements:** SRS Section 6.1 (User Interfaces)
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 1. Screen:
|
|
10
|
+
|
|
11
|
+
**Purpose:**
|
|
12
|
+
|
|
13
|
+
> Describe the purpose of this screen and what users can accomplish.
|
|
14
|
+
|
|
15
|
+
**User Role:**
|
|
16
|
+
|
|
17
|
+
**Source Requirements:** SRS Section <X.X> -
|
|
18
|
+
|
|
19
|
+
### 1.1 Visual Wireframe
|
|
20
|
+
|
|
21
|
+
> Use ASCII art or grid-based layout to show the visual structure. You can also reference an image file or Figma link.
|
|
22
|
+
|
|
23
|
+
**Option 1: ASCII Wireframe**
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
┌─────────────────────────────────────────────────────────┐
|
|
27
|
+
│ [Logo] [User Menu] [Notifications] │ ← Header (60px)
|
|
28
|
+
├──────────┬───────────────────────────────────────────────┤
|
|
29
|
+
│ │ │
|
|
30
|
+
│ Nav │ Main Content Area │
|
|
31
|
+
│ Menu │ ┌─────────────────┐ │
|
|
32
|
+
│ │ │ Card/Component │ │
|
|
33
|
+
│ Item 1 │ │ │ │
|
|
34
|
+
│ Item 2 │ └─────────────────┘ │
|
|
35
|
+
│ Item 3 │ ┌─────────────────┐ │
|
|
36
|
+
│ │ │ Card/Component │ │
|
|
37
|
+
│ │ │ │ │
|
|
38
|
+
│ │ └─────────────────┘ │
|
|
39
|
+
│ │ │
|
|
40
|
+
├──────────┴───────────────────────────────────────────────┤
|
|
41
|
+
│ Footer Content │ ← Footer (40px)
|
|
42
|
+
└─────────────────────────────────────────────────────────┘
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
**Option 2: Grid Layout Description**
|
|
46
|
+
|
|
47
|
+
```
|
|
48
|
+
┌─────────────────────────────────────────────────────────┐
|
|
49
|
+
│ HEADER (100% width, 60px height) │
|
|
50
|
+
│ [Logo: 200px] [Spacer] [User Menu: 150px] [Notif: 50px] │
|
|
51
|
+
├─────────────────────────────────────────────────────────┤
|
|
52
|
+
│ SIDEBAR │ MAIN CONTENT (flex: 1) │
|
|
53
|
+
│ (250px) │ ┌───────────────────────────────────────────┐ │
|
|
54
|
+
│ │ │ STATS CARDS (3 columns, equal width) │ │
|
|
55
|
+
│ Nav │ │ [Card 1] [Card 2] [Card 3] │ │
|
|
56
|
+
│ Menu │ └───────────────────────────────────────────┘ │
|
|
57
|
+
│ │ ┌───────────────────────────────────────────┐ │
|
|
58
|
+
│ Item 1 │ │ TABLE/LIST (full width) │ │
|
|
59
|
+
│ Item 2 │ │ [Row 1] [Row 2] [Row 3] │ │
|
|
60
|
+
│ │ └───────────────────────────────────────────┘ │
|
|
61
|
+
└─────────┴───────────────────────────────────────────────┘
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
**Option 3: Image Reference**
|
|
65
|
+
|
|
66
|
+
> **Wireframe Image:** `[screens/screen-name-wireframe.png]` or `[Figma Link]`
|
|
67
|
+
>
|
|
68
|
+
> **High-Fidelity Mockup:** `[screens/screen-name-mockup.png]` or `[Figma Link]`
|
|
69
|
+
|
|
70
|
+
### 1.2 Layout Structure
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
| Component | Position | Width/Height | Description |
|
|
74
|
+
| ---------------- | --------------- | ------------ | ----------- |
|
|
75
|
+
| **Header** | Top | 100% × 60px | |
|
|
76
|
+
| **Navigation** | <Left/Side/Top> | 250px × auto | |
|
|
77
|
+
| **Main Content** | Center | flex: 1 | |
|
|
78
|
+
| **Sidebar** | <Right/Left> | 300px × auto | |
|
|
79
|
+
| **Footer** | Bottom | 100% × 40px | |
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
### 1.3 Component Details
|
|
83
|
+
|
|
84
|
+
**Header:**
|
|
85
|
+
|
|
86
|
+
- Logo:
|
|
87
|
+
- User menu:
|
|
88
|
+
- Notifications:
|
|
89
|
+
|
|
90
|
+
**Main Content Area:**
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
| Component | Description | Visual Style |
|
|
94
|
+
| ------------------ | ----------- | ------------ |
|
|
95
|
+
| **Component Name** | Description | Style notes |
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
**Key Components:**
|
|
99
|
+
|
|
100
|
+
**Component Name:**
|
|
101
|
+
|
|
102
|
+
- **Purpose:** What it does
|
|
103
|
+
- **Visual Representation:**
|
|
104
|
+
```
|
|
105
|
+
┌─────────────────────────────┐
|
|
106
|
+
│ [Icon] Title Text │
|
|
107
|
+
│ ─────────────────────────── │
|
|
108
|
+
│ Content area │
|
|
109
|
+
│ [Button] [Button] │
|
|
110
|
+
└─────────────────────────────┘
|
|
111
|
+
```
|
|
112
|
+
- **Elements:**
|
|
113
|
+
- <Element 1>: (Position: <top/left/right>, Size: )
|
|
114
|
+
- <Element 2>: (Position: <top/left/right>, Size: )
|
|
115
|
+
- **Visual Style:**
|
|
116
|
+
- Background:
|
|
117
|
+
- Border: <1px solid color>
|
|
118
|
+
- Padding: <16px>
|
|
119
|
+
- Margin: <8px>
|
|
120
|
+
- Border radius: <4px>
|
|
121
|
+
- **Dimensions:** <Width × Height>
|
|
122
|
+
- **Interaction:**
|
|
123
|
+
|
|
124
|
+
### 1.4 User Interactions
|
|
125
|
+
|
|
126
|
+
**Primary Actions:**
|
|
127
|
+
|
|
128
|
+
- <Action 1>:
|
|
129
|
+
- <Action 2>:
|
|
130
|
+
|
|
131
|
+
**Navigation Flow:**
|
|
132
|
+
|
|
133
|
+
- From this screen, users can navigate to:
|
|
134
|
+
- <Screen/Page>:
|
|
135
|
+
- <Screen/Page>:
|
|
136
|
+
|
|
137
|
+
**Form Layout (if applicable):**
|
|
138
|
+
|
|
139
|
+
```
|
|
140
|
+
┌─────────────────────────────────────┐
|
|
141
|
+
│ Form Title │
|
|
142
|
+
│ ─────────────────────────────────── │
|
|
143
|
+
│ [Label] │
|
|
144
|
+
│ ┌─────────────────────────────────┐ │
|
|
145
|
+
│ │ Input Field │ │
|
|
146
|
+
│ └─────────────────────────────────┘ │
|
|
147
|
+
│ [Label] │
|
|
148
|
+
│ ┌─────────────────────────────────┐ │
|
|
149
|
+
│ │ Dropdown/Select │ │
|
|
150
|
+
│ └─────────────────────────────────┘ │
|
|
151
|
+
│ │
|
|
152
|
+
│ [Cancel] [Submit Button] │
|
|
153
|
+
└─────────────────────────────────────┘
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
**Form Interactions:**
|
|
157
|
+
|
|
158
|
+
- :
|
|
159
|
+
- :
|
|
160
|
+
|
|
161
|
+
### 1.5 Field Validation and Default Data
|
|
162
|
+
|
|
163
|
+
> This section documents validation rules and default values for all input fields on this screen.
|
|
164
|
+
>
|
|
165
|
+
> **Note:** If this screen has no input fields or forms, this section can be omitted or marked as "N/A - No input fields on this screen."
|
|
166
|
+
|
|
167
|
+
**Field Validation and Default Data:**
|
|
168
|
+
|
|
169
|
+
|
|
170
|
+
| Field Name | Field Type | Required | Default Value | Default Source | Validation Rules | Error Messages | Notes |
|
|
171
|
+
| ---------- | --------------------------------- | -------- | -------------------------- | --------------------------------------- | ---------------- | -------------- | ----- |
|
|
172
|
+
| | <Text/Email/Number/Date/Dropdown> | <Yes/No> | <Default value or "Empty"> | <Auto-generated/System/User preference> | | | |
|
|
173
|
+
|
|
174
|
+
|
|
175
|
+
**Detailed Field Information:**
|
|
176
|
+
|
|
177
|
+
**:**
|
|
178
|
+
|
|
179
|
+
- **Type:**
|
|
180
|
+
- **Required:** <Yes/No>
|
|
181
|
+
- **Default Value:** <Value or "Empty">
|
|
182
|
+
- **Default Source:**
|
|
183
|
+
- **Min Length:** characters
|
|
184
|
+
- **Max Length:** characters
|
|
185
|
+
- **Pattern/Format:**
|
|
186
|
+
- **Custom Validation:**
|
|
187
|
+
- **Error Messages:**
|
|
188
|
+
- Required: ""
|
|
189
|
+
- Format: ""
|
|
190
|
+
- Custom: ""
|
|
191
|
+
- **Real-time Validation:** <Yes/No - validates on blur/on change>
|
|
192
|
+
- **Dependencies:**
|
|
193
|
+
- **Notes:**
|
|
194
|
+
|
|
195
|
+
**(Dropdown):**
|
|
196
|
+
|
|
197
|
+
- **Type:** Dropdown/Select
|
|
198
|
+
- **Required:** <Yes/No>
|
|
199
|
+
- **Default Value:**
|
|
200
|
+
- **Default Source:** <System/First option/User preference>
|
|
201
|
+
- **Options Source:** <Static list/Dynamic from API/User selection>
|
|
202
|
+
- **Options:**
|
|
203
|
+
- : -
|
|
204
|
+
- : -
|
|
205
|
+
- **Dependencies:**
|
|
206
|
+
- **Validation Rules:**
|
|
207
|
+
- **Error Messages:**
|
|
208
|
+
|
|
209
|
+
---
|
|
210
|
+
|
|
211
|
+
## 2. Screen:
|
|
212
|
+
|
|
213
|
+
**Purpose:**
|
|
214
|
+
|
|
215
|
+
> Describe the purpose of this screen.
|
|
216
|
+
|
|
217
|
+
**User Role:**
|
|
218
|
+
|
|
219
|
+
**Source Requirements:** SRS Section <X.X>
|
|
220
|
+
|
|
221
|
+
### 2.1 Visual Wireframe
|
|
222
|
+
|
|
223
|
+
```
|
|
224
|
+
┌─────────────────────────────────────────────────────────┐
|
|
225
|
+
│ [Screen Layout - Use ASCII art or reference image] │
|
|
226
|
+
└─────────────────────────────────────────────────────────┘
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
**Wireframe Image:** `[screens/screen-name-wireframe.png]` or `[Figma Link]`
|
|
230
|
+
|
|
231
|
+
### 2.2 Layout Structure
|
|
232
|
+
|
|
233
|
+
|
|
234
|
+
| Component | Position | Width/Height | Description |
|
|
235
|
+
| --------- | -------- | ------------ | ----------- |
|
|
236
|
+
| | | | |
|
|
237
|
+
|
|
238
|
+
|
|
239
|
+
### 2.3 Component Details
|
|
240
|
+
|
|
241
|
+
**:**
|
|
242
|
+
|
|
243
|
+
- **Purpose:**
|
|
244
|
+
- **Visual Representation:**
|
|
245
|
+
```
|
|
246
|
+
┌─────────────────────────────┐
|
|
247
|
+
│ Component Layout │
|
|
248
|
+
└─────────────────────────────┘
|
|
249
|
+
```
|
|
250
|
+
- **Elements:**
|
|
251
|
+
- <Element 1>
|
|
252
|
+
- <Element 2>
|
|
253
|
+
- **Visual Style:**
|
|
254
|
+
- **Dimensions:** <Width × Height>
|
|
255
|
+
- **Interaction:**
|
|
256
|
+
|
|
257
|
+
### 2.4 User Interactions
|
|
258
|
+
|
|
259
|
+
**Primary Actions:**
|
|
260
|
+
|
|
261
|
+
- <Action 1>
|
|
262
|
+
- <Action 2>
|
|
263
|
+
|
|
264
|
+
---
|
|
265
|
+
|
|
266
|
+
## 3. Screen:
|
|
267
|
+
|
|
268
|
+
**Purpose:**
|
|
269
|
+
|
|
270
|
+
> Describe the purpose of this screen.
|
|
271
|
+
|
|
272
|
+
**User Role:**
|
|
273
|
+
|
|
274
|
+
### 3.1 Visual Wireframe
|
|
275
|
+
|
|
276
|
+
### 3.2 Layout Structure
|
|
277
|
+
|
|
278
|
+
---
|
|
279
|
+
|
|
280
|
+
> Repeat the same section structure (Screen name → Wireframe → Layout → Component Details → User Interactions → Field Validation if applicable) for each additional screen in the Screen Index.
|
|
281
|
+
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
# API List:
|
|
2
|
+
|
|
3
|
+
> This document provides the API overview, authentication, and a summary list of all endpoints. For detailed request/response specifications per endpoint, see the Detail API document.
|
|
4
|
+
|
|
5
|
+
**Source Requirements:** SRS Section 4 (System Features), Section 6.2 (Software Interfaces)
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 1. API Overview
|
|
10
|
+
|
|
11
|
+
**Base URL:** `<https://api.example.com/v1>`
|
|
12
|
+
|
|
13
|
+
**API Version:** `v1.0`
|
|
14
|
+
|
|
15
|
+
**Protocol:** `HTTPS`
|
|
16
|
+
|
|
17
|
+
**Authentication:** <JWT/OAuth2/API Key>
|
|
18
|
+
|
|
19
|
+
**Content Type:** `application/json`
|
|
20
|
+
|
|
21
|
+
**Source Requirements:**
|
|
22
|
+
|
|
23
|
+
- SRS Section 4:
|
|
24
|
+
- SRS Section 6.2:
|
|
25
|
+
- SRS Section 7.3:
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## 2. Authentication
|
|
30
|
+
|
|
31
|
+
**Method:** <JWT Bearer Token / OAuth2 / API Key>
|
|
32
|
+
|
|
33
|
+
**How to Authenticate:**
|
|
34
|
+
|
|
35
|
+
> Describe the authentication flow.
|
|
36
|
+
|
|
37
|
+
**Token Format:**
|
|
38
|
+
|
|
39
|
+
> Describe token structure if applicable.
|
|
40
|
+
|
|
41
|
+
**Example:**
|
|
42
|
+
|
|
43
|
+
```http
|
|
44
|
+
Authorization: Bearer <token>
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
**Token Expiration:**
|
|
48
|
+
|
|
49
|
+
> Describe token expiration and refresh mechanism.
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## 3. Endpoint Summary
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
| Method | Endpoint | Description | Authentication |
|
|
57
|
+
| -------- | ---------------- | ----------- | -------------- |
|
|
58
|
+
| `POST` | `/resource` | | Required |
|
|
59
|
+
| `GET` | `/resource` | | Required |
|
|
60
|
+
| `GET` | `/resource/{id}` | | Required |
|
|
61
|
+
| `PUT` | `/resource/{id}` | | Required |
|
|
62
|
+
| `DELETE` | `/resource/{id}` | | Required |
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
> Add one row per endpoint. For detailed specifications (request/response schemas, path/query params), see the Detail API document.
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## 4. Pagination
|
|
70
|
+
|
|
71
|
+
**Query Parameters:**
|
|
72
|
+
|
|
73
|
+
- `page`: Page number (default: 1)
|
|
74
|
+
- `per_page`: Items per page (default: 20, max: 100)
|
|
75
|
+
|
|
76
|
+
**Response Format:**
|
|
77
|
+
|
|
78
|
+
```json
|
|
79
|
+
{
|
|
80
|
+
"data": [...],
|
|
81
|
+
"pagination": {
|
|
82
|
+
"page": 1,
|
|
83
|
+
"per_page": 20,
|
|
84
|
+
"total": 100,
|
|
85
|
+
"total_pages": 5
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## 5. Filtering and Sorting
|
|
93
|
+
|
|
94
|
+
**Query Parameters:**
|
|
95
|
+
|
|
96
|
+
- `filter[field]`: Filter by field value
|
|
97
|
+
- `sort`: Sort field and direction (e.g., `created_at:desc`)
|
|
98
|
+
|
|
99
|
+
**Examples:**
|
|
100
|
+
|
|
101
|
+
```
|
|
102
|
+
GET /resource?filter[status]=active&sort=created_at:desc
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## 6. OpenAPI / Specification Reference
|
|
108
|
+
|
|
109
|
+
> Reference or include link to OpenAPI/Swagger specification file.
|
|
110
|
+
|
|
111
|
+
**Location:** `<api-spec.yaml>`
|
|
112
|
+
|
|
113
|
+
**Note:** For detailed endpoint specifications, see the Detail API document.
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
## 7. Notes
|
|
118
|
+
|
|
119
|
+
**API Versioning Strategy:**
|
|
120
|
+
|
|
121
|
+
> Describe versioning approach.
|
|
122
|
+
|
|
123
|
+
**Deprecation Policy:**
|
|
124
|
+
|
|
125
|
+
> Describe how deprecated endpoints are handled.
|
|
126
|
+
|
|
127
|
+
**Testing:**
|
|
128
|
+
|
|
129
|
+
> Reference API testing documentation or Postman collection.
|
|
130
|
+
|