From 38d8e7ec40ab174e56aa6595c26200fb121737b6 Mon Sep 17 00:00:00 2001 From: Julien Froidefond Date: Wed, 20 Aug 2025 16:26:12 +0200 Subject: [PATCH] Refactor data loading to use static JSON imports - Replaced dynamic fetch calls with direct imports of skill category and team data from JSON files for improved performance and reliability. - Removed obsolete JSON files from the public/data directory to clean up the codebase. - Updated loadSkillCategories and loadTeams functions to return imported data directly. --- lib/data-loader.ts | 59 ++++----- public/data/skills/backend.json | 182 -------------------------- public/data/skills/cloud.json | 106 ---------------- public/data/skills/data.json | 106 ---------------- public/data/skills/design.json | 106 ---------------- public/data/skills/devops.json | 212 ------------------------------- public/data/skills/frontend.json | 169 ------------------------ public/data/skills/mobile.json | 171 ------------------------- public/data/skills/security.json | 106 ---------------- public/data/teams.json | 44 ------- 10 files changed, 23 insertions(+), 1238 deletions(-) delete mode 100644 public/data/skills/backend.json delete mode 100644 public/data/skills/cloud.json delete mode 100644 public/data/skills/data.json delete mode 100644 public/data/skills/design.json delete mode 100644 public/data/skills/devops.json delete mode 100644 public/data/skills/frontend.json delete mode 100644 public/data/skills/mobile.json delete mode 100644 public/data/skills/security.json delete mode 100644 public/data/teams.json diff --git a/lib/data-loader.ts b/lib/data-loader.ts index f6273a9..f48ee96 100644 --- a/lib/data-loader.ts +++ b/lib/data-loader.ts @@ -1,42 +1,29 @@ import { SkillCategory, Team } from "./types"; +// Import direct des données JSON depuis le dossier /data +import frontendData from "@/data/skills/frontend.json"; +import backendData from "@/data/skills/backend.json"; +import devopsData from "@/data/skills/devops.json"; +import mobileData from "@/data/skills/mobile.json"; +import dataData from "@/data/skills/data.json"; +import cloudData from "@/data/skills/cloud.json"; +import securityData from "@/data/skills/security.json"; +import designData from "@/data/skills/design.json"; +import teamsData from "@/data/teams.json"; + export async function loadSkillCategories(): Promise { - const categories = [ - "frontend", - "backend", - "devops", - "mobile", - "data", - "cloud", - "security", - "design", - ]; - const skillCategories: SkillCategory[] = []; - - for (const category of categories) { - try { - const response = await fetch(`/data/skills/${category}.json`); - if (response.ok) { - const data = await response.json(); - skillCategories.push(data); - } - } catch (error) { - console.error(`Failed to load ${category} skills:`, error); - } - } - - return skillCategories; + return [ + frontendData, + backendData, + devopsData, + mobileData, + dataData, + cloudData, + securityData, + designData, + ] as SkillCategory[]; } export async function loadTeams(): Promise { - try { - const response = await fetch("/data/teams.json"); - if (response.ok) { - const data = await response.json(); - return data.teams; - } - } catch (error) { - console.error("Failed to load teams:", error); - } - return []; -} + return teamsData.teams as Team[]; +} \ No newline at end of file diff --git a/public/data/skills/backend.json b/public/data/skills/backend.json deleted file mode 100644 index 9ec01f3..0000000 --- a/public/data/skills/backend.json +++ /dev/null @@ -1,182 +0,0 @@ -{ - "category": "Backend", - "icon": "server", - "skills": [ - { - "id": "nodejs", - "name": "Node.js", - "description": "Runtime JavaScript côté serveur construit sur le moteur V8 de Chrome", - "icon": "fab-node", - "links": [ - "https://nodejs.org/", - "https://nodejs.org/en/docs/", - "https://github.com/nodejs/node" - ] - }, - { - "id": "python", - "name": "Python", - "description": "Langage de programmation interprété de haut niveau", - "icon": "fab-python", - "links": [ - "https://www.python.org/", - "https://docs.python.org/3/", - "https://github.com/python/cpython" - ] - }, - { - "id": "express", - "name": "Express.js", - "description": "Framework web rapide, non-opinionated et minimaliste pour Node.js", - "icon": "fas-server", - "links": [ - "https://expressjs.com/", - "https://expressjs.com/en/guide/routing.html", - "https://github.com/expressjs/express" - ] - }, - { - "id": "postgresql", - "name": "PostgreSQL", - "description": "Système de gestion de base de données relationnelle open source", - "icon": "fas-database", - "links": [ - "https://www.postgresql.org/", - "https://www.postgresql.org/docs/", - "https://github.com/postgres/postgres" - ] - }, - { - "id": "mongodb", - "name": "MongoDB", - "description": "Base de données NoSQL orientée document", - "icon": "fas-database", - "links": [ - "https://www.mongodb.com/", - "https://docs.mongodb.com/", - "https://github.com/mongodb/mongo" - ] - }, - { - "id": "redis", - "name": "Redis", - "description": "Structure de données en mémoire utilisée comme base de données, cache et broker de messages", - "icon": "fas-memory", - "links": [ - "https://redis.io/", - "https://redis.io/documentation", - "https://github.com/redis/redis" - ] - }, - { - "id": "golang", - "name": "Go", - "description": "Langage de programmation développé par Google", - "icon": "fab-golang", - "links": ["https://golang.org/", "https://golang.org/doc/"] - }, - { - "id": "rust", - "name": "Rust", - "description": "Langage de programmation système sûr et performant", - "icon": "fab-rust", - "links": ["https://www.rust-lang.org/", "https://doc.rust-lang.org/"] - }, - { - "id": "java-spring", - "name": "Java Spring", - "description": "Framework Java pour applications d'entreprise", - "icon": "fab-java", - "links": ["https://spring.io/", "https://docs.spring.io/"] - }, - { - "id": "csharp-dotnet", - "name": "C# .NET", - "description": "Plateforme de développement Microsoft", - "icon": "fab-microsoft", - "links": [ - "https://dotnet.microsoft.com/", - "https://docs.microsoft.com/dotnet/" - ] - }, - { - "id": "php-laravel", - "name": "PHP Laravel", - "description": "Framework PHP moderne pour applications web", - "icon": "fab-php", - "links": ["https://laravel.com/", "https://laravel.com/docs"] - }, - { - "id": "ruby-rails", - "name": "Ruby on Rails", - "description": "Framework web en Ruby", - "icon": "fas-code", - "links": ["https://rubyonrails.org/", "https://guides.rubyonrails.org/"] - }, - { - "id": "graphql", - "name": "GraphQL", - "description": "Langage de requête pour APIs", - "icon": "fas-sitemap", - "links": ["https://graphql.org/", "https://graphql.org/learn/"] - }, - { - "id": "prisma", - "name": "Prisma", - "description": "ORM moderne pour Node.js et TypeScript", - "icon": "fas-database", - "links": ["https://www.prisma.io/", "https://www.prisma.io/docs"] - }, - { - "id": "trpc", - "name": "tRPC", - "description": "Framework TypeScript pour APIs type-safe", - "icon": "fas-plug", - "links": ["https://trpc.io/", "https://trpc.io/docs"] - }, - { - "id": "nest-js", - "name": "NestJS", - "description": "Framework Node.js pour applications scalables", - "icon": "fas-layers", - "links": ["https://nestjs.com/", "https://docs.nestjs.com/"] - }, - { - "id": "fastify", - "name": "Fastify", - "description": "Framework web rapide pour Node.js", - "icon": "fas-bolt", - "links": ["https://www.fastify.io/", "https://www.fastify.io/docs/"] - }, - { - "id": "rabbitmq", - "name": "RabbitMQ", - "description": "Broker de messages open source", - "icon": "fas-stream", - "links": [ - "https://www.rabbitmq.com/", - "https://www.rabbitmq.com/documentation.html" - ] - }, - { - "id": "apache-kafka", - "name": "Apache Kafka", - "description": "Plateforme de streaming distribuée", - "icon": "fas-broadcast", - "links": [ - "https://kafka.apache.org/", - "https://kafka.apache.org/documentation/" - ] - }, - { - "id": "microservices", - "name": "Microservices", - "description": "Architecture en microservices", - "icon": "fas-boxes", - "links": [ - "https://microservices.io/", - "https://martinfowler.com/articles/microservices.html" - ] - } - ] -} diff --git a/public/data/skills/cloud.json b/public/data/skills/cloud.json deleted file mode 100644 index cc847da..0000000 --- a/public/data/skills/cloud.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "category": "Cloud", - "icon": "cloud", - "skills": [ - { - "id": "aws", - "name": "Amazon Web Services", - "description": "Plateforme de services cloud d'Amazon", - "links": [ - "https://aws.amazon.com/", - "https://docs.aws.amazon.com/" - ], - "icon": "fab-aws" - }, - { - "id": "azure", - "name": "Microsoft Azure", - "description": "Plateforme cloud de Microsoft", - "links": [ - "https://azure.microsoft.com/", - "https://docs.microsoft.com/azure/" - ], - "icon": "fab-microsoft" - }, - { - "id": "gcp", - "name": "Google Cloud Platform", - "description": "Services cloud de Google", - "links": [ - "https://cloud.google.com/", - "https://cloud.google.com/docs" - ], - "icon": "fab-google" - }, - { - "id": "terraform", - "name": "Terraform", - "description": "Outil d'infrastructure as code", - "links": [ - "https://www.terraform.io/", - "https://learn.hashicorp.com/terraform" - ], - "icon": "fas-tools" - }, - { - "id": "serverless", - "name": "Serverless Framework", - "description": "Framework pour applications serverless", - "links": [ - "https://www.serverless.com/", - "https://www.serverless.com/framework/docs/" - ], - "icon": "fas-cog" - }, - { - "id": "lambda", - "name": "AWS Lambda", - "description": "Service de calcul serverless d'AWS", - "links": [ - "https://aws.amazon.com/lambda/", - "https://docs.aws.amazon.com/lambda/" - ], - "icon": "fas-bolt" - }, - { - "id": "cloudformation", - "name": "CloudFormation", - "description": "Service d'infrastructure as code d'AWS", - "links": [ - "https://aws.amazon.com/cloudformation/", - "https://docs.aws.amazon.com/cloudformation/" - ], - "icon": "fas-layers" - }, - { - "id": "s3", - "name": "Amazon S3", - "description": "Service de stockage d'objets d'AWS", - "links": [ - "https://aws.amazon.com/s3/", - "https://docs.aws.amazon.com/s3/" - ], - "icon": "fas-cog" - }, - { - "id": "ec2", - "name": "Amazon EC2", - "description": "Service de calcul élastique d'AWS", - "links": [ - "https://aws.amazon.com/ec2/", - "https://docs.aws.amazon.com/ec2/" - ], - "icon": "fas-cog" - }, - { - "id": "cloudfront", - "name": "CloudFront", - "description": "Réseau de diffusion de contenu (CDN) d'AWS", - "links": [ - "https://aws.amazon.com/cloudfront/", - "https://docs.aws.amazon.com/cloudfront/" - ], - "icon": "fas-cog" - } - ] -} \ No newline at end of file diff --git a/public/data/skills/data.json b/public/data/skills/data.json deleted file mode 100644 index ba66dd4..0000000 --- a/public/data/skills/data.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "category": "Data", - "icon": "database", - "skills": [ - { - "id": "sql", - "name": "SQL", - "description": "Langage de requête pour bases de données relationnelles", - "links": [ - "https://www.postgresql.org/docs/", - "https://dev.mysql.com/doc/" - ], - "icon": "fas-database" - }, - { - "id": "postgresql", - "name": "PostgreSQL", - "description": "Base de données relationnelle open source avancée", - "links": [ - "https://www.postgresql.org/", - "https://www.postgresql.org/docs/" - ], - "icon": "fas-cog" - }, - { - "id": "mongodb", - "name": "MongoDB", - "description": "Base de données NoSQL orientée documents", - "links": [ - "https://www.mongodb.com/", - "https://docs.mongodb.com/" - ], - "icon": "fas-cog" - }, - { - "id": "redis", - "name": "Redis", - "description": "Base de données en mémoire, cache et courtier de messages", - "links": [ - "https://redis.io/", - "https://redis.io/docs/" - ], - "icon": "fas-cog" - }, - { - "id": "elasticsearch", - "name": "Elasticsearch", - "description": "Moteur de recherche et d'analyse distribué", - "links": [ - "https://www.elastic.co/elasticsearch/", - "https://www.elastic.co/guide/" - ], - "icon": "fas-search" - }, - { - "id": "python-data", - "name": "Python (Data Science)", - "description": "Python pour l'analyse de données et machine learning", - "links": [ - "https://pandas.pydata.org/", - "https://scikit-learn.org/" - ], - "icon": "fas-cog" - }, - { - "id": "tableau", - "name": "Tableau", - "description": "Plateforme de visualisation de données", - "links": [ - "https://www.tableau.com/", - "https://help.tableau.com/" - ], - "icon": "fas-chart" - }, - { - "id": "powerbi", - "name": "Power BI", - "description": "Service d'analyse de données de Microsoft", - "links": [ - "https://powerbi.microsoft.com/", - "https://docs.microsoft.com/power-bi/" - ], - "icon": "fab-microsoft" - }, - { - "id": "spark", - "name": "Apache Spark", - "description": "Moteur de traitement de données distribuées", - "links": [ - "https://spark.apache.org/", - "https://spark.apache.org/docs/" - ], - "icon": "fas-bolt" - }, - { - "id": "airflow", - "name": "Apache Airflow", - "description": "Plateforme d'orchestration de workflows", - "links": [ - "https://airflow.apache.org/", - "https://airflow.apache.org/docs/" - ], - "icon": "fas-stream" - } - ] -} \ No newline at end of file diff --git a/public/data/skills/design.json b/public/data/skills/design.json deleted file mode 100644 index 879bb6d..0000000 --- a/public/data/skills/design.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "category": "Design", - "icon": "palette", - "skills": [ - { - "id": "figma", - "name": "Figma", - "description": "Outil de design d'interface collaboratif", - "links": [ - "https://www.figma.com/", - "https://help.figma.com/" - ], - "icon": "fab-figma" - }, - { - "id": "sketch", - "name": "Sketch", - "description": "Outil de design d'interface pour macOS", - "links": [ - "https://www.sketch.com/", - "https://www.sketch.com/docs/" - ], - "icon": "fab-sketch" - }, - { - "id": "adobe-xd", - "name": "Adobe XD", - "description": "Outil de design et prototypage d'Adobe", - "links": [ - "https://www.adobe.com/products/xd.html", - "https://helpx.adobe.com/xd/" - ], - "icon": "fas-cog" - }, - { - "id": "ux-ui", - "name": "UX/UI Design", - "description": "Conception d'expérience et d'interface utilisateur", - "links": [ - "https://www.nngroup.com/", - "https://material.io/design/" - ], - "icon": "fas-cog" - }, - { - "id": "design-system", - "name": "Design System", - "description": "Systèmes de design et composants réutilisables", - "links": [ - "https://designsystemsrepo.com/", - "https://www.designbetter.co/design-systems-handbook" - ], - "icon": "fas-cog" - }, - { - "id": "prototyping", - "name": "Prototypage", - "description": "Création de prototypes interactifs", - "links": [ - "https://www.prototypr.io/", - "https://www.invisionapp.com/" - ], - "icon": "fas-palette" - }, - { - "id": "user-research", - "name": "Recherche utilisateur", - "description": "Méthodologies de recherche UX", - "links": [ - "https://www.nngroup.com/articles/", - "https://www.usability.gov/" - ], - "icon": "fas-users" - }, - { - "id": "accessibility", - "name": "Accessibilité", - "description": "Design accessible et inclusive", - "links": [ - "https://www.w3.org/WAI/", - "https://webaim.org/" - ], - "icon": "fas-eye" - }, - { - "id": "responsive-design", - "name": "Design Responsive", - "description": "Conception adaptative multi-dispositifs", - "links": [ - "https://developers.google.com/web/fundamentals/design-and-ux/responsive", - "https://responsivedesign.is/" - ], - "icon": "fas-mobile" - }, - { - "id": "motion-design", - "name": "Motion Design", - "description": "Animation et transitions d'interface", - "links": [ - "https://material.io/design/motion/", - "https://www.framer.com/" - ], - "icon": "fas-cog" - } - ] -} \ No newline at end of file diff --git a/public/data/skills/devops.json b/public/data/skills/devops.json deleted file mode 100644 index 6da2fc2..0000000 --- a/public/data/skills/devops.json +++ /dev/null @@ -1,212 +0,0 @@ -{ - "category": "DevOps", - "icon": "settings", - "skills": [ - { - "id": "docker", - "name": "Docker", - "description": "Plateforme de conteneurisation pour développer, expédier et exécuter des applications", - "links": [ - "https://www.docker.com/", - "https://docs.docker.com/", - "https://github.com/docker/docker-ce" - ], - "icon": "fab-docker" - }, - { - "id": "kubernetes", - "name": "Kubernetes", - "description": "Système d'orchestration de conteneurs open source", - "links": [ - "https://kubernetes.io/", - "https://kubernetes.io/docs/", - "https://github.com/kubernetes/kubernetes" - ], - "icon": "fas-layers" - }, - { - "id": "aws", - "name": "Amazon Web Services", - "description": "Plateforme de services cloud d'Amazon", - "links": [ - "https://aws.amazon.com/", - "https://docs.aws.amazon.com/", - "https://github.com/aws" - ], - "icon": "fab-aws" - }, - { - "id": "terraform", - "name": "Terraform", - "description": "Outil d'infrastructure as code pour construire, changer et versionner l'infrastructure", - "links": [ - "https://www.terraform.io/", - "https://learn.hashicorp.com/terraform", - "https://github.com/hashicorp/terraform" - ], - "icon": "fas-tools" - }, - { - "id": "jenkins", - "name": "Jenkins", - "description": "Serveur d'automatisation open source pour CI/CD", - "links": [ - "https://www.jenkins.io/", - "https://www.jenkins.io/doc/", - "https://github.com/jenkinsci/jenkins" - ], - "icon": "fas-cog" - }, - { - "id": "githubactions", - "name": "GitHub Actions", - "description": "Plateforme CI/CD intégrée à GitHub", - "links": [ - "https://github.com/features/actions", - "https://docs.github.com/en/actions", - "https://github.com/actions" - ], - "icon": "fas-cog" - }, - { - "id": "ansible", - "name": "Ansible", - "description": "Outil d'automatisation IT et de gestion de configuration", - "links": [ - "https://www.ansible.com/", - "https://docs.ansible.com/" - ], - "icon": "fas-cog" - }, - { - "id": "jenkins", - "name": "Jenkins", - "description": "Serveur d'automatisation open source", - "links": [ - "https://www.jenkins.io/", - "https://www.jenkins.io/doc/" - ], - "icon": "fas-cog" - }, - { - "id": "gitlab-ci", - "name": "GitLab CI/CD", - "description": "Pipeline d'intégration continue de GitLab", - "links": [ - "https://about.gitlab.com/stages-devops-lifecycle/continuous-integration/", - "https://docs.gitlab.com/ee/ci/" - ], - "icon": "fab-gitlab" - }, - { - "id": "prometheus", - "name": "Prometheus", - "description": "Système de monitoring et d'alerting", - "links": [ - "https://prometheus.io/", - "https://prometheus.io/docs/" - ], - "icon": "fas-chart-line" - }, - { - "id": "grafana", - "name": "Grafana", - "description": "Plateforme de visualisation et monitoring", - "links": [ - "https://grafana.com/", - "https://grafana.com/docs/" - ], - "icon": "fas-chart-line" - }, - { - "id": "elk-stack", - "name": "ELK Stack", - "description": "Elasticsearch, Logstash, et Kibana pour logs", - "links": [ - "https://www.elastic.co/what-is/elk-stack", - "https://www.elastic.co/guide/" - ], - "icon": "fas-search" - }, - { - "id": "nginx", - "name": "Nginx", - "description": "Serveur web et proxy inverse", - "links": [ - "https://nginx.org/", - "https://nginx.org/en/docs/" - ], - "icon": "fas-server" - }, - { - "id": "apache", - "name": "Apache HTTP Server", - "description": "Serveur web open source", - "links": [ - "https://httpd.apache.org/", - "https://httpd.apache.org/docs/" - ], - "icon": "fas-server" - }, - { - "id": "traefik", - "name": "Traefik", - "description": "Proxy inverse moderne et load balancer", - "links": [ - "https://traefik.io/", - "https://doc.traefik.io/" - ], - "icon": "fas-cog" - }, - { - "id": "helm", - "name": "Helm", - "description": "Gestionnaire de packages pour Kubernetes", - "links": [ - "https://helm.sh/", - "https://helm.sh/docs/" - ], - "icon": "fas-cog" - }, - { - "id": "istio", - "name": "Istio", - "description": "Service mesh pour microservices", - "links": [ - "https://istio.io/", - "https://istio.io/latest/docs/" - ], - "icon": "fas-cog" - }, - { - "id": "vault", - "name": "HashiCorp Vault", - "description": "Gestion des secrets et chiffrement", - "links": [ - "https://www.vaultproject.io/", - "https://learn.hashicorp.com/vault" - ], - "icon": "fas-cog" - }, - { - "id": "consul", - "name": "HashiCorp Consul", - "description": "Service discovery et configuration", - "links": [ - "https://www.consul.io/", - "https://learn.hashicorp.com/consul" - ], - "icon": "fas-cog" - }, - { - "id": "nomad", - "name": "HashiCorp Nomad", - "description": "Orchestrateur de workloads", - "links": [ - "https://www.nomadproject.io/", - "https://learn.hashicorp.com/nomad" - ], - "icon": "fas-cog" - } - ] -} \ No newline at end of file diff --git a/public/data/skills/frontend.json b/public/data/skills/frontend.json deleted file mode 100644 index 310138d..0000000 --- a/public/data/skills/frontend.json +++ /dev/null @@ -1,169 +0,0 @@ -{ - "category": "Frontend", - "icon": "monitor", - "skills": [ - { - "id": "react", - "name": "React", - "description": "Bibliothèque JavaScript pour créer des interfaces utilisateur", - "icon": "fab-react", - "links": [ - "https://react.dev/", - "https://react.dev/learn", - "https://github.com/facebook/react" - ] - }, - { - "id": "vue", - "name": "Vue.js", - "description": "Framework JavaScript progressif pour construire des interfaces utilisateur", - "icon": "fab-vue", - "links": [ - "https://vuejs.org/", - "https://vuejs.org/guide/", - "https://github.com/vuejs/core" - ] - }, - { - "id": "typescript", - "name": "TypeScript", - "description": "Superset typé de JavaScript qui compile en JavaScript plain", - "icon": "fab-js", - "links": [ - "https://www.typescriptlang.org/", - "https://www.typescriptlang.org/docs/", - "https://github.com/microsoft/TypeScript" - ] - }, - { - "id": "nextjs", - "name": "Next.js", - "description": "Framework React pour la production avec SSR, SSG et plus", - "icon": "fab-react", - "links": [ - "https://nextjs.org/", - "https://nextjs.org/docs", - "https://github.com/vercel/next.js" - ] - }, - { - "id": "tailwindcss", - "name": "Tailwind CSS", - "description": "Framework CSS utility-first pour créer rapidement des designs personnalisés", - "icon": "fas-palette", - "links": [ - "https://tailwindcss.com/", - "https://tailwindcss.com/docs", - "https://github.com/tailwindlabs/tailwindcss" - ] - }, - { - "id": "webpack", - "name": "Webpack", - "description": "Bundler de modules pour les applications JavaScript modernes", - "icon": "fas-cube", - "links": [ - "https://webpack.js.org/", - "https://webpack.js.org/concepts/", - "https://github.com/webpack/webpack" - ] - }, - { - "id": "vite", - "name": "Vite", - "description": "Outil de build rapide pour applications modernes", - "icon": "fas-bolt", - "links": ["https://vitejs.dev/", "https://vitejs.dev/guide/"] - }, - { - "id": "svelte", - "name": "Svelte", - "description": "Framework de compilation pour interfaces utilisateur", - "icon": "fas-code", - "links": ["https://svelte.dev/", "https://svelte.dev/docs"] - }, - { - "id": "solidjs", - "name": "SolidJS", - "description": "Framework JavaScript réactif et performant", - "icon": "fas-atom", - "links": ["https://www.solidjs.com/", "https://www.solidjs.com/docs"] - }, - { - "id": "astro", - "name": "Astro", - "description": "Framework statique multi-framework", - "icon": "fas-rocket", - "links": ["https://astro.build/", "https://docs.astro.build/"] - }, - { - "id": "remix", - "name": "Remix", - "description": "Framework full-stack centré sur les standards web", - "icon": "fas-sync", - "links": ["https://remix.run/", "https://remix.run/docs"] - }, - { - "id": "storybook", - "name": "Storybook", - "description": "Outil de développement pour composants UI", - "icon": "fas-book", - "links": ["https://storybook.js.org/", "https://storybook.js.org/docs"] - }, - { - "id": "cypress", - "name": "Cypress", - "description": "Framework de tests end-to-end", - "icon": "fas-bug", - "links": ["https://www.cypress.io/", "https://docs.cypress.io/"] - }, - { - "id": "playwright", - "name": "Playwright", - "description": "Framework de tests pour applications web", - "icon": "fas-flask", - "links": ["https://playwright.dev/", "https://playwright.dev/docs/"] - }, - { - "id": "three-js", - "name": "Three.js", - "description": "Bibliothèque JavaScript pour 3D dans le navigateur", - "icon": "fas-cube", - "links": ["https://threejs.org/", "https://threejs.org/docs/"] - }, - { - "id": "d3", - "name": "D3.js", - "description": "Bibliothèque de visualisation de données", - "icon": "fas-chart-line", - "links": ["https://d3js.org/", "https://github.com/d3/d3/wiki"] - }, - { - "id": "gsap", - "name": "GSAP", - "description": "Bibliothèque d'animations web performantes", - "icon": "fas-bolt", - "links": ["https://greensock.com/gsap/", "https://greensock.com/docs/"] - }, - { - "id": "web-components", - "name": "Web Components", - "description": "Standards natifs pour composants réutilisables", - "icon": "fas-puzzle", - "links": [ - "https://developer.mozilla.org/en-US/docs/Web/Web_Components", - "https://web.dev/web-components/" - ] - }, - { - "id": "pwa", - "name": "Progressive Web Apps", - "description": "Applications web progressives", - "icon": "fas-mobile", - "links": [ - "https://web.dev/progressive-web-apps/", - "https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps" - ] - } - ] -} diff --git a/public/data/skills/mobile.json b/public/data/skills/mobile.json deleted file mode 100644 index 47a6b1b..0000000 --- a/public/data/skills/mobile.json +++ /dev/null @@ -1,171 +0,0 @@ -{ - "category": "Mobile", - "icon": "smartphone", - "skills": [ - { - "id": "reactnative", - "name": "React Native", - "description": "Framework pour construire des applications mobiles natives avec React", - "links": [ - "https://reactnative.dev/", - "https://reactnative.dev/docs/getting-started", - "https://github.com/facebook/react-native" - ], - "icon": "fab-react" - }, - { - "id": "flutter", - "name": "Flutter", - "description": "Kit de développement d'interface utilisateur de Google pour créer des applications compilées nativement", - "links": [ - "https://flutter.dev/", - "https://docs.flutter.dev/", - "https://github.com/flutter/flutter" - ], - "icon": "fas-mobile" - }, - { - "id": "swift", - "name": "Swift", - "description": "Langage de programmation puissant et intuitif pour iOS, macOS, watchOS et tvOS", - "links": [ - "https://developer.apple.com/swift/", - "https://docs.swift.org/swift-book/", - "https://github.com/apple/swift" - ], - "icon": "fab-swift" - }, - { - "id": "kotlin", - "name": "Kotlin", - "description": "Langage de programmation moderne qui compile vers la JVM, Android et JavaScript", - "links": [ - "https://kotlinlang.org/", - "https://kotlinlang.org/docs/", - "https://github.com/JetBrains/kotlin" - ], - "icon": "fab-android" - }, - { - "id": "expo", - "name": "Expo", - "description": "Plateforme pour développer des applications React Native universelles", - "links": [ - "https://expo.dev/", - "https://docs.expo.dev/", - "https://github.com/expo/expo" - ], - "icon": "fab-react" - }, - { - "id": "ionic", - "name": "Ionic", - "description": "Framework pour applications mobiles hybrides", - "links": [ - "https://ionicframework.com/", - "https://ionicframework.com/docs" - ], - "icon": "fas-mobile" - }, - { - "id": "xamarin", - "name": "Xamarin", - "description": "Plateforme de développement mobile Microsoft", - "links": [ - "https://dotnet.microsoft.com/apps/xamarin", - "https://docs.microsoft.com/xamarin/" - ], - "icon": "fab-microsoft" - }, - { - "id": "unity", - "name": "Unity", - "description": "Moteur de jeu pour applications mobiles", - "links": [ - "https://unity.com/", - "https://docs.unity3d.com/" - ], - "icon": "fas-cube" - }, - { - "id": "cordova", - "name": "Apache Cordova", - "description": "Plateforme pour applications mobiles hybrides", - "links": [ - "https://cordova.apache.org/", - "https://cordova.apache.org/docs/" - ], - "icon": "fas-mobile" - }, - { - "id": "capacitor", - "name": "Capacitor", - "description": "Runtime natif pour applications web", - "links": [ - "https://capacitorjs.com/", - "https://capacitorjs.com/docs" - ], - "icon": "fas-cog" - }, - { - "id": "fastlane", - "name": "Fastlane", - "description": "Automatisation pour développement mobile", - "links": [ - "https://fastlane.tools/", - "https://docs.fastlane.tools/" - ], - "icon": "fas-cog" - }, - { - "id": "firebase", - "name": "Firebase", - "description": "Plateforme de développement mobile Google", - "links": [ - "https://firebase.google.com/", - "https://firebase.google.com/docs" - ], - "icon": "fab-google" - }, - { - "id": "app-store-optimization", - "name": "App Store Optimization", - "description": "Optimisation pour stores d'applications", - "links": [ - "https://developer.apple.com/app-store/", - "https://play.google.com/console/" - ], - "icon": "fas-cog" - }, - { - "id": "mobile-testing", - "name": "Tests Mobile", - "description": "Frameworks de tests pour applications mobiles", - "links": [ - "https://appium.io/", - "https://detox.js.org/" - ], - "icon": "fas-bug" - }, - { - "id": "mobile-performance", - "name": "Performance Mobile", - "description": "Optimisation des performances mobiles", - "links": [ - "https://developers.google.com/web/tools/lighthouse", - "https://developer.android.com/topic/performance" - ], - "icon": "fas-cog" - }, - { - "id": "push-notifications", - "name": "Push Notifications", - "description": "Notifications push pour applications mobiles", - "links": [ - "https://firebase.google.com/docs/cloud-messaging", - "https://developer.apple.com/notifications/" - ], - "icon": "fas-bell" - } - ] -} \ No newline at end of file diff --git a/public/data/skills/security.json b/public/data/skills/security.json deleted file mode 100644 index b6ed546..0000000 --- a/public/data/skills/security.json +++ /dev/null @@ -1,106 +0,0 @@ -{ - "category": "Security", - "icon": "shield", - "skills": [ - { - "id": "oauth", - "name": "OAuth 2.0", - "description": "Framework d'autorisation pour APIs", - "links": [ - "https://oauth.net/2/", - "https://tools.ietf.org/html/rfc6749" - ], - "icon": "fas-key" - }, - { - "id": "jwt", - "name": "JSON Web Tokens", - "description": "Standard pour transmettre des informations de façon sécurisée", - "links": [ - "https://jwt.io/", - "https://tools.ietf.org/html/rfc7519" - ], - "icon": "fas-shield" - }, - { - "id": "https-ssl", - "name": "HTTPS/SSL", - "description": "Protocoles de sécurisation des communications web", - "links": [ - "https://developer.mozilla.org/en-US/docs/Web/Security", - "https://letsencrypt.org/" - ], - "icon": "fas-cog" - }, - { - "id": "owasp", - "name": "OWASP", - "description": "Bonnes pratiques de sécurité des applications web", - "links": [ - "https://owasp.org/", - "https://owasp.org/www-project-top-ten/" - ], - "icon": "fas-cog" - }, - { - "id": "csrf-xss", - "name": "CSRF/XSS Protection", - "description": "Protection contre les attaques CSRF et XSS", - "links": [ - "https://cheatsheetseries.owasp.org/cheatsheets/Cross-Site_Request_Forgery_Prevention_Cheat_Sheet.html", - "https://cheatsheetseries.owasp.org/cheatsheets/Cross_Site_Scripting_Prevention_Cheat_Sheet.html" - ], - "icon": "fas-cog" - }, - { - "id": "penetration-testing", - "name": "Tests de pénétration", - "description": "Tests de sécurité offensifs", - "links": [ - "https://owasp.org/www-community/Penetration_Testing_Methodologies", - "https://www.kali.org/" - ], - "icon": "fas-user-shield" - }, - { - "id": "cryptography", - "name": "Cryptographie", - "description": "Chiffrement et hachage des données", - "links": [ - "https://cryptography.io/", - "https://developer.mozilla.org/en-US/docs/Web/API/Web_Crypto_API" - ], - "icon": "fas-cog" - }, - { - "id": "auth0", - "name": "Auth0", - "description": "Plateforme d'authentification et d'autorisation", - "links": [ - "https://auth0.com/", - "https://auth0.com/docs" - ], - "icon": "fas-cog" - }, - { - "id": "keycloak", - "name": "Keycloak", - "description": "Solution open source de gestion d'identité", - "links": [ - "https://www.keycloak.org/", - "https://www.keycloak.org/documentation" - ], - "icon": "fas-cog" - }, - { - "id": "vault", - "name": "HashiCorp Vault", - "description": "Outil de gestion des secrets", - "links": [ - "https://www.vaultproject.io/", - "https://learn.hashicorp.com/vault" - ], - "icon": "fas-cog" - } - ] -} \ No newline at end of file diff --git a/public/data/teams.json b/public/data/teams.json deleted file mode 100644 index bc454cf..0000000 --- a/public/data/teams.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "teams": [ - { - "id": "frontend", - "name": "Frontend", - "direction": "Engineering" - }, - { - "id": "backend", - "name": "Backend", - "direction": "Engineering" - }, - { - "id": "devops", - "name": "DevOps", - "direction": "Engineering" - }, - { - "id": "mobile", - "name": "Mobile", - "direction": "Engineering" - }, - { - "id": "data", - "name": "Data Science", - "direction": "Engineering" - }, - { - "id": "product", - "name": "Product", - "direction": "Product" - }, - { - "id": "design", - "name": "Design", - "direction": "Product" - }, - { - "id": "marketing", - "name": "Marketing", - "direction": "Business" - } - ] -}