Dématérialiser et simplifier les démarches administratives
Find a file
gregoirenovel 26837436dd
Merge pull request #3127 from pengfeidong/fix_2813_not_clone_lien_notice_in_procedure
[fix #2813] set lien_notice nil when clone a procedure
2018-12-06 21:32:46 +01:00
.circleci circleci: print files used by the shell command 2018-11-14 14:40:55 +01:00
app [fix #2813] set lien_notice nil when clone a procedure 2018-12-06 21:28:08 +01:00
bin Remove any reference to unicorn now that we run on puma 2018-11-22 01:56:29 +01:00
config DossierController: user can destroy pjs 2018-12-06 10:45:10 +01:00
db Add user_id and gestionnaire_id to commentaires 2018-12-05 11:25:18 +01:00
lib [#2180] Transfer missing files from old to new pj storage 2018-12-05 16:27:36 +01:00
log First Commit 2015-08-10 11:05:06 +02:00
public Remove unused PDF files 2018-11-22 01:43:07 +01:00
spec [fix #2813] set lien_notice nil when clone a procedure 2018-12-06 21:28:08 +01:00
vendor/assets/stylesheets Use leaflet and freedraw from npm 2018-10-05 09:55:41 +02:00
.babelrc Update webpacker (babel7) 2018-12-04 11:37:00 +01: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 sass-rails → saasc-rails 2018-12-04 15:54:49 +01:00
Gemfile.lock sass-rails → saasc-rails 2018-12-04 15:54:49 +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 Update activestorage.js 2018-12-04 11:37:00 +01: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 Remove any reference to unicorn now that we run on puma 2018-11-22 01:56:29 +01:00
yarn.lock Update activestorage.js 2018-12-04 11:37:00 +01: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
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.