Skip to content
This repository was archived by the owner on Mar 25, 2024. It is now read-only.

Commit f9ebff2

Browse files
committed
🎉 (configuration,formation,organisation) Premier commit
0 parents  commit f9ebff2

File tree

14 files changed

+333
-0
lines changed

14 files changed

+333
-0
lines changed

.czrc

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{ "path": "cz-emoji" }

1. Configuration/PHP/README.md

+54
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
# Configurer PHP sur son poste
2+
3+
## Installer mariadb
4+
5+
* Sous Linux, installer le paquet `mariadb`
6+
* Sous Windows, aller sur [ce site](https://downloads.mariadb.org/) et installer la version 10.5 stable, et le fichier winx64.msi.
7+
* Cochez bien lors de l'installation `Modify root password` et notez le mdp créé (faites en un simple avec juste des chiffres et des lettres, il ne servira que sur votre poste). Déochez bien enable root access from remotes machines.
8+
* Cochez bien `Install as Service` et `Enable networking`
9+
10+
## Installer PHP
11+
12+
* Sur Linux : `sudo apt install php7.4 php7.4-pdo_mysql php7.4-mbstring`
13+
* Sur Windows, cela se fait en plusieurs opérations.
14+
* Aller sur le [site suivant](https://windows.php.net/download), télécharger le zip (x64 non thread safe), et l'extraire dans un dossier à la racine de votre disque dur (par exemple `C:\dev-tools\php`). Vous devez donc avoir, à terme un fichier `php.exe` dans le dossier `C:\dev-tools\php`.
15+
* Téléchargez le [fichier suivant](https://curl.haxx.se/ca/cacert.pem) et placez le dans le même dossier que le php.exe
16+
* Dans ce dossier, vous devez copier le `php.ini-development` en `php.ini` (faites bien une copie afin de garder le fichier d'origine en cas de souci), puis ouvrez le avec VSCode (clic-droit, Ouvrir avec code) et changez les lignes suivantes :
17+
```
18+
; Remplacer
19+
;curl.cainfo =
20+
; par (sans le point virgule)
21+
curl.cainfo = "C:\dev-tools\php\cacert.pem"
22+
23+
; Remplacer
24+
;openssl.capath =
25+
; par (sans le point virgule)
26+
openssl.capath = "C:\dev-tools\php\cacert.pem"
27+
```
28+
* Toujours dans le php.ini, recherchez `Dynamic Extensions`, puis décommentez (enlevez le `;`) des lignes suivantes :
29+
```
30+
extension=curl
31+
extension=fileinfo
32+
extension=mbstring
33+
extension=pdo_mysql
34+
```
35+
* Il faut ensuite, dans la barre des tâches, rechercher `path` et ouvrir `Modifier les variables d'environnement`, puis recliquez sur le bouton du bas `Variables d'environnement` puis dans `Variables systèmes`, double cliquer sur la variable `Path` puis cliquer sur `Nouveau` et indiquer `C:\dev-tools\php\` en ajoutant bien le `\` à la fin. Puis valider la saisie en appuyant sur entrée puis en cliquant sur ok.
36+
37+
## Installer composer
38+
* Sous linux : avec votre gestionnaire de paquet : `sudo apt install composer`
39+
* Sous Windows en utilisant [l'installateur prévu à cet effet](https://getcomposer.org/Composer-Setup.exe).
40+
41+
## Installer l'exécutable Symfony
42+
* Linux : `wget https://get.symfony.com/cli/installer -O - | bash && sudo mv symfony /usr/bin/symfony`
43+
* Windows : allez sur le [site de Symfony](https://symfony.com/download) pour télécharger l'installateur.
44+
45+
## Installer PHPStorm
46+
47+
Etape finale !
48+
49+
PHPStorm est un des meilleurs (si ce n'est pas le meilleur) IDE pour développer en PHP.
50+
51+
* Se connecter à Jetbrains avec le Github Student Pack [ici](https://www.jetbrains.com/shop/eform/students), vous devrez ensuite vous créer un compte.
52+
* Téléchargez ensuite la [Jetbrains Toolbox](https://www.jetbrains.com/toolbox-app/)
53+
* Depuis la JetBrains Toolbox, installez ensuite PHPStorm
54+
* Au premier lancement, Jetbrains va vous demander plusieurs choses, notamment les plugins. Installez bien le plugin Symfony.

1. Configuration/README.md

+40
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# Configuration
2+
3+
Ce dossier contient des instructions afin de préparer ton poste. De manière générale, il est recommandé d'utiliser Linux, la configuration est beaucoup plus simple. Mais sous Windows, ça marche très bien aussi en suivant les étapes indiquées apèrs !
4+
5+
## Créez-vous un compte Github
6+
7+
Vous êtes dessus, cliquez sur `Sign Up` en haut à droite.
8+
9+
Activez le [Github Student Pack](https://education.github.com/pack) en cliquant sur le bouton "Get your pack" et en fournissant votre mail universitaire (UTT, ...)
10+
11+
## Configuration commune à tous les projets
12+
13+
### Installer VSCode
14+
15+
Visual Studio Code est un éditeur de texte brut. Il est très pratique pour éditer rapidement un fichier de configuration. Vous êtes bien entendu libre d'utiliser autre chose (Notepad++, Vim, ...) mais n'utilisez **jamais** Office ou LibreOffice pour éditer un fichier, ils n'éditent pas de manière *brute* les fichiers, ils ajoutent des informations supplémentaires (mise en forme, ...) qui rendent ces fichiers inutilisables dans notre contexte.
16+
17+
Allez sur [le site de VSCode](https://code.visualstudio.com/), téléchargez et installez la version correspondant à votre PC.
18+
* Pour Windows, laissez toutes les options par défaut mais pensez à cocher toutes les cases du genre `Ajouter VSCode au menu contextuel`
19+
* Pour Linux, vscode n'est pas directement accessible dans les repos traditionnels, il faut donc le télécharger et l'installer via votre gestionnaire de paquets (afin d'ajouter aussi le repo dans la liste de vos sources pour les mises à jour), par exemple `sudo apt install ./vscode.deb`.
20+
21+
### Installer git
22+
23+
C'est un outil qui va te permettre de télécharger et d'envoyer du code source.
24+
25+
* Sur windows, il faut se rendre sur [ce site](https://gitforwindows.org/), cliquer sur download. Vous arrivez sur la page des releases du projet Github correspondant. Plus bas, dans assets, téléchargez le fichier exe en 64bits puis installez le sur votre poste, en **laissant les options par défaut**.
26+
* Sur Linux, c'est beaucoup plus facile. Installez le paquet `git` avec votre gestionnaire de paquets (exemple : `sudo apt install git`).
27+
28+
### Installer commitizen
29+
30+
C'est un outil qui va te permettre d'expliquer aux autres collaborateurs ce que tu as changé sur le code quand tu as fait une modification de manière standard.
31+
32+
Il faut d'abord installer node.
33+
* Sous Windows, il faut aller sur [ce site](https://nodejs.org/en/), télécharger la version current et installer en laissant les options standards.
34+
* Sous Linux, avec le gestionnaire de paquet, installer `npm`, soit par exemple `sudo apt install npm`
35+
36+
Ensuite il faut installer commitizen, pour cela, ouvrez un terminal et saisissez : `npm install -g commitizen` puis `npm install -g cz-conventional-changelog` puis `npm install -g cz-emoji`.
37+
38+
## Configuration spécifique à PHP
39+
40+
Aller dans le dossier PHP

2. Formation/README.md

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# Git
2+
3+
* https://learngitbranching.js.org/?locale=fr_FR
4+
* https://try.github.io/
5+
* Pour ceux qui adorent lire des pavés, le livre Git Pro est vraiment bien :
6+
* En [pdf](https://github.com/progit/progit2-fr/releases/download/2.1.48/progit_v2.1.48.pdf)
7+
* En [version web](https://git-scm.com/book/fr/v2)
8+
* Lire les chapitres 1, 2, 3 et 6.
9+
10+
# Back
11+
12+
* [Introduction aux API](https://la-cascade.io/api-une-introduction/)
13+
* Symfony : [6 étapes pour comprendre comment Symfony fonctionne](https://symfony.com/doc/current/setup.html)
14+
15+
# Front
16+
17+
* React :
18+
* Le [tutoriel](https://fr.reactjs.org/tutorial/tutorial.html)
19+
* La [doc](https://fr.reactjs.org/docs/getting-started.html)
20+
* Flexbox : http://flexboxfroggy.com/#fr

3. Organisation/CONTRIBUTE.md

+80
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
# 💻 Contribute
2+
3+
## 📦 Develop a feature
4+
5+
### 1. ✨ Start a feature branch:
6+
7+
be sure to start from `develop` branch :
8+
9+
```bash
10+
$ git checkout dev
11+
```
12+
13+
Than, create the branch :
14+
15+
```bash
16+
$ git checkout -b "feature/name-of-the-feature"
17+
```
18+
19+
### 2. 💻 Start working on your feature
20+
21+
Code, create files, ...
22+
23+
### 3. Commit
24+
25+
Every time you do a small thing for your feature, COMMIT. It is very important you break your code in small parts. It would be easier to review it.
26+
27+
First, select the files you want to add to the commit :
28+
29+
```bash
30+
$ git add name_of_the_file
31+
```
32+
33+
Or easier : go to the git tab in VSCode. You can find it on the left of the editor, just after the loop. You will see all the modified files, with a + next to them when you hover them. Click on + to add the file in the commit.
34+
35+
To commit, use :
36+
37+
```bash
38+
$ git cz
39+
```
40+
41+
This will ask you some questions :
42+
43+
- type of commit : is it a feature, some doc, tests,...
44+
- what file or what's globally inside the commit
45+
- a small description of the commit
46+
47+
The 3 first question will determine the title of the commit
48+
49+
- a longer description of the commit (optional)
50+
- other question you do not have to answer them, just press enter
51+
52+
You now have committed your work!
53+
54+
### 4. 👀 Code Review
55+
56+
1. Rebase your feature branch onto the `develop` branch to ensure it is up-to-date (in case someone did something while you did yours)
57+
58+
```bash
59+
$ git pull --rebase origin dev
60+
```
61+
62+
2. Push the code to github :
63+
64+
```bash
65+
$ git push
66+
```
67+
68+
3. When pushing, git will give you a like to create a pull request. Create one
69+
70+
4. Ask for a thorough Code Review by a Code Owner
71+
72+
### 5. 📦 Merge your feature back into the `develop` branch
73+
74+
Only when validated by the code owner. This will start the deployment on develop (TODO)
75+
76+
### 6. 📱 Test & validate your feature on the develop website
77+
78+
Go to [develop website](https://dev.etu.uttnetgroup.fr). Your feature will be applied on it when the deployment is finished. A message will be sent on slack when the deployment is over (TODO)
79+
80+
## Go back to [README](./README.md)

3. Organisation/README.md

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# Organisation

README.md

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# Le site etu
2+
3+
[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)
4+
5+
Vous voulez faire du dev pour le site etu, mais vous ne savez pas par où commencer ? **Vous êtes au bon endroit !**
6+
7+
## Au secours ! Pour moi, PHP, Git, React, c'est du chinois !
8+
9+
Pas de panique. Commence par configurer ton poste (`1. Formation`) puis va dans le dossier `2. Formation` !
10+
11+
## Je connais déjà un peu (ou j'ai suivi le dossier formation)
12+
13+
Va dans le dossier `1. Configuration` pour configurer ton poste puis dans le dossier `3. Organisation` pour comprendre comment le projet est fait.
14+
15+
## Autre
16+
17+
* Le dossier `Repo` contient des indications pour créer un repository.

Repo/LICENCE.md

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2020 UTT NET GROUP
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

Repo/README.md

+43
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
# Ajouter un repo
2+
3+
Imaginons que nous devions ajouter une API, ou un nouveau repo de manière générale. Voici les étapes et conventions à suivre.
4+
5+
## Nommage, stockage et accès
6+
7+
* Le nom du repo et du projet sera sous la forme suivante : `etuutt-service`, en **minuscule**.
8+
* Le repo est créé dans github, sur l'organisation `ungdev`. Le repo doit être créé complètement vide.
9+
* Au niveau des droits d'accès au repo, il y a plusieurs équipes. Selon votre projet, il faudra en créer une ou incorporer les droits d'une équipe existante. L'équipe d'amdin (`etuutt-admin`) vous indiquera s'il faut créer une équipe et quelle équipe il faudra créer le cas échéant. S'il doit y avoir une nouvelle équipe spécifique à votre projet, celle-ci doit impérativement porter le nom `etuutt-service` et avoir comme équipe parente `etuutt`.
10+
* Les droits sont les suivants :
11+
* L'équipe `etuutt` a les droits `Triage`.
12+
* Votre équipe ou une équipe déjà existante, rattachée au projet, a les droits `Maintain`.
13+
* L'équipe `etuutt-admin` a les droits `Admin`.
14+
15+
## Convention communes aux repos
16+
17+
* Utilisation de [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/). Le mieux est d'utiliser [commitizen](https://github.com/commitizen/cz-cli#conventional-commit-messages-as-a-global-utility) en l'installant sur son poste (indépendant du projet). Dans le dossier du projet, taper la commande `echo '{ "path": "cz-emoji" }' > .czrc` afin de définir l'adaptateur pour le projet.
18+
* Le projet est sous [licence MIT](https://choosealicense.com/licenses/mit/), attribué à `UTT NET GROUP`.
19+
* Un dossier `docs` est à la racine. Le dossier docs de la branche master est utilisé pour Github Pages.
20+
* Deux branches : `prod` et `dev`. La branche par défaut est `dev`.
21+
22+
* Pour du back, on utilise PHP/Symfony
23+
* Le front est en React
24+
25+
## Appli PHP
26+
27+
* `symfony new etuutt-service --full`
28+
* `cd etuutt-service`
29+
* `git branch -m master prod`
30+
* `echo 7.4 > .php-version`
31+
* Installation d'outils de dev supplémentaires
32+
```
33+
composer require --dev phpmd/phpmd
34+
composer require --dev friendsofphp/php-cs-fixer
35+
composer require --dev doctrine/doctrine-fixtures-bundle
36+
composer require --dev squizlabs/php_codesniffer
37+
```
38+
39+
Vous devez copier le `.php_cs.dist` et le `.travis.yml` du dossier php et le mettre à la racine de votre projet.
40+
41+
42+
43+

Repo/deploy_licence.sh

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
#!/bin/bash
2+
cp LICENCE.md ../../etuutt-files/
3+
cp LICENCE.md ../../etuutt-api/
4+
cp LICENCE.md ../../etuutt-gateway/

Repo/php/.php_cs.dist

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
<?php
2+
3+
$finder = PhpCsFixer\Finder::create()
4+
->in(__DIR__)
5+
->exclude('var')
6+
->exclude('vendor')
7+
;
8+
9+
return PhpCsFixer\Config::create()
10+
->setRules([
11+
'@Symfony' => true,
12+
'@Symfony:risky' => true,
13+
'@DoctrineAnnotation' => true,
14+
'@PhpCsFixer' => true,
15+
'@PhpCsFixer:risky' => true,
16+
'@PSR1' => true,
17+
'@PSR2' => true,
18+
'array_syntax' => ['syntax' => 'short'],
19+
])
20+
->setRiskyAllowed(true)
21+
->setFinder($finder)
22+
;

Repo/php/.travis.yml

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
os: linux
2+
dist: xenial
3+
4+
language: php
5+
php:
6+
- 7.4
7+
8+
cache:
9+
directories:
10+
- vendor
11+
12+
install:
13+
- composer install
14+
15+
jobs:
16+
include:
17+
- stage: test
18+
name: PHP CS Fixer
19+
script:
20+
- CHANGED_FILES=$(git diff --name-only --diff-filter=ACMRTUXB "${TRAVIS_COMMIT_RANGE}")
21+
- if ! echo "${CHANGED_FILES}" | grep -qE "^(\\.php_cs(\\.dist)?|composer\\.lock)$"; then EXTRA_ARGS=$(printf -- '--path-mode=intersection\n--\n%s' "${CHANGED_FILES}"); else EXTRA_ARGS=''; fi
22+
- php vendor/bin/php-cs-fixer fix --config=.php_cs.dist -v --dry-run --stop-on-violation --using-cache=no ${EXTRA_ARGS}

Repo/php/deploy_php_cs_dist.sh

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
#!/bin/bash
2+
cp .php_cs.dist ../../../etuutt-files/
3+
cp .php_cs.dist ../../../etuutt-api/
4+
cp .php_cs.dist ../../../etuutt-gateway/

Repo/php/deploy_travis_yml.sh

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
#!/bin/bash
2+
cp .travis.yml ../../../etuutt-files/
3+
cp .travis.yml ../../../etuutt-api/
4+
cp .travis.yml ../../../etuutt-gateway/

0 commit comments

Comments
 (0)