diff --git a/gatsby-config.js b/gatsby-config.js index 8e921f9..0be6bb1 100644 --- a/gatsby-config.js +++ b/gatsby-config.js @@ -2,10 +2,17 @@ module.exports = { pathPrefix: "/coderbunker.ca", siteMetadata: { title: `Coderbunker Canada`, - author: `Carms Ng`, - description: `Coderbunker Canada Website`, + author: `@Carms-dev`, + description: `Coderbunker est une communauté internationale de passionnés de développement logiciel. Nous fonctionnons sur une base de budget d'ingénierie mensuels prépayés sur lesquels nous recrutons des équipes formées de talents flexibles qui participent activement dans la construction d'une communauté qui les rends heureux.`, }, plugins: [ + `gatsby-transformer-json`, + { + resolve: `gatsby-source-filesystem`, + options: { + path: `${__dirname}/src/assets/content`, + }, + }, `gatsby-plugin-postcss`, `gatsby-plugin-styled-components`, `gatsby-plugin-react-helmet`, @@ -17,6 +24,13 @@ module.exports = { path: `${__dirname}/src/assets/images`, }, }, + { + resolve: `gatsby-source-filesystem`, + options: { + name: `assets`, + path: `${__dirname}/src/assets`, + }, + }, { resolve: `gatsby-source-filesystem`, options: { @@ -29,19 +43,9 @@ module.exports = { { resolve: `gatsby-plugin-manifest`, options: { - name: `gatsby-starter-default`, - short_name: `starter`, - start_url: `/`, - background_color: `#663399`, - theme_color: `#663399`, - display: `minimal-ui`, - icon: `src/assets/images/coderbunker-icon.png`, // This path is relative to the root of the site. + icon: `${__dirname}/src/assets/images/coderbunker-icon.png`, // This path is relative to the root of the site. }, }, - `gatsby-plugin-gatsby-cloud`, - // this (optional) plugin enables Progressive Web App + Offline functionality - // To learn more, visit: https://gatsby.dev/offline - // `gatsby-plugin-offline`, { resolve: `gatsby-plugin-react-i18next`, options: { diff --git a/gatsby-node.js b/gatsby-node.js deleted file mode 100644 index 6d4a90e..0000000 --- a/gatsby-node.js +++ /dev/null @@ -1,7 +0,0 @@ -/** - * Implement Gatsby's Node APIs in this file. - * - * See: https://www.gatsbyjs.com/docs/node-apis/ - */ - -// You can delete this file if you're not using it diff --git a/gatsby-ssr.js b/gatsby-ssr.js deleted file mode 100644 index 01d8325..0000000 --- a/gatsby-ssr.js +++ /dev/null @@ -1,7 +0,0 @@ -/** - * Implement Gatsby's SSR (Server Side Rendering) APIs in this file. - * - * See: https://www.gatsbyjs.com/docs/ssr-apis/ - */ - -// You can delete this file if you're not using it diff --git a/locales/fr/team.fr.json b/locales/fr/team.fr.json deleted file mode 100644 index d2c5fff..0000000 --- a/locales/fr/team.fr.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "Founder, Coderbunker": "Fondateur, chez Coderbunker", - "25 years experience in software development": "25 ans d'expérience dans le développement de logiciels", - "Team recruitment, building and coaching": "Recrutement d'équipe, constitution et coaching", - "Deployment (Linux, Ansible, Cloud, Docker)": "Déploiement (Linux, Ansible, Cloud, Docker)", - "Database (PostgreSQL)": "Base de données (PostgreSQL)", - "System Administrator": "Administrateur Système", - "Background in university research (quantum chemistry, attosecond science)": "Expérience en recherche universitaire (Chimie Quantique, science attoseconde)", - "5 years of experience in software development": "5 ans d'expérience en développement logiciel", - "Prototyping, agility, design, R&D": "Prototypage, agilité, design, R&D", - "Python, Bash, Javascript, C/C++, Fortran": "Python, Bash, Javascript, C/C++, Fortran", - "Devops (Linux, Ansible, Cloud, Docker)": "Devops (Linux, Ansible, Cloud, Docker)", - "Data analysis": "Analyse de données", - "FOSS Computing Consultant": "Consultant en informatique libre", - "Trained as analyst programmer": "Formé comme programmeur-analyste", - "20+ years of experience in computer industry": "20+ ans expérience en informatique", - "GNU/Linux Systems Administrator": "Administration de systèmes GNU/Linux", - "Cloud computing and automation": "Infonuagique et automatisation", - "Web development": "Développement Web", - "Training and communication": "Formation et communication", - "UI/UX Designer & Creative Developer": "UI/UX Designer & Développeuse Créative", - "Designing & building creative experience with product thinking": "Design et construire l'expérience créative avec le Product Thinking", - "UI/UX design": "L'UI/UX design", - "Full stack development": "Développement full stack", - "Creative coding, specialized in creative frontend development": "Le creative coding, spécialisé dans le développement créatif de logiciels Front-End", - "Web animations, GASP, canvas, webGL, Three.js, Processing, shader, etc": "Les animations Web, GASP, canvas, webGL, Three.js, Processing, shader, etc", - "4 years product management experience in both large corporations & startups": "25 ans d'expérience en gestion de produits dans des entreprises et des start-ups", - "Marketing & growth hacking": "Marketing & growth hacking", - "Tech coaching for designers and artists": "L'enseignement du codage pour les designers et les artistes", -} diff --git a/package-lock.json b/package-lock.json index 9c0a4bd..a74481e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,6 @@ "aos": "^2.3.4", "babel-plugin-styled-components": "^1.12.0", "gatsby": "^3.2.1", - "gatsby-plugin-gatsby-cloud": "^2.2.0", "gatsby-plugin-image": "^1.2.0", "gatsby-plugin-manifest": "^3.2.0", "gatsby-plugin-offline": "^4.2.0", @@ -22,6 +21,7 @@ "gatsby-plugin-sharp": "^3.2.0", "gatsby-plugin-styled-components": "^4.2.0", "gatsby-source-filesystem": "^3.2.0", + "gatsby-transformer-json": "^3.13.0", "gatsby-transformer-sharp": "^3.2.0", "i18next": "^19.9.2", "prop-types": "^15.7.2", @@ -1458,11 +1458,14 @@ } }, "node_modules/@babel/runtime": { - "version": "7.13.10", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.10.tgz", - "integrity": "sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.15.4.tgz", + "integrity": "sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw==", "dependencies": { "regenerator-runtime": "^0.13.4" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/runtime-corejs3": { @@ -10786,24 +10789,6 @@ "node": ">=12.13.0" } }, - "node_modules/gatsby-plugin-gatsby-cloud": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-gatsby-cloud/-/gatsby-plugin-gatsby-cloud-2.2.0.tgz", - "integrity": "sha512-IaT/rXZe5vx5j0/Xs7yPVPRkEo/VgcgV8cuoG2j1ncrdu+5I5zXPA7CNpD5326Ie7c+9bY/hBwdsWrQ8hOmG+A==", - "dependencies": { - "@babel/runtime": "^7.12.5", - "fs-extra": "^8.1.0", - "kebab-hash": "^0.1.2", - "lodash": "^4.17.21", - "webpack-assets-manifest": "^5.0.1" - }, - "engines": { - "node": ">=12.13.0" - }, - "peerDependencies": { - "gatsby": "^3.0.0-next.0" - } - }, "node_modules/gatsby-plugin-image": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/gatsby-plugin-image/-/gatsby-plugin-image-1.2.0.tgz", @@ -11656,6 +11641,21 @@ "node": ">=12.13.0" } }, + "node_modules/gatsby-transformer-json": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/gatsby-transformer-json/-/gatsby-transformer-json-3.13.0.tgz", + "integrity": "sha512-yfZoMq83nzaxyRTsOSeSlTTKMmK8CffpjA4XTACScc3acpTOMV9dTuDlBV81Yttw6wkrxf53b6CCWYzGPnpLew==", + "dependencies": { + "@babel/runtime": "^7.14.8", + "bluebird": "^3.7.2" + }, + "engines": { + "node": ">=12.13.0" + }, + "peerDependencies": { + "gatsby": "^3.0.0-next.0" + } + }, "node_modules/gatsby-transformer-sharp": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/gatsby-transformer-sharp/-/gatsby-transformer-sharp-3.2.0.tgz", @@ -14429,14 +14429,6 @@ "node": ">=8" } }, - "node_modules/kebab-hash": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/kebab-hash/-/kebab-hash-0.1.2.tgz", - "integrity": "sha512-BTZpq3xgISmQmAVzkISy4eUutsUA7s4IEFlCwOBJjvSFOwyR7I+fza+tBc/rzYWK/NrmFHjfU1IhO3lu29Ib/w==", - "dependencies": { - "lodash.kebabcase": "^4.1.1" - } - }, "node_modules/keyv": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.0.0.tgz", @@ -14623,14 +14615,6 @@ "resolved": "https://registry.npmjs.org/lock/-/lock-1.1.0.tgz", "integrity": "sha1-UxV0mdFlOxNspmRRBx/KYVcD+lU=" }, - "node_modules/lockfile": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lockfile/-/lockfile-1.0.4.tgz", - "integrity": "sha512-cvbTwETRfsFh4nHsL1eGWapU1XFi5Ot9E85sWAwia7Y7EgB7vfqcZhTKZ+l7hCGxSPoushMv5GKhT5PdLv03WA==", - "dependencies": { - "signal-exit": "^3.0.2" - } - }, "node_modules/lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", @@ -14656,11 +14640,6 @@ "resolved": "https://registry.npmjs.org/lodash.deburr/-/lodash.deburr-4.1.0.tgz", "integrity": "sha1-3bG7s+8HRYwBd7oH3hRCLLAz/5s=" }, - "node_modules/lodash.escaperegexp": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz", - "integrity": "sha1-ZHYsSGGAglGKw99Mz11YhtriA0c=" - }, "node_modules/lodash.every": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/lodash.every/-/lodash.every-4.6.0.tgz", @@ -14686,21 +14665,11 @@ "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" }, - "node_modules/lodash.has": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/lodash.has/-/lodash.has-4.5.2.tgz", - "integrity": "sha1-0Z9NwQlQWMzL4rDN9O4P5Ko3yGI=" - }, "node_modules/lodash.isplainobject": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" }, - "node_modules/lodash.kebabcase": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz", - "integrity": "sha1-hImxyw0p/4gZXM7KRI/21swpXDY=" - }, "node_modules/lodash.map": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz", @@ -26118,52 +26087,6 @@ } } }, - "node_modules/webpack-assets-manifest": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/webpack-assets-manifest/-/webpack-assets-manifest-5.0.2.tgz", - "integrity": "sha512-e5aZ7oA9ZLz3/yrkZRkq+oNdlImTxuAWyPmhoLaZHpbA1uR8RFtSNakwFyFgV23X++9Tc8YeCpKF5/FAHLBH9Q==", - "dependencies": { - "chalk": "^4.0", - "deepmerge": "^4.0", - "lockfile": "^1.0", - "lodash.escaperegexp": "^4.0", - "lodash.get": "^4.0", - "lodash.has": "^4.0", - "schema-utils": "^3.0", - "tapable": "^2.0" - }, - "engines": { - "node": ">=10.13.0" - }, - "peerDependencies": { - "webpack": "^5.1.0" - } - }, - "node_modules/webpack-assets-manifest/node_modules/schema-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", - "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", - "dependencies": { - "@types/json-schema": "^7.0.6", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/webpack-assets-manifest/node_modules/tapable": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.0.tgz", - "integrity": "sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw==", - "engines": { - "node": ">=6" - } - }, "node_modules/webpack-dev-middleware": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-4.1.0.tgz", @@ -28803,9 +28726,9 @@ } }, "@babel/runtime": { - "version": "7.13.10", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.10.tgz", - "integrity": "sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==", + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.15.4.tgz", + "integrity": "sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw==", "requires": { "regenerator-runtime": "^0.13.4" } @@ -36155,18 +36078,6 @@ "micromatch": "^4.0.2" } }, - "gatsby-plugin-gatsby-cloud": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/gatsby-plugin-gatsby-cloud/-/gatsby-plugin-gatsby-cloud-2.2.0.tgz", - "integrity": "sha512-IaT/rXZe5vx5j0/Xs7yPVPRkEo/VgcgV8cuoG2j1ncrdu+5I5zXPA7CNpD5326Ie7c+9bY/hBwdsWrQ8hOmG+A==", - "requires": { - "@babel/runtime": "^7.12.5", - "fs-extra": "^8.1.0", - "kebab-hash": "^0.1.2", - "lodash": "^4.17.21", - "webpack-assets-manifest": "^5.0.1" - } - }, "gatsby-plugin-image": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/gatsby-plugin-image/-/gatsby-plugin-image-1.2.0.tgz", @@ -36798,6 +36709,15 @@ "uuid": "3.4.0" } }, + "gatsby-transformer-json": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/gatsby-transformer-json/-/gatsby-transformer-json-3.13.0.tgz", + "integrity": "sha512-yfZoMq83nzaxyRTsOSeSlTTKMmK8CffpjA4XTACScc3acpTOMV9dTuDlBV81Yttw6wkrxf53b6CCWYzGPnpLew==", + "requires": { + "@babel/runtime": "^7.14.8", + "bluebird": "^3.7.2" + } + }, "gatsby-transformer-sharp": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/gatsby-transformer-sharp/-/gatsby-transformer-sharp-3.2.0.tgz", @@ -38872,14 +38792,6 @@ "resolved": "https://registry.npmjs.org/junk/-/junk-3.1.0.tgz", "integrity": "sha512-pBxcB3LFc8QVgdggvZWyeys+hnrNWg4OcZIU/1X59k5jQdLBlCsYGRQaz234SqoRLTCgMH00fY0xRJH+F9METQ==" }, - "kebab-hash": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/kebab-hash/-/kebab-hash-0.1.2.tgz", - "integrity": "sha512-BTZpq3xgISmQmAVzkISy4eUutsUA7s4IEFlCwOBJjvSFOwyR7I+fza+tBc/rzYWK/NrmFHjfU1IhO3lu29Ib/w==", - "requires": { - "lodash.kebabcase": "^4.1.1" - } - }, "keyv": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.0.0.tgz", @@ -39030,14 +38942,6 @@ "resolved": "https://registry.npmjs.org/lock/-/lock-1.1.0.tgz", "integrity": "sha1-UxV0mdFlOxNspmRRBx/KYVcD+lU=" }, - "lockfile": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lockfile/-/lockfile-1.0.4.tgz", - "integrity": "sha512-cvbTwETRfsFh4nHsL1eGWapU1XFi5Ot9E85sWAwia7Y7EgB7vfqcZhTKZ+l7hCGxSPoushMv5GKhT5PdLv03WA==", - "requires": { - "signal-exit": "^3.0.2" - } - }, "lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", @@ -39063,11 +38967,6 @@ "resolved": "https://registry.npmjs.org/lodash.deburr/-/lodash.deburr-4.1.0.tgz", "integrity": "sha1-3bG7s+8HRYwBd7oH3hRCLLAz/5s=" }, - "lodash.escaperegexp": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz", - "integrity": "sha1-ZHYsSGGAglGKw99Mz11YhtriA0c=" - }, "lodash.every": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/lodash.every/-/lodash.every-4.6.0.tgz", @@ -39093,21 +38992,11 @@ "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" }, - "lodash.has": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/lodash.has/-/lodash.has-4.5.2.tgz", - "integrity": "sha1-0Z9NwQlQWMzL4rDN9O4P5Ko3yGI=" - }, "lodash.isplainobject": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" }, - "lodash.kebabcase": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz", - "integrity": "sha1-hImxyw0p/4gZXM7KRI/21swpXDY=" - }, "lodash.map": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz", @@ -47923,38 +47812,6 @@ } } }, - "webpack-assets-manifest": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/webpack-assets-manifest/-/webpack-assets-manifest-5.0.2.tgz", - "integrity": "sha512-e5aZ7oA9ZLz3/yrkZRkq+oNdlImTxuAWyPmhoLaZHpbA1uR8RFtSNakwFyFgV23X++9Tc8YeCpKF5/FAHLBH9Q==", - "requires": { - "chalk": "^4.0", - "deepmerge": "^4.0", - "lockfile": "^1.0", - "lodash.escaperegexp": "^4.0", - "lodash.get": "^4.0", - "lodash.has": "^4.0", - "schema-utils": "^3.0", - "tapable": "^2.0" - }, - "dependencies": { - "schema-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", - "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", - "requires": { - "@types/json-schema": "^7.0.6", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - }, - "tapable": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.0.tgz", - "integrity": "sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw==" - } - } - }, "webpack-dev-middleware": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-4.1.0.tgz", diff --git a/package.json b/package.json index 56ce56c..01ca9fd 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,6 @@ "aos": "^2.3.4", "babel-plugin-styled-components": "^1.12.0", "gatsby": "^3.2.1", - "gatsby-plugin-gatsby-cloud": "^2.2.0", "gatsby-plugin-image": "^1.2.0", "gatsby-plugin-manifest": "^3.2.0", "gatsby-plugin-offline": "^4.2.0", @@ -18,6 +17,7 @@ "gatsby-plugin-sharp": "^3.2.0", "gatsby-plugin-styled-components": "^4.2.0", "gatsby-source-filesystem": "^3.2.0", + "gatsby-transformer-json": "^3.13.0", "gatsby-transformer-sharp": "^3.2.0", "i18next": "^19.9.2", "prop-types": "^15.7.2", diff --git a/src/assets/images/portraits/001_ricky_ng_adam.jpg b/src/assets/content/01_ricky_ng_adam.jpg similarity index 100% rename from src/assets/images/portraits/001_ricky_ng_adam.jpg rename to src/assets/content/01_ricky_ng_adam.jpg diff --git a/src/assets/content/01_ricky_ng_adam.json b/src/assets/content/01_ricky_ng_adam.json new file mode 100644 index 0000000..5498327 --- /dev/null +++ b/src/assets/content/01_ricky_ng_adam.json @@ -0,0 +1,34 @@ +{ + "en": { + "name": "Ricky Ng-Adam", + "title": "Founder, Coderbunker", + "linkedin": "https://www.linkedin.com/in/rngadam/", + "github": "https://github.com/rngadam", + "image": "01_ricky_ng_adam.jpg", + "highlights": [ + "25 years experience in software development", + "Architecture, design, R&D", + "Team recruitment, building and coaching", + "Javascript, Python, C/C++, bash, plpgsql", + "API: REST, Websockets, GraphQL", + "Deployment (Linux, Ansible, Cloud, Docker)", + "Database (PostgreSQL)" + ] + }, + "fr": { + "name": "Ricky Ng-Adam", + "title": "Fondateur, chez Coderbunker", + "linkedin": "https://www.linkedin.com/in/rngadam/", + "github": "https://github.com/rngadam", + "image": "01_ricky_ng_adam.jpg", + "highlights": [ + "25 ans d'expérience dans le développement de logiciels", + "Architecture, design, R&D", + "Recrutement d'équipe, constitution et coaching", + "Javascript, Python, C/C++, bash, plpgsql", + "API: REST, Websockets, GraphQL", + "Déploiement (Linux, Ansible, Cloud, Docker)", + "Base de données (PostgreSQL)" + ] + } +} diff --git a/src/assets/images/portraits/002_jeremy_viau_trudel.jpg b/src/assets/content/02_jeremy_viau_trudel.jpg similarity index 100% rename from src/assets/images/portraits/002_jeremy_viau_trudel.jpg rename to src/assets/content/02_jeremy_viau_trudel.jpg diff --git a/src/assets/content/02_jeremy_viau_trudel.json b/src/assets/content/02_jeremy_viau_trudel.json new file mode 100644 index 0000000..5bd007f --- /dev/null +++ b/src/assets/content/02_jeremy_viau_trudel.json @@ -0,0 +1,32 @@ +{ + "en": { + "name": "Jérémy Viau-Trudel", + "title": "System administrator", + "linkedin": "https://www.linkedin.com/in/jvtrudel/", + "github": "https://github.com/jvtrudel", + "image": "02_jeremy_viau_trudel.jpg", + "highlights": [ + "Background in university research (quantum chemistry, attosecond science)", + "5 years of experience in software development", + "Prototyping, agility, design, R&D", + "Python, Bash, Javascript, C/C++, Fortran", + "Devops (Linux, Ansible, Cloud, Docker)", + "Data analysis" + ] + }, + "fr": { + "name": "Jérémy Viau-Trudel", + "title": "Administrateur Système", + "linkedin": "https://www.linkedin.com/in/jvtrudel/", + "github": "https://github.com/jvtrudel", + "image": "02_jeremy_viau_trudel.jpg", + "highlights": [ + "Expérience en recherche universitaire (Chimie Quantique, science attoseconde)", + "5 ans d'expérience en développement logiciel", + "Prototypage, agilité, design, R&D", + "Python, Bash, Javascript, C/C++, Fortran", + "Devops (Linux, Ansible, Cloud, Docker)", + "Analyse de données" + ] + } +} diff --git a/src/assets/images/portraits/003_mathieu_gauthier_pilote.jpg b/src/assets/content/03_mathieu_gauthier_pilote.jpg similarity index 100% rename from src/assets/images/portraits/003_mathieu_gauthier_pilote.jpg rename to src/assets/content/03_mathieu_gauthier_pilote.jpg diff --git a/src/assets/content/03_mathieu_gauthier_pilote.json b/src/assets/content/03_mathieu_gauthier_pilote.json new file mode 100644 index 0000000..a49f11a --- /dev/null +++ b/src/assets/content/03_mathieu_gauthier_pilote.json @@ -0,0 +1,34 @@ +{ + "en": { + "name": "Mathieu Gauthier-Pilote", + "title": "FOSS Computing Consultant", + "linkedin": "https://www.linkedin.com/in/mathieugp/", + "github": "https://github.com/mathieugp", + "image": "03_mathieu_gauthier_pilote.jpg", + "highlights": [ + "Trained as analyst programmer", + "20+ years of experience in computer industry", + "GNU/Linux Systems Administrator", + "CI/CD (Linux, Ansible, Cloud, Docker)", + "Cloud computing and automation", + "Web development", + "Training and communication" + ] + }, + "fr": { + "name": "Mathieu Gauthier-Pilote", + "title": "Consultant en informatique libre", + "linkedin": "https://www.linkedin.com/in/mathieugp/", + "github": "https://github.com/mathieugp", + "image": "03_mathieu_gauthier_pilote.jpg", + "highlights": [ + "Formé comme programmeur-analyste", + "20+ ans expérience en informatique", + "Administration de systèmes GNU/Linux", + "CI/CD (Linux, Ansible, Cloud, Docker)", + "Infonuagique et automatisation", + "Développement Web", + "Formation et communication" + ] + } +} diff --git a/src/assets/images/portraits/004_angdi_chu.jpg b/src/assets/content/04_angdi_chu.jpg similarity index 100% rename from src/assets/images/portraits/004_angdi_chu.jpg rename to src/assets/content/04_angdi_chu.jpg diff --git a/src/assets/content/04_angdi_chu.json b/src/assets/content/04_angdi_chu.json new file mode 100644 index 0000000..8261d9e --- /dev/null +++ b/src/assets/content/04_angdi_chu.json @@ -0,0 +1,36 @@ +{ + "en": { + "name": "Angdi \"Andie\" Chu", + "title": "UI/UX Designer & Creative Developer", + "linkedin": "https://www.linkedin.com/in/cad0420/", + "github": "http://andiechu.com", + "image": "04_angdi_chu.jpg", + "highlights": [ + "Designing & building creative experience with product thinking", + "UI/UX design", + "Full stack development", + "Creative coding, specialized in creative frontend development", + "Web animations, GASP, canvas, webGL, Three.js, Processing, shader, etc", + "4 years product management experience in both large corporations & startups", + "Marketing & growth hacking", + "Tech coaching for designers and artists" + ] + }, + "fr": { + "name": "Angdi \"Andie\" Chu", + "title": "UI/UX Designer & Développeuse Créative", + "linkedin": "https://www.linkedin.com/in/cad0420/", + "github": "http://andiechu.com", + "image": "04_angdi_chu.jpg", + "highlights": [ + "Design et construire l'expérience créative avec le Product Thinking", + "L'UI/UX design", + "Full stack development", + "Le creative coding, spécialisé dans le développement créatif de logiciels Front-End", + "Les animations Web, GASP, canvas, webGL, Three.js, Processing, shader, etc", + "4 ans d'expérience en gestion de produits dans des entreprises et des start-ups", + "Marketing & growth hacking", + "L'enseignement du codage pour les designers et les artistes" + ] + } +} diff --git a/src/assets/content/team.json b/src/assets/content/team.json deleted file mode 100644 index b6c36d7..0000000 --- a/src/assets/content/team.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "content": [ - { - "name": "Ricky Ng-Adam", - "title": "Founder, Coderbunker", - "linkedin": "https://www.linkedin.com/in/rngadam/", - "github": "https://github.com/rngadam", - "image": "001_ricky_ng_adam.jpg", - "highlights": [ - "25 years experience in software development", - "Architecture, design, R&D", - "Team recruitment, building and coaching", - "Javascript, Python, C/C++, bash, plpgsql", - "API: REST, Websockets, GraphQL", - "Deployment (Linux, Ansible, Cloud, Docker)", - "Database (PostgreSQL)" - ] - }, - { - "name": "Jérémy Viau-Trudel", - "title": "System administrator", - "linkedin": "https://www.linkedin.com/in/jvtrudel/", - "github": "https://github.com/jvtrudel", - "image": "002_jeremy_viau_trudel.jpg", - "highlights": [ - "Background in university research (quantum chemistry, attosecond science)", - "5 years of experience in software development", - "Prototyping, agility, design, R&D", - "Python, Bash, Javascript, C/C++, Fortran", - "Devops (Linux, Ansible, Cloud, Docker)", - "Data analysis" - ] - } - , - { - "name": "Mathieu Gauthier-Pilote", - "title": "FOSS Computing Consultant", - "linkedin": "https://www.linkedin.com/in/mathieugp/", - "github": "https://github.com/mathieugp", - "image": "003_mathieu_gauthier_pilote.jpg", - "highlights": [ - "Trained as analyst programmer", - "20+ years of experience in computer industry", - "GNU/Linux Systems Administrator", - "CI/CD (Linux, Ansible, Cloud, Docker)", - "Cloud computing and automation", - "Web development", - "Training and communication" - ] - }, - { - "name": "Angdi \"Andie\" Chu", - "title": "UI/UX Designer & Creative Developer", - "linkedin": "https://www.linkedin.com/in/cad0420/", - "github": "http://andiechu.com", - "image": "004_angdi_chu.jpg", - "highlights": [ - "Designing & building creative experience with product thinking", - "UI/UX design", - "Full stack development", - "Creative coding, specialized in creative frontend development", - "Web animations, GASP, canvas, webGL, Three.js, Processing, shader, etc", - "4 years product management experience in both large corporations & startups", - "Marketing & growth hacking", - "Tech coaching for designers and artists" - ] - } - ] -} diff --git a/src/assets/pdfs/placeholder.pdf b/src/assets/pdfs/placeholder.pdf deleted file mode 100644 index cce56e1..0000000 Binary files a/src/assets/pdfs/placeholder.pdf and /dev/null differ diff --git a/src/components/carousel-card.js b/src/components/carousel-card.js index 3938ff3..f8036f4 100644 --- a/src/components/carousel-card.js +++ b/src/components/carousel-card.js @@ -1,11 +1,11 @@ import * as React from "react"; -import { Trans } from 'gatsby-plugin-react-i18next'; import styled from 'styled-components'; import { FiLinkedin, FiGithub, FiChevronLeft, FiChevronRight } from 'react-icons/fi'; import { GatsbyImage } from "gatsby-plugin-image"; -import team from '../assets/content/team.json'; -export default function CarouselCard({ pic, index, count, teamIndex, setTeamIndex }) { +export default function CarouselCard({ member, index, count, teamIndex, setTeamIndex }) { + const { name, title, image, linkedin, github, highlights } = member + // handle carousel navigation const handlePrev = () => { setTeamIndex(teamIndex - 1) @@ -14,56 +14,37 @@ export default function CarouselCard({ pic, index, count, teamIndex, setTeamInde setTeamIndex(teamIndex + 1) } - // set the person based on the image - const person = team.content.filter(member => { - return member.image === pic.node.base; - })[0] - return ( -
+
- -
+ imgStyle={{ objectPosition: `top center` }} + alt={name} + /> +
-

{person.name}

-

- {person.title} -

+

{name}

+

{title}

-
- - +
+ +
- + {/* Highlights for large screens, show all */}
    - {person.highlights.map(hl => { - return ( -
  • - {hl} -
  • - ) - })} + {highlights.map(hl =>
  • {hl}
  • )}
-
    - {person.highlights.slice(0, 3).map((hl, i) => { - return ( -
  • - {hl} -
  • - ) - })} + {/* highlights for small screen, show first few */} +
      + {highlights.slice(0, 3).map((hl, i) =>
    • {hl}
    • )}
    - {/* Button */} + {/* Button to navigate prev and next */}
    ); }).slice(0, 7)} diff --git a/src/components/team.js b/src/components/team.js index 5c870ee..3b9be45 100644 --- a/src/components/team.js +++ b/src/components/team.js @@ -6,7 +6,7 @@ import SiteBorderStyles from '../styles/SiteBorderStyles'; import BackgroundImage from "./bg-image"; import Carousel from "./carousel"; -export default function Team({ teamIndex, setTeamIndex }) { +export default function Team({ teamIndex, setTeamIndex, locale }) { return ( @@ -23,7 +23,7 @@ export default function Team({ teamIndex, setTeamIndex }) {

    {/* Carousel */} - +
    diff --git a/src/pages/index.js b/src/pages/index.js index 74c4b74..615a189 100644 --- a/src/pages/index.js +++ b/src/pages/index.js @@ -13,7 +13,9 @@ import Contact from "../components/contact"; import AOS from 'aos'; import 'aos/dist/aos.css'; -export default function IndexPage() { +export default function IndexPage({ pageContext }) { + const locale = pageContext.language + // Set who in the team is being featured const pausedRef = useRef(false); const [teamIndex, setTeamIndex ] = useState(0); @@ -52,7 +54,7 @@ export default function IndexPage() { // Clean up Observer to unobserve each ref return () => { - refs.current.forEach(ref => { + refs.forEach(ref => { if (ref) { observer.unobserve(ref) } @@ -68,7 +70,7 @@ export default function IndexPage() {
    -
    +
    @@ -78,7 +80,7 @@ export default function IndexPage() { export const query = graphql` query($language: String!) { - locales: allLocale(filter: { language: {eq: $language}, ns: {in: ["index", "team.fr"]} }) { + locales: allLocale(filter: { language: {eq: $language} }) { edges { node { ns diff --git a/static/.gitkeep b/static/.gitkeep deleted file mode 100644 index e69de29..0000000