Giter Site home page Giter Site logo

captive-studio / eva-serveur Goto Github PK

View Code? Open in Web Editor NEW

This project forked from betagouv/eva-serveur

0.0 0.0 0.0 35.5 MB

Serveur et espace d'administration pour eva

Home Page: https://eva.beta.gouv.fr/pro

License: GNU Affero General Public License v3.0

Shell 0.04% JavaScript 31.83% Ruby 55.93% CSS 1.69% HTML 4.00% Dockerfile 0.03% SCSS 6.47% Procfile 0.01%

eva-serveur's Introduction

Serveur eva

Cette application sert de serveur et d'espace d'administration pour eva

Pour voir les autres projets de eva :

Anciens dépôts que nous n'utilisons plus aujourd'hui :

Autre dépendences :

  • Base de données et assimilé
    PostgreSql Redis

  • Création de la base
    rake db:create

  • Initialisation de la base
    rake db:migrate && rake db:seed

Avant de pouvoir commencer des tests utilisateurs, il vous faut créer une campagne avec l'interface d'administration décrite ci-dessous.

  • Lancer les tests bundle exec rake spec ou guard

  • Lancer storybook en développement

Générer le fichier de description des composants :
bundle exec rake view_component_storybook:write_stories_json

Storybook

Pour démarrer storybook (votre serveur rails doit être démarré) :

npm install
npm run storybook

Pour générer des nouvelles stories :

rake view_component_storybook:write_stories_json
  • Espace d'administration accessible à l'url /admin, un compte admin est créé avec l'execution du seed. À ce jour le compte créé est [email protected] avec le mot de passe password (pour le développement seulement bien sûr ;-))

  • Variables d'environnement

PROTOCOLE_SERVEUR=http
HOTE_SERVEUR=localhost:3000
URL_CLIENT=http://localhost:7700/jeu
[email protected]
METABASE_SITE_URL=http://metabase.eva.beta.gouv.fr
METABASE_SECRET_KEY=<SECRET_METABASE>
INCLUSION_CONNECT_CLIENT_ID=local_inclusion_connect
INCLUSION_CONNECT_CLIENT_SECRET=<SECRET_IC>
INCLUSION_CONNECT_BASE_URL=https://recette.connect.inclusion.beta.gouv.fr

Sans ces variables, le projet ne se lancera pas correctement en local. <SECRET_METABASE> se trouve sur metabase https://metabase.eva.beta.gouv.fr/admin/settings/embedding-in-other-applications/standalone Demander le <SECRET_IC> à l'équipe

API

L'api est accessible au point /api

Crée une évaluation

Requête

POST /api/evaluations

{
  "nom": "Roger",
  "code_campagne": "Mon code de campagne",
  "terminee_le": "2021-10-06T16:13:24+0000"
}

Réponse

{
  "anonymise_le": null,
  "campagne_id": "09209dea-0fa7-40ea-aba8-cbadc1957f4d",
  "created_at": "2021-10-08T09:27:09.754+02:00",
  "email": null,
  "id": "51b4b749-7ac2-40b4-b8f8-b8c9e5663c69",
  "nom": "Roger",
  "telephone": null,
  "terminee_le": "2021-10-03T22:15:24.000+02:00",
  "updated_at": "2021-10-08T09:27:09.754+02:00"
}

Mettre à jour une évaluation

Requête

PATCH /api/evaluations/:id

{
  "email":"[email protected]",
  "telephone":"06",
  "terminee_le":"2021-10-03T22:15:24+02:00"
  "age":"23",
  "genre":"Femme",
  "dernier_niveau_etude":"Niveau Collège",
  "derniere_situation":"Alternance"
}

Réponse

{
  "anonymise_le": "2021-10-06T17:04:49.780+02:00",
  "campagne_id": "09209dea-0fa7-40ea-aba8-cbadc1957f4d",
  "created_at": "2021-10-03T20:51:18.490+02:00",
  "email": "[email protected]",
  "id": "569cdc17-554d-4227-acfe-1d5d3a4afdbc",
  "nom": "Roger",
  "telephone": "06",
  "terminee_le": "2021-10-06T16:13:24.000+02:00",
  "updated_at": "2021-10-08T09:16:38.943+02:00"
  "age":"23",
  "genre":"Femme",
  "dernier_niveau_etude":"Niveau Collège",
  "derniere_situation":"Alternance"
}

