Dématérialiser et simplifier les démarches administratives
Find a file
Pierre de La Morinerie ac9a87f27b config: fix email assets not having the full URL domain prepended
When sending emails, the mailer doesn't have access to the request
host. It needs to infer it by itself.

For this we need two settings:

- action_mailer.default_url_options, to generate urls to routes
- action_mailer.asset_host, to generate full urls to assets

Only the first one of these settings was set in production.

Fix #2518
2018-11-21 12:30:00 +01:00
.circleci circleci: print files used by the shell command 2018-11-14 14:40:55 +01:00
app mailers: use notification layout for 'new answer' email 2018-11-20 14:46:31 +01:00
bin Use letter opener 2018-10-04 18:21:43 +02:00
config config: fix email assets not having the full URL domain prepended 2018-11-21 12:30:00 +01:00
db Add migrated flag to module_api_cartos 2018-11-20 10:53:14 +01:00
lib Task to migrate carto to champ carte 2018-11-20 10:53:14 +01:00
log First Commit 2015-08-10 11:05:06 +02:00
public [fix #2952] page erreur 500 2018-11-15 18:13:32 +01:00
spec mailers: fix dossier mailer spec 2018-11-20 17:45:50 +01:00
vendor/assets/stylesheets Use leaflet and freedraw from npm 2018-10-05 09:55:41 +02:00
.babelrc Update the minimum browsers versions 2018-08-21 18:21:14 +02:00
.editorconfig Ignore the final newline for ico, keep, pdf and svg files 2018-09-20 16:23:09 +02:00
.eslintrc.js Refactor carto to share more code 2018-10-23 09:35:25 +02:00
.gitignore Remove from .gitignore a line that should be in a global .gitignore 2018-08-30 13:16:14 +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 Bump development gems 2018-11-16 12:05:22 +01: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 Bump warden and remove its dependency on the master branch 2018-11-16 11:48:36 +01:00
Gemfile.lock Bump test gems 2018-11-16 12:05:22 +01:00
Guardfile Enable Style/WordArray 2018-10-03 12:03:21 +02:00
LICENSE.agpl-3.0.txt Add license 2017-04-03 11:05:37 +02:00
package.json Run eslint on old javascript 2018-10-05 09:55:41 +02:00
Procfile Force port to 3000 when running on overmind 2018-10-26 11:05:04 +02:00
Rakefile Extract the deploy_ha task in a dedicated file 2018-09-20 11:20:23 +02:00
README.md README: document letter_opener usage 2018-10-18 15:06:18 +02:00
yarn.lock Use leaflet and freedraw from npm 2018-10-05 09:55:41 +02:00

demarches-simplifiees.fr

Contexte

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.

Dépendances

Tous environnements

  • postgresql

Développement

Tests

Création des rôles 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

Initialisation de l'environnement de développement

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

bin/setup

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, Dossier.states.fetch(:en_instruction))
FindDubiousProceduresJob.set(cron: "0 0 * * *").perform_later
Administrateurs::ActivateBeforeExpirationJob.set(cron: "0 8 * * *").perform_later
WarnExpiringDossiersJob.set(cron: "0 0 1 * *").perform_later

Voir les emails envoyés en local

http://localhost:3000/letter_opener

Mise à jour de l'application

Pour mettre à jour votre environnement de développement, installer les nouvelles dépendances et faire jouer les migrations, exécutez :

bin/update

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
    

Ajout de taches à exécuter au déploiement

    rails generate after_party:task task_name

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

Le projet utilise plusieurs linters pour vérifier la lisibilité et la qualité code.

  • Faire tourner tous les linters : bin/rake lint
  • 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.