angular-generate 2.2.1 → 2.2.2
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/README.md +560 -91
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,149 +1,618 @@
|
|
|
1
1
|
# AngularGenerate
|
|
2
|
-
**AngularGenerate** vous permet de générer une application Angular complète en quelques clics.
|
|
3
|
-
**Votre projet** sera composé de:
|
|
4
|
-
- Frontend (Angular) → Généré avec la bibliothèque **AngularGenerate** ( https://www.npmjs.com/package/angular-generate)
|
|
5
|
-
- Backend (LARAVEL) → Généré automatiquement à partir d'une base de données avec **ControllerGenerate** ( https://packagist.org/packages/saloum45/controllergenerate )
|
|
6
2
|
|
|
3
|
+
**AngularGenerate** est un package Angular qui permet de générer automatiquement une application Angular complète à partir d'un fichier de configuration.
|
|
7
4
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
5
|
+
Il permet notamment de générer les **modules, routes, composants, formulaires, listes, pages de détails et interfaces d'authentification** à partir des tables définies dans votre configuration.
|
|
6
|
+
|
|
7
|
+
AngularGenerate peut fonctionner avec un backend Laravel généré automatiquement grâce au package **ControllerGenerate**.
|
|
8
|
+
|
|
9
|
+
#### Packages utilisés :
|
|
10
|
+
|
|
11
|
+
* Frontend : **AngularGenerate**
|
|
12
|
+
* Backend : **ControllerGenerate**
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Comment ça marche 👉🏽😇
|
|
17
|
+
|
|
18
|
+
AngularGenerate fonctionne à partir d'un fichier **`config.json`** contenant la configuration de votre application.
|
|
19
|
+
|
|
20
|
+
Le principe est simple :
|
|
21
|
+
|
|
22
|
+
1. Vous créez votre backend Laravel avec **ControllerGenerate**.
|
|
23
|
+
2. ControllerGenerate génère les modèles, migrations, contrôleurs, routes et relations.
|
|
24
|
+
3. Vous récupérez la configuration générée par le backend.
|
|
25
|
+
4. Vous placez cette configuration dans votre projet Angular.
|
|
26
|
+
5. AngularGenerate utilise cette configuration pour générer automatiquement le frontend.
|
|
27
|
+
6. Les composants Angular sont générés en fonction des modules et des tables définis dans `config.json`.
|
|
28
|
+
|
|
29
|
+
Vous pouvez ainsi partir d'une base de données et obtenir rapidement une structure complète **Backend Laravel + Frontend Angular**.
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
# Prérequis
|
|
34
|
+
|
|
35
|
+
Avant d'utiliser AngularGenerate, assurez-vous d'avoir installé :
|
|
36
|
+
|
|
37
|
+
* **Node.js**
|
|
38
|
+
* **npm**
|
|
39
|
+
* **Angular CLI**
|
|
40
|
+
* Un projet Angular
|
|
41
|
+
* Un backend Laravel utilisant **ControllerGenerate**
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
# Installation
|
|
46
|
+
|
|
47
|
+
## 2️⃣ Installer AngularGenerate
|
|
48
|
+
|
|
49
|
+
Installez le package avec npm :
|
|
50
|
+
|
|
51
|
+
```bash
|
|
35
52
|
npm install angular-generate
|
|
36
53
|
```
|
|
37
|
-
|
|
38
|
-
|
|
54
|
+
|
|
55
|
+
Le package est disponible sur npm :
|
|
56
|
+
|
|
57
|
+
https://www.npmjs.com/package/angular-generate
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## 3️⃣ Installer Angular JWT
|
|
62
|
+
|
|
63
|
+
AngularGenerate utilise `@auth0/angular-jwt` pour la gestion du token d'authentification.
|
|
64
|
+
|
|
65
|
+
```bash
|
|
39
66
|
npm install @auth0/angular-jwt
|
|
40
67
|
```
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
```
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## 4️⃣ Installer NG-Select
|
|
72
|
+
|
|
73
|
+
Installez `@ng-select/ng-select` :
|
|
74
|
+
|
|
75
|
+
```bash
|
|
50
76
|
npm install @ng-select/ng-select
|
|
51
77
|
```
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
78
|
+
|
|
79
|
+
### Compatibilité Angular / NG-Select
|
|
80
|
+
|
|
81
|
+
Veillez à utiliser une version compatible avec votre version d'Angular :
|
|
82
|
+
|
|
83
|
+
| Angular | NG-Select |
|
|
84
|
+
| ------------------ | --------- |
|
|
85
|
+
| `>=20.0.0 <21.0.0` | `v15.x` |
|
|
86
|
+
| `>=19.0.0 <20.0.0` | `v14.x` |
|
|
87
|
+
| `>=18.0.0 <19.0.0` | `v13.x` |
|
|
88
|
+
| `>=17.0.0 <18.0.0` | `v12.x` |
|
|
89
|
+
|
|
90
|
+
Documentation officielle :
|
|
91
|
+
|
|
92
|
+
https://www.npmjs.com/package/@ng-select/ng-select
|
|
93
|
+
|
|
94
|
+
### Importer les styles NG-Select
|
|
95
|
+
|
|
96
|
+
Dans votre fichier `style.css` ou `style.scss` :
|
|
97
|
+
|
|
98
|
+
```scss
|
|
99
|
+
/* Importing NG-Select styles */
|
|
100
|
+
@import url('../node_modules/@ng-select/ng-select/themes/default.theme.css');
|
|
58
101
|
```
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
## 5️⃣ Installer SweetAlert2
|
|
106
|
+
|
|
107
|
+
SweetAlert2 est utilisé pour afficher des notifications et des messages interactifs.
|
|
108
|
+
|
|
109
|
+
```bash
|
|
59
110
|
npm install sweetalert2
|
|
60
111
|
```
|
|
61
|
-
|
|
62
|
-
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## 6️⃣ Installer ng-bootstrap
|
|
116
|
+
|
|
117
|
+
Installez `ng-bootstrap` :
|
|
118
|
+
|
|
119
|
+
```bash
|
|
63
120
|
ng add @ng-bootstrap/ng-bootstrap
|
|
64
121
|
```
|
|
65
|
-
|
|
66
|
-
|
|
122
|
+
|
|
123
|
+
Documentation :
|
|
124
|
+
|
|
125
|
+
https://ng-bootstrap.github.io
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## 7️⃣ Installer Bootstrap et Bootstrap Icons
|
|
130
|
+
|
|
131
|
+
```bash
|
|
67
132
|
npm install bootstrap bootstrap-icons
|
|
68
133
|
```
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
134
|
+
|
|
135
|
+
Puis importez les styles dans `style.css` ou `style.scss` :
|
|
136
|
+
|
|
137
|
+
```scss
|
|
138
|
+
/* Importing Bootstrap CSS */
|
|
72
139
|
@import 'bootstrap/dist/css/bootstrap.css';
|
|
73
|
-
|
|
140
|
+
|
|
141
|
+
/* Importing Bootstrap Icons */
|
|
74
142
|
@import 'bootstrap-icons/font/bootstrap-icons.css';
|
|
75
|
-
|
|
76
|
-
|
|
143
|
+
|
|
144
|
+
/* Importing NG-Select styles */
|
|
145
|
+
@import url('../node_modules/@ng-select/ng-select/themes/default.theme.css');
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
# Configuration
|
|
151
|
+
|
|
152
|
+
## 1️⃣ Créer le fichier `config.json`
|
|
153
|
+
|
|
154
|
+
Créez un fichier nommé :
|
|
155
|
+
|
|
156
|
+
```text
|
|
157
|
+
config.json
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
à la racine de votre projet Angular.
|
|
161
|
+
|
|
162
|
+
Ce fichier contient la configuration utilisée par AngularGenerate pour savoir **quels modules et quelles tables doivent être générés**.
|
|
163
|
+
|
|
164
|
+
Exemple :
|
|
165
|
+
|
|
166
|
+
```json
|
|
167
|
+
{
|
|
168
|
+
"projectName": "projet1.angular",
|
|
169
|
+
"description": "Fichier de configuration de AngularGenerate",
|
|
170
|
+
"config_base_url": "http://localhost:8000",
|
|
171
|
+
"les_modules": [
|
|
172
|
+
{
|
|
173
|
+
"module": "home",
|
|
174
|
+
"les_tables": []
|
|
175
|
+
},
|
|
176
|
+
{
|
|
177
|
+
"module": "public",
|
|
178
|
+
"les_tables": []
|
|
179
|
+
}
|
|
180
|
+
]
|
|
181
|
+
}
|
|
77
182
|
```
|
|
78
183
|
|
|
79
|
-
|
|
184
|
+
### `projectName`
|
|
185
|
+
|
|
186
|
+
Nom du projet Angular :
|
|
187
|
+
|
|
188
|
+
```json
|
|
189
|
+
"projectName": "projet1.angular"
|
|
80
190
|
```
|
|
81
|
-
|
|
191
|
+
|
|
192
|
+
### `config_base_url`
|
|
193
|
+
|
|
194
|
+
URL de votre backend Laravel :
|
|
195
|
+
|
|
196
|
+
```json
|
|
197
|
+
"config_base_url": "http://localhost:8000"
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
Cette URL correspond à l'application Laravel utilisant **ControllerGenerate**.
|
|
201
|
+
|
|
202
|
+
### `les_modules`
|
|
203
|
+
|
|
204
|
+
Cette propriété contient les différents modules de votre application.
|
|
205
|
+
|
|
206
|
+
```json
|
|
207
|
+
"les_modules": [
|
|
208
|
+
{
|
|
209
|
+
"module": "home",
|
|
210
|
+
"les_tables": []
|
|
211
|
+
},
|
|
212
|
+
{
|
|
213
|
+
"module": "public",
|
|
214
|
+
"les_tables": []
|
|
215
|
+
}
|
|
216
|
+
]
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
Chaque module peut contenir plusieurs tables.
|
|
220
|
+
|
|
221
|
+
---
|
|
222
|
+
|
|
223
|
+
# Configuration depuis ControllerGenerate
|
|
224
|
+
|
|
225
|
+
L'un des objectifs d'AngularGenerate est de pouvoir fonctionner directement avec un backend généré par **ControllerGenerate**.
|
|
226
|
+
|
|
227
|
+
Vous pouvez donc récupérer la configuration nécessaire directement depuis votre backend Laravel.
|
|
228
|
+
|
|
229
|
+
Le backend contient les informations permettant à AngularGenerate de connaître :
|
|
230
|
+
|
|
231
|
+
* les modèles ;
|
|
232
|
+
* les tables ;
|
|
233
|
+
* les attributs ;
|
|
234
|
+
* les relations ;
|
|
235
|
+
* les clés étrangères ;
|
|
236
|
+
* les informations nécessaires à la génération du frontend.
|
|
237
|
+
|
|
238
|
+
Cela permet d'éviter de reconstruire manuellement toute la configuration côté Angular.
|
|
239
|
+
|
|
240
|
+
---
|
|
241
|
+
|
|
242
|
+
# Configuration de HttpClient
|
|
243
|
+
|
|
244
|
+
AngularGenerate utilise `HttpClient` pour communiquer avec l'API Laravel.
|
|
245
|
+
|
|
246
|
+
Dans votre fichier :
|
|
247
|
+
|
|
248
|
+
```text
|
|
249
|
+
app.config.ts
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
ajoutez `provideHttpClient()`.
|
|
253
|
+
|
|
254
|
+
Exemple :
|
|
255
|
+
|
|
256
|
+
```typescript
|
|
257
|
+
import { ApplicationConfig } from '@angular/core';
|
|
82
258
|
import { provideHttpClient } from '@angular/common/http';
|
|
83
259
|
import { provideRouter, withHashLocation } from '@angular/router';
|
|
84
260
|
|
|
261
|
+
import { routes } from './app.routes';
|
|
262
|
+
|
|
85
263
|
export const appConfig: ApplicationConfig = {
|
|
86
|
-
|
|
264
|
+
providers: [
|
|
265
|
+
provideRouter(routes, withHashLocation()),
|
|
266
|
+
provideHttpClient()
|
|
267
|
+
]
|
|
87
268
|
};
|
|
88
269
|
```
|
|
89
270
|
|
|
90
|
-
|
|
91
|
-
|
|
271
|
+
---
|
|
272
|
+
|
|
273
|
+
# Génération de l'application
|
|
274
|
+
|
|
275
|
+
Une fois la configuration terminée, AngularGenerate permet de générer automatiquement votre application.
|
|
276
|
+
|
|
277
|
+
## 1️⃣ Générer complètement l'application
|
|
278
|
+
|
|
279
|
+
Pour générer tous les modules et composants définis dans `config.json` :
|
|
280
|
+
|
|
281
|
+
```bash
|
|
92
282
|
ng generate angular-generate:config
|
|
93
283
|
```
|
|
94
|
-
|
|
95
|
-
|
|
284
|
+
|
|
285
|
+
Cette commande analyse votre configuration et génère automatiquement les éléments nécessaires.
|
|
286
|
+
|
|
287
|
+
---
|
|
288
|
+
|
|
289
|
+
# Générer un module spécifique
|
|
290
|
+
|
|
291
|
+
Supposons que votre configuration contient un module :
|
|
292
|
+
|
|
293
|
+
```text
|
|
294
|
+
public
|
|
96
295
|
```
|
|
296
|
+
|
|
297
|
+
avec plusieurs tables.
|
|
298
|
+
|
|
299
|
+
Pour générer uniquement ce module :
|
|
300
|
+
|
|
301
|
+
```bash
|
|
97
302
|
ng generate angular-generate:config --module public
|
|
98
303
|
```
|
|
99
|
-
|
|
100
|
-
|
|
304
|
+
|
|
305
|
+
AngularGenerate génère alors les composants associés au module `public`.
|
|
306
|
+
|
|
307
|
+
---
|
|
308
|
+
|
|
309
|
+
# Générer les composants d'une table
|
|
310
|
+
|
|
311
|
+
Supposons que votre configuration contient une table :
|
|
312
|
+
|
|
313
|
+
```text
|
|
314
|
+
agent
|
|
101
315
|
```
|
|
316
|
+
|
|
317
|
+
Pour générer tous les composants associés à cette table :
|
|
318
|
+
|
|
319
|
+
```bash
|
|
102
320
|
ng generate angular-generate:config --table agent
|
|
103
321
|
```
|
|
104
|
-
|
|
105
|
-
|
|
322
|
+
|
|
323
|
+
AngularGenerate génère alors les différents composants disponibles pour cette table.
|
|
324
|
+
|
|
325
|
+
---
|
|
326
|
+
|
|
327
|
+
# Générer un composant spécifique
|
|
328
|
+
|
|
329
|
+
Vous pouvez également générer uniquement un type de composant.
|
|
330
|
+
|
|
331
|
+
Par exemple, pour générer la liste des agents :
|
|
332
|
+
|
|
333
|
+
```bash
|
|
334
|
+
ng generate angular-generate:config --table agent --type list
|
|
335
|
+
```
|
|
336
|
+
|
|
337
|
+
---
|
|
338
|
+
|
|
339
|
+
# Types de composants disponibles
|
|
340
|
+
|
|
341
|
+
AngularGenerate permet de générer plusieurs types de composants.
|
|
342
|
+
|
|
343
|
+
### `list`
|
|
344
|
+
|
|
345
|
+
Affiche la liste des enregistrements d'une table.
|
|
346
|
+
|
|
347
|
+
```bash
|
|
348
|
+
--type list
|
|
349
|
+
```
|
|
350
|
+
|
|
351
|
+
---
|
|
352
|
+
|
|
353
|
+
### `add`
|
|
354
|
+
|
|
355
|
+
Génère le formulaire permettant d'ajouter un nouvel enregistrement.
|
|
356
|
+
|
|
357
|
+
```bash
|
|
358
|
+
--type add
|
|
359
|
+
```
|
|
360
|
+
|
|
361
|
+
---
|
|
362
|
+
|
|
363
|
+
### `edit`
|
|
364
|
+
|
|
365
|
+
Génère le formulaire permettant de modifier un enregistrement existant.
|
|
366
|
+
|
|
367
|
+
```bash
|
|
368
|
+
--type edit
|
|
369
|
+
```
|
|
370
|
+
|
|
371
|
+
---
|
|
372
|
+
|
|
373
|
+
### `details`
|
|
374
|
+
|
|
375
|
+
Génère la page permettant d'afficher les détails d'un enregistrement.
|
|
376
|
+
|
|
377
|
+
```bash
|
|
378
|
+
--type details
|
|
379
|
+
```
|
|
380
|
+
|
|
381
|
+
---
|
|
382
|
+
|
|
383
|
+
### `login`
|
|
384
|
+
|
|
385
|
+
Génère le formulaire de connexion à l'application.
|
|
386
|
+
|
|
387
|
+
```bash
|
|
388
|
+
--type login
|
|
389
|
+
```
|
|
390
|
+
|
|
391
|
+
---
|
|
392
|
+
|
|
393
|
+
### `deconnexion`
|
|
394
|
+
|
|
395
|
+
Génère la page permettant de gérer la déconnexion de l'utilisateur.
|
|
396
|
+
|
|
397
|
+
```bash
|
|
398
|
+
--type deconnexion
|
|
399
|
+
```
|
|
400
|
+
|
|
401
|
+
---
|
|
402
|
+
|
|
403
|
+
### `not-found`
|
|
404
|
+
|
|
405
|
+
Génère la page affichée lorsqu'une route demandée n'existe pas.
|
|
406
|
+
|
|
407
|
+
```bash
|
|
408
|
+
--type not-found
|
|
409
|
+
```
|
|
410
|
+
|
|
411
|
+
---
|
|
412
|
+
|
|
413
|
+
# Exemple d'utilisation
|
|
414
|
+
|
|
415
|
+
Supposons que nous avons une table :
|
|
416
|
+
|
|
417
|
+
```text
|
|
418
|
+
agent
|
|
106
419
|
```
|
|
420
|
+
|
|
421
|
+
Nous pouvons générer :
|
|
422
|
+
|
|
423
|
+
### Liste des agents
|
|
424
|
+
|
|
425
|
+
```bash
|
|
107
426
|
ng generate angular-generate:config --table agent --type list
|
|
108
427
|
```
|
|
109
|
-
### NB: Les types de composant disponibles
|
|
110
|
-
- **list** : liste tous les enregistrements de la table
|
|
111
|
-
- **add** : formulaire d'ajout de la table
|
|
112
|
-
- **edit** : formulaire de modification de la table
|
|
113
|
-
- **details** : affiche les details d'un enregistrement de la table
|
|
114
|
-
- **login** : formulaire de connexion
|
|
115
|
-
- **deconnexion** : page de déconnexion à l'application
|
|
116
|
-
- **not-found** : si la page demandée est introuvable
|
|
117
428
|
|
|
118
|
-
###
|
|
429
|
+
### Formulaire d'ajout
|
|
430
|
+
|
|
431
|
+
```bash
|
|
432
|
+
ng generate angular-generate:config --table agent --type add
|
|
119
433
|
```
|
|
434
|
+
|
|
435
|
+
### Formulaire de modification
|
|
436
|
+
|
|
437
|
+
```bash
|
|
438
|
+
ng generate angular-generate:config --table agent --type edit
|
|
439
|
+
```
|
|
440
|
+
|
|
441
|
+
### Détails d'un agent
|
|
442
|
+
|
|
443
|
+
```bash
|
|
444
|
+
ng generate angular-generate:config --table agent --type details
|
|
445
|
+
```
|
|
446
|
+
|
|
447
|
+
---
|
|
448
|
+
|
|
449
|
+
# Gestion des routes
|
|
450
|
+
|
|
451
|
+
AngularGenerate génère également la structure nécessaire à la navigation entre les différents modules.
|
|
452
|
+
|
|
453
|
+
Exemple de fichier `app.routes.ts` :
|
|
454
|
+
|
|
455
|
+
```typescript
|
|
120
456
|
import { Routes } from '@angular/router';
|
|
457
|
+
|
|
121
458
|
import { HomeComponent } from './home/home/home.component';
|
|
122
|
-
import { AuthGuard } from './guard/auth/auth.guard';
|
|
123
459
|
import { PublicComponent } from './public/public/public.component';
|
|
460
|
+
import { AuthGuard } from './guard/auth/auth.guard';
|
|
124
461
|
|
|
125
462
|
export const routes: Routes = [
|
|
126
|
-
|
|
463
|
+
|
|
127
464
|
{
|
|
128
|
-
path:
|
|
465
|
+
path: '',
|
|
466
|
+
pathMatch: 'full',
|
|
467
|
+
redirectTo: 'public'
|
|
468
|
+
},
|
|
469
|
+
|
|
470
|
+
{
|
|
471
|
+
path: 'home',
|
|
129
472
|
component: HomeComponent,
|
|
473
|
+
canActivate: [AuthGuard],
|
|
130
474
|
children: [
|
|
131
475
|
{
|
|
132
|
-
path:
|
|
133
|
-
loadChildren: () =>
|
|
476
|
+
path: '',
|
|
477
|
+
loadChildren: () =>
|
|
478
|
+
import('./home/home.module')
|
|
479
|
+
.then((m) => m.HomeModule)
|
|
134
480
|
}
|
|
135
|
-
]
|
|
136
|
-
canActivate: [AuthGuard]
|
|
481
|
+
]
|
|
137
482
|
},
|
|
483
|
+
|
|
138
484
|
{
|
|
139
|
-
path:
|
|
485
|
+
path: 'public',
|
|
140
486
|
component: PublicComponent,
|
|
141
487
|
children: [
|
|
142
488
|
{
|
|
143
|
-
path:
|
|
144
|
-
loadChildren: () =>
|
|
489
|
+
path: '',
|
|
490
|
+
loadChildren: () =>
|
|
491
|
+
import('./public/public.module')
|
|
492
|
+
.then((m) => m.PublicModule)
|
|
145
493
|
}
|
|
146
|
-
]
|
|
147
|
-
}
|
|
494
|
+
]
|
|
495
|
+
}
|
|
496
|
+
|
|
148
497
|
];
|
|
149
|
-
```
|
|
498
|
+
```
|
|
499
|
+
|
|
500
|
+
---
|
|
501
|
+
|
|
502
|
+
# Exemple d'architecture générée
|
|
503
|
+
|
|
504
|
+
Après génération, votre application peut notamment être organisée de cette manière :
|
|
505
|
+
|
|
506
|
+
```text
|
|
507
|
+
src/
|
|
508
|
+
├── app/
|
|
509
|
+
│ ├── home/
|
|
510
|
+
│ │ ├── home/
|
|
511
|
+
│ │ ├── agent/
|
|
512
|
+
│ │ ├── client/
|
|
513
|
+
│ │ └── home.module.ts
|
|
514
|
+
│ │
|
|
515
|
+
│ ├── public/
|
|
516
|
+
│ │ ├── public/
|
|
517
|
+
│ │ ├── login/
|
|
518
|
+
│ │ ├── agent/
|
|
519
|
+
│ │ └── public.module.ts
|
|
520
|
+
│ │
|
|
521
|
+
│ ├── guard/
|
|
522
|
+
│ │ └── auth/
|
|
523
|
+
│ │
|
|
524
|
+
│ ├── app.config.ts
|
|
525
|
+
│ └── app.routes.ts
|
|
526
|
+
│
|
|
527
|
+
├── assets/
|
|
528
|
+
│
|
|
529
|
+
├── styles.scss
|
|
530
|
+
│
|
|
531
|
+
└── config.json
|
|
532
|
+
```
|
|
533
|
+
|
|
534
|
+
La structure exacte peut varier en fonction de la configuration de votre application.
|
|
535
|
+
|
|
536
|
+
---
|
|
537
|
+
|
|
538
|
+
# Utilisation avec ControllerGenerate
|
|
539
|
+
|
|
540
|
+
AngularGenerate a été pensé pour fonctionner avec un backend Laravel généré automatiquement.
|
|
541
|
+
|
|
542
|
+
Le fonctionnement global est donc :
|
|
543
|
+
|
|
544
|
+
```text
|
|
545
|
+
BASE DE DONNÉES
|
|
546
|
+
│
|
|
547
|
+
▼
|
|
548
|
+
ControllerGenerate
|
|
549
|
+
│
|
|
550
|
+
┌─────────────┼─────────────┐
|
|
551
|
+
▼ ▼ ▼
|
|
552
|
+
Models Controllers Routes
|
|
553
|
+
│
|
|
554
|
+
▼
|
|
555
|
+
Configuration
|
|
556
|
+
│
|
|
557
|
+
▼
|
|
558
|
+
AngularGenerate
|
|
559
|
+
│
|
|
560
|
+
▼
|
|
561
|
+
Application Angular
|
|
562
|
+
│
|
|
563
|
+
┌─────┼─────┐
|
|
564
|
+
▼ ▼ ▼
|
|
565
|
+
Lists Forms Details
|
|
566
|
+
```
|
|
567
|
+
|
|
568
|
+
Cette approche permet de réduire considérablement le temps nécessaire pour mettre en place une application CRUD complète.
|
|
569
|
+
|
|
570
|
+
---
|
|
571
|
+
|
|
572
|
+
# Résultat attendu
|
|
573
|
+
|
|
574
|
+
Après l'utilisation d'AngularGenerate, vous disposez automatiquement d'une base Angular contenant notamment :
|
|
575
|
+
|
|
576
|
+
* **Modules** générés automatiquement ;
|
|
577
|
+
* **Routes** ;
|
|
578
|
+
* **Composants CRUD** ;
|
|
579
|
+
* **Listes** ;
|
|
580
|
+
* **Formulaires d'ajout** ;
|
|
581
|
+
* **Formulaires de modification** ;
|
|
582
|
+
* **Pages de détails** ;
|
|
583
|
+
* **Authentification** ;
|
|
584
|
+
* **Déconnexion** ;
|
|
585
|
+
* **Page 404 / Not Found** ;
|
|
586
|
+
* Gestion des **relations entre tables** ;
|
|
587
|
+
* Communication avec votre **API Laravel**.
|
|
588
|
+
|
|
589
|
+
---
|
|
590
|
+
|
|
591
|
+
# Packages associés
|
|
592
|
+
|
|
593
|
+
### ControllerGenerate
|
|
594
|
+
|
|
595
|
+
Package Laravel permettant de générer automatiquement :
|
|
596
|
+
|
|
597
|
+
* Controllers ;
|
|
598
|
+
* Migrations ;
|
|
599
|
+
* Routes ;
|
|
600
|
+
* Relations ;
|
|
601
|
+
* CRUD ;
|
|
602
|
+
* Authentification.
|
|
603
|
+
|
|
604
|
+
Documentation :
|
|
605
|
+
|
|
606
|
+
https://packagist.org/packages/saloum45/controllergenerate
|
|
607
|
+
|
|
608
|
+
### AngularGenerate
|
|
609
|
+
|
|
610
|
+
Package Angular permettant de générer automatiquement le frontend à partir d'une configuration.
|
|
611
|
+
|
|
612
|
+
Documentation et installation :
|
|
613
|
+
|
|
614
|
+
https://www.npmjs.com/package/angular-generate
|
|
615
|
+
|
|
616
|
+
---
|
|
617
|
+
|
|
618
|
+
## Bon code 🧑🏽💻 Salem DEV 👈🏽 fait avec beaucoup de ❤️ et ☕️
|