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.
This commit is contained in:
Julien Froidefond
2025-08-20 16:26:12 +02:00
parent 553ee39728
commit 38d8e7ec40
10 changed files with 23 additions and 1238 deletions

View File

@@ -1,42 +1,29 @@
import { SkillCategory, Team } from "./types"; 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<SkillCategory[]> { export async function loadSkillCategories(): Promise<SkillCategory[]> {
const categories = [ return [
"frontend", frontendData,
"backend", backendData,
"devops", devopsData,
"mobile", mobileData,
"data", dataData,
"cloud", cloudData,
"security", securityData,
"design", designData,
]; ] as SkillCategory[];
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;
} }
export async function loadTeams(): Promise<Team[]> { export async function loadTeams(): Promise<Team[]> {
try { return teamsData.teams as Team[];
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 [];
} }

View File

@@ -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"
]
}
]
}

View File

@@ -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"
}
]
}

View File

@@ -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"
}
]
}

View File

@@ -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"
}
]
}

View File

@@ -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"
}
]
}

View File

@@ -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"
]
}
]
}

View File

@@ -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"
}
]
}

View File

@@ -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"
}
]
}

View File

@@ -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"
}
]
}