From 7daa894e1b5d6612ff0e8ee88b1303b997feda33 Mon Sep 17 00:00:00 2001
From: Alexis Poyen <apoyen@grandlyon.com>
Date: Wed, 8 Jul 2020 10:46:31 +0200
Subject: [PATCH] Started how to fork documentation

---
 README.md | 94 +++++++++++++++++++++++++++++++++++++++++++++++++++++--
 start.sh  |  3 --
 2 files changed, 92 insertions(+), 5 deletions(-)
 delete mode 100755 start.sh

diff --git a/README.md b/README.md
index 536a79a..9f43911 100644
--- a/README.md
+++ b/README.md
@@ -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
 
-## Démarer un projet à partir du SDK
\ No newline at end of file
+### 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.
diff --git a/start.sh b/start.sh
deleted file mode 100755
index 6f5045b..0000000
--- a/start.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/bash
-export $(cat .env | xargs)
-go run main.go -apps=./configs/apps.json -davs=./configs/davs.json -https_port=1443
-- 
GitLab