nestcraftx 0.2.4 → 0.2.6
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/.gitattributes +6 -0
- package/.github/ISSUE_TEMPLATE/bug_report.md +33 -0
- package/.github/ISSUE_TEMPLATE/feature_request.md +19 -0
- package/.github/ISSUE_TEMPLATE/pull_request_template.md +24 -0
- package/CHANGELOG.fr.md +97 -97
- package/CHANGELOG.md +98 -98
- package/CLI_USAGE.fr.md +331 -331
- package/CLI_USAGE.md +364 -364
- package/DEMO.fr.md +292 -292
- package/DEMO.md +294 -294
- package/LICENSE +21 -21
- package/MIGRATION_GUIDE.fr.md +127 -127
- package/MIGRATION_GUIDE.md +124 -124
- package/QUICK_START.fr.md +152 -152
- package/QUICK_START.md +169 -169
- package/README.fr.md +653 -659
- package/SECURITY.md +10 -0
- package/bin/nestcraft.js +84 -64
- package/commands/demo.js +333 -330
- package/commands/generate.js +93 -0
- package/commands/generateConf.js +91 -0
- package/commands/help.js +78 -78
- package/commands/info.js +48 -48
- package/commands/new.js +338 -335
- package/commands/start.js +19 -19
- package/commands/test.js +7 -7
- package/package.json +41 -41
- package/readme.md +638 -643
- package/utils/cliParser.js +133 -76
- package/utils/colors.js +62 -62
- package/utils/configs/configureDocker.js +120 -120
- package/utils/configs/setupCleanArchitecture.js +563 -557
- package/utils/configs/setupLightArchitecture.js +701 -660
- package/utils/envGenerator.js +122 -122
- package/utils/file-utils/packageJsonUtils.js +49 -55
- package/utils/file-utils/saveProjectConfig.js +36 -0
- package/utils/fullModeInput.js +607 -607
- package/utils/generators/application/dtoUpdater.js +54 -0
- package/utils/generators/cleanModuleGenerator.js +475 -0
- package/utils/generators/database/setupDatabase.js +31 -0
- package/utils/generators/domain/entityUpdater.js +78 -0
- package/utils/generators/infrastructure/mapperUpdater.js +65 -0
- package/utils/generators/lightModuleGenerator.js +131 -0
- package/utils/generators/relation/relation.engine.js +64 -0
- package/utils/interactive/askEntityInputs.js +165 -0
- package/utils/lightModeInput.js +460 -460
- package/utils/loggers/logError.js +7 -7
- package/utils/loggers/logInfo.js +7 -7
- package/utils/loggers/logSuccess.js +7 -7
- package/utils/loggers/logWarning.js +7 -7
- package/utils/setups/orms/typeOrmSetup.js +630 -630
- package/utils/setups/projectSetup.js +46 -46
- package/utils/setups/setupAuth.js +973 -926
- package/utils/setups/setupDatabase.js +75 -75
- package/utils/setups/setupLogger.js +69 -59
- package/utils/setups/setupMongoose.js +377 -432
- package/utils/setups/setupPrisma.js +802 -630
- package/utils/setups/setupSwagger.js +97 -88
- package/utils/shell.js +32 -32
- package/utils/spinner.js +57 -57
- package/utils/systemCheck.js +124 -124
- package/utils/userInput.js +421 -421
- package/utils/utils.js +2197 -1762
package/README.fr.md
CHANGED
|
@@ -1,659 +1,653 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-

