{"id":20439226,"url":"https://github.com/vendenix/pile_docker_graphql_d3.js_mongodb","last_synced_at":"2025-03-05T07:25:31.425Z","repository":{"id":213772530,"uuid":"721956321","full_name":"VendenIX/Pile_Docker_GraphQL_D3.js_MongoDB","owner":"VendenIX","description":"Pile de containers permettant de lancer une application de visualisation des données de ventes, étudiées pendant la première partie ETL.  La pile de containers comprend\\ :      une base de données MongoDB contenant les données de ventes,     un serveur Apache,     un container GraphQL contenant le code du serveur et les résolveurs.","archived":false,"fork":false,"pushed_at":"2024-01-26T10:32:49.000Z","size":13776,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-15T20:19:30.298Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"CSS","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/VendenIX.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-11-22T06:07:09.000Z","updated_at":"2024-09-15T22:07:14.000Z","dependencies_parsed_at":"2024-01-26T12:14:28.518Z","dependency_job_id":"ae761d09-a2ed-496c-9c08-6d680af29c2a","html_url":"https://github.com/VendenIX/Pile_Docker_GraphQL_D3.js_MongoDB","commit_stats":null,"previous_names":["vendenix/pile_docker_graphql_d3.js_mongodb"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VendenIX%2FPile_Docker_GraphQL_D3.js_MongoDB","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VendenIX%2FPile_Docker_GraphQL_D3.js_MongoDB/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VendenIX%2FPile_Docker_GraphQL_D3.js_MongoDB/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VendenIX%2FPile_Docker_GraphQL_D3.js_MongoDB/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/VendenIX","download_url":"https://codeload.github.com/VendenIX/Pile_Docker_GraphQL_D3.js_MongoDB/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241984954,"owners_count":20053001,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-15T09:15:21.564Z","updated_at":"2025-03-05T07:25:31.403Z","avatar_url":"https://github.com/VendenIX.png","language":"CSS","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ProjetGraphQLD3JsAmirathRomain\n\n# Introduction\nCe projet contient une pile de containers permettant de lancer une visualisation de données de ventes, étudiées pendant la première partie d'une UE de base de donnée avancées sur les datawarehouse.\n\n La pile de containers comprend :      \n \n - une base de données MongoDB contenant les données de ventes\n - un serveur Apache contenant l'UI en React déjà buildé\n - un container GraphQL contenant le code du serveur et les résolveurs.\n - un container mongo express pour gérer la base de données MongoDB\n\n Nous avons fait le choix d'utiliser React pour notre UI pour ce projet car on devait se remettre à jour avec react pour un autre projet en parallèle qui utilise OHIF, une librairie de visualisation d'images médicales.\n\n Nous avons adapté le code du professeur qui utilisait D3, pour react, qui contient un package D3. \n\n Nous nous sommes réparties les tâches : \n Romain s'est chargé de faire l'UI avec React et la liaison avec GraphQL.\n Amirath s'est chargé de faire le serveur GraphQL et les résolveurs.\n\n Une petite erreur de notre part: il y a un petit soucis au niveau de la corse, nous avons mal fait l'implémentation json et donc avec notre conversion en int on ne prend pas en compte 2A ou 2B et donc vu que l'on n'utilise pas le code département du fichier json, l'aisne est considéré comme la corse il me semble ou alors les données seraient peut-être décalé via le fichier json des départements, il faudrait modifier cela mais nous n'avons pas eu le temps de le faire, étant occupé par nos autres projets.\n\n Pour aller plus loin dans ce projet dans le futur dans quelques années, on pourrait faire en sorte que l'utilisateur entre un prompt et que une IA génère une nouvelle visualisation de données en fonction de ce prompt. On pourrait aussi faire en sorte que l'utilisateur puisse choisir les données qu'il veut visualiser, et que l'IA génère une visualisation en fonction de ces données, en adaptant les requêtes graphQL, en utilisant une nouvelle technologie à base d'algorithme de Monté-Carlo boosté à l'IA.\n\n ## Demo\n\nVous pouvez visualiser une démonstration de ce projet en regardant la vidéo ci-dessous :\n\n[![Demo Video](images_readme/ezgif.com-video-to-gif-converted.gif)](images_readme/ezgif.com-video-to-gif-converted.gif)\n\n\n# Pour le professeur, ou le client qui veut lancer la pile de containers:\n\nSe placer dans le dossier racine du projet où se trouve le fichier stack.yml\nLancer les containers:\n```\ndocker-compose -f stack.yml up -d --build                                                                                                                                           \n```\nAttention, si vous avez fait des modifications ou avez déjà des images comportant ces noms dans votre docker, il faut supprimer ces images avant de faire la commande docker-compose. Si vous êtes débutant, je conseille de faire simplement `docker system prune -a` pour supprimer tous les containers inutilisés et nettoyer le système. Attention cela supprimera tous vos containers et images sur Docker. Vous pouvez faire `docker-compose -f stack.yml down` pour arrêter les containers.\n\nAttention, le port 80 doit être libre sur votre machine, sinon il faudra changer le port dans le fichier stack.yml.\n\nSi vous avez une erreur, c'est peut-être que le build n'est pas généré et il faut le générer en allant dans ui-ventes et faire `npm run build`\n\nSi il y a encore une erreur, c'est peut-être votre version de docker trop avancée qui fait tout bug, dans ce cas je vous conseilles de passer à une version antérieure, si vous avez installé docker avec snap sur debian, vous pouvez faire cette commande : `sudo snap refresh docker --channel=latest/edge`\n\nInsérer les données présentes d'exemple du fichier sales.bson: (le fichier sales.bson est fourni à la racine du projet)\n```\ndocker exec -i mongo-dev sh -c 'mongoimport -d bda -c sales --authenticationDatabase admin -u root -p example' \u003c sales.bson\n```\n\n## Pour accéder à l'interface\nL'UI est accessible sur l'adresse de loopback de votre machine, http://localhost \nou http://127.0.0.1\n\n## Pour accéder au playground GraphQL et au mongo-express\n- L'url du playground est : http://localhost:4000\n- L'url du mongo-express est : http://localhost:8081\n    - **login**: root\n    - **password**: example\n\n\n## Pour arrêter la pile de containers :\n```\ndocker-compose -f stack.yml down\n```\n\n# Pour les développeurs qui veulent modifier / améliorer le code afin de contribuer\n\nIl vous faudra commenter la partie service graphql de la pile et modifier le fichier index.js pour lancer le serveur graphql en local. Il vous suffira de commenter l'url de mongo et de décommenter l'url de mongo en local.\n\n![URL à changer dans resolvers.js](images_readme/image1.png)\n\n![Code à commenter dans stack.yml](images_readme/image2.png)\nVeillez également à commenter la dépendance à graphQL pour le service apache.\n\n## GraphQL\nPour lancer le serveur GraphQL local :\n```\nnpm init es6 --yes\nnpm install mongodb @apollo/server graphql --save  --no-bin-links\nnode index.js\n```\n\n## React\nPour lancer le serveur React local :\n```\nnpm install\nnpm start\n```\n\nPour faire le build de l'UI :\n```\nnpm run build\n```\nIl y a également un README dans le dossier ui-ventes qui explique tout cela en détail.\n\n\n## Si jamais il y a un problème de CORS\n### Dans firefox:\nAller à l'URL suivante: about:config\nsecurity.fileuri.strict_origin_policy true -\u003e false \n\n## Projet réalisé par\n\n\n**Romain Andres 21904263**  \n[![GitHub](https://img.shields.io/badge/GitHub-VendenIX-blue?style=flat-square\u0026logo=github)](https://github.com/VendenIX)\n\n**Amirath Fara Orou Guidou 22012235**  \n[![GitHub](https://img.shields.io/badge/GitHub-Amirath6-blue?style=flat-square\u0026logo=github)](https://github.com/Amirath6)\n\n\n\n## Encadré par nos enseignants de l'université de Caen Normandie\n\n**Bruno Zanuttini**  \nhttps://zanuttini.users.greyc.fr/\n\n**François Rioult**  \nhttps://rioultf.github.io/\n\n\u003cimg src=\"images_readme/LOGO-UNICAEN_V-2.1-B.png\" width=\"200\" height=\"125\" alt=\"Logo de l'Université de Caen Normandie\"\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvendenix%2Fpile_docker_graphql_d3.js_mongodb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvendenix%2Fpile_docker_graphql_d3.js_mongodb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvendenix%2Fpile_docker_graphql_d3.js_mongodb/lists"}