planflow-plugin 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 +93 -0
- package/bin/cli.js +169 -0
- package/bin/postinstall.js +87 -0
- package/commands/pfActivity/SKILL.md +725 -0
- package/commands/pfAssign/SKILL.md +623 -0
- package/commands/pfCloudLink/SKILL.md +192 -0
- package/commands/pfCloudList/SKILL.md +222 -0
- package/commands/pfCloudNew/SKILL.md +187 -0
- package/commands/pfCloudUnlink/SKILL.md +152 -0
- package/commands/pfComment/SKILL.md +227 -0
- package/commands/pfComments/SKILL.md +159 -0
- package/commands/pfConnectionStatus/SKILL.md +433 -0
- package/commands/pfDiscord/SKILL.md +740 -0
- package/commands/pfGithubBranch/SKILL.md +672 -0
- package/commands/pfGithubIssue/SKILL.md +963 -0
- package/commands/pfGithubLink/SKILL.md +859 -0
- package/commands/pfGithubPr/SKILL.md +1335 -0
- package/commands/pfGithubUnlink/SKILL.md +401 -0
- package/commands/pfLive/SKILL.md +185 -0
- package/commands/pfLogin/SKILL.md +249 -0
- package/commands/pfLogout/SKILL.md +155 -0
- package/commands/pfMyTasks/SKILL.md +198 -0
- package/commands/pfNotificationSettings/SKILL.md +619 -0
- package/commands/pfNotifications/SKILL.md +420 -0
- package/commands/pfNotificationsClear/SKILL.md +421 -0
- package/commands/pfReact/SKILL.md +232 -0
- package/commands/pfSlack/SKILL.md +659 -0
- package/commands/pfSyncPull/SKILL.md +210 -0
- package/commands/pfSyncPush/SKILL.md +299 -0
- package/commands/pfSyncStatus/SKILL.md +212 -0
- package/commands/pfTeamInvite/SKILL.md +161 -0
- package/commands/pfTeamList/SKILL.md +253 -0
- package/commands/pfTeamRemove/SKILL.md +115 -0
- package/commands/pfTeamRole/SKILL.md +160 -0
- package/commands/pfTestWebhooks/SKILL.md +722 -0
- package/commands/pfUnassign/SKILL.md +134 -0
- package/commands/pfWhoami/SKILL.md +258 -0
- package/commands/pfWorkload/SKILL.md +219 -0
- package/commands/planExportCsv/SKILL.md +106 -0
- package/commands/planExportGithub/SKILL.md +222 -0
- package/commands/planExportJson/SKILL.md +159 -0
- package/commands/planExportSummary/SKILL.md +158 -0
- package/commands/planNew/SKILL.md +641 -0
- package/commands/planNext/SKILL.md +1200 -0
- package/commands/planSettingsAutoSync/SKILL.md +199 -0
- package/commands/planSettingsLanguage/SKILL.md +201 -0
- package/commands/planSettingsReset/SKILL.md +237 -0
- package/commands/planSettingsShow/SKILL.md +482 -0
- package/commands/planSpec/SKILL.md +929 -0
- package/commands/planUpdate/SKILL.md +2518 -0
- package/commands/team/SKILL.md +740 -0
- package/locales/en.json +1499 -0
- package/locales/ka.json +1499 -0
- package/package.json +48 -0
- package/templates/PROJECT_PLAN.template.md +157 -0
- package/templates/backend-api.template.md +562 -0
- package/templates/frontend-spa.template.md +610 -0
- package/templates/fullstack.template.md +397 -0
- package/templates/ka/backend-api.template.md +562 -0
- package/templates/ka/frontend-spa.template.md +610 -0
- package/templates/ka/fullstack.template.md +397 -0
- package/templates/sections/architecture.md +21 -0
- package/templates/sections/overview.md +15 -0
- package/templates/sections/tasks.md +22 -0
- package/templates/sections/tech-stack.md +19 -0
|
@@ -0,0 +1,610 @@
|
|
|
1
|
+
# {{PROJECT_NAME}} - Frontend SPA პროექტის გეგმა
|
|
2
|
+
|
|
3
|
+
*შექმნილია: {{CREATED_DATE}}*
|
|
4
|
+
*ბოლოს განახლებული: {{LAST_UPDATED}}*
|
|
5
|
+
|
|
6
|
+
## მიმოხილვა
|
|
7
|
+
|
|
8
|
+
**პროექტის სახელი**: {{PROJECT_NAME}}
|
|
9
|
+
|
|
10
|
+
**აღწერა**: {{DESCRIPTION}}
|
|
11
|
+
|
|
12
|
+
**სამიზნე მომხმარებლები**: {{TARGET_USERS}}
|
|
13
|
+
|
|
14
|
+
**პროექტის ტიპი**: Frontend Single Page Application
|
|
15
|
+
|
|
16
|
+
**სტატუსი**: {{STATUS}} ({{PROGRESS_PERCENT}}% დასრულებული)
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## პრობლემის განცხადება
|
|
21
|
+
|
|
22
|
+
**მიმდინარე პრობლემები:**
|
|
23
|
+
{{PAIN_POINTS}}
|
|
24
|
+
|
|
25
|
+
**გადაწყვეტა:**
|
|
26
|
+
{{SOLUTION}}
|
|
27
|
+
|
|
28
|
+
**მთავარი ფუნქციები:**
|
|
29
|
+
{{KEY_FEATURES}}
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## არქიტექტურა
|
|
34
|
+
|
|
35
|
+
### კომპონენტების არქიტექტურა
|
|
36
|
+
|
|
37
|
+
```mermaid
|
|
38
|
+
graph TB
|
|
39
|
+
subgraph "აპლიკაციის Shell"
|
|
40
|
+
A[App Root]
|
|
41
|
+
B[Router]
|
|
42
|
+
C[გლობალური State]
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
subgraph "გვერდები/ხედები"
|
|
46
|
+
D[მთავარი გვერდი]
|
|
47
|
+
E[ფუნქციის გვერდები]
|
|
48
|
+
F[Auth გვერდები]
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
subgraph "კომპონენტები"
|
|
52
|
+
G[Layout კომპონენტები]
|
|
53
|
+
H[UI კომპონენტები]
|
|
54
|
+
I[ფუნქციის კომპონენტები]
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
subgraph "სერვისები"
|
|
58
|
+
J[API სერვისი]
|
|
59
|
+
K[Auth სერვისი]
|
|
60
|
+
L[Storage სერვისი]
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
subgraph "გარე"
|
|
64
|
+
M[Backend API]
|
|
65
|
+
N[მესამე მხარის API-ები]
|
|
66
|
+
O[CDN/ასეთები]
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
A --> B
|
|
70
|
+
A --> C
|
|
71
|
+
B --> D
|
|
72
|
+
B --> E
|
|
73
|
+
B --> F
|
|
74
|
+
D --> G
|
|
75
|
+
E --> G
|
|
76
|
+
D --> I
|
|
77
|
+
E --> I
|
|
78
|
+
G --> H
|
|
79
|
+
I --> H
|
|
80
|
+
I --> J
|
|
81
|
+
I --> K
|
|
82
|
+
J --> M
|
|
83
|
+
K --> M
|
|
84
|
+
A --> O
|
|
85
|
+
J --> N
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### მონაცემთა ნაკადი
|
|
89
|
+
|
|
90
|
+
```mermaid
|
|
91
|
+
sequenceDiagram
|
|
92
|
+
participant მომხმარებელი
|
|
93
|
+
participant კომპონენტი
|
|
94
|
+
participant Store
|
|
95
|
+
participant API
|
|
96
|
+
participant Backend
|
|
97
|
+
|
|
98
|
+
მომხმარებელი->>კომპონენტი: ურთიერთქმედება
|
|
99
|
+
კომპონენტი->>Store: Dispatch Action
|
|
100
|
+
Store->>API: მონაცემების მოთხოვნა
|
|
101
|
+
API->>Backend: HTTP მოთხოვნა
|
|
102
|
+
Backend-->>API: პასუხი
|
|
103
|
+
API-->>Store: State-ის განახლება
|
|
104
|
+
Store-->>კომპონენტი: ახალი State
|
|
105
|
+
კომპონენტი-->>მომხმარებელი: UI-ის განახლება
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### State Management
|
|
109
|
+
|
|
110
|
+
```mermaid
|
|
111
|
+
graph LR
|
|
112
|
+
A[მომხმარებლის მოქმედება] --> B[Dispatch]
|
|
113
|
+
B --> C[Store/State Manager]
|
|
114
|
+
C --> D[Reducer/Mutation]
|
|
115
|
+
D --> E[State-ის განახლება]
|
|
116
|
+
E --> F[Re-render-ის ტრიგერი]
|
|
117
|
+
F --> G[UI-ის განახლება]
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
## ტექნოლოგიური სტეკი
|
|
123
|
+
|
|
124
|
+
### ძირითადი Framework
|
|
125
|
+
- **Framework**: {{FRONTEND_FRAMEWORK}} (React, Vue, Angular, Svelte, Solid)
|
|
126
|
+
- **ენა**: TypeScript
|
|
127
|
+
- **Build Tool**: {{BUILD_TOOL}} (Vite, Webpack, Turbopack, esbuild)
|
|
128
|
+
- **Package Manager**: {{PACKAGE_MANAGER}} (npm, yarn, pnpm, bun)
|
|
129
|
+
|
|
130
|
+
### State Management
|
|
131
|
+
- **გადაწყვეტა**: {{STATE_MANAGEMENT}} (Redux Toolkit, Zustand, Pinia, Vuex, NgRx, Jotai)
|
|
132
|
+
- **Server State**: {{SERVER_STATE}} (TanStack Query, SWR, Apollo Client, RTK Query)
|
|
133
|
+
- **Form State**: React Hook Form / Formik / Vee-Validate
|
|
134
|
+
|
|
135
|
+
### სტილიზაცია და UI
|
|
136
|
+
- **CSS გადაწყვეტა**: {{STYLING}} (Tailwind CSS, CSS Modules, Styled Components, Emotion, Sass)
|
|
137
|
+
- **UI Library**: {{UI_LIBRARY}} (Shadcn/ui, Material-UI, Chakra UI, Ant Design, Vuetify)
|
|
138
|
+
- **იკონები**: {{ICONS}} (Lucide, Heroicons, Font Awesome, Material Icons)
|
|
139
|
+
- **ანიმაციები**: {{ANIMATIONS}} (Framer Motion, GSAP, CSS Animations, Transition.js)
|
|
140
|
+
|
|
141
|
+
### Routing
|
|
142
|
+
- **Router**: {{ROUTER}} (React Router, Vue Router, Angular Router, TanStack Router)
|
|
143
|
+
- **Route დაცვა**: Auth guards/middleware
|
|
144
|
+
- **Code Splitting**: დინამიური imports route-ებისთვის
|
|
145
|
+
|
|
146
|
+
### მონაცემების მოთხოვნა
|
|
147
|
+
- **HTTP კლიენტი**: {{HTTP_CLIENT}} (Axios, Fetch API, ky)
|
|
148
|
+
- **WebSockets**: {{WEBSOCKET}} (Socket.io-client, native WebSocket)
|
|
149
|
+
- **GraphQL**: {{GRAPHQL}} (Apollo Client, URQL, Relay - საჭიროების შემთხვევაში)
|
|
150
|
+
|
|
151
|
+
### შემუშავების ხელსაწყოები
|
|
152
|
+
- **Version Control**: Git + GitHub
|
|
153
|
+
- **კოდის ხარისხი**: ESLint + Prettier
|
|
154
|
+
- **Type Checking**: TypeScript strict mode
|
|
155
|
+
- **Dev Server**: {{DEV_SERVER}} (Vite dev server, Webpack dev server)
|
|
156
|
+
- **API Mocking**: {{MOCKING}} (MSW, Mirage JS, JSON Server)
|
|
157
|
+
|
|
158
|
+
### ტესტირება
|
|
159
|
+
- **Unit Tests**: {{UNIT_TEST}} (Vitest, Jest)
|
|
160
|
+
- **კომპონენტის ტესტები**: {{COMPONENT_TEST}} (Testing Library, Vitest, Vue Test Utils)
|
|
161
|
+
- **E2E Tests**: {{E2E_TEST}} (Playwright, Cypress, WebdriverIO)
|
|
162
|
+
- **Visual Regression**: {{VISUAL_TEST}} (Chromatic, Percy - არასავალდებულო)
|
|
163
|
+
|
|
164
|
+
### Build და დეპლოიმენტი
|
|
165
|
+
- **ჰოსტინგი**: {{HOSTING}} (Vercel, Netlify, Cloudflare Pages, AWS S3)
|
|
166
|
+
- **CI/CD**: GitHub Actions / GitLab CI
|
|
167
|
+
- **გარემო**: .env ფაილები კონფიგურაციისთვის
|
|
168
|
+
- **PWA**: {{PWA}} (Workbox, vite-plugin-pwa - საჭიროების შემთხვევაში)
|
|
169
|
+
|
|
170
|
+
### შესრულება და მონიტორინგი
|
|
171
|
+
- **ანალიტიკა**: {{ANALYTICS}} (Google Analytics, Mixpanel, PostHog, Plausible)
|
|
172
|
+
- **Error Tracking**: {{ERROR_TRACKING}} (Sentry, LogRocket, Rollbar)
|
|
173
|
+
- **შესრულება**: {{PERFORMANCE}} (Web Vitals, Lighthouse CI)
|
|
174
|
+
- **Bundle ანალიზი**: {{BUNDLE_ANALYZER}} (Vite Bundle Visualizer, webpack-bundle-analyzer)
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
## პროექტის სტრუქტურა
|
|
179
|
+
|
|
180
|
+
```
|
|
181
|
+
{{PROJECT_NAME}}/
|
|
182
|
+
├── public/ # სტატიკური ასეთები
|
|
183
|
+
│ ├── favicon.ico
|
|
184
|
+
│ └── robots.txt
|
|
185
|
+
│
|
|
186
|
+
├── src/
|
|
187
|
+
│ ├── components/ # მრავალჯერადი გამოყენების კომპონენტები
|
|
188
|
+
│ │ ├── ui/ # ძირითადი UI კომპონენტები
|
|
189
|
+
│ │ │ ├── Button/
|
|
190
|
+
│ │ │ ├── Input/
|
|
191
|
+
│ │ │ └── ...
|
|
192
|
+
│ │ ├── layout/ # Layout კომპონენტები
|
|
193
|
+
│ │ │ ├── Header/
|
|
194
|
+
│ │ │ ├── Sidebar/
|
|
195
|
+
│ │ │ └── Footer/
|
|
196
|
+
│ │ └── features/ # ფუნქციის-სპეციფიკური კომპონენტები
|
|
197
|
+
│ │ └── ...
|
|
198
|
+
│ │
|
|
199
|
+
│ ├── pages/ # გვერდის კომპონენტები
|
|
200
|
+
│ │ ├── Home/
|
|
201
|
+
│ │ ├── About/
|
|
202
|
+
│ │ ├── Dashboard/
|
|
203
|
+
│ │ └── ...
|
|
204
|
+
│ │
|
|
205
|
+
│ ├── hooks/ # Custom React hooks
|
|
206
|
+
│ │ ├── useAuth.ts
|
|
207
|
+
│ │ ├── useAPI.ts
|
|
208
|
+
│ │ └── ...
|
|
209
|
+
│ │
|
|
210
|
+
│ ├── store/ # State management
|
|
211
|
+
│ │ ├── index.ts
|
|
212
|
+
│ │ ├── slices/
|
|
213
|
+
│ │ └── hooks.ts
|
|
214
|
+
│ │
|
|
215
|
+
│ ├── services/ # API service შრე
|
|
216
|
+
│ │ ├── api.ts
|
|
217
|
+
│ │ ├── auth.service.ts
|
|
218
|
+
│ │ └── ...
|
|
219
|
+
│ │
|
|
220
|
+
│ ├── utils/ # დამხმარე ფუნქციები
|
|
221
|
+
│ │ ├── validators.ts
|
|
222
|
+
│ │ ├── formatters.ts
|
|
223
|
+
│ │ └── ...
|
|
224
|
+
│ │
|
|
225
|
+
│ ├── types/ # TypeScript ტიპები
|
|
226
|
+
│ │ ├── models.ts
|
|
227
|
+
│ │ └── api.ts
|
|
228
|
+
│ │
|
|
229
|
+
│ ├── constants/ # აპლიკაციის კონსტანტები
|
|
230
|
+
│ │ └── index.ts
|
|
231
|
+
│ │
|
|
232
|
+
│ ├── assets/ # სურათები, ფონტები და ა.შ.
|
|
233
|
+
│ │ ├── images/
|
|
234
|
+
│ │ └── fonts/
|
|
235
|
+
│ │
|
|
236
|
+
│ ├── styles/ # გლობალური სტილები
|
|
237
|
+
│ │ ├── index.css
|
|
238
|
+
│ │ └── variables.css
|
|
239
|
+
│ │
|
|
240
|
+
│ ├── routes/ # Route კონფიგურაცია
|
|
241
|
+
│ │ └── index.tsx
|
|
242
|
+
│ │
|
|
243
|
+
│ ├── App.tsx # Root კომპონენტი
|
|
244
|
+
│ ├── main.tsx # შესასვლელი წერტილი
|
|
245
|
+
│ └── vite-env.d.ts
|
|
246
|
+
│
|
|
247
|
+
├── tests/ # ტესტის ფაილები
|
|
248
|
+
│ ├── unit/
|
|
249
|
+
│ ├── integration/
|
|
250
|
+
│ └── e2e/
|
|
251
|
+
│
|
|
252
|
+
├── .env.example # გარემოს ცვლადების template
|
|
253
|
+
├── .eslintrc.json
|
|
254
|
+
├── .prettierrc
|
|
255
|
+
├── .gitignore
|
|
256
|
+
├── index.html
|
|
257
|
+
├── package.json
|
|
258
|
+
├── tsconfig.json
|
|
259
|
+
├── vite.config.ts
|
|
260
|
+
└── README.md
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
---
|
|
264
|
+
|
|
265
|
+
## ამოცანები და იმპლემენტაციის გეგმა
|
|
266
|
+
|
|
267
|
+
### ეტაპი 1: საფუძველი (შეფასება: {{PHASE1_ESTIMATE}})
|
|
268
|
+
|
|
269
|
+
#### T1.1: პროექტის დაყენება
|
|
270
|
+
- [ ] **სტატუსი**: TODO
|
|
271
|
+
- **სირთულე**: დაბალი
|
|
272
|
+
- **შეფასებული**: 1.5 საათი
|
|
273
|
+
- **დამოკიდებულებები**: არა
|
|
274
|
+
- **აღწერა**:
|
|
275
|
+
- {{FRONTEND_FRAMEWORK}} პროექტის ინიციალიზება {{BUILD_TOOL}}-ით
|
|
276
|
+
- TypeScript-ის კონფიგურაცია (strict mode)
|
|
277
|
+
- ESLint + Prettier-ის დაყენება
|
|
278
|
+
- Path alias-ების კონფიგურაცია (@components, @utils, და ა.შ.)
|
|
279
|
+
- .env.example-ის შექმნა
|
|
280
|
+
- Git რეპოზიტორიის ინიციალიზება
|
|
281
|
+
- ძირითადი პროექტის სტრუქტურის შექმნა
|
|
282
|
+
|
|
283
|
+
#### T1.2: Routing-ის დაყენება
|
|
284
|
+
- [ ] **სტატუსი**: TODO
|
|
285
|
+
- **სირთულე**: დაბალი
|
|
286
|
+
- **შეფასებული**: 2 საათი
|
|
287
|
+
- **დამოკიდებულებები**: T1.1
|
|
288
|
+
- **აღწერა**:
|
|
289
|
+
- {{ROUTER}}-ის დაყენება
|
|
290
|
+
- Route კონფიგურაციის შექმნა
|
|
291
|
+
- Layout კომპონენტების იმპლემენტაცია
|
|
292
|
+
- 404 გვერდის დამატება
|
|
293
|
+
- Auth-ისთვის route guards-ების დაყენება
|
|
294
|
+
- Route-ებისთვის loading state-ების დამატება
|
|
295
|
+
|
|
296
|
+
#### T1.3: სტილიზაციის სისტემა
|
|
297
|
+
- [ ] **სტატუსი**: TODO
|
|
298
|
+
- **სირთულე**: საშუალო
|
|
299
|
+
- **შეფასებული**: 3 საათი
|
|
300
|
+
- **დამოკიდებულებები**: T1.1
|
|
301
|
+
- **აღწერა**:
|
|
302
|
+
- {{STYLING}}-ის დაყენება (Tailwind CSS / Styled Components)
|
|
303
|
+
- Theme-ის კონფიგურაცია (ფერები, ფონტები, spacing)
|
|
304
|
+
- გლობალური სტილების შექმნა
|
|
305
|
+
- Responsive breakpoint-ების დაყენება
|
|
306
|
+
- Dark mode მხარდაჭერის დამატება (არასავალდებულო)
|
|
307
|
+
- ძირითადი UI კომპონენტების შექმნა (Button, Input, Card, და ა.შ.)
|
|
308
|
+
|
|
309
|
+
#### T1.4: API ინტეგრაციის დაყენება
|
|
310
|
+
- [ ] **სტატუსი**: TODO
|
|
311
|
+
- **სირთულე**: საშუალო
|
|
312
|
+
- **შეფასებული**: 3 საათი
|
|
313
|
+
- **დამოკიდებულებები**: T1.1
|
|
314
|
+
- **აღწერა**:
|
|
315
|
+
- {{HTTP_CLIENT}}-ის დაყენება (Axios / Fetch wrapper)
|
|
316
|
+
- API service base-ის შექმნა
|
|
317
|
+
- Request/response interceptor-ების დამატება
|
|
318
|
+
- Error handling-ის იმპლემენტაცია
|
|
319
|
+
- {{SERVER_STATE}}-ის დაყენება (TanStack Query / SWR)
|
|
320
|
+
- Loading და error state-ების დამატება
|
|
321
|
+
- Base URL-ის კონფიგურაცია env-დან
|
|
322
|
+
|
|
323
|
+
---
|
|
324
|
+
|
|
325
|
+
### ეტაპი 2: ავთენტიფიკაცია და State (შეფასება: {{PHASE2_ESTIMATE}})
|
|
326
|
+
|
|
327
|
+
#### T2.1: State Management
|
|
328
|
+
- [ ] **სტატუსი**: TODO
|
|
329
|
+
- **სირთულე**: საშუალო
|
|
330
|
+
- **შეფასებული**: 4 საათი
|
|
331
|
+
- **დამოკიდებულებები**: T1.1
|
|
332
|
+
- **აღწერა**:
|
|
333
|
+
- {{STATE_MANAGEMENT}} store-ის დაყენება
|
|
334
|
+
- Store slices/modules-ების შექმნა
|
|
335
|
+
- Typed hooks-ების დამატება store access-ისთვის
|
|
336
|
+
- Store persistence-ის იმპლემენტაცია (საჭიროების შემთხვევაში)
|
|
337
|
+
- DevTools ინტეგრაციის დამატება
|
|
338
|
+
- Selectors-ების შექმნა
|
|
339
|
+
|
|
340
|
+
#### T2.2: ავთენტიფიკაციის სისტემა
|
|
341
|
+
- [ ] **სტატუსი**: TODO
|
|
342
|
+
- **სირთულე**: მაღალი
|
|
343
|
+
- **შეფასებული**: 6 საათი
|
|
344
|
+
- **დამოკიდებულებები**: T1.4, T2.1
|
|
345
|
+
- **აღწერა**:
|
|
346
|
+
- Login/register გვერდების შექმნა
|
|
347
|
+
- Auth service-ის იმპლემენტაცია
|
|
348
|
+
- Token storage-ის დამატება (localStorage/cookies)
|
|
349
|
+
- Auth context/store-ის შექმნა
|
|
350
|
+
- დაცული route-ების იმპლემენტაცია
|
|
351
|
+
- Logout ფუნქციონალობის დამატება
|
|
352
|
+
- Token refresh-ის მართვა
|
|
353
|
+
- "Remember me" ფუნქციის დამატება
|
|
354
|
+
|
|
355
|
+
#### T2.3: მომხმარებლის პროფილი და პარამეტრები
|
|
356
|
+
- [ ] **სტატუსი**: TODO
|
|
357
|
+
- **სირთულე**: საშუალო
|
|
358
|
+
- **შეფასებული**: 4 საათი
|
|
359
|
+
- **დამოკიდებულებები**: T2.2
|
|
360
|
+
- **აღწერა**:
|
|
361
|
+
- პროფილის გვერდის შექმნა
|
|
362
|
+
- პროფილის რედაქტირების იმპლემენტაცია
|
|
363
|
+
- Avatar upload-ის დამატება
|
|
364
|
+
- პარამეტრების გვერდის შექმნა
|
|
365
|
+
- პაროლის შეცვლის ფუნქციონალობის დამატება
|
|
366
|
+
- ანგარიშის წაშლის იმპლემენტაცია
|
|
367
|
+
|
|
368
|
+
---
|
|
369
|
+
|
|
370
|
+
### ეტაპი 3: ძირითადი ფუნქციები (შეფასება: {{PHASE3_ESTIMATE}})
|
|
371
|
+
|
|
372
|
+
{{CORE_FEATURES_TASKS}}
|
|
373
|
+
|
|
374
|
+
---
|
|
375
|
+
|
|
376
|
+
### ეტაპი 4: დახვეწა და ოპტიმიზაცია (შეფასება: {{PHASE4_ESTIMATE}})
|
|
377
|
+
|
|
378
|
+
#### T4.1: შესრულების ოპტიმიზაცია
|
|
379
|
+
- [ ] **სტატუსი**: TODO
|
|
380
|
+
- **სირთულე**: საშუალო
|
|
381
|
+
- **შეფასებული**: 4 საათი
|
|
382
|
+
- **აღწერა**:
|
|
383
|
+
- Code splitting-ის იმპლემენტაცია route-ებისთვის
|
|
384
|
+
- კომპონენტებისთვის lazy loading-ის დამატება
|
|
385
|
+
- სურათების ოპტიმიზაცია (WebP, lazy loading)
|
|
386
|
+
- Virtual scrolling-ის იმპლემენტაცია (საჭიროების შემთხვევაში)
|
|
387
|
+
- Bundle size ანალიზის დამატება
|
|
388
|
+
- Re-render-ების ოპტიმიზაცია
|
|
389
|
+
- React.memo / useMemo-ს დამატება საჭიროების შემთხვევაში
|
|
390
|
+
|
|
391
|
+
#### T4.2: Accessibility (a11y)
|
|
392
|
+
- [ ] **სტატუსი**: TODO
|
|
393
|
+
- **სირთულე**: საშუალო
|
|
394
|
+
- **შეფასებული**: 3 საათი
|
|
395
|
+
- **აღწერა**:
|
|
396
|
+
- ARIA labels-ების დამატება
|
|
397
|
+
- კლავიატურის ნავიგაციის უზრუნველყოფა
|
|
398
|
+
- Focus management-ის დამატება
|
|
399
|
+
- Screen reader-ებით ტესტირება
|
|
400
|
+
- სწორი ფერის კონტრასტის უზრუნველყოფა
|
|
401
|
+
- Skip links-ების დამატება
|
|
402
|
+
- Lighthouse accessibility audit-ის ჩატარება
|
|
403
|
+
|
|
404
|
+
#### T4.3: შეცდომების დამუშავება და Loading State-ები
|
|
405
|
+
- [ ] **სტატუსი**: TODO
|
|
406
|
+
- **სირთულე**: საშუალო
|
|
407
|
+
- **შეფასებული**: 3 საათი
|
|
408
|
+
- **აღწერა**:
|
|
409
|
+
- Error boundary კომპონენტების შექმნა
|
|
410
|
+
- გლობალური error handler-ის დამატება
|
|
411
|
+
- თანმიმდევრული loading state-ების შექმნა
|
|
412
|
+
- Skeleton screen-ების დამატება
|
|
413
|
+
- Retry ლოგიკის იმპლემენტაცია
|
|
414
|
+
- Offline detection-ის შექმნა
|
|
415
|
+
- Toast/notification სისტემის დამატება
|
|
416
|
+
|
|
417
|
+
#### T4.4: ტესტირების პაკეტი
|
|
418
|
+
- [ ] **სტატუსი**: TODO
|
|
419
|
+
- **სირთულე**: მაღალი
|
|
420
|
+
- **შეფასებული**: 8 საათი
|
|
421
|
+
- **აღწერა**:
|
|
422
|
+
- Utils/services-ისთვის unit ტესტების დაწერა
|
|
423
|
+
- კომპონენტის ტესტების დაწერა
|
|
424
|
+
- კრიტიკული flow-ებისთვის E2E ტესტების დამატება
|
|
425
|
+
- Test coverage reporting-ის დაყენება
|
|
426
|
+
- API response-ების Mock-ირება
|
|
427
|
+
- Accessibility-ის ტესტირება
|
|
428
|
+
- Visual regression ტესტების დამატება (არასავალდებულო)
|
|
429
|
+
|
|
430
|
+
#### T4.5: დოკუმენტაცია და დეპლოიმენტი
|
|
431
|
+
- [ ] **სტატუსი**: TODO
|
|
432
|
+
- **სირთულე**: დაბალი
|
|
433
|
+
- **შეფასებული**: 2 საათი
|
|
434
|
+
- **დამოკიდებულებები**: T4.4
|
|
435
|
+
- **აღწერა**:
|
|
436
|
+
- ყოვლისმომცველი README-ის დაწერა
|
|
437
|
+
- კომპონენტის დოკუმენტაციის დამატება
|
|
438
|
+
- დეპლოიმენტის გზამკვლევის შექმნა
|
|
439
|
+
- CI/CD pipeline-ის დაყენება
|
|
440
|
+
- გარემოს ცვლადების კონფიგურაცია
|
|
441
|
+
- {{HOSTING}}-ზე დეპლოიმენტი
|
|
442
|
+
- ანალიტიკის დაყენება
|
|
443
|
+
- Error tracking-ის დაყენება
|
|
444
|
+
|
|
445
|
+
---
|
|
446
|
+
|
|
447
|
+
## პროგრესის თვალყურის დევნება
|
|
448
|
+
|
|
449
|
+
### საერთო სტატუსი
|
|
450
|
+
**სულ ამოცანები**: {{TOTAL_TASKS}}
|
|
451
|
+
**დასრულებული**: {{COMPLETED_TASKS}} {{PROGRESS_BAR}} ({{PROGRESS_PERCENT}}%)
|
|
452
|
+
**მიმდინარე**: {{IN_PROGRESS_TASKS}}
|
|
453
|
+
**დაბლოკილი**: {{BLOCKED_TASKS}}
|
|
454
|
+
|
|
455
|
+
### ეტაპების პროგრესი
|
|
456
|
+
- ეტაპი 1: საფუძველი → {{PHASE1_PROGRESS}}%
|
|
457
|
+
- ეტაპი 2: ავთენტიფიკაცია და State → {{PHASE2_PROGRESS}}%
|
|
458
|
+
- ეტაპი 3: ძირითადი ფუნქციები → {{PHASE3_PROGRESS}}%
|
|
459
|
+
- ეტაპი 4: დახვეწა და ოპტიმიზაცია → {{PHASE4_PROGRESS}}%
|
|
460
|
+
|
|
461
|
+
### მიმდინარე ფოკუსი
|
|
462
|
+
{{CURRENT_FOCUS}}
|
|
463
|
+
|
|
464
|
+
---
|
|
465
|
+
|
|
466
|
+
## დიზაინის სისტემა
|
|
467
|
+
|
|
468
|
+
### ფერთა პალიტრა
|
|
469
|
+
```css
|
|
470
|
+
{{COLOR_PALETTE}}
|
|
471
|
+
```
|
|
472
|
+
|
|
473
|
+
### ტიპოგრაფია
|
|
474
|
+
```css
|
|
475
|
+
{{TYPOGRAPHY}}
|
|
476
|
+
```
|
|
477
|
+
|
|
478
|
+
### Spacing სკალა
|
|
479
|
+
```css
|
|
480
|
+
{{SPACING}}
|
|
481
|
+
```
|
|
482
|
+
|
|
483
|
+
### კომპონენტის ვარიანტები
|
|
484
|
+
{{COMPONENT_VARIANTS}}
|
|
485
|
+
|
|
486
|
+
---
|
|
487
|
+
|
|
488
|
+
## მთავარი მომხმარებლის Flow-ები
|
|
489
|
+
|
|
490
|
+
### მომხმარებლის რეგისტრაციის Flow
|
|
491
|
+
```mermaid
|
|
492
|
+
sequenceDiagram
|
|
493
|
+
participant მომხმარებელი
|
|
494
|
+
participant RegGვერდი
|
|
495
|
+
participant API
|
|
496
|
+
participant Dashboard
|
|
497
|
+
|
|
498
|
+
მომხმარებელი->>RegGვერდი: ფორმის შევსება
|
|
499
|
+
მომხმარებელი->>RegGვერდი: გაგზავნა
|
|
500
|
+
RegGვერდი->>API: POST /register
|
|
501
|
+
API-->>RegGვერდი: წარმატება + Token
|
|
502
|
+
RegGვერდი->>Dashboard: Redirect
|
|
503
|
+
Dashboard-->>მომხმარებელი: მისალმების ჩვენება
|
|
504
|
+
```
|
|
505
|
+
|
|
506
|
+
### {{MAIN_FEATURE}} Flow
|
|
507
|
+
{{MAIN_FEATURE_FLOW}}
|
|
508
|
+
|
|
509
|
+
---
|
|
510
|
+
|
|
511
|
+
## წარმატების კრიტერიუმები
|
|
512
|
+
|
|
513
|
+
### Minimum Viable Product (MVP)
|
|
514
|
+
- Responsive დიზაინი (mobile, tablet, desktop)
|
|
515
|
+
- მომხმარებლის ავთენტიფიკაცია მუშაობს
|
|
516
|
+
- ძირითადი ფუნქციები ფუნქციონირებს
|
|
517
|
+
- სწორი error handling
|
|
518
|
+
- Loading state-ები იმპლემენტირებული
|
|
519
|
+
- Production-ში დეპლოიმენტი
|
|
520
|
+
- ძირითადი ანალიტიკა მუშაობს
|
|
521
|
+
|
|
522
|
+
### სასურველი (v1.1+)
|
|
523
|
+
{{NICE_TO_HAVE}}
|
|
524
|
+
|
|
525
|
+
---
|
|
526
|
+
|
|
527
|
+
## ტექნიკური გადაწყვეტილებები და შენიშვნები
|
|
528
|
+
|
|
529
|
+
### რატომ {{FRONTEND_FRAMEWORK}}?
|
|
530
|
+
{{FRONTEND_REASONING}}
|
|
531
|
+
|
|
532
|
+
### რატომ {{STATE_MANAGEMENT}}?
|
|
533
|
+
{{STATE_REASONING}}
|
|
534
|
+
|
|
535
|
+
### რატომ {{STYLING}}?
|
|
536
|
+
{{STYLING_REASONING}}
|
|
537
|
+
|
|
538
|
+
### კომპონენტის დიზაინის პრინციპები
|
|
539
|
+
{{COMPONENT_PRINCIPLES}}
|
|
540
|
+
|
|
541
|
+
---
|
|
542
|
+
|
|
543
|
+
## რესურსები და მითითებები
|
|
544
|
+
|
|
545
|
+
### დოკუმენტაცია
|
|
546
|
+
- [{{FRONTEND_FRAMEWORK}} დოკუმენტაცია]({{FRAMEWORK_DOCS_URL}})
|
|
547
|
+
- [{{UI_LIBRARY}} დოკუმენტაცია]({{UI_DOCS_URL}})
|
|
548
|
+
- [{{STATE_MANAGEMENT}} დოკუმენტაცია]({{STATE_DOCS_URL}})
|
|
549
|
+
|
|
550
|
+
### დიზაინის რესურსები
|
|
551
|
+
{{DESIGN_RESOURCES}}
|
|
552
|
+
|
|
553
|
+
### ხელსაწყოები და ბიბლიოთეკები
|
|
554
|
+
{{TOOLS_LIBRARIES}}
|
|
555
|
+
|
|
556
|
+
---
|
|
557
|
+
|
|
558
|
+
## შესრულების მაჩვენებლები
|
|
559
|
+
|
|
560
|
+
### სამიზნე მეტრიკები
|
|
561
|
+
- **First Contentful Paint**: < 1.5s
|
|
562
|
+
- **Time to Interactive**: < 3.5s
|
|
563
|
+
- **Largest Contentful Paint**: < 2.5s
|
|
564
|
+
- **Cumulative Layout Shift**: < 0.1
|
|
565
|
+
- **First Input Delay**: < 100ms
|
|
566
|
+
- **Lighthouse ქულა**: > 90
|
|
567
|
+
|
|
568
|
+
### Bundle Size მიზნები
|
|
569
|
+
- **საწყისი Bundle**: < 200KB gzipped
|
|
570
|
+
- **სულ JS**: < 500KB gzipped
|
|
571
|
+
- **სულ CSS**: < 50KB gzipped
|
|
572
|
+
|
|
573
|
+
---
|
|
574
|
+
|
|
575
|
+
## ბრაუზერის მხარდაჭერა
|
|
576
|
+
|
|
577
|
+
### სამიზნე ბრაუზერები
|
|
578
|
+
- Chrome (ბოლო 2 ვერსია)
|
|
579
|
+
- Firefox (ბოლო 2 ვერსია)
|
|
580
|
+
- Safari (ბოლო 2 ვერსია)
|
|
581
|
+
- Edge (ბოლო 2 ვერსია)
|
|
582
|
+
- {{ADDITIONAL_BROWSERS}}
|
|
583
|
+
|
|
584
|
+
### მობილური მხარდაჭერა
|
|
585
|
+
- iOS Safari (ბოლო 2 ვერსია)
|
|
586
|
+
- Chrome Mobile (ბოლო 2 ვერსია)
|
|
587
|
+
|
|
588
|
+
---
|
|
589
|
+
|
|
590
|
+
## რისკების მართვა
|
|
591
|
+
|
|
592
|
+
### პოტენციური რისკები
|
|
593
|
+
1. **შესრულება**: დიდი bundle ზომა გავლენას ახდენს ჩატვირთვის დროზე
|
|
594
|
+
- **შემსუბუქება**: Code splitting, lazy loading, bundle ანალიზი
|
|
595
|
+
2. **ბრაუზერის თავსებადობა**: ფუნქციები მხარდაჭერილი არ არის ძველ ბრაუზერებში
|
|
596
|
+
- **შემსუბუქება**: Polyfills, progressive enhancement, graceful degradation
|
|
597
|
+
3. **უსაფრთხოება**: XSS მოწყვლადობები
|
|
598
|
+
- **შემსუბუქება**: მომხმარებლის input-ის სანიტარიზება, framework-ის უსაფრთხოების ფუნქციების გამოყენება, CSP headers
|
|
599
|
+
|
|
600
|
+
{{ADDITIONAL_RISKS}}
|
|
601
|
+
|
|
602
|
+
---
|
|
603
|
+
|
|
604
|
+
## მომავალი გაუმჯობესებები
|
|
605
|
+
|
|
606
|
+
{{FUTURE_ENHANCEMENTS}}
|
|
607
|
+
|
|
608
|
+
---
|
|
609
|
+
|
|
610
|
+
*შექმნილია plan-plugin v{{PLUGIN_VERSION}}-ით*
|