Annonce la fin de l'évaluation

POST /api/evaluations/:id/fin

Réponse

{
  "competences_fortes": [
    {
      "nom_technique": "id_competence",
      "nom": "nom_competence",
      "description": "Description de la compétence.",
      "picto": "http://host/assets/competence.svg"
    }
  ]
}

Récupére des informations sur un questionnaire

Requête

GET /api/questionnaires/:id

Réponse

[
  {
    "id": "d5e892ff-6747-4e21-ad60-2f3255ffb314",
    "type": "qcm",
    "intitule": "Ma question",
    "description": "Ma description",
    "choix": []
  }
]

Crée un événement

POST /api/evenements

Contenu:

{
  "date": 1551111089238,
  "nom": "ouvertureContenant",
  "session_id": "baf2c86c-6c34-11e9-901c-c34362f7423a",
  "situation": "inventaire",
  "donnees": {"idContenu": "6"},
  "evaluation_id": "1",
}

Crée une collection d'événements

POST /api/evaluations/:evaluation_id/collections_evenements

Contenu:

{
  "evenements": [
    {
      "date":1632317532817,
      "session_id":"54af3010-315c-4755-b268-08c4bf520f64",
      "situation":"bienvenue",
      "nom":"reponse",
      "donnees": {
        "question":"f728be21-6f19-4901-ba07-0ac26ad702d7",
        "reponse":"5f5ce41c-a2f0-4512-b266-39a4945dbeba"
      },
      "evaluation_id":"b80e3b14-737e-4712-a2ff-3f22f5bdcd4d",
      "position": 2
    },
    // ...
  ]
}

Récupére des informations sur une campagne

Requête

GET /api/campagnes/:code_campagne

Réponse

{
  "libelle": "Ma campagne",
  "code": "FRT61000",
  "questions:": [],
  "situations": [
    {
      "id": "569cdc17-554d-4227-acfe-1d5d3a4afdbc",
      "libelle": "Tri",
      "nom_technique": "tri",
      "questionnaire_id": "f958d99d-4adb-455b-8d85-c7e89ab7025c",
      "questions:": [
        {
          "id": "d5e892ff-6747-4e21-ad60-2f3255ffb314",
          "type": "qcm",
          "intitule": "Ma question",
          "nom_technique": "ma-question",
          "illustration": "https://stockagepreprod.eva.beta.gouv.fr/7yii4m9m7t7bjvl42z7qmofuie7w?filename=bienvenue_background.jpg",
          "description": "Ma description",
          "choix": []
        }
      ],
      "questionnaire_entrainement_id": "f958d99d-4adb-455b-8d85-c7e89ab7025c",
      "questions_entrainement": [
        {
          "id": "d5e892ff-6747-4e21-ad60-2f3255ffb314",
          "type": "qcm",
          "intitule": "Ma question",
          "nom_technique": "ma-question",
          "illustration": "https://stockagepreprod.eva.beta.gouv.fr/7yii4m9m7t7bjvl42z7qmofuie7w?filename=bienvenue_background.jpg",
          "description": "Ma description",
          "choix": []
        }
      ]
    }
  ]
}

Géolocalisation

Nous utilisons plusieurs services de géolocalisation :

Le premier service est utilisé pour rechercher la position GPS du code postal d'une structure, le second service pour valider les codes postaux et rechercher leurs informations au moment de la recherche de structure par code postal. Les deux derniers services sont utilisés pour retrouver la region.

Structure des données

Un graphique de la structure de la base peut être généré afin de mieux comprendre les intérractions entre les différents modèles.

Pour générer ce graphique:

bundle exec rake erd

Licence

Ce logiciel et son code source sont distribués sous licence AGPL.

eva-serveur's People

Contributors

cprodhomme avatar dependabot[bot] avatar egaillot avatar etiennecharignon avatar francois2metz avatar guitguitou avatar hadrienblanc avatar laurenehoutin avatar marinesourin avatar marouria avatar mdomine avatar morissetcl avatar shanser avatar

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.