demarches-normaliennes/README.md

167 lines
4.7 KiB
Markdown
Raw Normal View History

2018-03-30 07:42:09 +02:00
# demarches-simplifiees.fr
2015-10-13 15:53:07 +02:00
## Context
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 procédures administratives.
2015-10-13 15:53:07 +02:00
## Dépendances
### Tous environnements
- postgresql
2017-05-04 12:25:08 +02:00
### Développement
- Mailcatcher : `gem install mailcatcher`
2018-02-12 14:24:11 +01:00
- Overmind :
* Mac : `brew install overmind`
* Linux : voir https://github.com/DarthSim/overmind#installation
### Tests
- 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
2015-10-13 15:53:07 +02:00
## Initialisation de l'environnement de développement
2018-06-11 15:33:46 +02:00
Afin d'initialiser l'environnement de développement, exécutez la commande suivante :
2015-10-13 15:53:07 +02:00
bundle install
## Création de la base de données
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
> create user tps_development with password 'tps_development' superuser;
> 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-06-11 15:33:46 +02:00
Afin de générer la BDD de l'application, il est nécessaire d'exécuter les commandes suivantes :
2015-10-13 15:53:07 +02:00
2017-08-21 14:39:41 +02:00
# Create and load the schema for both databases
bin/rails db:create db:schema:load
2017-08-21 14:39:41 +02:00
# Migrate the development database and the test database
bin/rails db:migrate
2015-10-13 15:53:07 +02:00
2017-12-22 17:11:28 +01:00
## Bouchonnage de lauthentification
Créer le fichier `config/france_connect.yml` avec le contenu
```yaml
particulier_identifier: ''
particulier_secret: ''
particulier_redirect_uri: ''
particulier_authorization_endpoint: ''
particulier_token_endpoint: ''
particulier_userinfo_endpoint: ''
particulier_logout_endpoint: ''
```
Créer le fichier `config/github_secrets.yml` avec le contenu
```yaml
client_id: ''
client_secret: ''
```
2015-10-13 15:53:07 +02:00
## Connexion a Pipedrive
Dans le fichier `config/intializers/token.rb`, ajouter
`PIPEDRIVE_TOKEN = 'token'`
*Note : les valeurs pour ces paramètres sont renseignées dans le Keepass*
## Création d'un compte de test initial en local
bin/rake create_test_account -- --email=EMAIL --password=PASSWORD
2017-05-04 12:25:26 +02:00
## Lancement de l'application
2018-02-13 11:12:15 +01:00
overmind s
2017-05-04 12:25:26 +02:00
2017-10-03 16:19:25 +02: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
AutoReceiveDossiersForProcedureJob.set(cron: "* * * * *").perform_later(procedure_declaratoire_id, 'en_instruction')
2018-01-09 15:51:07 +01:00
FindDubiousProceduresJob.set(cron: "0 0 * * *").perform_later
Administrateurs::ActivateBeforeExpirationJob.set(cron: "0 8 * * *").perform_later
2017-05-04 12:25:26 +02:00
2017-04-04 13:48:57 +02: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
bin/rake spec
bin/rspec
2015-10-13 15:53:07 +02:00
- Lancer un test en particulier
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
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-02-12 14:24:11 +01:00
## Debug
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
## Linting
- Faire tourner RuboCop : `bundle exec rubocop`
- Faire tourner Brakeman : `bundle exec brakeman`
- Linter les fichiers HAML : `bundle exec haml-lint app/views/`
- Linter les fichiers SCSS : `bundle exec scss-lint app/assets/stylesheets/`
- [AccessLint](http://accesslint.com/) tourne automatiquement sur les PRs
2015-10-13 15:53:07 +02:00
2017-08-21 14:44:29 +02:00
## Déploiement
- 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
2017-04-04 13:52:17 +02:00
## Régénérer les binstubs
2015-10-13 15:53:07 +02:00
bundle binstub railties --force
bin/rake rails:update:bin
2018-01-03 11:45:19 +01:00
## Tâches Super Admin
- ajouter un compte super admin :
`bin/rake admin:create_admin[email-du-compte-github@exemple.com]`
2018-01-03 11:45:19 +01:00
- lister les comptes super admin :
`bin/rake admin:list`
2018-01-03 11:45:19 +01:00
2018-01-16 17:59:01 +01:00
- supprimer un compte super admin :
`bin/rake admin:delete_admin[email-du-compte-github@exemple.com]`
## Compatibilité navigateurs
L'application supporte les navigateurs récents Firefox, Chrome, Internet Explorer (Edge, 11).
La compatibilité est testée par Browserstack.
[<img src="app/assets/images/browserstack-logo-600x315.png" width="300">](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.