kanbanqube 1.0.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 +201 -0
- package/README.md +287 -0
- package/demo_board.json +321 -0
- package/package.json +46 -0
- package/promo.jpg +0 -0
- package/public/about.jpg +0 -0
- package/public/app.js +2897 -0
- package/public/favicon.svg +11 -0
- package/public/icon_3d.png +0 -0
- package/public/icon_flat.png +0 -0
- package/public/index.html +318 -0
- package/public/styles.css +1554 -0
- package/screenshot.png +0 -0
- package/server.js +1347 -0
package/demo_board.json
ADDED
|
@@ -0,0 +1,321 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "demo-board-commerceflow",
|
|
3
|
+
"nodeId": "kanbanqube:board:demo-board-commerceflow",
|
|
4
|
+
"name": "CommerceFlow Website Launch",
|
|
5
|
+
"desc": "Demo product board for a software team building an e-commerce website.",
|
|
6
|
+
"closed": false,
|
|
7
|
+
"dateLastActivity": "2026-06-10T17:00:00.000Z",
|
|
8
|
+
"dateLastView": "2026-06-10T17:00:00.000Z",
|
|
9
|
+
"idTags": [],
|
|
10
|
+
"ixUpdate": 1781110800000,
|
|
11
|
+
"labelNames": {
|
|
12
|
+
"purple": "Design",
|
|
13
|
+
"sky": "UX",
|
|
14
|
+
"blue": "Frontend",
|
|
15
|
+
"green": "Backend",
|
|
16
|
+
"yellow": "Content",
|
|
17
|
+
"red": "QA",
|
|
18
|
+
"orange": "Analytics"
|
|
19
|
+
},
|
|
20
|
+
"labels": [
|
|
21
|
+
{ "id": "demo-label-design", "idBoard": "demo-board-commerceflow", "name": "Design", "color": "purple", "uses": 0 },
|
|
22
|
+
{ "id": "demo-label-ux", "idBoard": "demo-board-commerceflow", "name": "UX", "color": "sky", "uses": 0 },
|
|
23
|
+
{ "id": "demo-label-frontend", "idBoard": "demo-board-commerceflow", "name": "Frontend", "color": "blue", "uses": 0 },
|
|
24
|
+
{ "id": "demo-label-backend", "idBoard": "demo-board-commerceflow", "name": "Backend", "color": "green", "uses": 0 },
|
|
25
|
+
{ "id": "demo-label-content", "idBoard": "demo-board-commerceflow", "name": "Content", "color": "yellow", "uses": 0 },
|
|
26
|
+
{ "id": "demo-label-qa", "idBoard": "demo-board-commerceflow", "name": "QA", "color": "red", "uses": 0 },
|
|
27
|
+
{ "id": "demo-label-analytics", "idBoard": "demo-board-commerceflow", "name": "Analytics", "color": "orange", "uses": 0 }
|
|
28
|
+
],
|
|
29
|
+
"lists": [
|
|
30
|
+
{ "id": "demo-list-backlog", "idBoard": "demo-board-commerceflow", "name": "Backlog", "closed": false, "pos": 16384 },
|
|
31
|
+
{ "id": "demo-list-todo", "idBoard": "demo-board-commerceflow", "name": "To Do", "closed": false, "pos": 32768 },
|
|
32
|
+
{ "id": "demo-list-progress", "idBoard": "demo-board-commerceflow", "name": "In Progress", "closed": false, "pos": 49152 },
|
|
33
|
+
{ "id": "demo-list-review", "idBoard": "demo-board-commerceflow", "name": "In Review", "closed": false, "pos": 65536 },
|
|
34
|
+
{ "id": "demo-list-done", "idBoard": "demo-board-commerceflow", "name": "Done", "closed": false, "pos": 81920 }
|
|
35
|
+
],
|
|
36
|
+
"members": [
|
|
37
|
+
{ "id": "demo-member-ari", "fullName": "Ari Chen", "username": "ari-chen", "initials": "AC" },
|
|
38
|
+
{ "id": "demo-member-maya", "fullName": "Maya Patel", "username": "maya-patel", "initials": "MP" },
|
|
39
|
+
{ "id": "demo-member-jonas", "fullName": "Jonas Weber", "username": "jonas-weber", "initials": "JW" },
|
|
40
|
+
{ "id": "demo-member-nora", "fullName": "Nora Silva", "username": "nora-silva", "initials": "NS" }
|
|
41
|
+
],
|
|
42
|
+
"memberships": [],
|
|
43
|
+
"cards": [
|
|
44
|
+
{
|
|
45
|
+
"id": "demo-card-loyalty-scope",
|
|
46
|
+
"idBoard": "demo-board-commerceflow",
|
|
47
|
+
"idList": "demo-list-backlog",
|
|
48
|
+
"name": "Define loyalty rewards MVP scope",
|
|
49
|
+
"desc": "Clarify first release rules for points, tiers, coupon redemption, and guest checkout behavior.",
|
|
50
|
+
"closed": false,
|
|
51
|
+
"pos": 16384,
|
|
52
|
+
"idLabels": ["demo-label-ux", "demo-label-backend"],
|
|
53
|
+
"idMembers": ["demo-member-maya"],
|
|
54
|
+
"idChecklists": [],
|
|
55
|
+
"attachments": [],
|
|
56
|
+
"cover": { "idAttachment": null },
|
|
57
|
+
"kanbanQubeDone": false,
|
|
58
|
+
"dateLastActivity": "2026-06-02T10:00:00.000Z",
|
|
59
|
+
"badges": { "description": true, "comments": 1, "checkItems": 0, "checkItemsChecked": 0, "attachments": 0 }
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"id": "demo-card-recommendations",
|
|
63
|
+
"idBoard": "demo-board-commerceflow",
|
|
64
|
+
"idList": "demo-list-backlog",
|
|
65
|
+
"name": "Plan product recommendation strategy",
|
|
66
|
+
"desc": "Compare manual merchandising, purchase-history signals, and lightweight related-product rules for launch.",
|
|
67
|
+
"closed": false,
|
|
68
|
+
"pos": 32768,
|
|
69
|
+
"idLabels": ["demo-label-analytics", "demo-label-backend"],
|
|
70
|
+
"idMembers": ["demo-member-jonas"],
|
|
71
|
+
"idChecklists": [],
|
|
72
|
+
"attachments": [],
|
|
73
|
+
"cover": { "idAttachment": null },
|
|
74
|
+
"kanbanQubeDone": false,
|
|
75
|
+
"dateLastActivity": "2026-06-03T10:00:00.000Z",
|
|
76
|
+
"badges": { "description": true, "comments": 1, "checkItems": 0, "checkItemsChecked": 0, "attachments": 0 }
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"id": "demo-card-seo-checklist",
|
|
80
|
+
"idBoard": "demo-board-commerceflow",
|
|
81
|
+
"idList": "demo-list-backlog",
|
|
82
|
+
"name": "Draft post-launch SEO checklist",
|
|
83
|
+
"desc": "Prepare metadata, structured data, sitemap, redirect, and image-alt tasks for release week.",
|
|
84
|
+
"closed": false,
|
|
85
|
+
"pos": 49152,
|
|
86
|
+
"idLabels": ["demo-label-content", "demo-label-qa"],
|
|
87
|
+
"idMembers": ["demo-member-nora"],
|
|
88
|
+
"idChecklists": [],
|
|
89
|
+
"attachments": [],
|
|
90
|
+
"cover": { "idAttachment": null },
|
|
91
|
+
"kanbanQubeDone": false,
|
|
92
|
+
"dateLastActivity": "2026-06-04T10:00:00.000Z",
|
|
93
|
+
"badges": { "description": true, "comments": 1, "checkItems": 0, "checkItemsChecked": 0, "attachments": 0 }
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
"id": "demo-card-pdp-mockups",
|
|
97
|
+
"idBoard": "demo-board-commerceflow",
|
|
98
|
+
"idList": "demo-list-todo",
|
|
99
|
+
"name": "Create responsive product detail mockups",
|
|
100
|
+
"desc": "Design desktop and mobile PDP states: gallery, variants, shipping info, reviews, and sticky add-to-cart.",
|
|
101
|
+
"closed": false,
|
|
102
|
+
"pos": 16384,
|
|
103
|
+
"idLabels": ["demo-label-design", "demo-label-ux"],
|
|
104
|
+
"idMembers": ["demo-member-ari", "demo-member-maya"],
|
|
105
|
+
"idChecklists": ["demo-checklist-pdp"],
|
|
106
|
+
"attachments": [],
|
|
107
|
+
"cover": { "idAttachment": null },
|
|
108
|
+
"kanbanQubeDone": false,
|
|
109
|
+
"dateLastActivity": "2026-06-05T10:00:00.000Z",
|
|
110
|
+
"badges": { "description": true, "comments": 1, "checkItems": 3, "checkItemsChecked": 1, "attachments": 0 }
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
"id": "demo-card-catalog-import",
|
|
114
|
+
"idBoard": "demo-board-commerceflow",
|
|
115
|
+
"idList": "demo-list-todo",
|
|
116
|
+
"name": "Model catalog import validation",
|
|
117
|
+
"desc": "Reject malformed SKUs, missing prices, duplicate handles, and unsupported image formats before import.",
|
|
118
|
+
"closed": false,
|
|
119
|
+
"pos": 32768,
|
|
120
|
+
"idLabels": ["demo-label-backend", "demo-label-qa"],
|
|
121
|
+
"idMembers": ["demo-member-jonas"],
|
|
122
|
+
"idChecklists": [],
|
|
123
|
+
"attachments": [],
|
|
124
|
+
"cover": { "idAttachment": null },
|
|
125
|
+
"kanbanQubeDone": false,
|
|
126
|
+
"dateLastActivity": "2026-06-05T12:00:00.000Z",
|
|
127
|
+
"badges": { "description": true, "comments": 1, "checkItems": 0, "checkItemsChecked": 0, "attachments": 0 }
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
"id": "demo-card-checkout",
|
|
131
|
+
"idBoard": "demo-board-commerceflow",
|
|
132
|
+
"idList": "demo-list-progress",
|
|
133
|
+
"name": "Build checkout address and delivery step",
|
|
134
|
+
"desc": "Implement address form, delivery method selection, validation, and order summary updates.",
|
|
135
|
+
"closed": false,
|
|
136
|
+
"pos": 16384,
|
|
137
|
+
"idLabels": ["demo-label-frontend", "demo-label-backend"],
|
|
138
|
+
"idMembers": ["demo-member-maya", "demo-member-jonas"],
|
|
139
|
+
"idChecklists": ["demo-checklist-checkout"],
|
|
140
|
+
"attachments": [],
|
|
141
|
+
"cover": { "idAttachment": null },
|
|
142
|
+
"kanbanQubeDone": false,
|
|
143
|
+
"dateLastActivity": "2026-06-07T10:00:00.000Z",
|
|
144
|
+
"badges": { "description": true, "comments": 1, "checkItems": 4, "checkItemsChecked": 2, "attachments": 0 }
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
"id": "demo-card-image-pipeline",
|
|
148
|
+
"idBoard": "demo-board-commerceflow",
|
|
149
|
+
"idList": "demo-list-progress",
|
|
150
|
+
"name": "Implement product image optimization pipeline",
|
|
151
|
+
"desc": "Generate responsive sizes, WebP derivatives, and safe fallbacks during upload processing.",
|
|
152
|
+
"closed": false,
|
|
153
|
+
"pos": 32768,
|
|
154
|
+
"idLabels": ["demo-label-backend", "demo-label-frontend"],
|
|
155
|
+
"idMembers": ["demo-member-jonas"],
|
|
156
|
+
"idChecklists": ["demo-checklist-image-pipeline"],
|
|
157
|
+
"attachments": [],
|
|
158
|
+
"cover": { "idAttachment": null },
|
|
159
|
+
"kanbanQubeDone": false,
|
|
160
|
+
"dateLastActivity": "2026-06-08T09:00:00.000Z",
|
|
161
|
+
"badges": { "description": true, "comments": 1, "checkItems": 3, "checkItemsChecked": 1, "attachments": 0 }
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
"id": "demo-card-empty-copy",
|
|
165
|
+
"idBoard": "demo-board-commerceflow",
|
|
166
|
+
"idList": "demo-list-progress",
|
|
167
|
+
"name": "Write storefront empty-state copy",
|
|
168
|
+
"desc": "Add friendly copy for empty cart, no search results, sold-out product, and unavailable category states.",
|
|
169
|
+
"closed": false,
|
|
170
|
+
"pos": 49152,
|
|
171
|
+
"idLabels": ["demo-label-content", "demo-label-ux"],
|
|
172
|
+
"idMembers": ["demo-member-nora"],
|
|
173
|
+
"idChecklists": [],
|
|
174
|
+
"attachments": [],
|
|
175
|
+
"cover": { "idAttachment": null },
|
|
176
|
+
"kanbanQubeDone": false,
|
|
177
|
+
"dateLastActivity": "2026-06-08T10:00:00.000Z",
|
|
178
|
+
"badges": { "description": true, "comments": 1, "checkItems": 0, "checkItemsChecked": 0, "attachments": 0 }
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
"id": "demo-card-cart-review",
|
|
182
|
+
"idBoard": "demo-board-commerceflow",
|
|
183
|
+
"idList": "demo-list-review",
|
|
184
|
+
"name": "Review cart persistence edge cases",
|
|
185
|
+
"desc": "Verify cart survives refresh, login, logout, currency changes, and inventory updates.",
|
|
186
|
+
"closed": false,
|
|
187
|
+
"pos": 16384,
|
|
188
|
+
"idLabels": ["demo-label-frontend", "demo-label-qa"],
|
|
189
|
+
"idMembers": ["demo-member-maya", "demo-member-nora"],
|
|
190
|
+
"idChecklists": ["demo-checklist-cart-review"],
|
|
191
|
+
"attachments": [],
|
|
192
|
+
"cover": { "idAttachment": null },
|
|
193
|
+
"kanbanQubeDone": false,
|
|
194
|
+
"dateLastActivity": "2026-06-09T10:00:00.000Z",
|
|
195
|
+
"badges": { "description": true, "comments": 1, "checkItems": 3, "checkItemsChecked": 2, "attachments": 0 }
|
|
196
|
+
},
|
|
197
|
+
{
|
|
198
|
+
"id": "demo-card-campaign-graphics",
|
|
199
|
+
"idBoard": "demo-board-commerceflow",
|
|
200
|
+
"idList": "demo-list-review",
|
|
201
|
+
"name": "Approve homepage campaign graphics",
|
|
202
|
+
"desc": "Final review for hero imagery, category tiles, promotion badge, and seasonal color variants.",
|
|
203
|
+
"closed": false,
|
|
204
|
+
"pos": 32768,
|
|
205
|
+
"idLabels": ["demo-label-design", "demo-label-content"],
|
|
206
|
+
"idMembers": ["demo-member-ari", "demo-member-nora"],
|
|
207
|
+
"idChecklists": [],
|
|
208
|
+
"attachments": [],
|
|
209
|
+
"cover": { "idAttachment": null },
|
|
210
|
+
"kanbanQubeDone": false,
|
|
211
|
+
"dateLastActivity": "2026-06-09T14:00:00.000Z",
|
|
212
|
+
"badges": { "description": true, "comments": 1, "checkItems": 0, "checkItemsChecked": 0, "attachments": 0 }
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
"id": "demo-card-search-api",
|
|
216
|
+
"idBoard": "demo-board-commerceflow",
|
|
217
|
+
"idList": "demo-list-done",
|
|
218
|
+
"name": "Set up API contract for product search",
|
|
219
|
+
"desc": "Search endpoint supports query, filters, sort, pagination, and highlighted result metadata.",
|
|
220
|
+
"closed": false,
|
|
221
|
+
"pos": 16384,
|
|
222
|
+
"idLabels": ["demo-label-backend", "demo-label-frontend"],
|
|
223
|
+
"idMembers": ["demo-member-jonas", "demo-member-maya"],
|
|
224
|
+
"idChecklists": [],
|
|
225
|
+
"attachments": [],
|
|
226
|
+
"cover": { "idAttachment": null },
|
|
227
|
+
"kanbanQubeDone": true,
|
|
228
|
+
"dateLastActivity": "2026-06-06T10:00:00.000Z",
|
|
229
|
+
"badges": { "description": true, "comments": 1, "checkItems": 0, "checkItemsChecked": 0, "attachments": 0 }
|
|
230
|
+
},
|
|
231
|
+
{
|
|
232
|
+
"id": "demo-card-design-tokens",
|
|
233
|
+
"idBoard": "demo-board-commerceflow",
|
|
234
|
+
"idList": "demo-list-done",
|
|
235
|
+
"name": "Finalize design tokens for storefront",
|
|
236
|
+
"desc": "Typography, spacing, button, color, elevation, and form token sets are ready for implementation.",
|
|
237
|
+
"closed": false,
|
|
238
|
+
"pos": 32768,
|
|
239
|
+
"idLabels": ["demo-label-design", "demo-label-frontend"],
|
|
240
|
+
"idMembers": ["demo-member-ari"],
|
|
241
|
+
"idChecklists": [],
|
|
242
|
+
"attachments": [],
|
|
243
|
+
"cover": { "idAttachment": null },
|
|
244
|
+
"kanbanQubeDone": true,
|
|
245
|
+
"dateLastActivity": "2026-06-06T12:00:00.000Z",
|
|
246
|
+
"badges": { "description": true, "comments": 1, "checkItems": 0, "checkItemsChecked": 0, "attachments": 0 }
|
|
247
|
+
}
|
|
248
|
+
],
|
|
249
|
+
"checklists": [
|
|
250
|
+
{
|
|
251
|
+
"id": "demo-checklist-pdp",
|
|
252
|
+
"idBoard": "demo-board-commerceflow",
|
|
253
|
+
"idCard": "demo-card-pdp-mockups",
|
|
254
|
+
"name": "Next steps",
|
|
255
|
+
"checkItems": [
|
|
256
|
+
{ "id": "demo-checkitem-pdp-1", "idChecklist": "demo-checklist-pdp", "name": "Mobile gallery interaction", "pos": 16384, "state": "complete" },
|
|
257
|
+
{ "id": "demo-checkitem-pdp-2", "idChecklist": "demo-checklist-pdp", "name": "Variant picker empty/error states", "pos": 32768, "state": "incomplete" },
|
|
258
|
+
{ "id": "demo-checkitem-pdp-3", "idChecklist": "demo-checklist-pdp", "name": "Review summary component", "pos": 49152, "state": "incomplete" }
|
|
259
|
+
]
|
|
260
|
+
},
|
|
261
|
+
{
|
|
262
|
+
"id": "demo-checklist-checkout",
|
|
263
|
+
"idBoard": "demo-board-commerceflow",
|
|
264
|
+
"idCard": "demo-card-checkout",
|
|
265
|
+
"name": "Next steps",
|
|
266
|
+
"checkItems": [
|
|
267
|
+
{ "id": "demo-checkitem-checkout-1", "idChecklist": "demo-checklist-checkout", "name": "Address autocomplete behind feature flag", "pos": 16384, "state": "complete" },
|
|
268
|
+
{ "id": "demo-checkitem-checkout-2", "idChecklist": "demo-checklist-checkout", "name": "Delivery option API integration", "pos": 32768, "state": "complete" },
|
|
269
|
+
{ "id": "demo-checkitem-checkout-3", "idChecklist": "demo-checklist-checkout", "name": "Error handling for unavailable ZIP codes", "pos": 49152, "state": "incomplete" },
|
|
270
|
+
{ "id": "demo-checkitem-checkout-4", "idChecklist": "demo-checklist-checkout", "name": "Keyboard and screen reader pass", "pos": 65536, "state": "incomplete" }
|
|
271
|
+
]
|
|
272
|
+
},
|
|
273
|
+
{
|
|
274
|
+
"id": "demo-checklist-image-pipeline",
|
|
275
|
+
"idBoard": "demo-board-commerceflow",
|
|
276
|
+
"idCard": "demo-card-image-pipeline",
|
|
277
|
+
"name": "Next steps",
|
|
278
|
+
"checkItems": [
|
|
279
|
+
{ "id": "demo-checkitem-image-1", "idChecklist": "demo-checklist-image-pipeline", "name": "Worker job for thumbnails", "pos": 16384, "state": "complete" },
|
|
280
|
+
{ "id": "demo-checkitem-image-2", "idChecklist": "demo-checklist-image-pipeline", "name": "CDN cache headers", "pos": 32768, "state": "incomplete" },
|
|
281
|
+
{ "id": "demo-checkitem-image-3", "idChecklist": "demo-checklist-image-pipeline", "name": "Admin upload progress", "pos": 49152, "state": "incomplete" }
|
|
282
|
+
]
|
|
283
|
+
},
|
|
284
|
+
{
|
|
285
|
+
"id": "demo-checklist-cart-review",
|
|
286
|
+
"idBoard": "demo-board-commerceflow",
|
|
287
|
+
"idCard": "demo-card-cart-review",
|
|
288
|
+
"name": "Next steps",
|
|
289
|
+
"checkItems": [
|
|
290
|
+
{ "id": "demo-checkitem-cart-1", "idChecklist": "demo-checklist-cart-review", "name": "Guest refresh", "pos": 16384, "state": "complete" },
|
|
291
|
+
{ "id": "demo-checkitem-cart-2", "idChecklist": "demo-checklist-cart-review", "name": "Guest to account merge", "pos": 32768, "state": "complete" },
|
|
292
|
+
{ "id": "demo-checkitem-cart-3", "idChecklist": "demo-checklist-cart-review", "name": "Inventory quantity reduction", "pos": 49152, "state": "incomplete" }
|
|
293
|
+
]
|
|
294
|
+
}
|
|
295
|
+
],
|
|
296
|
+
"actions": [
|
|
297
|
+
{ "id": "demo-action-loyalty", "idMemberCreator": "demo-member-maya", "type": "commentCard", "date": "2026-06-02T12:00:00.000Z", "data": { "idCard": "demo-card-loyalty-scope", "text": "Waiting on product decision for tier names and expiry policy.", "card": { "id": "demo-card-loyalty-scope", "name": "Define loyalty rewards MVP scope" }, "board": { "id": "demo-board-commerceflow", "name": "CommerceFlow Website Launch" }, "list": { "id": "demo-list-backlog", "name": "Backlog" } } },
|
|
298
|
+
{ "id": "demo-action-recommendations", "idMemberCreator": "demo-member-jonas", "type": "commentCard", "date": "2026-06-03T12:00:00.000Z", "data": { "idCard": "demo-card-recommendations", "text": "Initial data events are mapped; scoring approach still open.", "card": { "id": "demo-card-recommendations", "name": "Plan product recommendation strategy" }, "board": { "id": "demo-board-commerceflow", "name": "CommerceFlow Website Launch" }, "list": { "id": "demo-list-backlog", "name": "Backlog" } } },
|
|
299
|
+
{ "id": "demo-action-seo", "idMemberCreator": "demo-member-nora", "type": "commentCard", "date": "2026-06-04T12:00:00.000Z", "data": { "idCard": "demo-card-seo-checklist", "text": "Keep this ready for release hardening.", "card": { "id": "demo-card-seo-checklist", "name": "Draft post-launch SEO checklist" }, "board": { "id": "demo-board-commerceflow", "name": "CommerceFlow Website Launch" }, "list": { "id": "demo-list-backlog", "name": "Backlog" } } },
|
|
300
|
+
{ "id": "demo-action-pdp", "idMemberCreator": "demo-member-ari", "type": "commentCard", "date": "2026-06-05T12:00:00.000Z", "data": { "idCard": "demo-card-pdp-mockups", "text": "Wireframes approved; visual pass still needed.", "card": { "id": "demo-card-pdp-mockups", "name": "Create responsive product detail mockups" }, "board": { "id": "demo-board-commerceflow", "name": "CommerceFlow Website Launch" }, "list": { "id": "demo-list-todo", "name": "To Do" } } },
|
|
301
|
+
{ "id": "demo-action-catalog", "idMemberCreator": "demo-member-jonas", "type": "commentCard", "date": "2026-06-05T14:00:00.000Z", "data": { "idCard": "demo-card-catalog-import", "text": "Importer should return row-level errors for ops.", "card": { "id": "demo-card-catalog-import", "name": "Model catalog import validation" }, "board": { "id": "demo-board-commerceflow", "name": "CommerceFlow Website Launch" }, "list": { "id": "demo-list-todo", "name": "To Do" } } },
|
|
302
|
+
{ "id": "demo-action-checkout", "idMemberCreator": "demo-member-maya", "type": "commentCard", "date": "2026-06-07T12:00:00.000Z", "data": { "idCard": "demo-card-checkout", "text": "Frontend and API contract are aligned; validation copy still moving.", "card": { "id": "demo-card-checkout", "name": "Build checkout address and delivery step" }, "board": { "id": "demo-board-commerceflow", "name": "CommerceFlow Website Launch" }, "list": { "id": "demo-list-progress", "name": "In Progress" } } },
|
|
303
|
+
{ "id": "demo-action-image", "idMemberCreator": "demo-member-jonas", "type": "commentCard", "date": "2026-06-08T09:30:00.000Z", "data": { "idCard": "demo-card-image-pipeline", "text": "Prototype runs locally; CDN config pending.", "card": { "id": "demo-card-image-pipeline", "name": "Implement product image optimization pipeline" }, "board": { "id": "demo-board-commerceflow", "name": "CommerceFlow Website Launch" }, "list": { "id": "demo-list-progress", "name": "In Progress" } } },
|
|
304
|
+
{ "id": "demo-action-copy", "idMemberCreator": "demo-member-nora", "type": "commentCard", "date": "2026-06-08T12:00:00.000Z", "data": { "idCard": "demo-card-empty-copy", "text": "Search and cart states done; category copy next.", "card": { "id": "demo-card-empty-copy", "name": "Write storefront empty-state copy" }, "board": { "id": "demo-board-commerceflow", "name": "CommerceFlow Website Launch" }, "list": { "id": "demo-list-progress", "name": "In Progress" } } },
|
|
305
|
+
{ "id": "demo-action-cart", "idMemberCreator": "demo-member-nora", "type": "commentCard", "date": "2026-06-09T12:00:00.000Z", "data": { "idCard": "demo-card-cart-review", "text": "One inventory edge case failed review.", "card": { "id": "demo-card-cart-review", "name": "Review cart persistence edge cases" }, "board": { "id": "demo-board-commerceflow", "name": "CommerceFlow Website Launch" }, "list": { "id": "demo-list-review", "name": "In Review" } } },
|
|
306
|
+
{ "id": "demo-action-campaign", "idMemberCreator": "demo-member-ari", "type": "commentCard", "date": "2026-06-09T14:30:00.000Z", "data": { "idCard": "demo-card-campaign-graphics", "text": "Graphics exported; waiting for marketing approval.", "card": { "id": "demo-card-campaign-graphics", "name": "Approve homepage campaign graphics" }, "board": { "id": "demo-board-commerceflow", "name": "CommerceFlow Website Launch" }, "list": { "id": "demo-list-review", "name": "In Review" } } },
|
|
307
|
+
{ "id": "demo-action-search", "idMemberCreator": "demo-member-jonas", "type": "commentCard", "date": "2026-06-06T12:00:00.000Z", "data": { "idCard": "demo-card-search-api", "text": "Contract documented and mocked for frontend.", "card": { "id": "demo-card-search-api", "name": "Set up API contract for product search" }, "board": { "id": "demo-board-commerceflow", "name": "CommerceFlow Website Launch" }, "list": { "id": "demo-list-done", "name": "Done" } } },
|
|
308
|
+
{ "id": "demo-action-tokens", "idMemberCreator": "demo-member-ari", "type": "commentCard", "date": "2026-06-06T14:00:00.000Z", "data": { "idCard": "demo-card-design-tokens", "text": "Tokens landed and matched in component previews.", "card": { "id": "demo-card-design-tokens", "name": "Finalize design tokens for storefront" }, "board": { "id": "demo-board-commerceflow", "name": "CommerceFlow Website Launch" }, "list": { "id": "demo-list-done", "name": "Done" } } }
|
|
309
|
+
],
|
|
310
|
+
"attachments": [],
|
|
311
|
+
"customFields": [],
|
|
312
|
+
"pinned": false,
|
|
313
|
+
"pluginData": [],
|
|
314
|
+
"powerUps": [],
|
|
315
|
+
"prefs": {},
|
|
316
|
+
"shortLink": "commerceflow",
|
|
317
|
+
"shortUrl": "",
|
|
318
|
+
"starred": false,
|
|
319
|
+
"subscribed": false,
|
|
320
|
+
"url": ""
|
|
321
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "kanbanqube",
|
|
3
|
+
"version": "1.0.1",
|
|
4
|
+
"description": "Local-first Kanban board backed by normal files",
|
|
5
|
+
"license": "Apache-2.0",
|
|
6
|
+
"author": "Mathias Conradt",
|
|
7
|
+
"homepage": "https://github.com/mathiasconradt/kanbanqube#readme",
|
|
8
|
+
"repository": {
|
|
9
|
+
"type": "git",
|
|
10
|
+
"url": "git+https://github.com/mathiasconradt/kanbanqube.git"
|
|
11
|
+
},
|
|
12
|
+
"bugs": {
|
|
13
|
+
"url": "https://github.com/mathiasconradt/kanbanqube/issues"
|
|
14
|
+
},
|
|
15
|
+
"keywords": [
|
|
16
|
+
"kanban",
|
|
17
|
+
"board",
|
|
18
|
+
"tasks",
|
|
19
|
+
"local-first",
|
|
20
|
+
"git",
|
|
21
|
+
"vault"
|
|
22
|
+
],
|
|
23
|
+
"engines": {
|
|
24
|
+
"node": ">=18"
|
|
25
|
+
},
|
|
26
|
+
"files": [
|
|
27
|
+
"server.js",
|
|
28
|
+
"public/",
|
|
29
|
+
"demo_board.json",
|
|
30
|
+
"promo.jpg",
|
|
31
|
+
"screenshot.png",
|
|
32
|
+
"README.md",
|
|
33
|
+
"LICENSE"
|
|
34
|
+
],
|
|
35
|
+
"bin": {
|
|
36
|
+
"kanbanqube": "./server.js"
|
|
37
|
+
},
|
|
38
|
+
"scripts": {
|
|
39
|
+
"start": "node server.js",
|
|
40
|
+
"test": "node --check server.js && node --check --input-type=module < public/app.js",
|
|
41
|
+
"prepublishOnly": "npm test"
|
|
42
|
+
},
|
|
43
|
+
"publishConfig": {
|
|
44
|
+
"access": "public"
|
|
45
|
+
}
|
|
46
|
+
}
|
package/promo.jpg
ADDED
|
Binary file
|
package/public/about.jpg
ADDED
|
Binary file
|