Dématérialiser et simplifier les démarches administratives
Find a file
2018-08-13 08:34:10 +02:00
.circleci Cache yarn packages 2018-08-01 17:18:07 +02:00
app Use delegated events instead of local handlers 2018-08-13 08:34:10 +02:00
bin bin: re-generate binstubs for bundler 2018-08-02 14:01:42 +02:00
config Logstasher: remove bugging initializer 2018-08-10 13:07:41 +02:00
db add a user satisfaction form' 2018-08-09 11:41:26 +02:00
doc Remove the mandataire_social guess 2018-03-20 16:09:00 +01:00
lib [#2179] Rake task to retroactively generated denormalized search terms for Dossiers 2018-07-27 11:11:52 +02:00
log First Commit 2015-08-10 11:05:06 +02:00
public Revert "Commit compiled assets" 2018-01-31 16:23:40 +01:00
spec [fix #2358] Checkbox: serialize in attestation by oui or no 2018-08-10 16:25:34 +02:00
vendor/assets tps.apientreprise.fr -> demarches-simplifiees.fr 2018-03-01 10:33:53 +01:00
.babelrc javascript: transpile compatible JS for all browsers we support 2018-08-06 17:50:10 +02:00
.editorconfig Add a .editorconfig file 2017-04-04 17:32:36 +02:00
.eslintrc.js specs: fix disabling jQuery animations during tests 2018-08-01 11:46:04 +02:00
.gitignore Add webpacker and use it for new_design 2018-07-25 15:14:06 +02:00
.haml-lint.yml Bump development gems 2018-01-23 16:26:56 +01:00
.postcssrc.yml Add webpacker and use it for new_design 2018-07-25 15:14:06 +02:00
.prettierrc.js Add webpacker and use it for new_design 2018-07-25 15:14:06 +02:00
.rspec First Commit 2015-08-10 11:05:06 +02:00
.rubocop.yml Add webpacker and use it for new_design 2018-07-25 15:14:06 +02:00
.ruby-version Bump ruby to 2.5.0 2018-03-02 15:42:20 +01:00
.scss-lint.yml Add the direct_upload JS ans SCSS files 2018-02-15 11:14:03 +01:00
config.ru Delete redis and actioncable 2017-10-12 07:21:02 +02:00
Gemfile Add webpacker and use it for new_design 2018-07-25 15:14:06 +02:00
Gemfile.lock Bump development gems 2018-08-01 00:15:00 +02:00
Guardfile Enable the Layout/EmptyLines cop 2017-06-13 10:35:20 +02:00
LICENSE.agpl-3.0.txt Add license 2017-04-03 11:05:37 +02:00
package.json Add webpacker and use it for new_design 2018-07-25 15:14:06 +02:00
Procfile Add a Procfile and document usage of hivemind 2018-01-02 11:20:22 +01:00
Rakefile Bump development gems 2018-03-06 16:17:22 +01:00
README.md README: add application local URL 2018-08-08 11:11:56 +02:00
yarn.lock Add webpacker and use it for new_design 2018-07-25 15:14:06 +02:00

demarches-simplifiees.fr

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.

Dépendances

Tous environnements

  • postgresql

Développement

Tests

Initialisation de l'environnement de développement

Afin d'initialiser l'environnement de développement, exécutez la commande suivante :

bundle install
yarn install

Bouchonnage de lauthentification

Créer les fichiers de configuration avec les valeurs par défaut :

cp config/france_connect.example.yml config/france_connect.yml
cp config/github_secrets.example.yml config/github_secrets.yml

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'exécuter les commandes suivantes :

# Create and initialize the database
bin/rails db:create db:schema:load db:seed

# Migrate the development database and the test database
bin/rails db:migrate

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

Lancement de l'application

overmind start

L'application tourne à l'adresse http://localhost:3000. Un utilisateur de test est disponible, avec les identifiants test@exemple.fr/testpassword.

Programmation des jobs

AutoArchiveProcedureJob.set(cron: "* * * * *").perform_later
WeeklyOverviewJob.set(cron: "0 8 * * 0").perform_later
AutoReceiveDossiersForProcedureJob.set(cron: "* * * * *").perform_later(procedure_declaratoire_id, 'en_instruction')
FindDubiousProceduresJob.set(cron: "0 0 * * *").perform_later
Administrateurs::ActivateBeforeExpirationJob.set(cron: "0 8 * * *").perform_later

Exécution des tests (RSpec)

Pour exécuter les tests de l'application, plusieurs possibilités :

  • Lancer tous les tests

      bin/rake spec
      bin/rspec
    
  • 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
    
  • 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
    

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/
  • Linter les fichiers JavaScript : yarn lint:js (yarn lint:js --fix)
  • AccessLint tourne automatiquement sur les PRs

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
bundle binstub unicorn --force
bin/rake rails:update:bin

Tâches Super Admin

  • ajouter un compte super admin : bin/rake admin:create_admin[email-du-compte-github@exemple.com]

  • lister les comptes super admin : bin/rake admin:list

  • supprimer un compte super admin : bin/rake admin:delete_admin[email-du-compte-github@exemple.com]

Tâches daide au support

Des tâches daide au support sont prévues dans le namespace support. Pour les lister: bin/rake -D support:.

Compatibilité navigateurs

L'application supporte les navigateurs récents : Firefox, Chrome, Safari, Edge et Internet Explorer 11 (voir config/browser.rb).

La compatibilité est testée par Browserstack.

Performance

View performance data on Skylight

Nous utilisons Skylight pour suivre les performances de notre application.