|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
Fonctionnalités Clés :
|
|
27
|
-
|
|
28
|
-
- **
|
|
29
|
-
|
|
30
|
-
- **
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
- [
|
|
41
|
-
- [
|
|
42
|
-
- [
|
|
43
|
-
- [
|
|
44
|
-
- [
|
|
45
|
-
- [
|
|
46
|
-
- [
|
|
47
|
-
- [
|
|
48
|
-
- [
|
|
49
|
-
- [
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
- ✅
|
|
74
|
-
- ✅
|
|
75
|
-
- ✅
|
|
76
|
-
- ✅
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
--
|
|
87
|
-
--
|
|
88
|
-
--
|
|
89
|
-
--
|
|
90
|
-
--
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
-
|
|
98
|
-
- Fichier .env
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
-
|
|
105
|
-
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
- ✅
|
|
129
|
-
- ✅
|
|
130
|
-
- ✅
|
|
131
|
-
- ✅
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
- **
|
|
140
|
-
- **
|
|
141
|
-
- **
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
```
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
```
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
- `--
|
|
192
|
-
- `--
|
|
193
|
-
- `--
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
-
|
|
215
|
-
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
- `--
|
|
222
|
-
- `--
|
|
223
|
-
- `--
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
-
|
|
248
|
-
-
|
|
249
|
-
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
```
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
```
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
✅ **
|
|
278
|
-
✅ **
|
|
279
|
-
✅ **
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
✅ **
|
|
286
|
-
|
|
287
|
-
✅ **
|
|
288
|
-
|
|
289
|
-
✅
|
|
290
|
-
|
|
291
|
-
✅
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
✅ **
|
|
298
|
-
|
|
299
|
-
✅ **
|
|
300
|
-
|
|
301
|
-
✅ **
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
✅
|
|
308
|
-
|
|
309
|
-
✅
|
|
310
|
-
|
|
311
|
-
✅
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
✅
|
|
318
|
-
|
|
319
|
-
✅
|
|
320
|
-
|
|
321
|
-
✅
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
✅
|
|
328
|
-
|
|
329
|
-
✅
|
|
330
|
-
|
|
331
|
-
✅
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
│ ├──
|
|
345
|
-
│ │
|
|
346
|
-
│ ├──
|
|
347
|
-
│ │ ├──
|
|
348
|
-
│ │ ├──
|
|
349
|
-
│ │ ├──
|
|
350
|
-
│ │ ├──
|
|
351
|
-
│ │
|
|
352
|
-
│
|
|
353
|
-
│ │ └──
|
|
354
|
-
│ ├──
|
|
355
|
-
│ │
|
|
356
|
-
│
|
|
357
|
-
│
|
|
358
|
-
│ │ └──
|
|
359
|
-
│ ├──
|
|
360
|
-
│ │ └── session.
|
|
361
|
-
│ ├──
|
|
362
|
-
│ │
|
|
363
|
-
│
|
|
364
|
-
│
|
|
365
|
-
│ │ └──
|
|
366
|
-
│
|
|
367
|
-
│
|
|
368
|
-
|
|
369
|
-
│
|
|
370
|
-
├──
|
|
371
|
-
│ ├──
|
|
372
|
-
│ │
|
|
373
|
-
│
|
|
374
|
-
│ │ └── role.
|
|
375
|
-
│ ├──
|
|
376
|
-
│ │ └──
|
|
377
|
-
│ ├──
|
|
378
|
-
│ │ └──
|
|
379
|
-
│
|
|
380
|
-
│
|
|
381
|
-
│
|
|
382
|
-
|
|
383
|
-
│
|
|
384
|
-
|
|
385
|
-
│
|
|
386
|
-
|
|
387
|
-
│
|
|
388
|
-
|
|
389
|
-
│ ├──
|
|
390
|
-
│ │ └── user.
|
|
391
|
-
│ ├──
|
|
392
|
-
│ │ └── user.
|
|
393
|
-
│ ├──
|
|
394
|
-
│ │ └── user.
|
|
395
|
-
│ ├──
|
|
396
|
-
│ │ └── user.
|
|
397
|
-
│
|
|
398
|
-
│
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
├── app.
|
|
402
|
-
├── app.
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
├──
|
|
413
|
-
│ ├──
|
|
414
|
-
│ │ ├──
|
|
415
|
-
│ │ │ ├──
|
|
416
|
-
│ │ │ ├──
|
|
417
|
-
│ │ │ ├──
|
|
418
|
-
│ │ │ ├──
|
|
419
|
-
│ │ │
|
|
420
|
-
│ │
|
|
421
|
-
│ │
|
|
422
|
-
│ │
|
|
423
|
-
│
|
|
424
|
-
│ │
|
|
425
|
-
│
|
|
426
|
-
│ │
|
|
427
|
-
│ │
|
|
428
|
-
│
|
|
429
|
-
│ │
|
|
430
|
-
│ ├──
|
|
431
|
-
│ │
|
|
432
|
-
│ │
|
|
433
|
-
│ │ │ └──
|
|
434
|
-
│ │ ├──
|
|
435
|
-
│ │ │ └── session.
|
|
436
|
-
│ │
|
|
437
|
-
│ │
|
|
438
|
-
│
|
|
439
|
-
│ │
|
|
440
|
-
│
|
|
441
|
-
│
|
|
442
|
-
│
|
|
443
|
-
|
|
444
|
-
│
|
|
445
|
-
├──
|
|
446
|
-
│ ├──
|
|
447
|
-
│ │
|
|
448
|
-
│
|
|
449
|
-
│ │ └──
|
|
450
|
-
│ ├──
|
|
451
|
-
│ │ └──
|
|
452
|
-
│
|
|
453
|
-
│
|
|
454
|
-
│
|
|
455
|
-
|
|
456
|
-
│
|
|
457
|
-
|
|
458
|
-
│
|
|
459
|
-
|
|
460
|
-
│
|
|
461
|
-
├──
|
|
462
|
-
│
|
|
463
|
-
│ │ ├──
|
|
464
|
-
│ │ │ └── user.
|
|
465
|
-
│ │
|
|
466
|
-
│ │
|
|
467
|
-
│ │
|
|
468
|
-
│ │ ├──
|
|
469
|
-
│ │ ├──
|
|
470
|
-
│ │
|
|
471
|
-
│
|
|
472
|
-
│ │
|
|
473
|
-
│
|
|
474
|
-
│ │ ├──
|
|
475
|
-
│ │ │ └──
|
|
476
|
-
│ │
|
|
477
|
-
│ │
|
|
478
|
-
│
|
|
479
|
-
│ │
|
|
480
|
-
│
|
|
481
|
-
│ │ ├──
|
|
482
|
-
│ │ │ └── user.
|
|
483
|
-
│ │
|
|
484
|
-
│ │
|
|
485
|
-
│
|
|
486
|
-
│ │
|
|
487
|
-
│
|
|
488
|
-
│
|
|
489
|
-
│
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
├── app.
|
|
493
|
-
├── app.
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
#
|
|
527
|
-
# -
|
|
528
|
-
# -
|
|
529
|
-
# -
|
|
530
|
-
|
|
531
|
-
#
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
-
|
|
558
|
-
-
|
|
559
|
-
-
|
|
560
|
-
-
|
|
561
|
-
-
|
|
562
|
-
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
- [x]
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
- [ ]
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
- [ ]
|
|
590
|
-
- [ ]
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
Pour plus d'informations:
|
|
656
|
-
|
|
657
|
-
- [Guide d'utilisation complet](./CLI_USAGE.md)
|
|
658
|
-
- [Guide de migration](./MIGRATION_GUIDE.md)
|
|
659
|
-
- [Changelog detaille](./CHANGELOG.md)
|
|
1
|
+
# NestCraftX — Générateur de Clean Architecture pour NestJS
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/nestcraftx)
|
|
4
|
+
[](https://www.npmjs.com/package/nestcraftx)
|
|
5
|
+
[](https://opensource.org/licenses/MIT)
|
|
6
|
+
[](https://nodejs.org)
|
|
7
|
+
|
|
8
|
+
**ORMs:**
|
|
9
|
+

|
|
10
|
+

|
|
11
|
+

|
|
12
|
+
|
|
13
|
+
**NestCraftX** est un CLI Node.js moderne et puissant pour générer automatiquement des projets NestJS avec une architecture propre, maintenable et prête pour la production.
|
|
14
|
+
|
|
15
|
+
Il échafaude tout ce dont vous avez besoin pour démarrer :
|
|
16
|
+
|
|
17
|
+
- **Modules, Controllers & Services** (Entièrement typés)
|
|
18
|
+
- **Repositories & Mappers** (Pour un flux de données propre et une séparation des responsabilités)
|
|
19
|
+
- **DTOs** (Avec validation intégrée via class-validator)
|
|
20
|
+
- **Entités / Schémas** (Prisma, TypeORM, ou Mongoose)
|
|
21
|
+
- **Authentification** (JWT avec Refresh Tokens & génération automatique des secrets)
|
|
22
|
+
- **Prêt pour le DevOps** (Docker, Docker-Compose & Swagger UI)
|
|
23
|
+
|
|
24
|
+
NestCraftX implémente les meilleures pratiques modernes : **Clean Architecture**, **Domain-Driven Design (DDD)**, **Validation stricte**, **Sécurité pré-configurée** et bien plus encore.
|
|
25
|
+
|
|
26
|
+
### Fonctionnalités Clés :
|
|
27
|
+
|
|
28
|
+
- **Architecture Double :** Choisissez entre le mode _Light_ (idéal pour les MVPs) ou _Full_ (Clean Architecture / DDD).
|
|
29
|
+
- **Relations Interactives :** Définissez vos relations 1-N ou N-N directement depuis votre terminal.
|
|
30
|
+
- **Configuration Intelligente :** Décorateurs Swagger automatiques, fichiers .env auto-documentés et connexions aux bases de données pré-configurées.
|
|
31
|
+
|
|
32
|
+
> **Version 0.2.5 :** Mise à jour majeure — Génération interactive par flags, refonte de l'authentification avec gestionnaire de session, templates professionnels (.gitignore, README) et standards de code maintenus par la communauté !
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## Sommaire
|
|
37
|
+
|
|
38
|
+
- [Nouveautes v0.2.5](#nouveautes-v025)
|
|
39
|
+
- [Objectif du projet](#objectif-du-projet)
|
|
40
|
+
- [Prérequis](#prérequis)
|
|
41
|
+
- [Installation](#installation)
|
|
42
|
+
- [Commandes disponibles](#commandes-disponibles)
|
|
43
|
+
- [Fonctionnalités](#fonctionnalités)
|
|
44
|
+
- [Architecture générée](#architecture-générée)
|
|
45
|
+
- [Démo complète](#démo-complète)
|
|
46
|
+
- [Guide d'utilisation](#guide-dutilisation)
|
|
47
|
+
- [Roadmap](#roadmap)
|
|
48
|
+
- [Contribuer](#contribuer)
|
|
49
|
+
- [Licence](#licence)
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## Nouveautes v0.2.5
|
|
54
|
+
|
|
55
|
+
### Deux Modes d'Architecture
|
|
56
|
+
|
|
57
|
+
**Mode FULL - Architecture Complete**
|
|
58
|
+
|
|
59
|
+
- Clean Architecture avec use-cases, mappers, adapters
|
|
60
|
+
- Separation stricte domain/application/infrastructure/presentation
|
|
61
|
+
- Ideal pour projets complexes et scalables
|
|
62
|
+
|
|
63
|
+
**Mode LIGHT - Architecture MVP**
|
|
64
|
+
|
|
65
|
+
- Structure simplifiee : controllers → services → repositories
|
|
66
|
+
- Demarrage rapide pour prototypes
|
|
67
|
+
- Parfait pour petits projets et MVPs
|
|
68
|
+
|
|
69
|
+
### Demo Command Amélioré
|
|
70
|
+
|
|
71
|
+
- ✅ Options par flags : `--light`, `--orm`, `--auth`, `--swagger`, `--docker`
|
|
72
|
+
- ✅ Mode interactif : pose les questions uniquement si flags manquants
|
|
73
|
+
- ✅ Fusion intelligente flags + réponses interactives
|
|
74
|
+
- ✅ 3 entités pré-configurées avec relations
|
|
75
|
+
- ✅ Support de tous les ORMs (Prisma, TypeORM, Mongoose)
|
|
76
|
+
- ✅ Instructions séparées dans [Documentation Demo](./DEMO.md)
|
|
77
|
+
|
|
78
|
+
### CLI Moderne avec Flags
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
nestcraftx new <project-name> [options]
|
|
82
|
+
|
|
83
|
+
Options:
|
|
84
|
+
--light Mode architecture simplifiee
|
|
85
|
+
--full Mode architecture complete (defaut)
|
|
86
|
+
--dn=<db> Choix db: postgresql|mongodb
|
|
87
|
+
--orm=<orm> Choix ORM: prisma|typeorm|mongoose
|
|
88
|
+
--auth Active authentification JWT
|
|
89
|
+
--swagger Active documentation Swagger
|
|
90
|
+
--docker Active Docker (defaut: true)
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### Generation Automatique de Secrets
|
|
94
|
+
|
|
95
|
+
- Secrets JWT auto-generes (64 caracteres securises)
|
|
96
|
+
- Fichier .env pret a l'emploi
|
|
97
|
+
- DATABASE_URL configure automatiquement
|
|
98
|
+
- Fichier .env.example sanitise
|
|
99
|
+
|
|
100
|
+
### UX Amelioree
|
|
101
|
+
|
|
102
|
+
- Messages avec couleurs (info, success, error)
|
|
103
|
+
- Spinners animes pour operations longues
|
|
104
|
+
- Resume detaille post-generation
|
|
105
|
+
- Validation des options en temps reel
|
|
106
|
+
|
|
107
|
+
### Exemples Rapides
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
# Projet LIGHT avec Prisma et Auth
|
|
111
|
+
nestcraftx new mon-api --light --orm=prisma --auth
|
|
112
|
+
|
|
113
|
+
# Projet FULL avec TypeORM et Swagger
|
|
114
|
+
nestcraftx new mon-projet --full --orm=typeorm --swagger
|
|
115
|
+
|
|
116
|
+
# Projet MongoDB minimal
|
|
117
|
+
nestcraftx new mon-api --light --orm=mongoose
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
## Objectif du projet
|
|
123
|
+
|
|
124
|
+
Ne perdez plus de temps à configurer votre architecture backend. NestCraftX vous permet de :
|
|
125
|
+
|
|
126
|
+
- ✅ Démarrer un projet en quelques minutes au lieu de quelques jours
|
|
127
|
+
- ✅ Avoir une architecture Clean dès le départ
|
|
128
|
+
- ✅ Uniformiser vos projets avec les mêmes bonnes pratiques
|
|
129
|
+
- ✅ Configuration automatiser de BD-ORM et autres modules (decorateur, authentification, dockerisation)
|
|
130
|
+
- ✅ Vous concentrer sur la logique métier
|
|
131
|
+
- ✅ Choisir entre configuration rapide (Light) ou complète (Full)
|
|
132
|
+
|
|
133
|
+
## Prérequis
|
|
134
|
+
|
|
135
|
+
Assurez-vous d'avoir :
|
|
136
|
+
|
|
137
|
+
- **Node.js** v14 ou supérieur
|
|
138
|
+
- **npm** ou **yarn**
|
|
139
|
+
- **Nest CLI** (optionnel, sera utilisé via npx)
|
|
140
|
+
- **Docker** (optionnel, pour la containerisation)
|
|
141
|
+
- **Git** (optionnel, pour la gestion de version)
|
|
142
|
+
|
|
143
|
+
Vérifiez votre environnement avec :
|
|
144
|
+
|
|
145
|
+
```bash
|
|
146
|
+
nestcraftx test
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
---
|
|
150
|
+
|
|
151
|
+
## Installation
|
|
152
|
+
|
|
153
|
+
### Via npx (recommandé)
|
|
154
|
+
|
|
155
|
+
Utilisez NestCraftX sans installation globale :
|
|
156
|
+
|
|
157
|
+
```bash
|
|
158
|
+
npx nestcraftx new my-app
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
### Installation globale
|
|
162
|
+
|
|
163
|
+
Pour une utilisation fréquente :
|
|
164
|
+
|
|
165
|
+
```bash
|
|
166
|
+
npm install -g nestcraftx
|
|
167
|
+
nestcraftx new my-app
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
### Installation pour développement
|
|
171
|
+
|
|
172
|
+
```bash
|
|
173
|
+
git clone https://github.com/august-dev-pro/NestCraftX.git
|
|
174
|
+
cd NestCraftX
|
|
175
|
+
npm install
|
|
176
|
+
npm link
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
## Commandes disponibles
|
|
182
|
+
|
|
183
|
+
### `nestcraftx new <project-name> [options]`
|
|
184
|
+
|
|
185
|
+
Crée un nouveau projet NestJS avec Clean Architecture.
|
|
186
|
+
|
|
187
|
+
**Options :**
|
|
188
|
+
|
|
189
|
+
- `--light` : Mode configuration rapide
|
|
190
|
+
- `--orm <prisma|typeorm|mongoose>` : Choix de l'ORM
|
|
191
|
+
- `--auth` : Ajouter l'authentification JWT
|
|
192
|
+
- `--swagger` : Ajouter Swagger UI
|
|
193
|
+
- `--docker` : Générer les fichiers Docker
|
|
194
|
+
|
|
195
|
+
**Exemples :**
|
|
196
|
+
|
|
197
|
+
```bash
|
|
198
|
+
# Mode interactif complet
|
|
199
|
+
nestcraftx new my-app
|
|
200
|
+
|
|
201
|
+
# Mode rapide avec options
|
|
202
|
+
nestcraftx new blog-api --light --orm=prisma --auth --swagger
|
|
203
|
+
|
|
204
|
+
# Configuration personnalisée
|
|
205
|
+
nestcraftx new shop --orm=typeorm --auth
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
### `nestcraftx demo [options]`
|
|
209
|
+
|
|
210
|
+
Génère un projet de démonstration complet (blog-demo) avec :
|
|
211
|
+
|
|
212
|
+
- 3 entités (User, Post, Comment) avec relations 1-n
|
|
213
|
+
- Auth JWT intégrée
|
|
214
|
+
- Swagger activé
|
|
215
|
+
- Docker configuré
|
|
216
|
+
|
|
217
|
+
**Options :**
|
|
218
|
+
|
|
219
|
+
- `--light` : Mode architecture simplifiée
|
|
220
|
+
- `--docker` : Activer Docker (défaut: true)
|
|
221
|
+
- `--auth` : Activer Auth JWT (défaut: true)
|
|
222
|
+
- `--swagger` : Activer Swagger (défaut: true)
|
|
223
|
+
- `--orm <prisma|typeorm|mongoose>` : Choix de l'ORM (défaut: prisma)
|
|
224
|
+
|
|
225
|
+
**Exemples :**
|
|
226
|
+
|
|
227
|
+
```bash
|
|
228
|
+
# Mode interactif (posera les questions)
|
|
229
|
+
nestcraftx demo
|
|
230
|
+
|
|
231
|
+
# Mode LIGHT avec Mongoose
|
|
232
|
+
nestcraftx demo --light --orm=mongoose
|
|
233
|
+
|
|
234
|
+
# Mode FULL avec TypeORM
|
|
235
|
+
nestcraftx demo --orm=typeorm --auth --swagger
|
|
236
|
+
|
|
237
|
+
# Démarrer rapidement
|
|
238
|
+
nestcraftx demo --light --orm=prisma
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
**Résultat :**
|
|
242
|
+
|
|
243
|
+
Un projet blog fonctionnel avec :
|
|
244
|
+
|
|
245
|
+
- Blog-demo créé
|
|
246
|
+
- 3 entités complètes
|
|
247
|
+
- Relations entre User → Post → Comment
|
|
248
|
+
- Endpoints auth, users, posts, comments prêts
|
|
249
|
+
- Documentation Swagger interactive
|
|
250
|
+
|
|
251
|
+
### `nestcraftx test`
|
|
252
|
+
|
|
253
|
+
Vérifie que votre environnement est prêt :
|
|
254
|
+
|
|
255
|
+
```bash
|
|
256
|
+
nestcraftx test
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
Affiche le statut de Node, npm, Nest CLI, Docker, Git, etc.
|
|
260
|
+
|
|
261
|
+
### `nestcraftx info`
|
|
262
|
+
|
|
263
|
+
Affiche les informations sur le CLI :
|
|
264
|
+
|
|
265
|
+
```bash
|
|
266
|
+
nestcraftx info
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
---
|
|
270
|
+
|
|
271
|
+
## Fonctionnalités
|
|
272
|
+
|
|
273
|
+
### Architecture
|
|
274
|
+
|
|
275
|
+
✅ **Clean Architecture** avec séparation domain/application/infrastructure/presentation
|
|
276
|
+
✅ **Domain-Driven Design** avec entités, use cases et repositories
|
|
277
|
+
✅ **Repository Pattern** pour l'abstraction de la persistance
|
|
278
|
+
✅ **Use Cases Pattern** pour la logique métier isolée
|
|
279
|
+
✅ **Mapper Pattern** pour la transformation des données
|
|
280
|
+
|
|
281
|
+
### Base de données
|
|
282
|
+
|
|
283
|
+
✅ **Prisma ➡️ (PostgreSQL)** - ORM moderne et type-safe (recommandé)
|
|
284
|
+
|
|
285
|
+
✅ **TypeORM ➡️ (PostgreSQL)** - ORM complet avec decorateurs
|
|
286
|
+
|
|
287
|
+
✅ **Mongoose ➡️ (MongoDB)** - ODM pour MongoDB
|
|
288
|
+
|
|
289
|
+
✅ Configuration automatique du schéma
|
|
290
|
+
|
|
291
|
+
✅ Support PostgreSQL et MongoDB
|
|
292
|
+
|
|
293
|
+
### Sécurité
|
|
294
|
+
|
|
295
|
+
✅ **JWT Authentication** avec guards et strategies
|
|
296
|
+
|
|
297
|
+
✅ **Role-based Access Control** (RBAC)
|
|
298
|
+
|
|
299
|
+
✅ **Password hashing** avec bcrypt
|
|
300
|
+
|
|
301
|
+
✅ **Public routes** avec decorators
|
|
302
|
+
|
|
303
|
+
### Documentation
|
|
304
|
+
|
|
305
|
+
✅ **Swagger UI** automatique
|
|
306
|
+
|
|
307
|
+
✅ Décorateurs ApiProperty sur les DTOs
|
|
308
|
+
|
|
309
|
+
✅ Documentation des endpoints
|
|
310
|
+
|
|
311
|
+
✅ Interface interactive d'API
|
|
312
|
+
|
|
313
|
+
### DevOps
|
|
314
|
+
|
|
315
|
+
✅ **Docker** et **Docker Compose**
|
|
316
|
+
|
|
317
|
+
✅ Configuration des variables d'environnement
|
|
318
|
+
|
|
319
|
+
✅ Logging structuré
|
|
320
|
+
|
|
321
|
+
✅ Error handling centralisé
|
|
322
|
+
|
|
323
|
+
### Qualité du code
|
|
324
|
+
|
|
325
|
+
✅ Validation des DTOs avec class-validator
|
|
326
|
+
|
|
327
|
+
✅ Transformation des données avec class-transformer
|
|
328
|
+
|
|
329
|
+
✅ Intercepteurs de réponse standardisés
|
|
330
|
+
|
|
331
|
+
✅ Filtres d'exceptions globaux
|
|
332
|
+
|
|
333
|
+
---
|
|
334
|
+
|
|
335
|
+
## Generated Architecture
|
|
336
|
+
|
|
337
|
+
### Mode Light (MVP)
|
|
338
|
+
|
|
339
|
+
```
|
|
340
|
+
src
|
|
341
|
+
├── auth
|
|
342
|
+
│ ├── controllers
|
|
343
|
+
│ │ └── auth.controller.ts
|
|
344
|
+
│ ├── dtos
|
|
345
|
+
│ │ ├── create-session.dto.ts
|
|
346
|
+
│ │ ├── forgotPassword.dto.ts
|
|
347
|
+
│ │ ├── loginCredential.dto.ts
|
|
348
|
+
│ │ ├── refreshToken.dto.ts
|
|
349
|
+
│ │ ├── resetPassword.dto.ts
|
|
350
|
+
│ │ ├── sendOtp.dto.ts
|
|
351
|
+
│ │ └── verifyOtp.dto.ts
|
|
352
|
+
│ ├── entities
|
|
353
|
+
│ │ └── session.entity.ts
|
|
354
|
+
│ ├── guards
|
|
355
|
+
│ │ ├── jwt-auth.guard.ts
|
|
356
|
+
│ │ └── role.guard.ts
|
|
357
|
+
│ ├── mappers
|
|
358
|
+
│ │ └── session.mapper.ts
|
|
359
|
+
│ ├── persistence
|
|
360
|
+
│ │ └── session.repository.ts
|
|
361
|
+
│ ├── services
|
|
362
|
+
│ │ ├── auth.service.ts
|
|
363
|
+
│ │ └── session.service.ts
|
|
364
|
+
│ ├── strategies
|
|
365
|
+
│ │ └── jwt.strategy.ts
|
|
366
|
+
│ └── auth.module.ts
|
|
367
|
+
│
|
|
368
|
+
├── common
|
|
369
|
+
│ ├── decorators
|
|
370
|
+
│ │ ├── current-user.decorator.ts
|
|
371
|
+
│ │ ├── public.decorator.ts
|
|
372
|
+
│ │ └── role.decorator.ts
|
|
373
|
+
│ ├── enums
|
|
374
|
+
│ │ └── role.enum.ts
|
|
375
|
+
│ ├── filters
|
|
376
|
+
│ │ └── all-exceptions.filter.ts
|
|
377
|
+
│ ├── interceptors
|
|
378
|
+
│ │ └── response.interceptor.ts
|
|
379
|
+
│ └── middlewares
|
|
380
|
+
│ └── logger.middleware.ts
|
|
381
|
+
│
|
|
382
|
+
├── prisma
|
|
383
|
+
│ ├── prisma.module.ts
|
|
384
|
+
│ └── prisma.service.ts
|
|
385
|
+
│
|
|
386
|
+
├── user
|
|
387
|
+
│ ├── controllers
|
|
388
|
+
│ │ └── user.controller.ts
|
|
389
|
+
│ ├── dtos
|
|
390
|
+
│ │ └── user.dto.ts
|
|
391
|
+
│ ├── entities
|
|
392
|
+
│ │ └── user.entity.ts
|
|
393
|
+
│ ├── repositories
|
|
394
|
+
│ │ └── user.repository.ts
|
|
395
|
+
│ ├── services
|
|
396
|
+
│ │ └── user.service.ts
|
|
397
|
+
│ └── user.module.ts
|
|
398
|
+
│
|
|
399
|
+
├── app.controller.spec.ts
|
|
400
|
+
├── app.controller.ts
|
|
401
|
+
├── app.module.ts
|
|
402
|
+
├── app.service.ts
|
|
403
|
+
└── main.ts
|
|
404
|
+
```
|
|
405
|
+
|
|
406
|
+
### Mode Full (Clean Architecture)
|
|
407
|
+
|
|
408
|
+
```
|
|
409
|
+
src
|
|
410
|
+
├── auth
|
|
411
|
+
│ ├── application
|
|
412
|
+
│ │ ├── dtos
|
|
413
|
+
│ │ │ ├── create-session.dto.ts
|
|
414
|
+
│ │ │ ├── forgotPassword.dto.ts
|
|
415
|
+
│ │ │ ├── loginCredential.dto.ts
|
|
416
|
+
│ │ │ ├── refreshToken.dto.ts
|
|
417
|
+
│ │ │ ├── resetPassword.dto.ts
|
|
418
|
+
│ │ │ ├── sendOtp.dto.ts
|
|
419
|
+
│ │ │ └── verifyOtp.dto.ts
|
|
420
|
+
│ │ └── services
|
|
421
|
+
│ │ ├── auth.service.ts
|
|
422
|
+
│ │ └── session.service.ts
|
|
423
|
+
│ ├── domain
|
|
424
|
+
│ │ ├── entities
|
|
425
|
+
│ │ │ └── session.entity.ts
|
|
426
|
+
│ │ └── interfaces
|
|
427
|
+
│ │ └── session.repository.interface.ts
|
|
428
|
+
│ ├── infrastructure
|
|
429
|
+
│ │ ├── guards
|
|
430
|
+
│ │ │ ├── jwt-auth.guard.ts
|
|
431
|
+
│ │ │ └── role.guard.ts
|
|
432
|
+
│ │ ├── mappers
|
|
433
|
+
│ │ │ └── session.mapper.ts
|
|
434
|
+
│ │ ├── persistence
|
|
435
|
+
│ │ │ └── session.repository.ts
|
|
436
|
+
│ │ └── strategies
|
|
437
|
+
│ │ └── jwt.strategy.ts
|
|
438
|
+
│ ├── presentation
|
|
439
|
+
│ │ └── controllers
|
|
440
|
+
│ │ └── auth.controller.ts
|
|
441
|
+
│ └── auth.module.ts
|
|
442
|
+
│
|
|
443
|
+
├── common
|
|
444
|
+
│ ├── decorators
|
|
445
|
+
│ │ ├── current-user.decorator.ts
|
|
446
|
+
│ │ ├── public.decorator.ts
|
|
447
|
+
│ │ └── role.decorator.ts
|
|
448
|
+
│ ├── filters
|
|
449
|
+
│ │ └── all-exceptions.filter.ts
|
|
450
|
+
│ ├── interceptors
|
|
451
|
+
│ │ └── response.interceptor.ts
|
|
452
|
+
│ └── middlewares
|
|
453
|
+
│ └── logger.middleware.ts
|
|
454
|
+
│
|
|
455
|
+
├── prisma
|
|
456
|
+
│ ├── prisma.module.ts
|
|
457
|
+
│ └── prisma.service.ts
|
|
458
|
+
│
|
|
459
|
+
├── user
|
|
460
|
+
│ ├── application
|
|
461
|
+
│ │ ├── dtos
|
|
462
|
+
│ │ │ └── user.dto.ts
|
|
463
|
+
│ │ ├── services
|
|
464
|
+
│ │ │ └── user.service.ts
|
|
465
|
+
│ │ └── use-cases
|
|
466
|
+
│ │ ├── create-user.use-case.ts
|
|
467
|
+
│ │ ├── delete-user.use-case.ts
|
|
468
|
+
│ │ ├── getAll-user.use-case.ts
|
|
469
|
+
│ │ ├── getById-user.use-case.ts
|
|
470
|
+
│ │ └── update-user.use-case.ts
|
|
471
|
+
│ ├── domain
|
|
472
|
+
│ │ ├── entities
|
|
473
|
+
│ │ │ └── user.entity.ts
|
|
474
|
+
│ │ ├── enums
|
|
475
|
+
│ │ │ └── role.enum.ts
|
|
476
|
+
│ │ └── interfaces
|
|
477
|
+
│ │ └── user.repository.interface.ts
|
|
478
|
+
│ ├── infrastructure
|
|
479
|
+
│ │ ├── adapters
|
|
480
|
+
│ │ │ └── user.adapter.ts
|
|
481
|
+
│ │ ├── mappers
|
|
482
|
+
│ │ │ └── user.mapper.ts
|
|
483
|
+
│ │ └── repositories
|
|
484
|
+
│ │ └── user.repository.ts
|
|
485
|
+
│ ├── presentation
|
|
486
|
+
│ │ └── controllers
|
|
487
|
+
│ │ └── user.controller.ts
|
|
488
|
+
│ └── user.module.ts
|
|
489
|
+
│
|
|
490
|
+
├── app.controller.spec.ts
|
|
491
|
+
├── app.controller.ts
|
|
492
|
+
├── app.module.ts
|
|
493
|
+
├── app.service.ts
|
|
494
|
+
└── main.ts
|
|
495
|
+
```
|
|
496
|
+
|
|
497
|
+
## Démo complète
|
|
498
|
+
|
|
499
|
+
🔥 Une démo prête à exécuter, incluant 3 entités liées, Auth JWT, Swagger, Docker et ORM configurable.
|
|
500
|
+
|
|
501
|
+
👉 Voir la documentation complète : [Documentation Demo](./DEMO.md)
|
|
502
|
+
|
|
503
|
+
## Guide d'utilisation
|
|
504
|
+
|
|
505
|
+
### Démarrage rapide (Mode Light)
|
|
506
|
+
|
|
507
|
+
```bash
|
|
508
|
+
# 1. Créer un projet simple
|
|
509
|
+
npx nestcraftx new my-api --light --orm prisma
|
|
510
|
+
|
|
511
|
+
# 2. Naviguer dans le projet
|
|
512
|
+
cd my-api
|
|
513
|
+
|
|
514
|
+
# 3. Démarrer l'application
|
|
515
|
+
npm run start:dev
|
|
516
|
+
```
|
|
517
|
+
|
|
518
|
+
### Configuration complète (Mode Full)
|
|
519
|
+
|
|
520
|
+
```bash
|
|
521
|
+
# 1. Lancer la création avec interface interactive
|
|
522
|
+
npx nestcraftx new my-project
|
|
523
|
+
|
|
524
|
+
# 2. Répondre aux questions :
|
|
525
|
+
# - Nom du projet
|
|
526
|
+
# - Choix de la base de données
|
|
527
|
+
# - Configuration ORM
|
|
528
|
+
# - Entités et relations
|
|
529
|
+
# - Auth et Swagger
|
|
530
|
+
|
|
531
|
+
# 3. Démarrer
|
|
532
|
+
cd my-project
|
|
533
|
+
npm run start:dev
|
|
534
|
+
```
|
|
535
|
+
|
|
536
|
+
### Projet de démonstration
|
|
537
|
+
|
|
538
|
+
```bash
|
|
539
|
+
# Générer un projet blog complet (mode interactif)
|
|
540
|
+
nestcraftx demo
|
|
541
|
+
|
|
542
|
+
# Ou avec options directes
|
|
543
|
+
nestcraftx demo --light --orm prisma --auth --swagger
|
|
544
|
+
|
|
545
|
+
# Naviguer et démarrer
|
|
546
|
+
cd blog-demo
|
|
547
|
+
npm run start:dev
|
|
548
|
+
|
|
549
|
+
# Accéder à Swagger UI
|
|
550
|
+
open http://localhost:3000/api/docs
|
|
551
|
+
```
|
|
552
|
+
|
|
553
|
+
**Qu'inclut le projet demo :**
|
|
554
|
+
|
|
555
|
+
- Architecture Clean complète (ou LIGHT selon l'option)
|
|
556
|
+
- 3 entités pré-configurées : User, Post, Comment
|
|
557
|
+
- Relations entre entités (User → Post, Post ↔ Comment)
|
|
558
|
+
- Auth JWT avec endpoints /auth/register et /auth/login
|
|
559
|
+
- Endpoints métier : /users, /posts, /comments
|
|
560
|
+
- Documentation Swagger automatique
|
|
561
|
+
- Docker & Docker Compose configurés
|
|
562
|
+
- Configuration ORM de votre choix (Prisma, TypeORM, Mongoose)
|
|
563
|
+
|
|
564
|
+
---
|
|
565
|
+
|
|
566
|
+
## Feuille de Route (Roadmap)
|
|
567
|
+
|
|
568
|
+
### Version 0.2.x — Stabilisation
|
|
569
|
+
|
|
570
|
+
- [x] Architectures Light & Full
|
|
571
|
+
- [x] CLI Interactif
|
|
572
|
+
- [x] Support Multi-ORM (Prisma / TypeORM / Mongoose)
|
|
573
|
+
- [ ] Amélioration de la documentation et des exemples
|
|
574
|
+
|
|
575
|
+
### Version 0.3.0 — Expérience Développeur (DX)
|
|
576
|
+
|
|
577
|
+
- [ ] Commande `generate` (ajouter des modules/entités à un projet existant)
|
|
578
|
+
- [ ] Support SQLite pour des démos et tests rapides sans config
|
|
579
|
+
- [ ] Meilleure gestion des erreurs et logs terminaux colorés
|
|
580
|
+
|
|
581
|
+
### Version 0.4.0 — Prêt pour la Production
|
|
582
|
+
|
|
583
|
+
- [ ] Stratégies de session optionnelles (Map / Base de données / Redis)
|
|
584
|
+
- [ ] Templates de seeding (peuplement de données) avancés
|
|
585
|
+
- [ ] Presets de projet (API seule / Auth / CRUD complet)
|
|
586
|
+
|
|
587
|
+
### Version 1.0.0 — Version Stable
|
|
588
|
+
|
|
589
|
+
- [ ] CLI nativement en TypeScript
|
|
590
|
+
- [ ] Conventions strictes et contrats d'API stables
|
|
591
|
+
- [ ] Site officiel de documentation
|
|
592
|
+
- [ ] Garanties de support à long terme (LTS)
|
|
593
|
+
|
|
594
|
+
## Contribuer
|
|
595
|
+
|
|
596
|
+
Vous voulez améliorer NestCraftX ? Les contributions sont les bienvenues !
|
|
597
|
+
|
|
598
|
+
### Comment contribuer
|
|
599
|
+
|
|
600
|
+
1. Fork le projet
|
|
601
|
+
2. Créez une branche pour votre fonctionnalité (`git checkout -b feature/AmazingFeature`)
|
|
602
|
+
3. Committez vos changements (`git commit -m 'Add some AmazingFeature'`)
|
|
603
|
+
4. Push vers la branche (`git push origin feature/AmazingFeature`)
|
|
604
|
+
5. Ouvrez une Pull Request
|
|
605
|
+
|
|
606
|
+
### Ouvrir une issue
|
|
607
|
+
|
|
608
|
+
Des bugs ? Des idées ? Ouvrez une issue sur GitHub !
|
|
609
|
+
|
|
610
|
+
### Développeurs
|
|
611
|
+
|
|
612
|
+
Pour développer localement :
|
|
613
|
+
|
|
614
|
+
```bash
|
|
615
|
+
git clone https://github.com/august-dev-pro/NestCraftX.git
|
|
616
|
+
cd NestCraftX
|
|
617
|
+
npm install
|
|
618
|
+
npm link
|
|
619
|
+
```
|
|
620
|
+
|
|
621
|
+
---
|
|
622
|
+
|
|
623
|
+
## Licence
|
|
624
|
+
|
|
625
|
+
MIT © [Ablanhou Augustin Selete](https://github.com/august-dev-pro)
|
|
626
|
+
|
|
627
|
+
Libre d'usage pour projets personnels et commerciaux.
|
|
628
|
+
|
|
629
|
+
---
|
|
630
|
+
|
|
631
|
+
## Remerciements
|
|
632
|
+
|
|
633
|
+
Merci à tous les contributeurs et à la communauté NestJS !
|
|
634
|
+
|
|
635
|
+
**Fait avec ❤️ pour la communauté des développeurs backend**
|
|
636
|
+
|
|
637
|
+
---
|
|
638
|
+
|
|
639
|
+
## Contact & Support
|
|
640
|
+
|
|
641
|
+
- 📧 GitHub Issues : [Ouvrir une issue](https://github.com/august-dev-pro/NestCraftX/issues)
|
|
642
|
+
- 🌐 Repository : [NestCraftX sur GitHub](https://github.com/august-dev-pro/NestCraftX)
|
|
643
|
+
- ⭐ Si ce projet vous aide, pensez à lui donner une étoile !
|
|
644
|
+
|
|
645
|
+
---
|
|
646
|
+
|
|
647
|
+
**NestCraftX v0.2.5** - Clean Architecture Made Simple
|
|
648
|
+
|
|
649
|
+
Pour plus d'informations:
|
|
650
|
+
|
|
651
|
+
- [Guide d'utilisation complet](./CLI_USAGE.md)
|
|
652
|
+
- [Guide de migration](./MIGRATION_GUIDE.md)
|
|
653
|
+
- [Changelog detaille](./CHANGELOG.md)
|