Commit 7daa894e authored by Alexis POYEN's avatar Alexis POYEN
Browse files

Started how to fork documentation

parent a2c0aebc
......@@ -14,9 +14,14 @@ Les principales fonctionnalités :
- gestion des droits : différents rôles peuvent être définit dans l'application et les API protégées par ces rôles
- gestion du cookie de session utilisateur chiffré entre le navigateur et le serveur
## Démarrage
## Démarrage pour tests / dev
## Identifiants de démonstration
Trois comptes de démonstrations permettent de tester le kit avec trois profils différent : `admin` (rôle d'administrateur), `banker` (rôle de banquier), et `dupond` (rôle de client). Ces trois comptes ont pour mot de passe `password`
### Avec VS Code
> Il est nécessaire d'avoir un environnement de développement GO installé et opérationnel sur le poste.
Télécharger le dépot
......@@ -27,7 +32,10 @@ git clone https://forge.grandlyon.com/apoyen/sdk-go.git
Ouvrir le dépôt avec VS Code puis dans l'onglet `Debug`, démarrer le projet avec `Debug SDK-GO with Mock OAuth2`
La démo est accessible avec l'url https://sdk-go.127.0.0.1.nip.io:1443
### Avec Docker
Installer sur le poste [Docker](https://docs.docker.com/get-docker/) et [docker-compose](https://docs.docker.com/compose/install/)
Télécharger le dépot
......@@ -43,6 +51,88 @@ Dans le fichier docker-compose.yml décommenter la ligne `command: -debug` (ATTE
docker-compose up -d
```
La démo est accessible avec l'url https://sdk-go.127.0.0.1.nip.io
## Architecture
### Arborescence fichier
### Utilisateurs et droits
### Tests
## Démarer un projet à partir du SDK
Il faut forker le dépôt SDK-GO
### Nettoyage des fichiers
Supprimer le répertoire pkg. Ceci permet d'utiliser les dépendances `pkg` du dépôt SDK-GO directement et de bénéficier des mises à jour apportée sur ces packages.
Supprimer les fichiers `admin_test.go`, `banker_test.go` et `client_test.go` qui sont spécifiques à l'application de démonstration. Toutefois ces tests peuvent être adaptés à votre application pour tester les droits d'accès en fonction des rôles des utilisateurs.
Si vous souhaitez partir de l'interface web du kit, supprimer simplement les répertoires `web/components/bankerPage` et `web/components/clientPage` qui sont spécifiques à la démo.
Sinon supprimer tout le contenu tout le contenu du répertoire `web` pour repartir de zéro, il faudra alors redévelopper l'interface de gestion des utilisateurs.
### Nommage de l'application
> ATTENTION : ne pas faire un chercher -> remplacer de `SDK-GO` par `<nom du projet>`, le fork du projet doit continuer d'inclure certaines dépendances vers le projet SDK-GO afin de bénéficier de ces dernières mises à jour et de toutes ces fonctionnalités.
Pour remplacer les mentions "SDK-GO" par le nom du projet éléments sont nécéssaires :
- nom-du-projet : le nom donné au projet
- nom-du-dépôt : le nom du projet tel qu'il apparaît dans l'url sur la forge
- hostname-du-projet : l'url attribué au projet (dans le cadre du développement il est intéréssant de garder une adresse .nip.io)
Dans le fichier `.env` modifier la variable `HOSTNAME=sdk-go.127.0.0.1.nip.io` => `HOSTNAME=<hostname-du-projet>.127.0.0.1.nip.io`
Dans le fichier `docker-compose.yml` remplacer `sdk-go-container:` par `<nom-du-projet>-container:` et `image: sdk-go` par `image : <nom-du-projet>`
Dans le fichier `main.go` remplacer
```go
"forge.grandlyon.com/apoyen/sdk-go/internal/mocks" => "forge.grandlyon.com/apoyen/<nom-du-dépôt>/internal/mocks"
"forge.grandlyon.com/apoyen/sdk-go/internal/rootmux" => "forge.grandlyon.com/apoyen/<nom-du-dépôt/internal/rootmux"
```
Dans le fichier `dev_certificates/domains.ext` remplacer `DNS.4 = sdk-go.127.0.0.1.nip.io:1443` => `DNS.4 = <hostname-du-projet>.127.0.0.1.nip.io:1443`
Dans le fichier `internal/models/models.go`, remplacer :
```go
"forge.grandlyon.com/apoyen/sdk-go/internal/auth" => "forge.grandlyon.com/apoyen/<nom-du-dépôt>/internal/auth"
```
Dans le fichier `internal/rootmux/rootmux_test.go` remplacer :
```go
"forge.grandlyon.com/apoyen/sdk-go/internal/auth" => "forge.grandlyon.com/apoyen/<nom-du-dépôt>o/internal/auth"
"forge.grandlyon.com/apoyen/sdk-go/internal/mocks" => "forge.grandlyon.com/apoyen/<nom-du-dépôt>/internal/mocks"
```
Dans le fichier `internal/rootmux/rootmux.go`, remplacer :
```go
"forge.grandlyon.com/apoyen/sdk-go/internal/auth" => "forge.grandlyon.com/apoyen/<nom-du-dépôt>/internal/auth"
"forge.grandlyon.com/apoyen/sdk-go/internal/models" => "forge.grandlyon.com/apoyen/<nom-du-dépôt>/internal/models"
```
Dans le fichier `web/index.html` remplacer `<title>SDK-GO</title>` => `<title><nom-du-projet></title>` et `https://forge.grandlyon.com/apoyen/sdk-go` => `https://forge.grandlyon.com/apoyen/<nom-du-dépot>`
Dans le fichier `web/assets/brand/brand.js`, remplacer :
```javascript
export const windowTitle = "SDK-GO"; => export const windowTitle = "<nom-du-projet>";
export const navTitle = "SDK-GO"; => export const navTitle = "<nom-du-projet>";
```
Dans le fichier `web/assets/brand/manifest.js`, remplacer :
```javascript
"name": "SDK-GO" => "name": "<nom-du-projet>",,
"short_name": "SDK-GO" => "short_name": "<nom-du-projet>",,
```
### Définition du modèle
C'est dans le fichier `models.go` que doit être définit le modèle de donnée de l'application.
#!/bin/bash
export $(cat .env | xargs)
go run main.go -apps=./configs/apps.json -davs=./configs/davs.json -https_port=1443
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment