ai-flow-dev 2.7.0 → 2.8.1
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 -21
- package/README.md +573 -570
- package/package.json +74 -74
- package/prompts/backend/flow-build-phase-0.md +535 -535
- package/prompts/backend/flow-build-phase-1.md +626 -626
- package/prompts/backend/flow-build-phase-10.md +340 -340
- package/prompts/backend/flow-build-phase-2.md +573 -573
- package/prompts/backend/flow-build-phase-3.md +834 -834
- package/prompts/backend/flow-build-phase-4.md +554 -554
- package/prompts/backend/flow-build-phase-5.md +703 -703
- package/prompts/backend/flow-build-phase-6.md +524 -524
- package/prompts/backend/flow-build-phase-7.md +1001 -1001
- package/prompts/backend/flow-build-phase-8.md +1407 -1407
- package/prompts/backend/flow-build-phase-9.md +477 -477
- package/prompts/backend/flow-build.md +137 -137
- package/prompts/backend/flow-check-review.md +656 -20
- package/prompts/backend/flow-check-test.md +526 -14
- package/prompts/backend/flow-check.md +717 -67
- package/prompts/backend/flow-commit.md +88 -119
- package/prompts/backend/flow-docs-sync.md +354 -354
- package/prompts/backend/flow-finish.md +919 -0
- package/prompts/backend/flow-release.md +949 -0
- package/prompts/backend/flow-work-feature.md +61 -61
- package/prompts/backend/flow-work-fix.md +46 -46
- package/prompts/backend/flow-work-refactor.md +48 -48
- package/prompts/backend/flow-work-resume.md +34 -34
- package/prompts/backend/flow-work.md +1098 -1286
- package/prompts/desktop/flow-build-phase-0.md +359 -359
- package/prompts/desktop/flow-build-phase-1.md +295 -295
- package/prompts/desktop/flow-build-phase-10.md +357 -357
- package/prompts/desktop/flow-build-phase-2.md +282 -282
- package/prompts/desktop/flow-build-phase-3.md +291 -291
- package/prompts/desktop/flow-build-phase-4.md +308 -308
- package/prompts/desktop/flow-build-phase-5.md +269 -269
- package/prompts/desktop/flow-build-phase-6.md +350 -350
- package/prompts/desktop/flow-build-phase-7.md +297 -297
- package/prompts/desktop/flow-build-phase-8.md +541 -541
- package/prompts/desktop/flow-build-phase-9.md +439 -439
- package/prompts/desktop/flow-build.md +156 -156
- package/prompts/desktop/flow-check-review.md +656 -20
- package/prompts/desktop/flow-check-test.md +526 -14
- package/prompts/desktop/flow-check.md +717 -67
- package/prompts/desktop/flow-commit.md +88 -119
- package/prompts/desktop/flow-docs-sync.md +354 -354
- package/prompts/desktop/flow-finish.md +919 -0
- package/prompts/desktop/flow-release.md +662 -0
- package/prompts/desktop/flow-work-feature.md +61 -61
- package/prompts/desktop/flow-work-fix.md +46 -46
- package/prompts/desktop/flow-work-refactor.md +48 -48
- package/prompts/desktop/flow-work-resume.md +34 -34
- package/prompts/desktop/flow-work.md +1202 -1390
- package/prompts/frontend/flow-build-phase-0.md +425 -425
- package/prompts/frontend/flow-build-phase-1.md +626 -626
- package/prompts/frontend/flow-build-phase-10.md +33 -33
- package/prompts/frontend/flow-build-phase-2.md +573 -573
- package/prompts/frontend/flow-build-phase-3.md +782 -782
- package/prompts/frontend/flow-build-phase-4.md +554 -554
- package/prompts/frontend/flow-build-phase-5.md +703 -703
- package/prompts/frontend/flow-build-phase-6.md +524 -524
- package/prompts/frontend/flow-build-phase-7.md +1001 -1001
- package/prompts/frontend/flow-build-phase-8.md +872 -872
- package/prompts/frontend/flow-build-phase-9.md +94 -94
- package/prompts/frontend/flow-build.md +137 -137
- package/prompts/frontend/flow-check-review.md +656 -20
- package/prompts/frontend/flow-check-test.md +526 -14
- package/prompts/frontend/flow-check.md +717 -67
- package/prompts/frontend/flow-commit.md +88 -119
- package/prompts/frontend/flow-docs-sync.md +550 -550
- package/prompts/frontend/flow-finish.md +919 -0
- package/prompts/frontend/flow-release.md +519 -0
- package/prompts/frontend/flow-work-api.md +1547 -0
- package/prompts/frontend/flow-work-feature.md +61 -61
- package/prompts/frontend/flow-work-fix.md +38 -38
- package/prompts/frontend/flow-work-refactor.md +48 -48
- package/prompts/frontend/flow-work-resume.md +34 -34
- package/prompts/frontend/flow-work.md +1595 -1320
- package/prompts/mobile/flow-build-phase-0.md +425 -425
- package/prompts/mobile/flow-build-phase-1.md +626 -626
- package/prompts/mobile/flow-build-phase-10.md +32 -32
- package/prompts/mobile/flow-build-phase-2.md +573 -573
- package/prompts/mobile/flow-build-phase-3.md +782 -782
- package/prompts/mobile/flow-build-phase-4.md +554 -554
- package/prompts/mobile/flow-build-phase-5.md +703 -703
- package/prompts/mobile/flow-build-phase-6.md +524 -524
- package/prompts/mobile/flow-build-phase-7.md +1001 -1001
- package/prompts/mobile/flow-build-phase-8.md +888 -888
- package/prompts/mobile/flow-build-phase-9.md +90 -90
- package/prompts/mobile/flow-build.md +135 -135
- package/prompts/mobile/flow-check-review.md +656 -20
- package/prompts/mobile/flow-check-test.md +526 -14
- package/prompts/mobile/flow-check.md +717 -67
- package/prompts/mobile/flow-commit.md +88 -119
- package/prompts/mobile/flow-docs-sync.md +620 -620
- package/prompts/mobile/flow-finish.md +919 -0
- package/prompts/mobile/flow-release.md +751 -0
- package/prompts/mobile/flow-work-api.md +1500 -0
- package/prompts/mobile/flow-work-feature.md +61 -61
- package/prompts/mobile/flow-work-fix.md +46 -46
- package/prompts/mobile/flow-work-refactor.md +48 -48
- package/prompts/mobile/flow-work-resume.md +34 -34
- package/prompts/mobile/flow-work.md +1605 -1329
- package/prompts/shared/mermaid-guidelines.md +102 -102
- package/prompts/shared/scope-levels.md +114 -114
- package/prompts/shared/smart-skip-preflight.md +214 -214
- package/prompts/shared/story-points.md +55 -55
- package/prompts/shared/task-format.md +74 -74
- package/prompts/shared/task-summary-template.md +277 -277
- package/templates/AGENT.template.md +443 -443
- package/templates/backend/.clauderules.template +112 -112
- package/templates/backend/.cursorrules.template +102 -102
- package/templates/backend/README.template.md +2 -2
- package/templates/backend/ai-instructions.template.md +2 -2
- package/templates/backend/copilot-instructions.template.md +2 -2
- package/templates/backend/docs/api.template.md +320 -320
- package/templates/backend/docs/business-flows.template.md +97 -97
- package/templates/backend/docs/code-standards.template.md +2 -2
- package/templates/backend/docs/contributing.template.md +3 -3
- package/templates/backend/docs/data-model.template.md +520 -520
- package/templates/backend/docs/testing.template.md +2 -2
- package/templates/backend/project-brief.template.md +2 -2
- package/templates/backend/specs/configuration.template.md +2 -2
- package/templates/backend/specs/security.template.md +2 -2
- package/templates/desktop/.clauderules.template +112 -112
- package/templates/desktop/.cursorrules.template +102 -102
- package/templates/desktop/README.template.md +170 -170
- package/templates/desktop/ai-instructions.template.md +366 -366
- package/templates/desktop/copilot-instructions.template.md +140 -140
- package/templates/desktop/docs/docs/api.template.md +320 -320
- package/templates/desktop/docs/docs/architecture.template.md +724 -724
- package/templates/desktop/docs/docs/business-flows.template.md +102 -102
- package/templates/desktop/docs/docs/code-standards.template.md +792 -792
- package/templates/desktop/docs/docs/contributing.template.md +149 -149
- package/templates/desktop/docs/docs/data-model.template.md +520 -520
- package/templates/desktop/docs/docs/operations.template.md +720 -720
- package/templates/desktop/docs/docs/testing.template.md +722 -722
- package/templates/desktop/project-brief.template.md +150 -150
- package/templates/desktop/specs/specs/configuration.template.md +121 -121
- package/templates/desktop/specs/specs/security.template.md +392 -392
- package/templates/frontend/README.template.md +2 -2
- package/templates/frontend/ai-instructions.template.md +2 -2
- package/templates/frontend/docs/api-integration.template.md +362 -362
- package/templates/frontend/docs/components.template.md +2 -2
- package/templates/frontend/docs/error-handling.template.md +360 -360
- package/templates/frontend/docs/operations.template.md +107 -107
- package/templates/frontend/docs/performance.template.md +124 -124
- package/templates/frontend/docs/pwa.template.md +119 -119
- package/templates/frontend/docs/state-management.template.md +2 -2
- package/templates/frontend/docs/styling.template.md +2 -2
- package/templates/frontend/docs/testing.template.md +2 -2
- package/templates/frontend/project-brief.template.md +2 -2
- package/templates/frontend/specs/accessibility.template.md +95 -95
- package/templates/frontend/specs/configuration.template.md +2 -2
- package/templates/frontend/specs/security.template.md +175 -175
- package/templates/fullstack/README.template.md +252 -252
- package/templates/fullstack/ai-instructions.template.md +444 -444
- package/templates/fullstack/project-brief.template.md +157 -157
- package/templates/fullstack/specs/configuration.template.md +340 -340
- package/templates/mobile/README.template.md +167 -167
- package/templates/mobile/ai-instructions.template.md +196 -196
- package/templates/mobile/docs/app-store.template.md +135 -135
- package/templates/mobile/docs/architecture.template.md +63 -63
- package/templates/mobile/docs/native-features.template.md +94 -94
- package/templates/mobile/docs/navigation.template.md +59 -59
- package/templates/mobile/docs/offline-strategy.template.md +65 -65
- package/templates/mobile/docs/permissions.template.md +56 -56
- package/templates/mobile/docs/state-management.template.md +85 -85
- package/templates/mobile/docs/testing.template.md +109 -109
- package/templates/mobile/project-brief.template.md +69 -69
- package/templates/mobile/specs/build-configuration.template.md +91 -91
- package/templates/mobile/specs/deployment.template.md +92 -92
- package/templates/work.template.md +61 -47
|
@@ -1,308 +1,308 @@
|
|
|
1
|
-
## PHASE 4: Data & Storage (15-20 min)
|
|
2
|
-
|
|
3
|
-
> **Order for this phase:** 4.1 → 4.2 → 4.3 → 4.4 → 4.5 → 4.6
|
|
4
|
-
|
|
5
|
-
### Objective
|
|
6
|
-
|
|
7
|
-
Define data persistence, database strategy, and file handling for desktop applications.
|
|
8
|
-
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
## 4.1 Data Storage Strategy
|
|
12
|
-
|
|
13
|
-
```
|
|
14
|
-
How will your application store data?
|
|
15
|
-
|
|
16
|
-
A) 📁 File-based - No database
|
|
17
|
-
- JSON files
|
|
18
|
-
- XML files
|
|
19
|
-
- Properties files
|
|
20
|
-
- Binary serialization
|
|
21
|
-
- Best for: Simple apps, configuration
|
|
22
|
-
|
|
23
|
-
B) 🗄️ Embedded Database - Local DB
|
|
24
|
-
- H2 Database (Java pure, fast)
|
|
25
|
-
- Apache Derby (Java pure, robust)
|
|
26
|
-
- SQLite (C-based, widely used)
|
|
27
|
-
- HSQLDB (Java pure, SQL compliant)
|
|
28
|
-
- Best for: Structured data, queries
|
|
29
|
-
|
|
30
|
-
C) 🏢 Client-Server Database - External DB
|
|
31
|
-
- MySQL
|
|
32
|
-
- PostgreSQL
|
|
33
|
-
- Oracle
|
|
34
|
-
- SQL Server
|
|
35
|
-
- Best for: Multi-user, shared data
|
|
36
|
-
|
|
37
|
-
D) ☁️ Hybrid - Local + Cloud
|
|
38
|
-
- Local embedded DB for offline
|
|
39
|
-
- Sync with cloud when online
|
|
40
|
-
- Best for: Offline-first apps
|
|
41
|
-
|
|
42
|
-
E) 🔐 Secure Storage - Sensitive data
|
|
43
|
-
- Keychain (macOS)
|
|
44
|
-
- Credential Manager (Windows)
|
|
45
|
-
- Secret Service (Linux)
|
|
46
|
-
- Encrypted files
|
|
47
|
-
|
|
48
|
-
Your primary storage: __
|
|
49
|
-
Your secondary storage: __
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
---
|
|
53
|
-
|
|
54
|
-
## 4.2 Database Configuration
|
|
55
|
-
|
|
56
|
-
**For Embedded Database (H2/Derby/SQLite):**
|
|
57
|
-
|
|
58
|
-
```
|
|
59
|
-
Database location:
|
|
60
|
-
A) User home directory - ~/.myapp/database.db
|
|
61
|
-
B) App data directory - AppData/Roaming/MyApp/ (Windows)
|
|
62
|
-
C) Application bundle - Resources/ (not recommended for writes)
|
|
63
|
-
D) Custom location - User-specified
|
|
64
|
-
|
|
65
|
-
Your choice: __
|
|
66
|
-
|
|
67
|
-
Connection mode:
|
|
68
|
-
A) Embedded - Runs in-process, single user
|
|
69
|
-
B) Server mode - Separate process, multi-user
|
|
70
|
-
C) Mixed mode - Both embedded and server
|
|
71
|
-
|
|
72
|
-
Your choice: __
|
|
73
|
-
|
|
74
|
-
Schema management:
|
|
75
|
-
A) Auto-generate - JPA @Entity annotations
|
|
76
|
-
B) Manual SQL scripts - schema.sql, data.sql
|
|
77
|
-
C) Migration tool - Flyway, Liquibase
|
|
78
|
-
D) No schema - NoSQL approach
|
|
79
|
-
|
|
80
|
-
Your choice: __
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
**For Client-Server Database:**
|
|
84
|
-
|
|
85
|
-
```
|
|
86
|
-
Connection pooling:
|
|
87
|
-
A) HikariCP - Fast, modern (recommended)
|
|
88
|
-
B) C3P0 - Mature, widely used
|
|
89
|
-
C) Apache DBCP - Apache Commons
|
|
90
|
-
D) None - Direct connections
|
|
91
|
-
|
|
92
|
-
Your choice: __
|
|
93
|
-
|
|
94
|
-
Connection parameters:
|
|
95
|
-
- Host: localhost or remote
|
|
96
|
-
- Port: [3306, 5432, etc.]
|
|
97
|
-
- Database name: __
|
|
98
|
-
- Max connections: __ (10-20 for desktop)
|
|
99
|
-
- Timeout: __ seconds
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
---
|
|
103
|
-
|
|
104
|
-
## 4.3 ORM/Data Access
|
|
105
|
-
|
|
106
|
-
```
|
|
107
|
-
How will you access the database?
|
|
108
|
-
|
|
109
|
-
A) 🏆 JPA + Hibernate - Full ORM framework
|
|
110
|
-
- Entity mapping with @Entity
|
|
111
|
-
- JPQL queries
|
|
112
|
-
- Automatic CRUD
|
|
113
|
-
- Best for: Complex domain models
|
|
114
|
-
|
|
115
|
-
B) 🗄️ JPA + EclipseLink - Alternative ORM
|
|
116
|
-
- JPA standard implementation
|
|
117
|
-
- Good performance
|
|
118
|
-
- NetBeans default
|
|
119
|
-
|
|
120
|
-
C) ⚡ JDBC (raw) - Direct SQL
|
|
121
|
-
- PreparedStatement
|
|
122
|
-
- ResultSet
|
|
123
|
-
- Full control
|
|
124
|
-
- Best for: Simple apps, performance
|
|
125
|
-
|
|
126
|
-
D) 🔧 jOOQ - Type-safe SQL
|
|
127
|
-
- Code generation from schema
|
|
128
|
-
- Type-safe queries
|
|
129
|
-
- SQL-first approach
|
|
130
|
-
|
|
131
|
-
E) 🚀 Spring Data JPA - Repository pattern
|
|
132
|
-
- Interface-based repositories
|
|
133
|
-
- Query derivation
|
|
134
|
-
- Best for: Spring-based apps
|
|
135
|
-
|
|
136
|
-
F) 📋 MyBatis - SQL mapping
|
|
137
|
-
- XML or annotation-based
|
|
138
|
-
- SQL control + object mapping
|
|
139
|
-
|
|
140
|
-
Your choice: __
|
|
141
|
-
```
|
|
142
|
-
|
|
143
|
-
---
|
|
144
|
-
|
|
145
|
-
## 4.4 Entity Design
|
|
146
|
-
|
|
147
|
-
```
|
|
148
|
-
List your main data entities:
|
|
149
|
-
|
|
150
|
-
For each entity, specify:
|
|
151
|
-
- Name: e.g., User, Project, Task
|
|
152
|
-
- Attributes: id, name, createdDate, etc.
|
|
153
|
-
- Relationships: One-to-Many, Many-to-One, Many-to-Many
|
|
154
|
-
- Constraints: NOT NULL, UNIQUE, foreign keys
|
|
155
|
-
|
|
156
|
-
Example:
|
|
157
|
-
|
|
158
|
-
**Entity: User**
|
|
159
|
-
- id: Long (Primary Key, Auto-increment)
|
|
160
|
-
- username: String (UNIQUE, NOT NULL)
|
|
161
|
-
- email: String (UNIQUE, NOT NULL)
|
|
162
|
-
- createdDate: LocalDateTime (NOT NULL)
|
|
163
|
-
- projects: List<Project> (One-to-Many)
|
|
164
|
-
|
|
165
|
-
**Entity: Project**
|
|
166
|
-
- id: Long (Primary Key, Auto-increment)
|
|
167
|
-
- name: String (NOT NULL)
|
|
168
|
-
- description: String
|
|
169
|
-
- owner: User (Many-to-One)
|
|
170
|
-
- tasks: List<Task> (One-to-Many)
|
|
171
|
-
|
|
172
|
-
**Entity: Task**
|
|
173
|
-
- id: Long (Primary Key, Auto-increment)
|
|
174
|
-
- title: String (NOT NULL)
|
|
175
|
-
- completed: Boolean (default: false)
|
|
176
|
-
- project: Project (Many-to-One)
|
|
177
|
-
|
|
178
|
-
Your entities:
|
|
179
|
-
1.
|
|
180
|
-
2.
|
|
181
|
-
3.
|
|
182
|
-
...
|
|
183
|
-
```
|
|
184
|
-
|
|
185
|
-
---
|
|
186
|
-
|
|
187
|
-
## 4.5 File Handling
|
|
188
|
-
|
|
189
|
-
```
|
|
190
|
-
Does your application work with files?
|
|
191
|
-
|
|
192
|
-
A) ✅ Yes - Primary function (editor, viewer, converter)
|
|
193
|
-
B) 🔄 Yes - Import/Export functionality
|
|
194
|
-
C) ❌ No - Data-only, no file operations
|
|
195
|
-
|
|
196
|
-
If yes, specify:
|
|
197
|
-
|
|
198
|
-
**File Types:**
|
|
199
|
-
- Supported formats: .txt, .pdf, .xlsx, .json, etc.
|
|
200
|
-
- Binary or text?
|
|
201
|
-
- Custom format?
|
|
202
|
-
|
|
203
|
-
**File Operations:**
|
|
204
|
-
A) 📂 Open file - Read and display
|
|
205
|
-
B) 💾 Save file - Write to disk
|
|
206
|
-
C) 📝 Save As - Save with new name
|
|
207
|
-
D) 📥 Import - Load data from file
|
|
208
|
-
E) 📤 Export - Export data to file
|
|
209
|
-
F) 📋 Recent files - MRU list
|
|
210
|
-
G) 🔄 Auto-save - Periodic save
|
|
211
|
-
H) 🔐 Encryption - Encrypt sensitive files
|
|
212
|
-
|
|
213
|
-
**File Picker:**
|
|
214
|
-
- Native file chooser (JFileChooser, FileChooser, FileDialog)
|
|
215
|
-
- Custom file browser?
|
|
216
|
-
- Drag & drop support?
|
|
217
|
-
|
|
218
|
-
**File Associations:**
|
|
219
|
-
- Register app for file types? (.myapp files)
|
|
220
|
-
- Open files from OS?
|
|
221
|
-
|
|
222
|
-
Your file handling: __
|
|
223
|
-
```
|
|
224
|
-
|
|
225
|
-
---
|
|
226
|
-
|
|
227
|
-
## 4.6 Backup & Migration
|
|
228
|
-
|
|
229
|
-
```
|
|
230
|
-
Data backup and migration strategy:
|
|
231
|
-
|
|
232
|
-
**Backup:**
|
|
233
|
-
A) ✅ Automatic backup - Before app closes, periodic
|
|
234
|
-
B) 🔄 Manual backup - User-initiated
|
|
235
|
-
C) ☁️ Cloud backup - Sync to cloud
|
|
236
|
-
D) ❌ No backup - User responsible
|
|
237
|
-
|
|
238
|
-
Backup location:
|
|
239
|
-
- Same directory as database
|
|
240
|
-
- User documents folder
|
|
241
|
-
- Cloud storage (Dropbox, Google Drive)
|
|
242
|
-
|
|
243
|
-
**Migration:**
|
|
244
|
-
When you release new versions with schema changes:
|
|
245
|
-
|
|
246
|
-
A) ✅ Automatic migration - Flyway/Liquibase
|
|
247
|
-
- Version-based SQL scripts
|
|
248
|
-
- Rollback support
|
|
249
|
-
- Best for: Production apps
|
|
250
|
-
|
|
251
|
-
B) 🔄 Manual migration - SQL scripts
|
|
252
|
-
- User runs scripts manually
|
|
253
|
-
- Documentation provided
|
|
254
|
-
|
|
255
|
-
C) 🏗️ Schema recreation - Drop and recreate
|
|
256
|
-
- Data loss (development only)
|
|
257
|
-
|
|
258
|
-
Your choices: __
|
|
259
|
-
```
|
|
260
|
-
|
|
261
|
-
---
|
|
262
|
-
|
|
263
|
-
### Phase 4 Output
|
|
264
|
-
|
|
265
|
-
```
|
|
266
|
-
📋 PHASE 4 SUMMARY:
|
|
267
|
-
|
|
268
|
-
Primary Storage: [File-based/Embedded DB/Client-Server/Hybrid]
|
|
269
|
-
Database: [H2/Derby/SQLite/MySQL/PostgreSQL]
|
|
270
|
-
Database Location: [User home/App data]
|
|
271
|
-
ORM/Data Access: [JPA+Hibernate/JDBC/jOOQ]
|
|
272
|
-
Entities: [List of entities with relationships]
|
|
273
|
-
File Handling: [Yes/No, formats, operations]
|
|
274
|
-
Backup Strategy: [Automatic/Manual/Cloud]
|
|
275
|
-
Migration: [Flyway/Liquibase/Manual]
|
|
276
|
-
|
|
277
|
-
Is this correct? (Yes/No)
|
|
278
|
-
```
|
|
279
|
-
|
|
280
|
-
---
|
|
281
|
-
|
|
282
|
-
### 📄 Update Documents
|
|
283
|
-
|
|
284
|
-
Update `docs/ARCHITECTURE.md` with:
|
|
285
|
-
|
|
286
|
-
- Data storage architecture
|
|
287
|
-
- Database schema (ERD diagram)
|
|
288
|
-
- Entity-relationship model
|
|
289
|
-
- File handling flow
|
|
290
|
-
- Backup and migration strategy
|
|
291
|
-
|
|
292
|
-
Update `docs/DATABASE.md` (if applicable):
|
|
293
|
-
|
|
294
|
-
- Schema definition
|
|
295
|
-
- Entity descriptions
|
|
296
|
-
- SQL scripts
|
|
297
|
-
- Migration procedures
|
|
298
|
-
|
|
299
|
-
---
|
|
300
|
-
|
|
301
|
-
**Next Phase:** Phase 5 - Code Standards (10-15 min)
|
|
302
|
-
|
|
303
|
-
Read: `.ai-flow/prompts/desktop/flow-build-phase-5.md`
|
|
304
|
-
|
|
305
|
-
---
|
|
306
|
-
|
|
307
|
-
**Last Updated:** 2025-02-03
|
|
308
|
-
**Version:** 1.0.0
|
|
1
|
+
## PHASE 4: Data & Storage (15-20 min)
|
|
2
|
+
|
|
3
|
+
> **Order for this phase:** 4.1 → 4.2 → 4.3 → 4.4 → 4.5 → 4.6
|
|
4
|
+
|
|
5
|
+
### Objective
|
|
6
|
+
|
|
7
|
+
Define data persistence, database strategy, and file handling for desktop applications.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## 4.1 Data Storage Strategy
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
How will your application store data?
|
|
15
|
+
|
|
16
|
+
A) 📁 File-based - No database
|
|
17
|
+
- JSON files
|
|
18
|
+
- XML files
|
|
19
|
+
- Properties files
|
|
20
|
+
- Binary serialization
|
|
21
|
+
- Best for: Simple apps, configuration
|
|
22
|
+
|
|
23
|
+
B) 🗄️ Embedded Database - Local DB
|
|
24
|
+
- H2 Database (Java pure, fast)
|
|
25
|
+
- Apache Derby (Java pure, robust)
|
|
26
|
+
- SQLite (C-based, widely used)
|
|
27
|
+
- HSQLDB (Java pure, SQL compliant)
|
|
28
|
+
- Best for: Structured data, queries
|
|
29
|
+
|
|
30
|
+
C) 🏢 Client-Server Database - External DB
|
|
31
|
+
- MySQL
|
|
32
|
+
- PostgreSQL
|
|
33
|
+
- Oracle
|
|
34
|
+
- SQL Server
|
|
35
|
+
- Best for: Multi-user, shared data
|
|
36
|
+
|
|
37
|
+
D) ☁️ Hybrid - Local + Cloud
|
|
38
|
+
- Local embedded DB for offline
|
|
39
|
+
- Sync with cloud when online
|
|
40
|
+
- Best for: Offline-first apps
|
|
41
|
+
|
|
42
|
+
E) 🔐 Secure Storage - Sensitive data
|
|
43
|
+
- Keychain (macOS)
|
|
44
|
+
- Credential Manager (Windows)
|
|
45
|
+
- Secret Service (Linux)
|
|
46
|
+
- Encrypted files
|
|
47
|
+
|
|
48
|
+
Your primary storage: __
|
|
49
|
+
Your secondary storage: __
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## 4.2 Database Configuration
|
|
55
|
+
|
|
56
|
+
**For Embedded Database (H2/Derby/SQLite):**
|
|
57
|
+
|
|
58
|
+
```
|
|
59
|
+
Database location:
|
|
60
|
+
A) User home directory - ~/.myapp/database.db
|
|
61
|
+
B) App data directory - AppData/Roaming/MyApp/ (Windows)
|
|
62
|
+
C) Application bundle - Resources/ (not recommended for writes)
|
|
63
|
+
D) Custom location - User-specified
|
|
64
|
+
|
|
65
|
+
Your choice: __
|
|
66
|
+
|
|
67
|
+
Connection mode:
|
|
68
|
+
A) Embedded - Runs in-process, single user
|
|
69
|
+
B) Server mode - Separate process, multi-user
|
|
70
|
+
C) Mixed mode - Both embedded and server
|
|
71
|
+
|
|
72
|
+
Your choice: __
|
|
73
|
+
|
|
74
|
+
Schema management:
|
|
75
|
+
A) Auto-generate - JPA @Entity annotations
|
|
76
|
+
B) Manual SQL scripts - schema.sql, data.sql
|
|
77
|
+
C) Migration tool - Flyway, Liquibase
|
|
78
|
+
D) No schema - NoSQL approach
|
|
79
|
+
|
|
80
|
+
Your choice: __
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
**For Client-Server Database:**
|
|
84
|
+
|
|
85
|
+
```
|
|
86
|
+
Connection pooling:
|
|
87
|
+
A) HikariCP - Fast, modern (recommended)
|
|
88
|
+
B) C3P0 - Mature, widely used
|
|
89
|
+
C) Apache DBCP - Apache Commons
|
|
90
|
+
D) None - Direct connections
|
|
91
|
+
|
|
92
|
+
Your choice: __
|
|
93
|
+
|
|
94
|
+
Connection parameters:
|
|
95
|
+
- Host: localhost or remote
|
|
96
|
+
- Port: [3306, 5432, etc.]
|
|
97
|
+
- Database name: __
|
|
98
|
+
- Max connections: __ (10-20 for desktop)
|
|
99
|
+
- Timeout: __ seconds
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## 4.3 ORM/Data Access
|
|
105
|
+
|
|
106
|
+
```
|
|
107
|
+
How will you access the database?
|
|
108
|
+
|
|
109
|
+
A) 🏆 JPA + Hibernate - Full ORM framework
|
|
110
|
+
- Entity mapping with @Entity
|
|
111
|
+
- JPQL queries
|
|
112
|
+
- Automatic CRUD
|
|
113
|
+
- Best for: Complex domain models
|
|
114
|
+
|
|
115
|
+
B) 🗄️ JPA + EclipseLink - Alternative ORM
|
|
116
|
+
- JPA standard implementation
|
|
117
|
+
- Good performance
|
|
118
|
+
- NetBeans default
|
|
119
|
+
|
|
120
|
+
C) ⚡ JDBC (raw) - Direct SQL
|
|
121
|
+
- PreparedStatement
|
|
122
|
+
- ResultSet
|
|
123
|
+
- Full control
|
|
124
|
+
- Best for: Simple apps, performance
|
|
125
|
+
|
|
126
|
+
D) 🔧 jOOQ - Type-safe SQL
|
|
127
|
+
- Code generation from schema
|
|
128
|
+
- Type-safe queries
|
|
129
|
+
- SQL-first approach
|
|
130
|
+
|
|
131
|
+
E) 🚀 Spring Data JPA - Repository pattern
|
|
132
|
+
- Interface-based repositories
|
|
133
|
+
- Query derivation
|
|
134
|
+
- Best for: Spring-based apps
|
|
135
|
+
|
|
136
|
+
F) 📋 MyBatis - SQL mapping
|
|
137
|
+
- XML or annotation-based
|
|
138
|
+
- SQL control + object mapping
|
|
139
|
+
|
|
140
|
+
Your choice: __
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
## 4.4 Entity Design
|
|
146
|
+
|
|
147
|
+
```
|
|
148
|
+
List your main data entities:
|
|
149
|
+
|
|
150
|
+
For each entity, specify:
|
|
151
|
+
- Name: e.g., User, Project, Task
|
|
152
|
+
- Attributes: id, name, createdDate, etc.
|
|
153
|
+
- Relationships: One-to-Many, Many-to-One, Many-to-Many
|
|
154
|
+
- Constraints: NOT NULL, UNIQUE, foreign keys
|
|
155
|
+
|
|
156
|
+
Example:
|
|
157
|
+
|
|
158
|
+
**Entity: User**
|
|
159
|
+
- id: Long (Primary Key, Auto-increment)
|
|
160
|
+
- username: String (UNIQUE, NOT NULL)
|
|
161
|
+
- email: String (UNIQUE, NOT NULL)
|
|
162
|
+
- createdDate: LocalDateTime (NOT NULL)
|
|
163
|
+
- projects: List<Project> (One-to-Many)
|
|
164
|
+
|
|
165
|
+
**Entity: Project**
|
|
166
|
+
- id: Long (Primary Key, Auto-increment)
|
|
167
|
+
- name: String (NOT NULL)
|
|
168
|
+
- description: String
|
|
169
|
+
- owner: User (Many-to-One)
|
|
170
|
+
- tasks: List<Task> (One-to-Many)
|
|
171
|
+
|
|
172
|
+
**Entity: Task**
|
|
173
|
+
- id: Long (Primary Key, Auto-increment)
|
|
174
|
+
- title: String (NOT NULL)
|
|
175
|
+
- completed: Boolean (default: false)
|
|
176
|
+
- project: Project (Many-to-One)
|
|
177
|
+
|
|
178
|
+
Your entities:
|
|
179
|
+
1.
|
|
180
|
+
2.
|
|
181
|
+
3.
|
|
182
|
+
...
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
---
|
|
186
|
+
|
|
187
|
+
## 4.5 File Handling
|
|
188
|
+
|
|
189
|
+
```
|
|
190
|
+
Does your application work with files?
|
|
191
|
+
|
|
192
|
+
A) ✅ Yes - Primary function (editor, viewer, converter)
|
|
193
|
+
B) 🔄 Yes - Import/Export functionality
|
|
194
|
+
C) ❌ No - Data-only, no file operations
|
|
195
|
+
|
|
196
|
+
If yes, specify:
|
|
197
|
+
|
|
198
|
+
**File Types:**
|
|
199
|
+
- Supported formats: .txt, .pdf, .xlsx, .json, etc.
|
|
200
|
+
- Binary or text?
|
|
201
|
+
- Custom format?
|
|
202
|
+
|
|
203
|
+
**File Operations:**
|
|
204
|
+
A) 📂 Open file - Read and display
|
|
205
|
+
B) 💾 Save file - Write to disk
|
|
206
|
+
C) 📝 Save As - Save with new name
|
|
207
|
+
D) 📥 Import - Load data from file
|
|
208
|
+
E) 📤 Export - Export data to file
|
|
209
|
+
F) 📋 Recent files - MRU list
|
|
210
|
+
G) 🔄 Auto-save - Periodic save
|
|
211
|
+
H) 🔐 Encryption - Encrypt sensitive files
|
|
212
|
+
|
|
213
|
+
**File Picker:**
|
|
214
|
+
- Native file chooser (JFileChooser, FileChooser, FileDialog)
|
|
215
|
+
- Custom file browser?
|
|
216
|
+
- Drag & drop support?
|
|
217
|
+
|
|
218
|
+
**File Associations:**
|
|
219
|
+
- Register app for file types? (.myapp files)
|
|
220
|
+
- Open files from OS?
|
|
221
|
+
|
|
222
|
+
Your file handling: __
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
---
|
|
226
|
+
|
|
227
|
+
## 4.6 Backup & Migration
|
|
228
|
+
|
|
229
|
+
```
|
|
230
|
+
Data backup and migration strategy:
|
|
231
|
+
|
|
232
|
+
**Backup:**
|
|
233
|
+
A) ✅ Automatic backup - Before app closes, periodic
|
|
234
|
+
B) 🔄 Manual backup - User-initiated
|
|
235
|
+
C) ☁️ Cloud backup - Sync to cloud
|
|
236
|
+
D) ❌ No backup - User responsible
|
|
237
|
+
|
|
238
|
+
Backup location:
|
|
239
|
+
- Same directory as database
|
|
240
|
+
- User documents folder
|
|
241
|
+
- Cloud storage (Dropbox, Google Drive)
|
|
242
|
+
|
|
243
|
+
**Migration:**
|
|
244
|
+
When you release new versions with schema changes:
|
|
245
|
+
|
|
246
|
+
A) ✅ Automatic migration - Flyway/Liquibase
|
|
247
|
+
- Version-based SQL scripts
|
|
248
|
+
- Rollback support
|
|
249
|
+
- Best for: Production apps
|
|
250
|
+
|
|
251
|
+
B) 🔄 Manual migration - SQL scripts
|
|
252
|
+
- User runs scripts manually
|
|
253
|
+
- Documentation provided
|
|
254
|
+
|
|
255
|
+
C) 🏗️ Schema recreation - Drop and recreate
|
|
256
|
+
- Data loss (development only)
|
|
257
|
+
|
|
258
|
+
Your choices: __
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
---
|
|
262
|
+
|
|
263
|
+
### Phase 4 Output
|
|
264
|
+
|
|
265
|
+
```
|
|
266
|
+
📋 PHASE 4 SUMMARY:
|
|
267
|
+
|
|
268
|
+
Primary Storage: [File-based/Embedded DB/Client-Server/Hybrid]
|
|
269
|
+
Database: [H2/Derby/SQLite/MySQL/PostgreSQL]
|
|
270
|
+
Database Location: [User home/App data]
|
|
271
|
+
ORM/Data Access: [JPA+Hibernate/JDBC/jOOQ]
|
|
272
|
+
Entities: [List of entities with relationships]
|
|
273
|
+
File Handling: [Yes/No, formats, operations]
|
|
274
|
+
Backup Strategy: [Automatic/Manual/Cloud]
|
|
275
|
+
Migration: [Flyway/Liquibase/Manual]
|
|
276
|
+
|
|
277
|
+
Is this correct? (Yes/No)
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
---
|
|
281
|
+
|
|
282
|
+
### 📄 Update Documents
|
|
283
|
+
|
|
284
|
+
Update `docs/ARCHITECTURE.md` with:
|
|
285
|
+
|
|
286
|
+
- Data storage architecture
|
|
287
|
+
- Database schema (ERD diagram)
|
|
288
|
+
- Entity-relationship model
|
|
289
|
+
- File handling flow
|
|
290
|
+
- Backup and migration strategy
|
|
291
|
+
|
|
292
|
+
Update `docs/DATABASE.md` (if applicable):
|
|
293
|
+
|
|
294
|
+
- Schema definition
|
|
295
|
+
- Entity descriptions
|
|
296
|
+
- SQL scripts
|
|
297
|
+
- Migration procedures
|
|
298
|
+
|
|
299
|
+
---
|
|
300
|
+
|
|
301
|
+
**Next Phase:** Phase 5 - Code Standards (10-15 min)
|
|
302
|
+
|
|
303
|
+
Read: `.ai-flow/prompts/desktop/flow-build-phase-5.md`
|
|
304
|
+
|
|
305
|
+
---
|
|
306
|
+
|
|
307
|
+
**Last Updated:** 2025-02-03
|
|
308
|
+
**Version:** 1.0.0
|