Coder Social home page Coder Social logo

mon-suivi-social's Introduction

Mon Suivi Social

CircleCI

Setup

Dependencies

This projects uses pnpm as a package manager. https://pnpm.io/

pnpm install

Database client is Prisma https://www.prisma.io/

Environment

Environment variables are all stored in a .env file cp .env.dist .env Ask a team developer for values

Database

copy env variables

cp .env.dist .env

## fill .env file

start postgres

pnpm db:start

generate the prisma client

pnpm prisma:generate

setup your schema

pnpm prisma:migrate

seed your database with fixtures

pnpm prisma:seed

Dev

To run the web app development server: pnpm -F web dev

Misc utility commands

Using ncu for updating dependencies : ncu -u && cd apps/web && ncu -u && cd ../cli && ncu -u && cd ../../packages/cdk && ncu -u && cd ../config && ncu -u && cd ../e2e && ncu -u && cd ../emails && ncu -u && cd ../lint && ncu -u && cd ../storybook && ncu -u && cd ../test && ncu -u && cd ../..

Testing

Les tests unitaires du projet sont définis dans les fichiers .spec.ts. Chacun de ces fichiers doit être placé à côté du fichier qu'il teste. Les tests sont exécutés grâce à l'utilitaire Jest.

Exécutez l'ensemble des tests :

pnpm test

En phase de développement, vous pouvez exécuter les tests avec un watcher qui relance les tests à chaque modification :

pnpm test -- -- --watch

mon-suivi-social's People

Contributors

tglatt avatar hugues-m avatar mlbiche avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

mon-suivi-social's Issues

Ajout de document

La modale semble ok. La fonctionnalité non (#45).

L'ajout de document est dans :

  • l'espace document de la fiche bénéficiaire
  • création/modification de synthèse d'entretien
  • création/modification d'instruction de demande d'aide

Mettre en place les headers de sécurité

cf. https://gitlab.com/incubateur-territoires/startups/monsuivisocial/monsuivisocial-app/-/issues/204

Suite à la formation beta.gouv au sujet de la cyber-sécu suivie aujourd'hui, il faut rajouter les politiques de sécurité dans les headers :

  • Content-Security-Policy
  • X-Frame-Options
  • Strict-Transport-Security
  • X-Content-Type-Options
  • Referrer Policy
    • Supprimer les rel="noopenner noreferrer" sur les liens

Une bonne partie de ces headers a déjà été implémentée. Par contre, des précisions ont été apportées sur le header Referrer Policy et son lien avec l'attribut rel="noopenner noreferrer" sur une conversation Mattermost de beta.gouv.

Configuration Sentry

L'integration Sentry n'est pour le moment pas parfaite, je ne vois pas les environnement de previews dans les issues Sentry et ne suis pas sur que les source map soient bien configurées.

Fonctionnalité de notification

Une notification doit être générée quand :

  • un nouveau document est rajouté sur une fiche bénéficiaire dont je suis référent (à la création)
  • un commentaire est rajouté sur une synthèse ou demande d'aide que j'ai créée (à la création)
  • une synthèse ou demande d'aide que j'ai créée arrive à échéance (cron)
  • une synthèse ou demande d'aide que j'ai créée arrive à fin de prise en charge (cron)

Elles sont affichées dans la page de Tableau de bord. Elles ont un état lu/non lu.

À réfléchir sur la nécessité d'utiliser une transaction ou pas.

Espace commentaire dans l'historique

L'espace commentaire existe dans chaque synthèse d'entretien et instruction de demande d'aide.

⚠ Il y a la création de la notification à prendre en compte (#71)

Type d'accompagnement - Améliorer la structure de la base de donnée

cf. https://gitlab.com/incubateur-territoires/startups/monsuivisocial/monsuivisocial-app/-/issues/79

Contexte métier

  • Il existe un certain nombre de types d'accompagnement qui sont proposés à toutes les structures. Elles peuvent choisir lesquels elles sélectionnent. Ces types d'accompagnement ont une relation many-to-many avec les structures.
  • Chaque structure peut se créer ses propres types d'accompagnement personnalisés, qui ne sont pas partagés avec les autres structures. Ces types d'accompagnement ont une relation one-to-one avec les structures.

Contexte technique

Avec Directus, la solution mise en place est :

  • Une table avec tous les types d'accompagnement. Ceux communs à toutes les structures sont marqués avec le champ default à True.
  • Une relation many-to-many laxiste entre les types d'accompagnement et les structures.

Avec la migration vers Prisma, @hugues-m a engagé un travail d'amélioration en proposant une alternative. On passe par une table ProposedFollowupType qui contient les types d'accompagnement proposés.

En parcourant cette partie avec @tglatt, on a besoin de clarifier cette partie parce que certaines relations ne sont pas claires.

Sinon, @tglatt a aussi fait une autre proposition d'organisation :

  • Les types d'accompagnement proposés à toutes les structures sont inscrits en dur dans le code de l'appli Next.
  • La table des types d'accompagnement a une relation one-to-one avec les structures.
  • À chaque fois qu'une structure sélectionne un type d'accompagnement proposé, un type d'accompagnement correspondant est inséré dans la base de donnée. Il est lié à la structure.
  • Les types d'accompagnement personnalisés seraient différentiés via la colonne ownedByStructure. Les structures pourraient modifier le nom d'un type d'accompagnement unique si elles le possèdent.

À causer... 😉

@tglatt Corrige moi si je suis à côté sur certaines idées 👍

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.