README.md 3.8 KB
Newer Older
Ivan Gabriele's avatar
Ivan Gabriele committed
1 2
# Back-office du code du travail numérique

3
[![Travis CI Status][img-travis]][link-travis]
4
[![Coveralls Code Coverage][img-coveralls]][link-coveralls]
Ivan Gabriele's avatar
Ivan Gabriele committed
5

6 7
Ce dépôt regroupe les applications d'administration des données du [code du travail
numérique][link-cdtn].
Ivan Gabriele's avatar
Ivan Gabriele committed
8

9 10
---

Ivan Gabriele's avatar
Ivan Gabriele committed
11
## Contribuer au projet
Ivan Gabriele's avatar
Ivan Gabriele committed
12

Ivan Gabriele's avatar
Ivan Gabriele committed
13 14
### Pré-requis

15 16 17 18
- Docker v19+
- Docker Compose v1.24+
- Node v12+
- Yarn v1.21+
Ivan Gabriele's avatar
Ivan Gabriele committed
19 20 21 22 23 24 25

### Installation

```bash
git clone https://github.com/SocialGouv/code-du-travail-backoffice.git
cd code-du-travail-backoffice
yarn
26
# Build, migrate and seed the database (PostgreSQL), as well as the api (PostgREST):
27
yarn setup
28
# Start the containers and run packages code in dev mode (with watch & hot reload):
29
yarn dev
Ivan Gabriele's avatar
Ivan Gabriele committed
30 31
```

32 33
> 📓 Si vous ne pouvez exécuter `docker-compose` qu'avec `sudo`, vous devez remplacer tous les
> `docker-compose` par `sudo docker-compose`.
34 35 36

Le site devrait être accessible à l'adresse http://localhost:3100.

37
3 utilisatrices ont été générées par défaut pendant l'installation :
38

39
- Administratrice:
40 41
  - Email: `doris@sea.com`
  - Mot de passe: `Azerty123`
42
- Administratrice régionale:
43
  - Email: `deb@sea.com`
44
  - Mot de passe: `Azerty123`
45
- Contributeur:
46
  - Email: `nemo@sea.com`
47 48
  - Mot de passe: `Azerty123`

49
**Recommended VS Code settings**
50 51 52 53 54 55 56 57

```json
{
  "editor.defaultFormatter": "esbenp.prettier-vscode",
  "editor.formatOnSave": true,
  "editor.formatOnSaveTimeout": 2000,
  "eslint.nodePath": "./packages/contrib/node_modules",
  "eslint.workingDirectories": [
58 59 60 61
    {
      "directory": "./packages/api",
      "changeProcessCWD": true
    },
62
    {
63
      "directory": "./packages/app",
64 65 66 67 68
      "changeProcessCWD": true
    }
  ]
}
```
Ivan Gabriele's avatar
Ivan Gabriele committed
69

Ivan Gabriele's avatar
Ivan Gabriele committed
70 71
### Démarrer le site localement

72
Un fois installé, vous pouvez simplement faire tourner le site en exécutant cette commande :
Ivan Gabriele's avatar
Ivan Gabriele committed
73

Ivan Gabriele's avatar
Ivan Gabriele committed
74
```bash
75
yarn dev
Ivan Gabriele's avatar
Ivan Gabriele committed
76 77
```

78
Le site devrait être accessible à l'adresse [http://localhost:3100](http://localhost:3100).
79 80 81 82 83

### Tester le code

#### Test unitaires

84
Durant le développement, vous pouvez soit tester manuellement :
85

Ivan Gabriele's avatar
Ivan Gabriele committed
86
```bash
87 88 89
yarn test:unit
```

90
soit faire tourner les tests unitaires en continu :
91 92 93

```bash
yarn test:watch
Ivan Gabriele's avatar
Ivan Gabriele committed
94 95
```

96 97
#### Analyse statique

98
Vous pouvez exécuter l'analyse statique du code en exécutant :
99 100 101 102 103 104 105

```bash
yarn test:lint
```

#### Tests de bout en bout

106 107
Vous pouvez exécuter les tests de bout en bout du code en exécutant (votre site doit d'abord être
démarré localement) :
108 109 110 111 112

```bash
yarn test:e2e
```

113
### Problèmes connus
Ivan Gabriele's avatar
Ivan Gabriele committed
114

Ivan Gabriele's avatar
Ivan Gabriele committed
115 116
#### Docker Compose

117 118
Sous Ubuntu, si vous rencontrez l'erreur `double free or corruption (out)`, la [solution
actuelle][link-issue-1] consiste à forcer la désinstallation de la dépendance concernée :
Ivan Gabriele's avatar
Ivan Gabriele committed
119 120 121 122 123 124 125

```bash
dpkg -r --force-depends golang-docker-credential-helpers
```

#### Jest Watch

126 127 128 129
Sous Ubuntu, si vous rencontrez l'erreur
`Error: ENOSPC: System limit for number of file watchers reached`, la [solution
actuelle][link-issue-2] consiste à augmenter le nombre de watchers du système de fichiers en
exécutant :
Ivan Gabriele's avatar
Ivan Gabriele committed
130 131

```bash
132
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
Ivan Gabriele's avatar
Ivan Gabriele committed
133 134
```

135
### License
136

137
Le code source de ce dépôt est distribué sous la [licence Apache 2.0][link-license].
Ivan Gabriele's avatar
Ivan Gabriele committed
138

139
---
Ivan Gabriele's avatar
Ivan Gabriele committed
140

141 142 143 144
[img-coveralls]:
  https://img.shields.io/coveralls/github/SocialGouv/code-du-travail-backoffice?style=flat-square
[img-travis]:
  https://img.shields.io/travis/SocialGouv/code-du-travail-backoffice/dev.svg?style=flat-square
145
[link-cdtn]: https://codedutravail.num.social.gouv.fr
146
[link-coveralls]: https://coveralls.io/github/SocialGouv/code-du-travail-backoffice
147 148
[link-issue-1]:
  https://github.com/docker/docker-credential-helpers/issues/103#issuecomment-421822269
149
[link-issue-2]: https://github.com/facebook/jest/issues/3254#issuecomment-297214395
150 151
[link-license]: https://github.com/SocialGouv/code-du-travail-backoffice/blob/master/LICENSE
[link-travis]: https://travis-ci.com/SocialGouv/code-du-travail-backoffice