Dématérialiser et simplifier les démarches administratives
Find a file
Pierre de La Morinerie 71c4589257
Merge pull request #3935 from betagouv/fix-pj-migration-changing-timestamps
Corrige la tâche de migration des PJ
2019-06-13 14:25:33 +02:00
.circleci specs: precompile Webpack assets before running the specs suite 2019-06-03 12:50:59 +02:00
app tasks: prevent the PJ migrations task updating from touching dossiers 2019-06-12 19:07:45 +02:00
bin bin: run after_party tasks on bin/update 2019-03-28 12:29:58 +01:00
config [fix #3710] date with letter 2019-06-12 17:48:12 +02:00
db Add Follow.unfollowed_at 2019-06-12 17:33:53 +02:00
lib tasks: repair updated_at of dossiers wrongly touched by PJ migration 2019-06-06 11:11:29 +02:00
log First Commit 2015-08-10 11:05:06 +02:00
public Add rel=noopener to links with target=_blank 2019-03-05 18:25:26 +01:00
spec tasks: prevent the PJ migrations task updating from touching dossiers 2019-06-12 19:07:45 +02:00
vendor/assets/stylesheets Use leaflet and freedraw from npm 2018-10-05 09:55:41 +02:00
.browserslistrc Update webpacker and replace vue with react 2019-04-03 14:38:07 +02:00
.editorconfig Ignore the final newline for ico, keep, pdf and svg files 2018-09-20 16:23:09 +02:00
.eslintrc.js Update webpacker and replace vue with react 2019-04-03 14:38:07 +02:00
.gitignore Ignore Rubymine project files 2019-04-08 16:20:43 +02:00
.haml-lint.yml Bump development gems 2018-01-23 16:26:56 +01: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 Enforce Timezone rule in Rubocop 2019-02-18 16:19:42 +01:00
.ruby-version Ruby 2.6.1 2019-02-25 17:16:50 +01:00
.scss-lint.yml Add the direct_upload JS ans SCSS files 2018-02-15 11:14:03 +01:00
babel.config.js Update webpacker and replace vue with react 2019-04-03 14:38:07 +02:00
config.ru Delete redis and actioncable 2017-10-12 07:21:02 +02:00
CONTRIBUTING.md app: rename references to betagouv/tps 2019-03-26 11:10:30 +01:00
Gemfile Fix irb_context in rails console 2019-05-20 10:33:43 +02:00
Gemfile.lock build(deps): bump chartkick from 3.0.2 to 3.2.0 2019-06-12 14:44:56 +00:00
Guardfile Remove a useless comment 2019-01-05 11:54:42 +01:00
LICENSE.txt Rename license file 2019-04-02 17:20:47 +02:00
package.json Upgrade js dependencies 2019-05-15 14:50:38 +02:00
postcss.config.js Update webpacker and replace vue with react 2019-04-03 14:38:07 +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 Fix job enqueue instruction in README 2019-05-28 12:24:44 +02:00
yarn.lock Bump fstream from 1.0.11 to 1.0.12 2019-05-31 10:15:16 +00: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.

Comment contribuer ?

demarches-simplifiees.fr est un logiciel libre sous licence AGPL.

Vous souhaitez y apporter des changements ou des améliorations ? Lisez notre guide de contribution.

Installation pour le développement

Dépendances techniques

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.

Utilisateurs de test

En local, un utilisateur de test est créé automatiquement, avec les identifiants test@exemple.fr/this is a very complicated password !. (voir db/seeds.rb)

Programmation des jobs

AutoArchiveProcedureJob.set(cron: "* * * * *").perform_later
WeeklyOverviewJob.set(cron: "0 7 * * 1").perform_later
AutoReceiveDossiersForProcedureJob.set(cron: "* * * * *").perform_later(procedure_declaratoire_id, Dossier.states.fetch(:en_instruction))
SendinblueUpdateAdministrateursJob.set(cron: "0 10 * * *").perform_later
FindDubiousProceduresJob.set(cron: "0 0 * * *").perform_later
Administrateurs::ActivateBeforeExpirationJob.set(cron: "0 8 * * *").perform_later
WarnExpiringDossiersJob.set(cron: "0 0 1 * *").perform_later
GestionnaireEmailNotificationJob.set(cron: "0 10 * * 1,2,3,4,5,6").perform_later
PurgeUnattachedBlobsJob.set(cron: "0 0 * * *").perform_later

Voir les emails envoyés en local

Ouvrez la page 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)

Les tests ont besoin de leur propre base de données et certains d'entre eux utilisent Selenium pour s'exécuter dans un navigateur. N'oubliez pas de créer la base de test et d'installer chrome et chromedriver pour exécuter tous les tests.

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é du code.

  • Faire tourner tous les linters : bin/rake lint
  • AccessLint tourne automatiquement sur les PRs

Régénérer les binstubs

bundle binstub railties --force
bin/rake rails:update:bin

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

Tâches courantes

Tâches de gestion des comptes super-admin

Des tâches de gestion des comptes super-admin sont prévues dans le namespace superadmin. Pour les lister : bin/rake -D superadmin:.

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.