Dématérialiser et simplifier les démarches administratives
Switch branches/tags
Clone or download
gregoirenovel Merge pull request #3169 from betagouv/harmonize-purge-routes
Harmonize user champ pj purge route to gestionnaire
Latest commit ce5e6e5 Dec 15, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci circleci: print files used by the shell command Nov 14, 2018
app Harmonize user champ pj purge route to gestionnaire Dec 14, 2018
bin Remove any reference to unicorn now that we run on puma Nov 22, 2018
config Harmonize user champ pj purge route to gestionnaire Dec 14, 2018
db Add user_id and gestionnaire_id to commentaires Dec 5, 2018
lib [#2180] Batch fetch new PJ modification times Dec 8, 2018
log First Commit Aug 10, 2015
public Remove unused PDF files Nov 22, 2018
spec Fix Sentry 114, Instructeur can delete pj in private champs Dec 13, 2018
vendor/assets/stylesheets Use leaflet and freedraw from npm Oct 5, 2018
.babelrc Update webpacker (babel7) Dec 4, 2018
.editorconfig Ignore the final newline for ico, keep, pdf and svg files Sep 20, 2018
.eslintrc.js Refactor carto to share more code Oct 23, 2018
.gitignore Remove from .gitignore a line that should be in a global .gitignore Aug 30, 2018
.haml-lint.yml Bump development gems Jan 23, 2018
.postcssrc.yml Add webpacker and use it for new_design Jul 25, 2018
.prettierrc.js Add webpacker and use it for new_design Jul 25, 2018
.rspec First Commit Aug 10, 2015
.rubocop.yml Bump development gems Nov 16, 2018
.ruby-version Bump ruby to 2.5.0 Mar 2, 2018
.scss-lint.yml Add the direct_upload JS ans SCSS files Feb 15, 2018
CONTRIBUTING.md doc: add CONTRIBUTING.md Dec 10, 2018
Gemfile [#3133] Bump activestorage-openstack to fix on openstack Dec 7, 2018
Gemfile.lock [#3133] Bump activestorage-openstack to fix on openstack Dec 7, 2018
Guardfile Enable Style/WordArray Oct 3, 2018
LICENSE.agpl-3.0.txt Add license Apr 3, 2017
Procfile Force port to 3000 when running on overmind Oct 26, 2018
README.md doc: add CONTRIBUTING.md Dec 10, 2018
Rakefile Extract the deploy_ha task in a dedicated file Sep 20, 2018
config.ru Delete redis and actioncable Oct 12, 2017
package.json Update activestorage.js Dec 4, 2018
yarn.lock Update activestorage.js Dec 4, 2018

README.md

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. 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

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)

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

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 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 d’aide au support

Des tâches d’aide 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.