.circleci | ||
app | ||
bin | ||
config | ||
db | ||
doc | ||
lib | ||
log | ||
public | ||
spec | ||
vendor/assets | ||
.editorconfig | ||
.gitignore | ||
.haml-lint.yml | ||
.rspec | ||
.rubocop.yml | ||
.ruby-version | ||
.scss-lint.yml | ||
config.ru | ||
Gemfile | ||
Gemfile.lock | ||
Guardfile | ||
LICENSE.agpl-3.0.txt | ||
Procfile | ||
Rakefile | ||
README.md |
TPS - Téléprocédures Simplifiées
Context
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.
Dépendances
Tous environnements
- postgresql
Développement
- Mailcatcher :
gem install mailcatcher
- Hivemind :
- Mac :
brew install hivemind
- Linux : voir https://github.com/DarthSim/hivemind#installation
- Mac :
Tests
- Chrome
- chromedriver :
- Mac :
brew install chromedriver
- Linux : voir https://sites.google.com/a/chromium.org/chromedriver/downloads
- Mac :
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
Les informations nécessaire à l'initialisation de la base doivent être pré-configurées à la main grâce à la procédure suivante :
su - postgres
psql
> create user tps_development with password 'tps_development' superuser;
> create user tps_test with password 'tps_test' superuser;
> \q
Afin de générer la BDD de l'application, il est nécessaire d'éxécuter les commandes suivantes :
# 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
Bouchonnage de l’authentification
Créer le fichier config/france_connect.yml
avec le contenu
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
client_id: ''
client_secret: ''
Note : les valeurs pour ces deux paramètres sont renseignées dans le Keepass
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)
Lancement de l'application
hivemind
Programmation des jobs
AutoArchiveProcedureJob.set(cron: "* * * * *").perform_later
WeeklyOverviewJob.set(cron: "0 8 * * 0").perform_later
AutoReceiveDossiersForProcedureJob.set(cron: "* * * * *").perform_later(procedure_declaratoire_id, "received")
FindDubiousProceduresJob.set(cron: "0 0 * * *").perform_later
Exécution des tests (RSpec)
Pour exécuter les tests de l'application, plusieurs possibilités :
-
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
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/
Déploiement
- Tout nouveau commit ajouté à la branche
dev
est automatiquement déployé en intégration - Tout nouveau commit ajouté à la branche
master
est automatiquement déployé en production
Régénérer les binstubs
bundle binstub railties --force
rake rails:update:bin
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]