Code-for-Senegal / vie-publique.sn

Plateforme citoyenne pour la démocratie et la transparence au Sénégal www.vie-publique.sn
GNU General Public License v3.0
13 stars 9 forks source link

đź› Optim: Solution backend (storage pdf et json data) #2

Open malicktech opened 1 month ago

malicktech commented 1 month ago

Contexte

Ce Projet initié dans l'urgence pour répondre à l'indisponiblité du site de la cours des comptes le 01/05/2024.

Les data (metadata sur les rapports et les pdf) on été incluses directement dans le repo git et via un flat file databse JSON et via l'exploitation du dossier public de nuxtjs.

Cela explique la taille conséquente du repo. J'ouvre cette issue pour rattraper cette dette technique.

Quelle solution de storage pensez-vous est la meilleure pour le projet ?

Quelle solution backend/database proposez-vous est la meilleure pour le projet ?

malicktech commented 1 month ago

Quelques options envisagées :

Utiliser une Plateforme Backend en tant que Service (BaaS)

Avantages :

des modules nuxtjs existent pour ces BAAS

dofbi commented 1 month ago

Hello @malicktech,

J'aime bien la solution de base du dépôt git avec une base de données JSON flat file. Pourquoi ne pas conserver cette solution, mais :

Ce pourrait être une solution provisoire 👍🏾

Contexte

Ce Projet initié dans l'urgence pour répondre à l'indisponiblité du site de la cours des comptes le 01/05/2024.

Les data (metadata sur les rapports et les pdf) on été incluses directement dans le repo git et via un flat file databse JSON et via l'exploitation du dossier public de nuxtjs.

Cela explique la taille conséquente du repo. J'ouvre cette issue pour rattraper cette dette technique.

Quelle solution de storage pensez-vous est la meilleure pour le projet ?

Quelle solution backend/database proposez-vous est la meilleure pour le projet ?

malicktech commented 1 month ago

hello @dofbi

JSON DATA

j'aime bien l'approche JSON flat file aussi elle me semble de loin la plus flexible. Je ne connaissais pas les Git-Based headless CMS comme Decap CMS (Netifly), j'ai en découvert un autre aussi Nuxt Studio

Je suis entrain de les Ă©tudier.

Vous utiliser déja Decap CMS sur un des projets Sénégal-ouvert ou Code-for-Senegal ?

j'aimerai aussi qu'on tienne ne compte la gestion de contenu de type bloc de texte, comme des articles news ou le journal officiel comme proposé ici #8 , est que l'approche flatfile json convient pour le stockage de ce type de contenu ?

il faudra tenir en compte aussi la possibilité que le grand public puisse contribuer et nous transmettre directement des données depuis la plateforme. Il nous faudrait dans l'idéal un workflow qui permet de valider/enchérir ces données envoyées et les intégrer directement dans repo data.

PDF FILE

Et quelle solution penses tu est la bonne solution pour le stockage des fichiers pdf des rapports ?

malicktech commented 1 month ago

Google drive pour les fichiers PDF (rapports, journal officiels etc)

Utilisation de Google Drive avec liens de visualisation pour stocker les PDF, au lieu du dossier public de Nuxt.

Avantages :

  1. Allègement du repo Git : Les PDF ne sont plus stockés dans le projet, réduisant significativement la taille du dépôt.
  2. Réduction du bundle final : L'application Nuxt sera plus légère, potentiellement améliorant les performances.
  3. Facilité de mise à jour : Les PDF peuvent être mis à jour sur Google Drive sans nécessiter de redéploiement de l'application.
  4. Scalabilité : Peut gérer facilement des centaines ou des milliers de documents sans impacter le projet Nuxt.
  5. Prévisualisation intégrée : Les utilisateurs peuvent visualiser les PDF directement dans le navigateur via la visionneuse Google Drive.
  6. Gestion des accès : Possibilité de contrôler l'accès aux documents via les paramètres de partage de Google Drive si nécessaire.

Inconvénients :

  1. Gestion manuelle : Nécessite de gérer manuellement les liens des documents dans le code ou une base de données.
  2. Temps de chargement : Peut être légèrement plus lent que le chargement depuis le serveur Nuxt, selon la vitesse de connexion.
  3. Limitation de personnalisation : Moins de contrĂ´le sur l'interface de visualisation des PDF.
  4. pas d'analytics sur les consultations et téléchargement de fichiers

Implémentation :

Cette solution offre un bon équilibre entre la gestion facile d'un grand nombre de documents et la légèreté du projet Nuxt, tout en fournissant une expérience utilisateur satisfaisante pour la visualisation des PDF.

malicktech commented 2 weeks ago

@joedioufy propose filamentphp

https://filamentphp.com

qui selon lui RĂ©pond parfaitement au besoin pour un backend et est facilement deployable

malicktech commented 2 weeks ago

@Ceerno propose https://baserow.io, Un backend opensource no code

malicktech commented 2 weeks ago

En résumé nous avons donc dans la liste :

la solution devra ĂŞtre open source

la solution devra proposer

dans l'idéal une solution performante et en no code

Ceerno commented 2 weeks ago

@Ceerno propose https://baserow.io, Un backend opensource no code

J'ai testé Baserow et c'est pas mal comme solution no-code avec un module de génération de la documentation de l'API.