2017-05-04 18:19:13 +02:00
# TPS - Téléprocédures Simplifiées
2015-10-13 15:53:07 +02:00
## Context
2017-05-04 18:19:13 +02:00
Téléprocédures Simplifiées, ou TPS pour les intimes, est une plateforme 100 % web et 0 % email, conçue afin de répondre au besoin urgent de l'État d'appliquer la directive sur le 100 % démat' à l'horizon 2018 pour les procédures administratives.
2015-10-13 15:53:07 +02:00
2017-04-04 13:48:13 +02:00
## Dépendances
### Tous environnements
- postgresql
2017-05-04 12:25:08 +02:00
### Développement
- Mailcatcher : `gem install mailcatcher`
2018-01-03 11:34:13 +01:00
- Hivemind :
* Mac : `brew install hivemind`
* Linux : voir https://github.com/DarthSim/hivemind#installation
2017-04-04 13:48:13 +02:00
### Tests
- PhantomJS
2015-10-13 15:53:07 +02:00
## Initialisation de l'environnement de développement
Afin d'initialiser l'environnement de développement, éxécutez la commande suivante :
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
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
2015-10-13 15:53:07 +02:00
Afin de générer la BDD de l'application, il est nécessaire d'éxécuter les commandes suivantes :
2017-08-21 14:39:41 +02:00
# Create and load the schema for both databases
rake db:create db:schema:load
# Migrate the development database and then the test database
rake db:migrate
rake db:migrate RAILS_ENV=test
2015-10-13 15:53:07 +02:00
2017-12-22 17:11:28 +01:00
## Bouchonnage de l’ authentification
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
2018-01-03 11:30:01 +01:00
*Note : les valeurs pour ces deux paramètres sont renseignées dans le Keepass*
2017-08-21 14:38:06 +02:00
## Création des comptes initiaux
rails c
> email = "<votre email>"
> password = "<votre mot de passe>"
> Administration.create(email: email, password: password)
> Administrateur.create(email: email, password: password)
> Gestionnaire.create(email: email, password: password)
> User.create(email: email, password: password)
2017-05-04 12:25:26 +02:00
## Lancement de l'application
2017-12-31 17:10:01 +01:00
hivemind
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
2017-12-11 17:17:00 +01:00
AutoReceiveDossiersForProcedureJob.set(cron: "* * * * * ").perform_later(procedure_declaratoire_id, "received")
2018-01-09 15:51:07 +01:00
FindDubiousProceduresJob.set(cron: "0 0 * * *").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
rake spec
rspec
- Lancer un test en particulier
rake spec SPEC=file_path/file_name_spec.rb:line_number
rspec file_path/file_name_spec.rb:line_number
- Lancer tous les tests d'un fichier
rake spec SPEC=file_path/file_name_spec.rb
rspec file_path/file_name_spec.rb
2017-04-06 18:26:31 +02:00
## Linting
2017-07-20 15:01:58 +02:00
- Faire tourner RuboCop : `bundle exec rubocop -R`
2017-07-20 15:01:27 +02:00
- Faire tourner Brakeman : `bundle exec brakeman -z`
2017-04-06 18:26:31 +02:00
- Linter les fichiers HAML : `bundle exec haml-lint app/views/`
2017-05-04 12:27:39 +02:00
- Linter les fichiers SCSS : `bundle exec scss-lint app/assets/stylesheets/`
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://tps-dev.apientreprise.fr/ )
- Tout nouveau commit ajouté à la branche `master` est automatiquement déployé [en production ](https://tps.apientreprise.fr/ )
2017-04-04 13:52:17 +02:00
## Régénérer les binstubs
2015-10-13 15:53:07 +02:00
2016-02-18 15:46:11 +01:00
bundle binstub railties --force
2017-01-16 18:16:35 +01:00
rake rails:update:bin
2018-01-03 11:45:19 +01:00
## Tâches Super Admin
- ajouter un compte super admin :
`bundle exec rake admin:create_admin[email-du-compte-github@exemple.com]`
- lister les comptes super admin :
`bundle exec rake admin:list`
- supprimer un compte super admin :
`bundle exec rake admin:delete_admin[email-du-compte-github@exemple.com]`