.circleci | ||
app | ||
bin | ||
config | ||
db | ||
doc | ||
lib | ||
log | ||
public | ||
spec | ||
vendor/assets | ||
.babelrc | ||
.editorconfig | ||
.eslintrc.js | ||
.gitignore | ||
.haml-lint.yml | ||
.postcssrc.yml | ||
.prettierrc.js | ||
.rspec | ||
.rubocop.yml | ||
.ruby-version | ||
.scss-lint.yml | ||
config.ru | ||
Gemfile | ||
Gemfile.lock | ||
Guardfile | ||
LICENSE.agpl-3.0.txt | ||
package.json | ||
Procfile | ||
Rakefile | ||
README.md | ||
yarn.lock |
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 procédures administratives.
Dépendances
Tous environnements
- postgresql
Développement
- Mailcatcher :
gem install mailcatcher
- Overmind :
- Mac :
brew install overmind
- Linux : voir https://github.com/DarthSim/overmind#installation
- Mac :
- Yarn : voir https://yarnpkg.com/en/docs/install
Tests
- Chrome
- chromedriver :
- Mac :
brew install chromedriver
- Linux : voir https://sites.google.com/a/chromium.org/chromedriver/downloads
- Mac :
Initialisation de l'environnement de développement
Afin d'initialiser l'environnement de développement, exécutez la commande suivante :
bundle install
yarn install
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
Bouchonnage de la configuration
Créer le fichier de configuration avec les valeurs par défaut :
cp config/env.example .env
Note : les vraies 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, Dossier.states.fetch(: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
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 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
Nous utilisons Skylight pour suivre les performances de notre application.