2018-03-30 07:42:09 +02:00
# demarches-simplifiees.fr
2015-10-13 15:53:07 +02:00
2018-08-24 12:48:11 +02:00
## Contexte
2015-10-13 15:53:07 +02:00
2018-12-06 15:56:40 +01:00
[demarches-simplifiees.fr ](https://www.demarches-simplifiees.fr ) est un site web conçu afin de répondre au besoin urgent de l'État d'appliquer la directive sur le 100 % dématérialisation pour les démarches administratives.
2015-10-13 15:53:07 +02:00
2018-12-06 15:56:40 +01:00
## Comment contribuer ?
2017-04-04 13:48:13 +02:00
2018-12-06 15:56:40 +01:00
demarches-simplifiees.fr est un [logiciel libre ](https://fr.wikipedia.org/wiki/Logiciel_libre ) sous licence AGPL.
Vous souhaitez y apporter des changements ou des améliorations ? Lisez notre [guide de contribution ](CONTRIBUTING.md ).
## Installation pour le développement
### Dépendances techniques
#### Tous environnements
2017-04-04 13:48:13 +02:00
- postgresql
2017-05-04 12:25:08 +02:00
2018-12-06 15:56:40 +01:00
#### Développement
2017-05-04 12:25:08 +02:00
2019-02-11 16:33:08 +01:00
- rbenv : voir https://github.com/rbenv/rbenv-installer#rbenv-installer--doctor-scripts
2018-09-03 14:20:32 +02:00
- Yarn : voir https://yarnpkg.com/en/docs/install
2018-02-12 14:24:11 +01:00
- Overmind :
* Mac : `brew install overmind`
* Linux : voir https://github.com/DarthSim/overmind#installation
2017-04-04 13:48:13 +02:00
2018-12-06 15:56:40 +01:00
#### Tests
2017-04-04 13:48:13 +02:00
2018-01-04 10:46:33 +01:00
- Chrome
2018-01-16 17:58:53 +01:00
- chromedriver :
* Mac : `brew install chromedriver`
* Linux : voir https://sites.google.com/a/chromium.org/chromedriver/downloads
2017-04-04 13:48:13 +02:00
2018-12-06 15:56:40 +01:00
### Création des rôles de la base de données
2015-10-13 15:53:07 +02:00
2017-04-04 13:52:17 +02:00
Les informations nécessaire à l'initialisation de la base doivent être pré-configurées à la main grâce à la procédure suivante :
2015-10-13 15:53:07 +02:00
su - postgres
psql
2017-04-04 13:33:43 +02:00
> create user tps_development with password 'tps_development' superuser;
2017-04-04 11:43:07 +02:00
> create user tps_test with password 'tps_test' superuser;
2015-10-13 15:53:07 +02:00
> \q
2017-01-16 18:16:35 +01:00
2018-12-06 15:56:40 +01:00
### Initialisation de l'environnement de développement
2015-10-13 15:53:07 +02:00
2018-09-03 14:23:35 +02:00
Afin d'initialiser l'environnement de développement, exécutez la commande suivante :
2018-08-21 12:16:55 +02:00
2018-09-03 14:23:35 +02:00
bin/setup
2018-08-24 12:43:12 +02:00
2018-12-06 15:56:40 +01:00
### Lancement de l'application
2017-05-04 12:25:26 +02:00
2018-08-08 11:11:56 +02:00
overmind start
2017-05-04 12:25:26 +02:00
2019-02-11 17:10:36 +01:00
L'application tourne à l'adresse `http://localhost:3000` .
### Utilisateurs de test
En local, un utilisateur de test est créé automatiquement, avec les identifiants `test@exemple.fr` /`this is a very complicated password !`. (voir [db/seeds.rb ](https://github.com/betagouv/tps/blob/dev/db/seeds.rb ))
2018-06-12 13:45:16 +02:00
2018-12-06 15:56:40 +01:00
### Programmation des jobs
2017-09-26 14:58:51 +02:00
2017-10-03 16:19:25 +02:00
AutoArchiveProcedureJob.set(cron: "* * * * * ").perform_later
WeeklyOverviewJob.set(cron: "0 8 * * 0").perform_later
2018-08-28 14:10:55 +02:00
AutoReceiveDossiersForProcedureJob.set(cron: "* * * * * ").perform_later(procedure_declaratoire_id, Dossier.states.fetch(:en_instruction))
2018-01-09 15:51:07 +01:00
FindDubiousProceduresJob.set(cron: "0 0 * * *").perform_later
2018-04-09 11:39:52 +02:00
Administrateurs::ActivateBeforeExpirationJob.set(cron: "0 8 * * *").perform_later
2018-08-31 17:50:34 +02:00
WarnExpiringDossiersJob.set(cron: "0 0 1 * * ").perform_later
2017-05-04 12:25:26 +02:00
2018-12-06 15:56:40 +01:00
### Voir les emails envoyés en local
2018-10-18 15:06:18 +02:00
2018-11-27 11:20:49 +01:00
Ouvrez la page [http://localhost:3000/letter_opener ](http://localhost:3000/letter_opener ).
2018-10-18 15:06:18 +02:00
2018-12-06 15:56:40 +01:00
### Mise à jour de l'application
2018-09-03 14:33:26 +02:00
Pour mettre à jour votre environnement de développement, installer les nouvelles dépendances et faire jouer les migrations, exécutez :
bin/update
2018-12-06 15:56:40 +01:00
### Exécution des tests (RSpec)
2015-10-13 15:53:07 +02:00
2017-04-04 13:52:17 +02:00
Pour exécuter les tests de l'application, plusieurs possibilités :
2015-10-13 15:53:07 +02:00
- Lancer tous les tests
2018-06-12 12:03:59 +02:00
bin/rake spec
bin/rspec
2015-10-13 15:53:07 +02:00
- Lancer un test en particulier
2018-06-12 12:03:59 +02:00
bin/rake spec SPEC=file_path/file_name_spec.rb:line_number
bin/rspec file_path/file_name_spec.rb:line_number
2015-10-13 15:53:07 +02:00
- Lancer tous les tests d'un fichier
2018-06-12 12:03:59 +02:00
bin/rake spec SPEC=file_path/file_name_spec.rb
bin/rspec file_path/file_name_spec.rb
2015-10-13 15:53:07 +02:00
2018-12-06 15:56:40 +01:00
### Ajout de taches à exécuter au déploiement
2018-07-18 15:45:23 +02:00
rails generate after_party:task task_name
2018-12-06 15:56:40 +01:00
### Debug
2018-02-12 14:24:11 +01:00
Une fois `overmind` lancé, et un breakpoint `byebug` inséré dans le code, il faut se connecter au process `server` dans un nouveau terminal afin d'intéragir avec byebug :
overmind connect server
2018-12-06 15:56:40 +01:00
### Linting
2017-04-06 18:26:31 +02:00
2018-12-21 15:20:49 +01:00
Le projet utilise plusieurs linters pour vérifier la lisibilité et la qualité du code.
2018-08-13 14:05:16 +02:00
- Faire tourner tous les linters : `bin/rake lint`
2018-03-08 15:06:54 +01:00
- [AccessLint ](http://accesslint.com/ ) tourne automatiquement sur les PRs
2015-10-13 15:53:07 +02:00
2018-12-06 15:56:40 +01:00
### Régénérer les binstubs
bundle binstub railties --force
bin/rake rails:update:bin
2017-08-21 14:44:29 +02:00
## Déploiement
2018-02-28 17:37:44 +01:00
- Tout nouveau commit ajouté à la branche `dev` est automatiquement déployé [en intégration ](https://dev.demarches-simplifiees.fr/ )
- Tout nouveau commit ajouté à la branche `master` est automatiquement déployé [en production ](https://www.demarches-simplifiees.fr/ )
2017-08-21 14:44:29 +02:00
2018-12-06 15:56:40 +01:00
## Tâches courantes
2018-01-03 11:45:19 +01:00
2018-12-21 15:20:43 +01:00
### Tâches de gestion des comptes super-admin
2018-01-03 11:45:19 +01:00
2018-12-21 15:20:43 +01:00
Des tâches de gestion des comptes super-admin sont prévues dans le namespace `superadmin` .
Pour les lister : `bin/rake -D superadmin:` .
2018-02-26 13:37:21 +01:00
2018-12-06 15:56:40 +01:00
### Tâches d’ aide au support
2018-06-13 16:18:23 +02:00
Des tâches d’ aide au support sont prévues dans le namespace `support` .
2018-08-24 12:48:11 +02:00
Pour les lister : `bin/rake -D support:` .
2018-06-13 16:18:23 +02:00
2018-02-26 13:37:21 +01:00
## Compatibilité navigateurs
2018-08-06 15:07:04 +02:00
L'application supporte les navigateurs récents : Firefox, Chrome, Safari, Edge et Internet Explorer 11 (voir `config/browser.rb` ).
2018-02-26 13:37:21 +01:00
2018-11-27 11:21:12 +01:00
La compatibilité est testée par Browserstack.< br > [< img src = "app/assets/images/browserstack-logo-600x315.png" width = "200" > ](https://www.browserstack.com/)
2018-02-26 19:19:01 +01:00
## Performance
[![View performance data on Skylight ](https://badges.skylight.io/status/zAvWTaqO0mu1.svg )](https://oss.skylight.io/app/applications/zAvWTaqO0mu1)
Nous utilisons Skylight pour suivre les performances de notre application.