Giter Site home page Giter Site logo

deploiement.consultation's Introduction

Build Status

Plateforme de consultation

La plateforme de consultation permet aux administrations françaises de déployer des outils de consultations en ligne.

Ces instructions ont pour objectif de permettre à quiconque de déployer le projet sur tout type d'environnement.

Les APIs ont été conçues à l'aide de Swagger (http://swagger.io/).

Architecture

APIs

Spécifications de l'API Editeur et de l'API PLateforme: api.Specs

technologies et modules utilisés

Développement

Dépendances

Variables d'environnement

Il est possible d'utiliser directement le fichier env.docker

cp env.docker .env
ln -sf ../.env node_api_server/

On peut aussi partir du fichier env.template

cp env.template .env

Puis éditer les informations :

SENDGRIDUSER=sendgridusername
SENDGRIDPASS=sendgridpassword
SENDGRIDAPIKEY=sendgridapikey
URLPLATFORM=l'url de votre plateforme (http://consultation.local par exemple)
DOMAIN=votre domain, consultation.local par exemple
MONGOUSER= 
MONGOPASSWD=
MONGOHOST=mongo

Commandes

Il faut tout d'abord lancer les services :

docker-compose up

Ensuite, au 1er lancement, ajouter les outils de consultation par défaut :

/usr/bin/mongorestore --gzip --archive=./playbook-ansible/v2/file/consultation-tools.mongodump.gz

Le site est ensuite disponible, par défaut sur localhost:80

Base de données

Il faut créer et peupler manuellement une base de données "db_deploy" contenant une collection "tools" contenant les informations des outils de la plateforme (voir schéma dans /models/tools.js). Pour le développement, le champs apikey des outils peut rester vide.

Les collections consultation et temporary_consultation sont créées par l'application.

Modifier les noms de domaine mail autorisés sur la plateforme

Pour ajouter des domaines mail dans la liste des domaines autorisés sur le formulaire de la plateforme, il suffit d'ajouter le nom de domaine comme ci dessous à la fin de la ligne du fichier domain_consultation.csv présent à la racine du projet, il n'y a pas besoin de redémarrer l'application pour que la modification soit effective.

email1.com,email2.com,email3.com,votrenomdedomaine.fr

Déploiement

Le déploiement de l'application est automatisé. Voir les scripts Ansible et le README dans le répertoire playbook-ansible/v2/

tests

npm test

Propositions de tests :

  • test "end to end" création consultation et confirmation. Nécessite mock API éditeurs (voir api.spec)

License

This project is licensed under the MIT License - see the LICENSE.md file for details

deploiement.consultation's People

Contributors

sdelafond avatar consultationgouv avatar webgardener avatar skeith918 avatar arnauddechampsavin avatar

Stargazers

 avatar  avatar

Watchers

James Cloos avatar  avatar a.dechampsavin avatar  avatar

deploiement.consultation's Issues

Assembl server-side error

Lors du click sur le lien de validation reçu par email, on reçoit l'erreur suivante :

(psycopg2.IntegrityError) null value in column "topic" violates not-null constraint DETAIL: Failing row contains (102, null, null, 2018-07-05 14:52:47.7557, null, null, null, null, t, null, null, null, null, t, 118, null). [SQL: 'INSERT INTO public.discussion (topic, slug, creation_date, objectives, instigator, introduction, "introductionDetails", subscribe_to_notifications_on_signup, web_analytics_piwik_id_site, help_url, logo_url, homepage_url, show_help_in_debate_section, preferences_id, creator_id) VALUES (%(topic)s, %(slug)s, %(creation_date)s, %(objectives)s, %(instigator)s, %(introduction)s, %(introductionDetails)s, %(subscribe_to_notifications_on_signup)s, %(web_analytics_piwik_id_site)s, %(help_url)s, %(logo_url)s, %(homepage_url)s, %(show_help_in_debate_section)s, %(preferences_id)s, %(creator_id)s) RETURNING public.discussion.id'] [parameters: {'instigator': None, 'logo_url': None, 'show_help_in_debate_section': True, 'introduction': None, 'objectives': None, 'homepage_url': None, 'web_analytics_piwik_id_site': None, 'topic': None, 'preferences_id': 118, 'creator_id': None, 'help_url': None, 'creation_date': datetime.datetime(2018, 7, 5, 14, 52, 47, 755700), 'slug': None, 'subscribe_to_notifications_on_signup': True, 'introductionDetails': None}] 

Message d'erreur pour Bug outil CapCo

Quand le formulaire de l'outil CapCo est envoyé :

  • Prévenir ETALAB de la tentative (ex: mail auto)
  • Prévenir l'utilisateur que sa demande est en cours de traitement (ex: mail auto), que l'équipe d'ETALAB va le revenir vers lui avec l'accès à la plateforme, et fournir le mail de contact si besoin.

Wording messages d'erreur CapCo&Bluenove

l'agent qui génère un formulaire pour CapCo & Bluenove reçoit ça :

" erreur : ce service est temporairement inaccessible chez l'hébergeur.
Nous avons a été informé de votre requête et nous reviendrons vers vous dans les 24h.
Vous pouvez nous contacter sur [email protected]
L'équipe ETALAB"

Message d'erreur pour outil Bluenove

Quand le formulaire de l'outi BlueNove est envoyé :

  • Prévenir ETALAB de la tentative (ex: mail auto)
  • Prévenir l'utilisateur que sa demande est en cours de traitement (ex: mail auto), que l'équipe d'ETALAB va le revenir vers lui avec l'accès à la plateforme, et fournir le mail de contact si besoin.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.