diff --git a/package.json b/package.json index a34f263bf..c6c0d5401 100644 --- a/package.json +++ b/package.json @@ -21,12 +21,12 @@ "test:e2e": "playwright test" }, "dependencies": { - "@astrojs/preact": "^2.2.0", - "@astrojs/sitemap": "^1.3.1", + "@astrojs/preact": "^2.2.1", + "@astrojs/sitemap": "^1.3.3", "@astrojs/tailwind": "^3.1.3", "@fingerprintjs/fingerprintjs": "^3.4.1", "@nanostores/preact": "^0.5.0", - "astro": "^2.5.5", + "astro": "^2.5.7", "astro-compress": "^1.1.46", "jose": "^4.14.4", "js-cookie": "^3.0.5", @@ -48,7 +48,7 @@ "markdown-it": "^13.0.1", "openai": "^3.2.1", "prettier": "^2.8.8", - "prettier-plugin-astro": "^0.9.1", + "prettier-plugin-astro": "^0.10.0", "prettier-plugin-tailwindcss": "^0.3.0" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e8018c03e..973b61e89 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,15 +1,15 @@ lockfileVersion: 5.4 specifiers: - '@astrojs/preact': ^2.2.0 - '@astrojs/sitemap': ^1.3.1 + '@astrojs/preact': ^2.2.1 + '@astrojs/sitemap': ^1.3.3 '@astrojs/tailwind': ^3.1.3 '@fingerprintjs/fingerprintjs': ^3.4.1 '@nanostores/preact': ^0.5.0 '@playwright/test': ^1.34.3 '@tailwindcss/typography': ^0.5.9 '@types/js-cookie': ^3.0.3 - astro: ^2.5.5 + astro: ^2.5.7 astro-compress: ^1.1.46 csv-parser: ^3.0.0 gh-pages: ^5.0.0 @@ -23,19 +23,19 @@ specifiers: openai: ^3.2.1 preact: ^10.15.1 prettier: ^2.8.8 - prettier-plugin-astro: ^0.9.1 + prettier-plugin-astro: ^0.10.0 prettier-plugin-tailwindcss: ^0.3.0 rehype-external-links: ^2.1.0 roadmap-renderer: ^1.0.6 tailwindcss: ^3.3.2 dependencies: - '@astrojs/preact': 2.2.0_preact@10.15.1 - '@astrojs/sitemap': 1.3.1 - '@astrojs/tailwind': 3.1.3_w4mihal45edfrnncnioktvfyqy + '@astrojs/preact': 2.2.1_preact@10.15.1 + '@astrojs/sitemap': 1.3.3 + '@astrojs/tailwind': 3.1.3_cyxi2rbbvaq22julk2hkhgjf7u '@fingerprintjs/fingerprintjs': 3.4.1 '@nanostores/preact': 0.5.0_m2wbkjxz7237icvaxqi7ignbgm - astro: 2.5.5 + astro: 2.5.7 astro-compress: 1.1.46 jose: 4.14.4 js-cookie: 3.0.5 @@ -57,8 +57,8 @@ devDependencies: markdown-it: 13.0.1 openai: 3.2.1 prettier: 2.8.8 - prettier-plugin-astro: 0.9.1 - prettier-plugin-tailwindcss: 0.3.0_lt2urjvx44zpywt7u6o2ilexia + prettier-plugin-astro: 0.10.0 + prettier-plugin-tailwindcss: 0.3.0_pe5dke5lusx3jwzlx77xu7mxju packages: @@ -76,12 +76,16 @@ packages: /@astrojs/compiler/1.4.2: resolution: {integrity: sha512-xoRp7JpiMZPK/beUcZEM5kM44Z/h20wwwQcl54duPqQMyySG9vZ5xMM6dYiQmn7b3XzpZs0cT6TRDoJJ5gwHAQ==} + dev: false + + /@astrojs/compiler/1.5.0: + resolution: {integrity: sha512-k04X/7nlMklU0HQUScxbCTf5n8/Vr+0U0bawb9QWulWxd6qJf3FmBrNATgTYiltjB4pc5HBqmmttAfFi7m4lLg==} /@astrojs/language-server/1.0.0: resolution: {integrity: sha512-oEw7AwJmzjgy6HC9f5IdrphZ1GVgfV/+7xQuyf52cpTiRWd/tJISK3MsKP0cDkVlfodmNABNFnAaAWuLZEiiiA==} hasBin: true dependencies: - '@astrojs/compiler': 1.4.2 + '@astrojs/compiler': 1.5.0 '@jridgewell/trace-mapping': 0.3.18 '@vscode/emmet-helper': 2.8.7 events: 3.3.0 @@ -97,13 +101,13 @@ packages: vscode-uri: 3.0.7 dev: false - /@astrojs/markdown-remark/2.2.1_astro@2.5.5: + /@astrojs/markdown-remark/2.2.1_astro@2.5.7: resolution: {integrity: sha512-VF0HRv4GpC1XEMLnsKf6jth7JSmlt9qpqP0josQgA2eSpCIAC/Et+y94mgdBIZVBYH/yFnMoIxgKVe93xfO2GA==} peerDependencies: astro: ^2.5.0 dependencies: '@astrojs/prism': 2.1.2 - astro: 2.5.5 + astro: 2.5.7 github-slugger: 1.5.0 import-meta-resolve: 2.2.2 rehype-raw: 6.1.1 @@ -120,8 +124,8 @@ packages: - supports-color dev: false - /@astrojs/preact/2.2.0_preact@10.15.1: - resolution: {integrity: sha512-SP8ODC/ywPFytVF9jX0Nrf9JoMFgXdsRPritLV9v4zPnarIwypW0kIFgm3rjT4ot8CQQj9J5cztqmD+hrDOvMg==} + /@astrojs/preact/2.2.1_preact@10.15.1: + resolution: {integrity: sha512-lObgrX/qfK2sEnGDWoyQ8KojFJ54FIKB4TeywWmgj4ZTg0yLnvvOz6ReyPQ8VfR/1MU+vWs22jE4cuZJ/vPnOA==} engines: {node: '>=16.12.0'} peerDependencies: preact: ^10.6.5 @@ -143,21 +147,21 @@ packages: prismjs: 1.29.0 dev: false - /@astrojs/sitemap/1.3.1: - resolution: {integrity: sha512-4ZBug4ml+2Nl5/Uh4VSja8Kij/DU7/RaNMciXCNm1EzQkP/jm+nqMG1liDDcQK5zXPAoLeaat06IbhNlruvQjg==} + /@astrojs/sitemap/1.3.3: + resolution: {integrity: sha512-TPyyb/hKxc+bHPpSoNPhsuI0QOTVzq2tueg2r0CTH1HqigYIAA2LQkCBlQzz85R+LrOZpv4kXYmhxdDcSkJCmA==} dependencies: sitemap: 7.1.1 zod: 3.21.4 dev: false - /@astrojs/tailwind/3.1.3_w4mihal45edfrnncnioktvfyqy: + /@astrojs/tailwind/3.1.3_cyxi2rbbvaq22julk2hkhgjf7u: resolution: {integrity: sha512-10S1omrv5K5HRVAZ0fBgN5vQykn2HRL332LAVFyBASMn1Ff6gDfSK+CPUeUu94eZUOEaPnECLK8EHAqZ8iY9CA==} peerDependencies: astro: ^2.5.0 tailwindcss: ^3.0.24 dependencies: '@proload/core': 0.3.3 - astro: 2.5.5 + astro: 2.5.7 autoprefixer: 10.4.14_postcss@8.4.23 postcss: 8.4.23 postcss-load-config: 4.0.1_postcss@8.4.23 @@ -182,8 +186,8 @@ packages: - supports-color dev: false - /@astrojs/webapi/2.1.1: - resolution: {integrity: sha512-mHZ7VgPNMeV3TYIw3SGHTKaJosBxA8bTzZ3QhNw509qvCJca4Lkjes8JywimuwTn+TMjEiv7ksNfwRluad3jqA==} + /@astrojs/webapi/2.2.0: + resolution: {integrity: sha512-mHAOApWyjqSe5AQMOUD9rsZJqbMQqe3Wosb1a40JV6Okvyxj1G6GTlthwYadWCymq/lbgwh0PLiY8Fr4eFxtuQ==} dependencies: undici: 5.22.0 dev: false @@ -200,6 +204,11 @@ packages: engines: {node: '>=6.9.0'} dev: false + /@babel/compat-data/7.22.3: + resolution: {integrity: sha512-aNtko9OPOwVESUFp3MZfD8Uzxl7JzSeJpd7npIoxCasU37PFbAQRpKglkaKwlHOyeJdrREpo8TW8ldrkYWwvIQ==} + engines: {node: '>=6.9.0'} + dev: false + /@babel/core/7.21.5: resolution: {integrity: sha512-9M398B/QH5DlfCOTKDZT1ozXr0x8uBEeFd+dJraGUZGiaNpGCDVGCc14hZexsMblw3XxltJ+6kSvogp9J+5a9g==} engines: {node: '>=6.9.0'} @@ -223,6 +232,29 @@ packages: - supports-color dev: false + /@babel/core/7.22.1: + resolution: {integrity: sha512-Hkqu7J4ynysSXxmAahpN1jjRwVJ+NdpraFLIWflgjpVob3KNyK3/tIUc7Q7szed8WMp0JNa7Qtd1E9Oo22F9gA==} + engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': 2.2.1 + '@babel/code-frame': 7.21.4 + '@babel/generator': 7.22.3 + '@babel/helper-compilation-targets': 7.22.1_@babel+core@7.22.1 + '@babel/helper-module-transforms': 7.22.1 + '@babel/helpers': 7.22.3 + '@babel/parser': 7.22.4 + '@babel/template': 7.21.9 + '@babel/traverse': 7.22.4 + '@babel/types': 7.22.4 + convert-source-map: 1.9.0 + debug: 4.3.4 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: false + /@babel/generator/7.21.5: resolution: {integrity: sha512-SrKK/sRv8GesIW1bDagf9cCG38IOMYZusoe1dfg0D8aiUe3Amvoj1QtjTPAWcfrZFvIwlleLb0gxzQidL9w14w==} engines: {node: '>=6.9.0'} @@ -233,6 +265,16 @@ packages: jsesc: 2.5.2 dev: false + /@babel/generator/7.22.3: + resolution: {integrity: sha512-C17MW4wlk//ES/CJDL51kPNwl+qiBQyN7b9SKyVp11BLGFeSPoVaHrv+MNt8jwQFhQWowW88z1eeBx3pFz9v8A==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.22.4 + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.18 + jsesc: 2.5.2 + dev: false + /@babel/helper-annotate-as-pure/7.18.6: resolution: {integrity: sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==} engines: {node: '>=6.9.0'} @@ -254,24 +296,43 @@ packages: semver: 6.3.0 dev: false + /@babel/helper-compilation-targets/7.22.1_@babel+core@7.22.1: + resolution: {integrity: sha512-Rqx13UM3yVB5q0D/KwQ8+SPfX/+Rnsy1Lw1k/UwOC4KC6qrzIQoY3lYnBu5EHKBlEHHcj0M0W8ltPSkD8rqfsQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/compat-data': 7.22.3 + '@babel/core': 7.22.1 + '@babel/helper-validator-option': 7.21.0 + browserslist: 4.21.5 + lru-cache: 5.1.1 + semver: 6.3.0 + dev: false + /@babel/helper-environment-visitor/7.21.5: resolution: {integrity: sha512-IYl4gZ3ETsWocUWgsFZLM5i1BYx9SoemminVEXadgLBa9TdeorzgLKm8wWLA6J1N/kT3Kch8XIk1laNzYoHKvQ==} engines: {node: '>=6.9.0'} dev: false + /@babel/helper-environment-visitor/7.22.1: + resolution: {integrity: sha512-Z2tgopurB/kTbidvzeBrc2To3PUP/9i5MUe+fU6QJCQDyPwSH2oRapkLw3KGECDYSjhQZCNxEvNvZlLw8JjGwA==} + engines: {node: '>=6.9.0'} + dev: false + /@babel/helper-function-name/7.21.0: resolution: {integrity: sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/template': 7.20.7 - '@babel/types': 7.21.5 + '@babel/template': 7.21.9 + '@babel/types': 7.22.4 dev: false /@babel/helper-hoist-variables/7.18.6: resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.21.5 + '@babel/types': 7.22.4 dev: false /@babel/helper-module-imports/7.21.4: @@ -297,6 +358,22 @@ packages: - supports-color dev: false + /@babel/helper-module-transforms/7.22.1: + resolution: {integrity: sha512-dxAe9E7ySDGbQdCVOY/4+UcD8M9ZFqZcZhSPsPacvCG4M+9lwtDDQfI2EoaSvmf7W/8yCBkGU0m7Pvt1ru3UZw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-environment-visitor': 7.22.1 + '@babel/helper-module-imports': 7.21.4 + '@babel/helper-simple-access': 7.21.5 + '@babel/helper-split-export-declaration': 7.18.6 + '@babel/helper-validator-identifier': 7.19.1 + '@babel/template': 7.21.9 + '@babel/traverse': 7.22.4 + '@babel/types': 7.22.4 + transitivePeerDependencies: + - supports-color + dev: false + /@babel/helper-plugin-utils/7.21.5: resolution: {integrity: sha512-0WDaIlXKOX/3KfBK/dwP1oQGiPh6rjMkT7HIRv7i5RR2VUMwrx5ZL0dwBkKx7+SW1zwNdgjHd34IMk5ZjTeHVg==} engines: {node: '>=6.9.0'} @@ -342,6 +419,17 @@ packages: - supports-color dev: false + /@babel/helpers/7.22.3: + resolution: {integrity: sha512-jBJ7jWblbgr7r6wYZHMdIqKc73ycaTcCaWRq4/2LpuPHcx7xMlZvpGQkOYc9HeSjn6rcx15CPlgVcBtZ4WZJ2w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.21.9 + '@babel/traverse': 7.22.4 + '@babel/types': 7.22.4 + transitivePeerDependencies: + - supports-color + dev: false + /@babel/highlight/7.18.6: resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==} engines: {node: '>=6.9.0'} @@ -356,7 +444,15 @@ packages: engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.21.5 + '@babel/types': 7.22.4 + dev: false + + /@babel/parser/7.22.4: + resolution: {integrity: sha512-VLLsx06XkEYqBtE5YGPwfSGwfrjnyPP5oiGty3S8pQLFDFLaS8VwWSIxkTXpcvr5zeYLE6+MBNl2npl/YnfofA==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.22.4 dev: false /@babel/plugin-syntax-jsx/7.21.4_@babel+core@7.21.5: @@ -369,6 +465,16 @@ packages: '@babel/helper-plugin-utils': 7.21.5 dev: false + /@babel/plugin-syntax-jsx/7.21.4_@babel+core@7.22.1: + resolution: {integrity: sha512-5hewiLct5OKyh6PLKEYaFclcqtIgCb6bmELouxjF6up5q3Sov7rOayW4RwhbaBL0dit8rA80GNfY+UuDp2mBbQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.1 + '@babel/helper-plugin-utils': 7.21.5 + dev: false + /@babel/plugin-transform-react-jsx/7.21.5_@babel+core@7.21.5: resolution: {integrity: sha512-ELdlq61FpoEkHO6gFRpfj0kUgSwQTGoaEU8eMRoS8Dv3v6e7BjEAj5WMtIBRdHUeAioMhKP5HyxNzNnP+heKbA==} engines: {node: '>=6.9.0'} @@ -383,6 +489,20 @@ packages: '@babel/types': 7.21.5 dev: false + /@babel/plugin-transform-react-jsx/7.21.5_@babel+core@7.22.1: + resolution: {integrity: sha512-ELdlq61FpoEkHO6gFRpfj0kUgSwQTGoaEU8eMRoS8Dv3v6e7BjEAj5WMtIBRdHUeAioMhKP5HyxNzNnP+heKbA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.1 + '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/helper-module-imports': 7.21.4 + '@babel/helper-plugin-utils': 7.21.5 + '@babel/plugin-syntax-jsx': 7.21.4_@babel+core@7.22.1 + '@babel/types': 7.21.5 + dev: false + /@babel/template/7.20.7: resolution: {integrity: sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==} engines: {node: '>=6.9.0'} @@ -392,18 +512,45 @@ packages: '@babel/types': 7.21.5 dev: false + /@babel/template/7.21.9: + resolution: {integrity: sha512-MK0X5k8NKOuWRamiEfc3KEJiHMTkGZNUjzMipqCGDDc6ijRl/B7RGSKVGncu4Ro/HdyzzY6cmoXuKI2Gffk7vQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.21.4 + '@babel/parser': 7.22.4 + '@babel/types': 7.22.4 + dev: false + /@babel/traverse/7.21.5: resolution: {integrity: sha512-AhQoI3YjWi6u/y/ntv7k48mcrCXmus0t79J9qPNlk/lAsFlCiJ047RmbfMOawySTHtywXhbXgpx/8nXMYd+oFw==} engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.21.4 - '@babel/generator': 7.21.5 + '@babel/generator': 7.22.3 '@babel/helper-environment-visitor': 7.21.5 '@babel/helper-function-name': 7.21.0 '@babel/helper-hoist-variables': 7.18.6 '@babel/helper-split-export-declaration': 7.18.6 - '@babel/parser': 7.21.5 - '@babel/types': 7.21.5 + '@babel/parser': 7.22.4 + '@babel/types': 7.22.4 + debug: 4.3.4 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: false + + /@babel/traverse/7.22.4: + resolution: {integrity: sha512-Tn1pDsjIcI+JcLKq1AVlZEr4226gpuAQTsLMorsYg9tuS/kG7nuwwJ4AB8jfQuEgb/COBwR/DqJxmoiYFu5/rQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.21.4 + '@babel/generator': 7.22.3 + '@babel/helper-environment-visitor': 7.22.1 + '@babel/helper-function-name': 7.21.0 + '@babel/helper-hoist-variables': 7.18.6 + '@babel/helper-split-export-declaration': 7.18.6 + '@babel/parser': 7.22.4 + '@babel/types': 7.22.4 debug: 4.3.4 globals: 11.12.0 transitivePeerDependencies: @@ -419,6 +566,15 @@ packages: to-fast-properties: 2.0.0 dev: false + /@babel/types/7.22.4: + resolution: {integrity: sha512-Tx9x3UBHTTsMSW85WB2kphxYQVvrZ/t1FxD88IpSgIjiUJlCm9z+xWIDwyo1vffTwSqteqyznB8ZE9vYYk16zA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.21.5 + '@babel/helper-validator-identifier': 7.19.1 + to-fast-properties: 2.0.0 + dev: false + /@colors/colors/1.5.0: resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} engines: {node: '>=0.1.90'} @@ -810,6 +966,7 @@ packages: picocolors: 1.0.0 tiny-glob: 0.2.9 tslib: 2.5.0 + dev: false /@playwright/test/1.34.3: resolution: {integrity: sha512-zPLef6w9P6T/iT6XDYG3mvGOqOyb6eHaV9XtkunYs0+OzxBtrPAAaHotc0X+PJ00WPPnLfFBTl7mf45Mn8DBmw==} @@ -918,8 +1075,8 @@ packages: /@types/babel__core/7.20.0: resolution: {integrity: sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ==} dependencies: - '@babel/parser': 7.21.5 - '@babel/types': 7.21.5 + '@babel/parser': 7.22.4 + '@babel/types': 7.22.4 '@types/babel__generator': 7.6.4 '@types/babel__template': 7.4.1 '@types/babel__traverse': 7.18.5 @@ -928,20 +1085,20 @@ packages: /@types/babel__generator/7.6.4: resolution: {integrity: sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==} dependencies: - '@babel/types': 7.21.5 + '@babel/types': 7.22.4 dev: false /@types/babel__template/7.4.1: resolution: {integrity: sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==} dependencies: - '@babel/parser': 7.21.5 - '@babel/types': 7.21.5 + '@babel/parser': 7.22.4 + '@babel/types': 7.22.4 dev: false /@types/babel__traverse/7.18.5: resolution: {integrity: sha512-enCvTL8m/EHS/zIvJno9nE+ndYPh1/oNFzRYRmtUqJICG2VnCSBzMLW5VN2KCQU91f23tsNKR8v7VJJQMatl7Q==} dependencies: - '@babel/types': 7.21.5 + '@babel/types': 7.22.4 dev: false /@types/css-tree/2.3.1: @@ -1186,8 +1343,8 @@ packages: terser: 5.17.6 dev: false - /astro/2.5.5: - resolution: {integrity: sha512-VRwnlfRtPALeOxfE4e7To5Vlu9pGwlTRWN1zkn1QTizwfg0rLirFTm6t2MCG/fUhlu/p3QO9tz8SpAIyDq53/Q==} + /astro/2.5.7: + resolution: {integrity: sha512-qYKMIN4tXAOAsm10vU4f+Q7LfC05JmEbQiJmSBqIEhp+wnQcEUFkGLrHMSsps3oBzMtjErUdDDW5tGJcn5eVlA==} engines: {node: '>=16.12.0', npm: '>=6.14.0'} hasBin: true peerDependencies: @@ -1198,13 +1355,13 @@ packages: dependencies: '@astrojs/compiler': 1.4.2 '@astrojs/language-server': 1.0.0 - '@astrojs/markdown-remark': 2.2.1_astro@2.5.5 + '@astrojs/markdown-remark': 2.2.1_astro@2.5.7 '@astrojs/telemetry': 2.1.1 - '@astrojs/webapi': 2.1.1 - '@babel/core': 7.21.5 + '@astrojs/webapi': 2.2.0 + '@babel/core': 7.22.1 '@babel/generator': 7.21.5 '@babel/parser': 7.21.5 - '@babel/plugin-transform-react-jsx': 7.21.5_@babel+core@7.21.5 + '@babel/plugin-transform-react-jsx': 7.21.5_@babel+core@7.22.1 '@babel/traverse': 7.21.5 '@babel/types': 7.21.5 '@types/babel__core': 7.20.0 @@ -1754,6 +1911,7 @@ packages: path-key: 3.1.1 shebang-command: 2.0.0 which: 2.0.2 + dev: false /crypto-random-string/4.0.0: resolution: {integrity: sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==} @@ -1872,6 +2030,7 @@ packages: /define-lazy-prop/2.0.0: resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} engines: {node: '>=8'} + dev: false /delayed-stream/1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} @@ -2421,6 +2580,7 @@ packages: /globalyzer/0.1.0: resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==} + dev: false /globby/11.1.0: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} @@ -2447,6 +2607,7 @@ packages: /globrex/0.1.2: resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} + dev: false /got/12.6.0: resolution: {integrity: sha512-WTcaQ963xV97MN3x0/CbAriXFZcXCfgxVp91I+Ze6pawQOa7SgzwSx2zIJJsX+kTajMnVs0xcFD1TxZKFqhdnQ==} @@ -2790,6 +2951,7 @@ packages: resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} engines: {node: '>=8'} hasBin: true + dev: false /is-docker/3.0.0: resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} @@ -2877,6 +3039,7 @@ packages: engines: {node: '>=8'} dependencies: is-docker: 2.2.1 + dev: false /is-yarn-global/0.4.1: resolution: {integrity: sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==} @@ -2885,6 +3048,7 @@ packages: /isexe/2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + dev: false /jackspeak/2.1.1: resolution: {integrity: sha512-juf9stUEwUaILepraGOWIJTLwg48bUnBmRqd2ln2Os1sW987zeoj/hzhbvRB95oMuS2ZTpjULmdwHNX4rzZIZw==} @@ -4042,6 +4206,7 @@ packages: define-lazy-prop: 2.0.0 is-docker: 2.2.1 is-wsl: 2.2.0 + dev: false /openai/3.2.1: resolution: {integrity: sha512-762C9BNlJPbjjlWZi4WYK9iM2tAVAv0uUp1UmI34vb0CN5T2mjB/qM6RYBmNKMh/dN9fC+bxqPwWJZUTWW052A==} @@ -4209,6 +4374,7 @@ packages: /path-key/3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} + dev: false /path-key/4.0.0: resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} @@ -4399,27 +4565,26 @@ packages: which-pm: 2.0.0 dev: false - /prettier-plugin-astro/0.8.0: - resolution: {integrity: sha512-kt9wk33J7HvFGwFaHb8piwy4zbUmabC8Nu+qCw493jhe96YkpjscqGBPy4nJ9TPy9pd7+kEx1zM81rp+MIdrXg==} + /prettier-plugin-astro/0.10.0: + resolution: {integrity: sha512-dPzop0gKZyVGpTDQmfy+e7FKXC9JT3mlpfYA2diOVz+Ui+QR1U4G/s+OesKl2Hib2JJOtAYJs/l+ovgT0ljlFA==} engines: {node: ^14.15.0 || >=16.0.0, pnpm: '>=7.14.0'} dependencies: - '@astrojs/compiler': 1.4.2 + '@astrojs/compiler': 1.5.0 prettier: 2.8.8 sass-formatter: 0.7.6 - synckit: 0.8.5 - dev: false + dev: true - /prettier-plugin-astro/0.9.1: - resolution: {integrity: sha512-pYZXSbdq0eElvzoIMArzv1SBn1NUXzopjlcnt6Ql8VW32PjC12NovwBjXJ6rh8qQLi7vF8jNqAbraKW03UPfag==} + /prettier-plugin-astro/0.8.0: + resolution: {integrity: sha512-kt9wk33J7HvFGwFaHb8piwy4zbUmabC8Nu+qCw493jhe96YkpjscqGBPy4nJ9TPy9pd7+kEx1zM81rp+MIdrXg==} engines: {node: ^14.15.0 || >=16.0.0, pnpm: '>=7.14.0'} dependencies: - '@astrojs/compiler': 1.4.2 + '@astrojs/compiler': 1.5.0 prettier: 2.8.8 sass-formatter: 0.7.6 synckit: 0.8.5 - dev: true + dev: false - /prettier-plugin-tailwindcss/0.3.0_lt2urjvx44zpywt7u6o2ilexia: + /prettier-plugin-tailwindcss/0.3.0_pe5dke5lusx3jwzlx77xu7mxju: resolution: {integrity: sha512-009/Xqdy7UmkcTBpwlq7jsViDqXAYSOMLDrHAdTMlVZOrKfM2o9Ci7EMWTMZ7SkKBFTG04UM9F9iM2+4i6boDA==} engines: {node: '>=12.17.0'} peerDependencies: @@ -4472,7 +4637,7 @@ packages: optional: true dependencies: prettier: 2.8.8 - prettier-plugin-astro: 0.9.1 + prettier-plugin-astro: 0.10.0 dev: true /prettier/2.8.8: @@ -4929,10 +5094,12 @@ packages: engines: {node: '>=8'} dependencies: shebang-regex: 3.0.0 + dev: false /shebang-regex/3.0.0: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} + dev: false /shiki/0.14.2: resolution: {integrity: sha512-ltSZlSLOuSY0M0Y75KA+ieRaZ0Trf5Wl3gutE7jzLuIcWxLp5i/uEnLoQWNvgKXQ5OMpGkJnVMRLAuzjc0LJ2A==} @@ -5254,6 +5421,7 @@ packages: dependencies: '@pkgr/utils': 2.3.1 tslib: 2.5.0 + dev: false /tailwindcss/3.3.2: resolution: {integrity: sha512-9jPkMiIBXvPc2KywkraqsUfbfj+dHDb+JPWtSJa9MLFdrPyazI7q6WX2sUrm7R9eVR7qqv3Pas7EvQFzxKnI6w==} @@ -5345,6 +5513,7 @@ packages: dependencies: globalyzer: 0.1.0 globrex: 0.1.2 + dev: false /to-fast-properties/2.0.0: resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} @@ -5388,6 +5557,7 @@ packages: /tslib/2.5.0: resolution: {integrity: sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==} + dev: false /tuf-js/1.1.4: resolution: {integrity: sha512-Lw2JRM3HTYhEtQJM2Th3aNCPbnXirtWMl065BawwmM2pX6XStH/ZO9e8T2hh0zk/HUa+1i6j+Lv6eDitKTau6A==} @@ -5770,6 +5940,7 @@ packages: hasBin: true dependencies: isexe: 2.0.0 + dev: false /which/3.0.0: resolution: {integrity: sha512-nla//68K9NU6yRiwDY/Q8aU6siKlSs64aEC7+IV56QoAuyQT2ovsJcgGYGyqMOmI/CGN1BOR6mM5EN0FBO+zyQ==} diff --git a/public/images/partners/apollo-workshop.png b/public/images/partners/apollo-workshop.png new file mode 100644 index 000000000..788f40446 Binary files /dev/null and b/public/images/partners/apollo-workshop.png differ diff --git a/public/jsons/roadmaps/frontend-beginner.json b/public/jsons/roadmaps/frontend-beginner.json deleted file mode 100644 index 529a7d866..000000000 --- a/public/jsons/roadmaps/frontend-beginner.json +++ /dev/null @@ -1 +0,0 @@ -{"mockup":{"controls":{"control":[{"ID":"12464","typeID":"Arrow","zOrder":"0","w":"1","h":"146","measuredW":"150","measuredH":"100","x":"783","y":"1118","properties":{"curvature":"0","leftArrow":"false","rightArrow":"false","color":"40463","p0":{"x":0,"y":0},"p1":{"x":0.5000000000000006,"y":-1.5906276266511649e-18},"p2":{"x":0,"y":145.92702085489077}}},{"ID":"12465","typeID":"Arrow","zOrder":"1","w":"1","h":"71","measuredW":"150","measuredH":"100","x":"779","y":"1510","properties":{"curvature":"0","leftArrow":"false","rightArrow":"false","color":"40463","p0":{"x":0,"y":-0.05210330899694782},"p1":{"x":0.5000000000000007,"y":0},"p2":{"x":0,"y":71}}},{"ID":"12466","typeID":"Arrow","zOrder":"2","w":"87","h":"1","measuredW":"150","measuredH":"100","x":"449","y":"1161","properties":{"curvature":"0","leftArrow":"false","rightArrow":"false","stroke":"dotted","color":"13369344","p0":{"x":87,"y":-0.3333333333334849},"p1":{"x":0.5,"y":0},"p2":{"x":-0.3333333333333144,"y":-0.3333333333334849}}},{"ID":"12467","typeID":"Arrow","zOrder":"3","w":"88","h":"1","measuredW":"150","measuredH":"100","x":"694","y":"1160","properties":{"curvature":"0","leftArrow":"false","rightArrow":"false","color":"40463","p0":{"x":87.60000000000002,"y":-0.3030303030302548},"p1":{"x":0.49999999999999994,"y":0},"p2":{"x":-0.33333333333337123,"y":-0.3030303030302548}}},{"ID":"12468","typeID":"Arrow","zOrder":"4","w":"88","h":"1","measuredW":"150","measuredH":"100","x":"695","y":"988","properties":{"curvature":"0","leftArrow":"false","rightArrow":"false","color":"40463","p0":{"x":87.60000000000002,"y":-0.3030303030302548},"p1":{"x":0.49999999999999994,"y":0},"p2":{"x":-0.33333333333337123,"y":-0.3030303030302548}}},{"ID":"12469","typeID":"Arrow","zOrder":"5","w":"1","h":"73","measuredW":"150","measuredH":"100","x":"666","y":"993","properties":{"curvature":"0","leftArrow":"false","rightArrow":"false","p0":{"x":-0.39999999999997726,"y":-0.3030303030302548},"p1":{"x":0.4999999999999999,"y":0},"p2":{"x":-0.39999999999997726,"y":72.66666666666674},"stroke":"dotted","color":"40463"}},{"ID":"12470","typeID":"Arrow","zOrder":"6","w":"98","h":"1","measuredW":"150","measuredH":"100","x":"1026","y":"1079","properties":{"curvature":"0","leftArrow":"false","rightArrow":"false","color":"10027263","p0":{"x":97.60000000000002,"y":-0.3030303030302548},"p1":{"x":0.5,"y":0},"p2":{"x":-0.4545454545454959,"y":-0.30303030303031164},"stroke":"dotted"}},{"ID":"12471","typeID":"Arrow","zOrder":"7","w":"98","h":"1","measuredW":"150","measuredH":"100","x":"784","y":"1079","properties":{"curvature":"0","leftArrow":"false","rightArrow":"false","color":"10027263","p0":{"x":97.60000000000002,"y":-0.3030303030302548},"p1":{"x":0.5,"y":0},"p2":{"x":-0.4545454545454959,"y":-0.30303030303031164}}},{"ID":"12472","typeID":"Arrow","zOrder":"8","w":"1","h":"73","measuredW":"150","measuredH":"100","x":"666","y":"831","properties":{"curvature":"0","leftArrow":"false","rightArrow":"false","p0":{"x":-0.39999999999997726,"y":-0.3030303030302548},"p1":{"x":0.4999999999999999,"y":0},"p2":{"x":-0.39999999999997726,"y":72.66666666666674},"stroke":"dotted","color":"40463"}},{"ID":"12473","typeID":"Arrow","zOrder":"9","w":"131","h":"1","measuredW":"150","measuredH":"100","x":"652","y":"714","properties":{"curvature":"0","leftArrow":"false","rightArrow":"false","p0":{"x":131,"y":-0.21212121212124657},"p1":{"x":0.5,"y":0},"p2":{"x":0.3030303030302548,"y":-0.21212121212124657},"color":"40463"}},{"ID":"12474","typeID":"Arrow","zOrder":"10","w":"147","h":"1","measuredW":"150","measuredH":"100","x":"636","y":"584","properties":{"curvature":"0","leftArrow":"false","rightArrow":"false","p0":{"x":147,"y":0},"p1":{"x":0.5010198135198135,"y":-0.0010307153164296314},"p2":{"x":0,"y":0},"color":"40463"}},{"ID":"12475","typeID":"Arrow","zOrder":"11","w":"98","h":"1","measuredW":"150","measuredH":"100","x":"783","y":"824","properties":{"curvature":"0","leftArrow":"false","rightArrow":"false","p0":{"x":97.60000000000002,"y":-0.3030303030302548},"p1":{"x":0.5,"y":0},"p2":{"x":-0.4545454545454959,"y":-0.30303030303031164},"color":"10027263"}},{"ID":"12476","typeID":"Arrow","zOrder":"12","w":"87","h":"1","measuredW":"150","measuredH":"100","x":"695","y":"650","properties":{"curvature":"0","leftArrow":"false","rightArrow":"false","p0":{"x":87,"y":0},"p1":{"x":0.5010198135198135,"y":-0.0010307153164296314},"p2":{"x":-0.2533333333333303,"y":0},"color":"40463"}},{"ID":"12477","typeID":"__group__","zOrder":"13","measuredW":"144","measuredH":"40","w":"144","h":"40","x":"716","y":"403","properties":{"controlName":"ext_link:roadmap.sh/frontend"},"children":{"controls":{"control":[{"ID":"0","typeID":"Label","zOrder":"0","measuredW":"144","measuredH":"40","x":"0","y":"0","properties":{"size":"32","text":"Front-end"}}]}}},{"ID":"12478","typeID":"__group__","zOrder":"14","measuredW":"124","measuredH":"49","w":"124","h":"49","x":"607","y":"624","properties":{"controlName":"102-css"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"124","h":"49","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16776960"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"33","measuredH":"25","x":"45","y":"12","properties":{"size":"17","text":"CSS"}}]}}},{"ID":"12479","typeID":"Canvas","zOrder":"15","w":"324","h":"195","measuredW":"100","measuredH":"70","x":"983","y":"281"},{"ID":"12480","typeID":"Label","zOrder":"16","measuredW":"283","measuredH":"26","x":"1001","y":"300","properties":{"size":"18","text":"For resources and other roadmaps"}},{"ID":"12481","typeID":"__group__","zOrder":"17","measuredW":"172","measuredH":"28","w":"172","h":"28","x":"1001","y":"333","properties":{"controlName":"ext_link:roadmap.sh"},"children":{"controls":{"control":[{"ID":"2","typeID":"Label","zOrder":"0","measuredW":"172","measuredH":"28","x":"0","y":"0","properties":{"size":"20","text":"https://roadmap.sh","color":"10027263"}}]}}},{"ID":"12482","typeID":"__group__","zOrder":"18","measuredW":"282","measuredH":"47","w":"282","h":"47","x":"1001","y":"408","properties":{"controlName":"json:jsons/roadmaps/frontend.json"},"children":{"controls":{"control":[{"ID":"0","typeID":"Canvas","zOrder":"0","w":"282","h":"47","measuredW":"100","measuredH":"70","x":"0","y":"0","properties":{"color":"3355443","borderColor":"3355443"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"203","measuredH":"26","x":"39","y":"11","properties":{"color":"16777215","size":"18","text":"Visit the Detailed Version"}}]}}},{"ID":"12483","typeID":"Label","zOrder":"19","measuredW":"259","measuredH":"26","x":"1001","y":"373","properties":{"color":"4985136","size":"18","text":"Beginner who wants to step up?"}},{"ID":"12484","typeID":"__group__","zOrder":"20","measuredW":"127","measuredH":"50","w":"127","h":"50","x":"605","y":"688","properties":{"controlName":"103-javascript"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"127","h":"50","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16776960"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"81","measuredH":"25","x":"23","y":"13","properties":{"size":"17","text":"JavaScript"}}]}}},{"ID":"12485","typeID":"__group__","zOrder":"21","measuredW":"95","measuredH":"49","w":"95","h":"49","x":"830","y":"799","properties":{"controlName":"100-version-control-systems:basic-usage-of-git"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"95","h":"49","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16776960"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"22","measuredH":"25","x":"37","y":"12","properties":{"size":"17","text":"Git"}}]}}},{"ID":"12486","typeID":"Canvas","zOrder":"22","w":"380","h":"150","measuredW":"100","measuredH":"70","x":"222","y":"310"},{"ID":"12487","typeID":"Label","zOrder":"23","measuredW":"187","measuredH":"32","x":"250","y":"335","properties":{"size":"24","text":"Beginner Version"}},{"ID":"12488","typeID":"__group__","zOrder":"24","measuredW":"213","measuredH":"53","w":"213","h":"53","x":"519","y":"960","properties":{"controlName":"111-pick-a-framework"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"213","h":"53","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16776960"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"168","measuredH":"25","x":"23","y":"14","properties":{"size":"17","text":"Frontend Frameworks"}}]}}},{"ID":"12489","typeID":"__group__","zOrder":"25","measuredW":"98","measuredH":"49","w":"98","h":"49","x":"624","y":"1046","properties":{"controlName":"100-pick-a-framework:react-js"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"98","h":"49","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"47","measuredH":"25","x":"25","y":"12","properties":{"text":"React","size":"17"}}]}}},{"ID":"12490","typeID":"__group__","zOrder":"26","measuredW":"212","measuredH":"50","w":"212","h":"50","x":"839","y":"1053","properties":{"controlName":"114-css-frameworks"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"212","h":"50","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16776960"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"131","measuredH":"25","x":"40","y":"13","properties":{"size":"17","text":"CSS Frameworks"}}]}}},{"ID":"12491","typeID":"__group__","zOrder":"27","measuredW":"99","measuredH":"49","w":"99","h":"49","x":"383","y":"1136","properties":{"controlName":"100-testing-your-apps:jest"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"99","h":"49","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","w":"39","measuredW":"33","measuredH":"25","x":"30","y":"12","properties":{"size":"17","text":"Jest"}}]}}},{"ID":"12492","typeID":"__group__","zOrder":"28","measuredW":"214","measuredH":"49","w":"214","h":"49","x":"517","y":"1136","properties":{"controlName":"115-testing-your-apps"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"214","h":"49","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16776960"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"144","measuredH":"26","x":"35","y":"11","properties":{"size":"18","text":"Testing your Apps"}}]}}},{"ID":"12493","typeID":"__group__","zOrder":"29","measuredW":"100","measuredH":"49","w":"100","h":"49","x":"1079","y":"1055","properties":{"controlName":"100-css-frameworks:js-first:tailwind-css"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"100","h":"49","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"61","measuredH":"25","x":"19","y":"12","properties":{"size":"17","text":"Tailwind"}}]}}},{"ID":"12494","typeID":"Label","zOrder":"30","measuredW":"319","measuredH":"28","x":"250","y":"376","properties":{"color":"4985136","size":"20","text":"This is the trimmed down version of"}},{"ID":"12495","typeID":"Label","zOrder":"31","measuredW":"327","measuredH":"28","x":"250","y":"407","properties":{"color":"4985136","size":"20","text":"the frontend roadmap for beginners."}},{"ID":"12496","typeID":"Arrow","zOrder":"32","w":"1","h":"59","measuredW":"150","measuredH":"100","x":"783","y":"330","properties":{"p0":{"x":0,"y":-0.30303030303031164},"p1":{"x":0.5,"y":0},"p2":{"x":0,"y":58.78787878787875},"curvature":"0","leftArrow":"false","rightArrow":"false","stroke":"dotted","color":"40463"}},{"ID":"12497","typeID":"Arrow","zOrder":"33","w":"1","h":"333","measuredW":"150","measuredH":"100","x":"783","y":"452","properties":{"curvature":"0","leftArrow":"false","rightArrow":"false","p0":{"x":0,"y":-0.06060606060606233},"p1":{"x":0.5000000000000008,"y":-1.5906276266511653e-18},"p2":{"x":0,"y":332.66666666666663},"color":"40463"}},{"ID":"12498","typeID":"__group__","zOrder":"34","measuredW":"125","measuredH":"49","w":"125","h":"49","x":"606","y":"559","properties":{"controlName":"101-html"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"125","h":"49","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16776960"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"48","measuredH":"25","x":"39","y":"12","properties":{"size":"17","text":"HTML"}}]}}},{"ID":"12499","typeID":"Label","zOrder":"35","measuredW":"378","measuredH":"26","x":"837","y":"577","properties":{"color":"4985136","size":"18","text":"You should be able to find an internee or junior"}},{"ID":"12500","typeID":"Label","zOrder":"36","measuredW":"333","measuredH":"26","x":"837","y":"609","properties":{"color":"4985136","size":"18","text":"Frontend developer position at this point."}},{"ID":"12501","typeID":"Label","zOrder":"37","measuredW":"428","measuredH":"26","x":"837","y":"652","properties":{"size":"18","text":"Start applying for jobs and keep following to increase","color":"40463"}},{"ID":"12502","typeID":"Label","zOrder":"38","measuredW":"276","measuredH":"26","x":"837","y":"685","properties":{"size":"18","color":"40463","text":"your chances of finding a position."}},{"ID":"12503","typeID":"Label","zOrder":"39","measuredW":"348","measuredH":"26","x":"206","y":"602","properties":{"color":"4985136","size":"18","text":"When you are following this roadmap, make"}},{"ID":"12504","typeID":"Label","zOrder":"40","measuredW":"338","measuredH":"26","x":"216","y":"635","properties":{"color":"4985136","size":"18","text":"sure to build as many projects as possible"}},{"ID":"12505","typeID":"Label","zOrder":"41","measuredW":"340","measuredH":"26","x":"214","y":"716","properties":{"size":"18","color":"13576743","text":"Click the roadmap nodes for project ideas"}},{"ID":"12506","typeID":"Label","zOrder":"42","measuredW":"145","measuredH":"32","x":"409","y":"558","properties":{"color":"4985136","size":"24","text":"Important Tip"}},{"ID":"12507","typeID":"Label","zOrder":"43","measuredW":"278","measuredH":"26","x":"960","y":"759","properties":{"color":"4985136","size":"18","text":"Create your GitHub profile. Publish"}},{"ID":"12508","typeID":"Label","zOrder":"44","measuredW":"300","measuredH":"26","x":"960","y":"789","properties":{"color":"4985136","size":"18","text":"the projects that you have developed"}},{"ID":"12509","typeID":"Label","zOrder":"45","measuredW":"229","measuredH":"26","x":"960","y":"819","properties":{"color":"4985136","size":"18","text":"so far to your GitHub profile."}},{"ID":"12510","typeID":"Label","zOrder":"46","measuredW":"249","measuredH":"26","x":"960","y":"859","properties":{"size":"18","text":"Use git for your future projects.","color":"10027263"}},{"ID":"12511","typeID":"Arrow","zOrder":"47","w":"84","h":"1","measuredW":"150","measuredH":"100","x":"696","y":"923","properties":{"curvature":"0","leftArrow":"false","rightArrow":"false","color":"40463","p0":{"x":83.60000000000002,"y":-0.3030303030302548},"p1":{"x":0.5,"y":0},"p2":{"x":0,"y":-0.3030303030302548}}},{"ID":"12512","typeID":"__group__","zOrder":"48","measuredW":"211","measuredH":"53","w":"211","h":"53","x":"520","y":"896","properties":{"controlName":"107-package-managers"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"211","h":"53","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16776960"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"149","measuredH":"25","x":"31","y":"14","properties":{"text":"Package Managers","size":"17"}}]}}},{"ID":"12513","typeID":"__group__","zOrder":"49","measuredW":"103","measuredH":"49","w":"103","h":"49","x":"615","y":"807","properties":{"controlName":"100-package-managers:npm"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"103","h":"49","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","w":"36","measuredW":"34","measuredH":"25","x":"34","y":"12","properties":{"size":"17","text":"npm"}}]}}},{"ID":"12514","typeID":"Arrow","zOrder":"50","w":"1","h":"57","measuredW":"150","measuredH":"100","x":"783","y":"794","properties":{"curvature":"0","leftArrow":"false","rightArrow":"false","p0":{"x":0,"y":-0.06060606060606233},"p1":{"x":0.5000000000000006,"y":-1.590627626651165e-18},"p2":{"x":0,"y":56.66666666666663},"color":"10027263"}},{"ID":"12515","typeID":"Arrow","zOrder":"51","w":"1","h":"184","measuredW":"150","measuredH":"100","x":"783","y":"864","properties":{"curvature":"0","leftArrow":"false","rightArrow":"false","color":"40463","p0":{"x":0,"y":0},"p1":{"x":0.5000000000000007,"y":-1.5906276266511654e-18},"p2":{"x":0,"y":184}}},{"ID":"12516","typeID":"Arrow","zOrder":"52","w":"1","h":"44","measuredW":"150","measuredH":"100","x":"783","y":"1060","properties":{"curvature":"0","leftArrow":"false","rightArrow":"false","color":"10027263","p0":{"x":0,"y":0.33333333333325754},"p1":{"x":0.5000000000000006,"y":0},"p2":{"x":0,"y":44}}},{"ID":"12517","typeID":"Label","zOrder":"53","measuredW":"291","measuredH":"26","x":"184","y":"896","properties":{"color":"4985136","size":"18","text":"npm should be a quick one. Just get"}},{"ID":"12518","typeID":"Label","zOrder":"54","measuredW":"272","measuredH":"26","x":"203","y":"927","properties":{"color":"4985136","size":"18","text":"the basic idea and jump to React."}},{"ID":"12519","typeID":"Label","zOrder":"55","measuredW":"266","measuredH":"26","x":"209","y":"973","properties":{"size":"18","color":"40463","text":"Create some projects with React"}},{"ID":"12520","typeID":"Label","zOrder":"56","measuredW":"179","measuredH":"26","x":"296","y":"1003","properties":{"size":"18","color":"40463","text":"involving API calls etc."}},{"ID":"12521","typeID":"Label","zOrder":"57","measuredW":"242","measuredH":"26","x":"312","y":"665","properties":{"color":"4985136","size":"18","text":"for each node of the roadmap"}},{"ID":"12522","typeID":"Label","zOrder":"58","measuredW":"427","measuredH":"26","x":"841","y":"979","properties":{"color":"4985136","size":"18","text":"There are several CSS frameworks. You can pick any."}},{"ID":"12523","typeID":"Label","zOrder":"59","measuredW":"390","measuredH":"26","x":"841","y":"1009","properties":{"color":"4985136","size":"18","text":"Tailwind would be my personal recommendation."}},{"ID":"12524","typeID":"Label","zOrder":"69","measuredW":"532","measuredH":"26","x":"508","y":"1329","properties":{"color":"4985136","size":"18","text":"At this point, you should have enough knowledge to find a junior to"}},{"ID":"12525","typeID":"Label","zOrder":"70","measuredW":"529","measuredH":"26","x":"508","y":"1359","properties":{"color":"4985136","size":"18","text":"mid-level (maybe even senior) frontend developer position at any"}},{"ID":"12526","typeID":"Label","zOrder":"71","measuredW":"441","measuredH":"26","x":"508","y":"1389","properties":{"color":"4985136","size":"18","text":"company (depending on the depth of your knowledge)."}},{"ID":"12527","typeID":"Label","zOrder":"72","measuredW":"116","measuredH":"32","x":"508","y":"1285","properties":{"color":"4985136","size":"24","text":"Job Ready"}},{"ID":"12528","typeID":"Label","zOrder":"60","measuredW":"323","measuredH":"26","x":"841","y":"1147","properties":{"color":"4985136","size":"18","text":"May not be required for a junior position"}},{"ID":"12529","typeID":"Label","zOrder":"73","measuredW":"536","measuredH":"26","x":"508","y":"1431","properties":{"size":"18","color":"10027263","text":"Deepen your pool of knowledge and keep building projects till you"}},{"ID":"12530","typeID":"Label","zOrder":"74","measuredW":"360","measuredH":"26","x":"508","y":"1460","properties":{"size":"18","color":"10027263","text":"find a job. Your job will teach you a lot as well."}},{"ID":"12531","typeID":"Arrow","zOrder":"61","w":"2","h":"89","measuredW":"150","measuredH":"100","x":"778","y":"1663","properties":{"curvature":"0","leftArrow":"false","p0":{"x":1,"y":88},"p1":{"x":0.4072427393330943,"y":0.00953746862674794},"p2":{"x":1,"y":0},"rightArrow":"false","stroke":"dotted","color":"40463"}},{"ID":"12532","typeID":"TextArea","zOrder":"62","w":"499","h":"118","measuredW":"200","measuredH":"140","x":"529","y":"1576"},{"ID":"12533","typeID":"Label","zOrder":"63","measuredW":"431","measuredH":"25","x":"563","y":"1595","properties":{"size":"17","text":"Look at the detailed version for what else you don’t know"}},{"ID":"12534","typeID":"__group__","zOrder":"64","measuredW":"430","measuredH":"44","w":"430","h":"44","x":"564","y":"1630","properties":{"controlName":"json:jsons/roadmaps/frontend.json"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"430","h":"44","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"149","measuredH":"25","x":"140","y":"9","properties":{"size":"17","text":"Frontend Roadmap"}}]}}},{"ID":"12535","typeID":"Arrow","zOrder":"65","w":"2","h":"89","measuredW":"150","measuredH":"100","x":"821","y":"1730","properties":{"curvature":"0","leftArrow":"false","p0":{"x":1,"y":88},"p1":{"x":0.4072427393330943,"y":0.00953746862674794},"p2":{"x":1,"y":0},"rightArrow":"false","stroke":"dotted","color":"16777215"}},{"ID":"12536","typeID":"Arrow","zOrder":"66","w":"2","h":"89","measuredW":"150","measuredH":"100","x":"169","y":"1255","properties":{"curvature":"0","leftArrow":"false","p0":{"x":1,"y":88},"p1":{"x":0.4072427393330943,"y":0.00953746862674794},"p2":{"x":1,"y":0},"rightArrow":"false","stroke":"dotted","color":"16777215"}},{"ID":"12537","typeID":"Arrow","zOrder":"67","w":"2","h":"89","measuredW":"150","measuredH":"100","x":"1326","y":"1311","properties":{"curvature":"0","leftArrow":"false","p0":{"x":1,"y":88},"p1":{"x":0.4072427393330943,"y":0.00953746862674794},"p2":{"x":1,"y":0},"rightArrow":"false","stroke":"dotted","color":"16777215"}},{"ID":"12544","typeID":"TextArea","zOrder":"68","w":"613","h":"246","measuredW":"200","measuredH":"140","x":"476","y":"1263"}]},"attributes":{"name":"New Wireframe 1 copy","order":1000022.7455786733,"parentID":null,"notes":""},"branchID":"Master","resourceID":"8024860B-B61F-451D-B579-28AA621BB239","mockupH":"1538","mockupW":"1159","measuredW":"1328","measuredH":"1819","version":"1.0"},"groupOffset":{"x":0,"y":0},"dependencies":[],"projectID":"file:///Users/kamranahmed/Desktop/devops%20roadmap%5C.bmpr"} \ No newline at end of file diff --git a/public/jsons/roadmaps/frontend.json b/public/jsons/roadmaps/frontend.json deleted file mode 100644 index 8d10a9832..000000000 --- a/public/jsons/roadmaps/frontend.json +++ /dev/null @@ -1 +0,0 @@ -{"mockup":{"controls":{"control":[{"ID":"12715","typeID":"Arrow","zOrder":"0","w":"309","h":"4","measuredW":"150","measuredH":"100","x":"543","y":"2279","properties":{"color":"2848996","curvature":"0","leftArrow":"false","rightArrow":"false","p0":{"x":309,"y":0},"p1":{"x":0.47704880470480404,"y":0.005193614908729892},"p2":{"x":0.25353038260061567,"y":3.4362035980902874}}},{"ID":"12716","typeID":"Arrow","zOrder":"1","w":"179","h":"123","measuredW":"150","measuredH":"100","x":"537","y":"2136","properties":{"color":"2848996","curvature":"0","leftArrow":"false","rightArrow":"false","p0":{"x":-0.2145043524983521,"y":123.4387467621832},"p1":{"x":0.5230101676333169,"y":-0.19478326314466354},"p2":{"x":179,"y":0}}},{"ID":"12717","typeID":"Arrow","zOrder":"2","w":"65","h":"2","measuredW":"150","measuredH":"100","x":"1156","y":"2631","properties":{"color":"2848996","curvature":"-1","leftArrow":"false","p0":{"x":0,"y":0},"p1":{"x":0.4807692307692308,"y":-0.01923076923076923},"p2":{"x":64,"y":1},"rightArrow":"false","stroke":"dotted"}},{"ID":"12718","typeID":"Arrow","zOrder":"3","w":"101","h":"39","measuredW":"150","measuredH":"100","x":"955","y":"2481","properties":{"color":"2848996","curvature":"0","leftArrow":"false","rightArrow":"false","stroke":"dotted","p0":{"x":101.53298940730701,"y":-0.4603981095092422},"p1":{"x":0.5036496350364975,"y":0.06360792492179564},"p2":{"x":0.4884249128083411,"y":38.51393390979774}}},{"ID":"12719","typeID":"Arrow","zOrder":"4","w":"122","h":"32","measuredW":"150","measuredH":"100","x":"665","y":"3078","properties":{"color":"2848996","curvature":"0","direction":"bottom","leftArrow":"false","rightArrow":"false","stroke":"dotted","p0":{"x":-0.2570801773204039,"y":0.27390737805444587},"p1":{"x":0.490691474468782,"y":0.06808089415982024},"p2":{"x":121.64515133802809,"y":32.10715730089032}}},{"ID":"12720","typeID":"Arrow","zOrder":"5","w":"180","h":"369","measuredW":"150","measuredH":"100","x":"980","y":"2710","properties":{"color":"2848996","leftArrow":"false","rightArrow":"false","stroke":"dotted","p0":{"x":180.33312546195043,"y":369.1629038835017},"p1":{"x":0.5311058790594242,"y":0.05504224965971112},"p2":{"x":0.024041521385697706,"y":0.016603653832135024}}},{"ID":"12721","typeID":"Arrow","zOrder":"6","w":"91","h":"44","measuredW":"150","measuredH":"100","x":"1133","y":"2428","properties":{"color":"2848996","curvature":"0","direction":"bottom","leftArrow":"false","rightArrow":"false","stroke":"dotted","p0":{"x":91.2836149319719,"y":-0.42601596895428884},"p1":{"x":0.4807260155574767,"y":0.1446845289541901},"p2":{"x":0.03815966742740784,"y":43.87863921953385}}},{"ID":"12722","typeID":"Arrow","zOrder":"7","w":"1","h":"464","measuredW":"150","measuredH":"100","x":"564","y":"2959","properties":{"color":"2848996","curvature":"0","leftArrow":"false","rightArrow":"false","p0":{"x":0,"y":0},"p1":{"x":0.5232912494558118,"y":0.0013060513713539397},"p2":{"x":0,"y":464.4848484848485}}},{"ID":"12723","typeID":"Arrow","zOrder":"8","w":"159","h":"4","measuredW":"150","measuredH":"100","x":"665","y":"3060","properties":{"color":"2848996","curvature":"0","leftArrow":"false","rightArrow":"false","stroke":"dotted","p0":{"x":0.44614540796908386,"y":3.8064134624410144},"p1":{"x":0.4319942611190816,"y":-0.006169296987087544},"p2":{"x":159.7751756755747,"y":0}}},{"ID":"12724","typeID":"Arrow","zOrder":"9","w":"142","h":"44","measuredW":"150","measuredH":"100","x":"648","y":"3011","properties":{"color":"2848996","curvature":"0","direction":"bottom","leftArrow":"false","rightArrow":"false","stroke":"dotted","p0":{"x":-0.2570801773204039,"y":43.273907378054446},"p1":{"x":0.4540886815248379,"y":-0.08069525981073665},"p2":{"x":142,"y":0}}},{"ID":"12725","typeID":"Arrow","zOrder":"10","w":"2","h":"89","measuredW":"150","measuredH":"100","x":"564","y":"3470","properties":{"color":"2848996","curvature":"0","leftArrow":"false","p0":{"x":1,"y":88},"p1":{"x":0.4072427393330943,"y":0.00953746862674794},"p2":{"x":1,"y":0},"rightArrow":"false","stroke":"dotted"}},{"ID":"12726","typeID":"__group__","zOrder":"11","measuredW":"248","measuredH":"59","w":"248","h":"59","x":"434","y":"3031","properties":{"controlName":"122-desktop-applications"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"241","h":"50","measuredW":"200","measuredH":"140","x":"7","y":"9","properties":{"color":"16776960"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"162","measuredH":"25","x":"47","y":"22","properties":{"size":"17","text":"Desktop Applications"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"0","y":"0","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"0","y":"0","properties":{"color":"10066329","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12727","typeID":"__group__","zOrder":"12","measuredW":"196","measuredH":"41","w":"196","h":"41","x":"775","y":"2994","properties":{"controlName":"100-desktop-applications:electron"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"188","h":"41","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","w":"69","measuredW":"65","measuredH":"25","x":"63","y":"8","properties":{"size":"17","text":"Electron"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"172","y":"7","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"172","y":"7","properties":{"color":"10027263","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12728","typeID":"__group__","zOrder":"13","measuredW":"221","measuredH":"50","w":"221","h":"50","x":"444","y":"3227","properties":{"controlName":"123-bonus-content"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"210","h":"50","measuredW":"200","measuredH":"140","x":"11","y":"0","properties":{"color":"16776960"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"115","measuredH":"25","x":"58","y":"12","properties":{"size":"17","text":"Bonus Content"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"0","y":"13","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"0","y":"13","properties":{"color":"10066329","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12729","typeID":"__group__","zOrder":"14","measuredW":"196","measuredH":"41","w":"196","h":"41","x":"775","y":"3040","properties":{"controlName":"101-desktop-applications:tauri"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"188","h":"41","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"38","measuredH":"25","x":"75","y":"8","properties":{"size":"17","text":"Tauri"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"172","y":"8","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"172","y":"8","properties":{"icon":{"ID":"check-circle","size":"small"},"color":"40463"}}]}}},{"ID":"12730","typeID":"Arrow","zOrder":"15","w":"237","h":"128","measuredW":"150","measuredH":"100","x":"655","y":"2828","properties":{"color":"2848996","leftArrow":"false","rightArrow":"false","p0":{"x":236.93170111364998,"y":0.019905173764982464},"p1":{"x":0.4776994561390996,"y":0.17651148133814792},"p2":{"x":0.11074525562162307,"y":126.11937517609203}}},{"ID":"12731","typeID":"Arrow","zOrder":"16","w":"1","h":"105","measuredW":"150","measuredH":"100","x":"910","y":"2711","properties":{"color":"2848996","curvature":"0","leftArrow":"false","rightArrow":"false","p0":{"x":1,"y":105.13396175095886},"p1":{"x":0.47704880470480404,"y":0.005193614908729857},"p2":{"x":1,"y":0}}},{"ID":"12732","typeID":"Arrow","zOrder":"17","w":"120","h":"182","measuredW":"150","measuredH":"100","x":"1040","y":"2705","properties":{"color":"2848996","curvature":"0","leftArrow":"false","rightArrow":"false","stroke":"dotted","p0":{"x":120,"y":182},"p1":{"x":0.5641506862188896,"y":0.10909777122517159},"p2":{"x":0.40915526260198476,"y":0.23807505235299686}}},{"ID":"12733","typeID":"Arrow","zOrder":"18","w":"141","h":"261","measuredW":"150","measuredH":"100","x":"1010","y":"2711","properties":{"color":"2848996","leftArrow":"false","rightArrow":"false","stroke":"dotted","p0":{"x":141,"y":261},"p1":{"x":0.5842350949114499,"y":0.06027644608497023},"p2":{"x":-0.3468130306484909,"y":0.38926871100329663}}},{"ID":"12734","typeID":"Arrow","zOrder":"19","w":"164","h":"305","measuredW":"150","measuredH":"100","x":"993","y":"2718","properties":{"color":"2848996","leftArrow":"false","rightArrow":"false","stroke":"dotted","p0":{"x":163.5,"y":305},"p1":{"x":0.5311058790594241,"y":0.05504224965971115},"p2":{"x":-0.2625955919362468,"y":-0.45953763034685835}}},{"ID":"12735","typeID":"Arrow","zOrder":"20","w":"112","h":"38","measuredW":"150","measuredH":"100","x":"706","y":"2829","properties":{"color":"2848996","curvature":"0","leftArrow":"false","rightArrow":"false","stroke":"dotted","p0":{"x":112.50398196586139,"y":0.4821067591024075},"p1":{"x":0.5064432989690714,"y":-0.10824742268041054},"p2":{"x":0.2446976954972797,"y":37.3892687110033}}},{"ID":"12736","typeID":"Arrow","zOrder":"21","w":"184","h":"318","measuredW":"150","measuredH":"100","x":"733","y":"2388","properties":{"color":"2848996","curvature":"0","leftArrow":"false","rightArrow":"false","p0":{"x":183.53647574825027,"y":318.53383041542565},"p1":{"x":0.4830556042799506,"y":0.1764076477810915},"p2":{"x":0.5384644034102166,"y":0.20955858028401053}}},{"ID":"12737","typeID":"Arrow","zOrder":"22","w":"102","h":"42","measuredW":"150","measuredH":"100","x":"947","y":"2540","properties":{"color":"2848996","leftArrow":"false","rightArrow":"false","stroke":"dotted","p0":{"x":102.31552051484277,"y":41.58416638498966},"p1":{"x":0.4148642429820512,"y":-0.09226875287620818},"p2":{"x":-0.17253775814867822,"y":-0.27715319130265925}}},{"ID":"12738","typeID":"Arrow","zOrder":"23","w":"108","h":"88","measuredW":"150","measuredH":"100","x":"945","y":"2544","properties":{"color":"2848996","leftArrow":"false","rightArrow":"false","stroke":"dotted","p0":{"x":108.64600185032123,"y":88.10644863223888},"p1":{"x":0.41486424298205093,"y":-0.09226875287620795},"p2":{"x":0.38396846335854207,"y":0.05332814417579357}}},{"ID":"12739","typeID":"Arrow","zOrder":"24","w":"1","h":"105","measuredW":"150","measuredH":"100","x":"918","y":"2280","properties":{"color":"2848996","curvature":"0","leftArrow":"false","rightArrow":"false","p0":{"x":1,"y":105.13396175095886},"p1":{"x":0.47704880470480404,"y":0.005193614908729857},"p2":{"x":1,"y":0}}},{"ID":"12740","typeID":"Arrow","zOrder":"25","w":"2","h":"235","measuredW":"150","measuredH":"100","x":"402","y":"1775","properties":{"color":"2848996","leftArrow":"false","rightArrow":"false","stroke":"dotted","p0":{"x":-0.260934347128682,"y":-0.43825342894501773},"p1":{"x":0.43339050633562626,"y":0.007133769851020942},"p2":{"x":-0.260934347128682,"y":234.2072671834119}}},{"ID":"12741","typeID":"Arrow","zOrder":"26","w":"413","h":"47","measuredW":"150","measuredH":"100","x":"433","y":"1713","properties":{"color":"2848996","leftArrow":"false","rightArrow":"false","p0":{"x":0.32780458177427363,"y":46.53523054117568},"p1":{"x":0.45894348755426007,"y":0.060942254353755484},"p2":{"x":413.65560916354855,"y":8.213447334918555}}},{"ID":"12742","typeID":"Arrow","zOrder":"27","w":"1","h":"102","measuredW":"150","measuredH":"100","x":"934","y":"1712","properties":{"color":"2848996","leftArrow":"false","rightArrow":"false","stroke":"dotted","p0":{"x":-0.260934347128682,"y":-0.43825342894501773},"p1":{"x":0.4333905063356263,"y":0.007133769851020943},"p2":{"x":-0.260934347128682,"y":101.80609466350643}}},{"ID":"12743","typeID":"Arrow","zOrder":"28","w":"130","h":"172","measuredW":"150","measuredH":"100","x":"990","y":"1610","properties":{"color":"2848996","leftArrow":"false","rightArrow":"false","stroke":"dotted","p0":{"x":0.3622961870130439,"y":0.35400305967436907},"p1":{"x":0.45588235294117685,"y":0.07352941176470515},"p2":{"x":130.38263206538568,"y":172.802027487832}}},{"ID":"12744","typeID":"Arrow","zOrder":"29","w":"103","h":"125","measuredW":"150","measuredH":"100","x":"1012","y":"1610","properties":{"color":"2848996","leftArrow":"false","rightArrow":"false","stroke":"dotted","p0":{"x":0.26045801916006894,"y":0.35400305967436907},"p1":{"x":0.45588235294117674,"y":0.0735294117647052},"p2":{"x":102.90809160734898,"y":124.8997984800103}}},{"ID":"12745","typeID":"Arrow","zOrder":"30","w":"88","h":"71","measuredW":"150","measuredH":"100","x":"1030","y":"1617","properties":{"color":"2848996","leftArrow":"false","rightArrow":"false","stroke":"dotted","p0":{"x":0.052714507779455744,"y":0.19717863222035703},"p1":{"x":0.45588235294117674,"y":0.0735294117647052},"p2":{"x":87.64536183636733,"y":71.36620458669813}}},{"ID":"12746","typeID":"Arrow","zOrder":"31","w":"77","h":"33","measuredW":"150","measuredH":"100","x":"1049","y":"1611","properties":{"color":"2848996","leftArrow":"false","rightArrow":"false","stroke":"dotted","p0":{"x":0.21360611090813109,"y":0.7226381741836576},"p1":{"x":0.34627916069334047,"y":0.08067248794474031},"p2":{"x":76.8571725234226,"y":33.04442138044078}}},{"ID":"12747","typeID":"Arrow","zOrder":"32","w":"83","h":"4","measuredW":"150","measuredH":"100","x":"1044","y":"1593","properties":{"color":"2848996","leftArrow":"false","rightArrow":"false","stroke":"dotted","p0":{"x":-0.260934347128682,"y":-0.43825342894501773},"p1":{"x":0.4310686842693701,"y":-0.01854562577101437},"p2":{"x":82.75126717989497,"y":3.553612219705883}}},{"ID":"12748","typeID":"Arrow","zOrder":"33","w":"250","h":"78","measuredW":"150","measuredH":"100","x":"309","y":"1619","properties":{"color":"2848996","leftArrow":"false","rightArrow":"false","stroke":"dotted","p0":{"x":-0.2179908385617182,"y":77.94665038826247},"p1":{"x":0.46280569852413056,"y":0.04229310438161035},"p2":{"x":250.24223511661944,"y":-0.06555113876129326}}},{"ID":"12749","typeID":"Arrow","zOrder":"34","w":"252","h":"42","measuredW":"150","measuredH":"100","x":"310","y":"1613","properties":{"color":"2848996","leftArrow":"false","rightArrow":"false","stroke":"dotted","p0":{"x":0.1506442759475135,"y":41.51896183847771},"p1":{"x":0.4628056985241305,"y":0.0422931043816104},"p2":{"x":252.39905954407345,"y":-0.4891725128713915}}},{"ID":"12750","typeID":"Arrow","zOrder":"35","w":"238","h":"77","measuredW":"150","measuredH":"100","x":"313","y":"1505","properties":{"color":"2848996","leftArrow":"false","rightArrow":"false","stroke":"dotted","p0":{"x":-0.11208549503413678,"y":0.337734356976398},"p1":{"x":0.46318687896564104,"y":-0.04633065964324165},"p2":{"x":238.03042442956428,"y":76.98130076949064}}},{"ID":"12751","typeID":"Arrow","zOrder":"36","w":"244","h":"41","measuredW":"150","measuredH":"100","x":"303","y":"1549","properties":{"color":"2848996","leftArrow":"false","rightArrow":"false","stroke":"dotted","p0":{"x":0.3074687034015824,"y":0.1340580212702207},"p1":{"x":0.4718266633930761,"y":-0.03283820279891953},"p2":{"x":243.92451908603675,"y":41.19311145654592}}},{"ID":"12752","typeID":"Arrow","zOrder":"37","w":"253","h":"1","measuredW":"150","measuredH":"100","x":"299","y":"1601","properties":{"color":"2848996","leftArrow":"false","rightArrow":"false","stroke":"dotted","p0":{"x":0.20156335987400098,"y":1.4049221436009702},"p1":{"x":0.46937327878105334,"y":0.004541857492184635},"p2":{"x":253.39905954407345,"y":1.5108274871286085}}},{"ID":"12753","typeID":"Arrow","zOrder":"38","w":"135","h":"53","measuredW":"150","measuredH":"100","x":"719","y":"1554","properties":{"color":"2848996","leftArrow":"false","rightArrow":"false","stroke":"dotted","p0":{"x":0.3725435141941489,"y":0.23996336479785896},"p1":{"x":0.4960254372019082,"y":0.07419183889772205},"p2":{"x":135.8674198506036,"y":53.61673283065602}}},{"ID":"12754","typeID":"Arrow","zOrder":"39","w":"119","h":"59","measuredW":"150","measuredH":"100","x":"729","y":"1478","properties":{"color":"2848996","leftArrow":"false","rightArrow":"false","stroke":"dotted","p0":{"x":-0.047010684241513445,"y":58.44770687617847},"p1":{"x":0.5673179018899986,"y":-0.10798471012953849},"p2":{"x":119.02424427805772,"y":-0.40360304771661504}}},{"ID":"12755","typeID":"Arrow","zOrder":"40","w":"89","h":"4","measuredW":"150","measuredH":"100","x":"1033","y":"1489","properties":{"color":"10027263","direction":"bottom","leftArrow":"false","rightArrow":"false","stroke":"dotted","p0":{"x":89.03433282924925,"y":0},"p1":{"x":0.5653893258184628,"y":-0.0013183529417352127},"p2":{"x":0.07305038615209014,"y":3.863193898939471}}},{"ID":"12756","typeID":"Arrow","zOrder":"41","w":"100","h":"41","measuredW":"150","measuredH":"100","x":"1021","y":"1442","properties":{"color":"10027263","direction":"bottom","leftArrow":"false","rightArrow":"false","stroke":"dotted","p0":{"x":99.66569771474019,"y":0.2236946620996605},"p1":{"x":0.4596243377749227,"y":0.08508588858564752},"p2":{"x":-0.24466564443059724,"y":41.28274809737536}}},{"ID":"12757","typeID":"Arrow","zOrder":"42","w":"133","h":"3","measuredW":"150","measuredH":"100","x":"730","y":"1545","properties":{"color":"2848996","leftArrow":"false","rightArrow":"false","stroke":"dotted","p0":{"x":0.3216244302676614,"y":2.5026931357795092},"p1":{"x":0.4743412204498641,"y":-0.008947430290275333},"p2":{"x":133,"y":0}}},{"ID":"12758","typeID":"__group__","zOrder":"43","measuredW":"225","measuredH":"50","w":"225","h":"50","x":"831","y":"1461","properties":{"controlName":"102-build-tools:linters-formatters"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"225","h":"50","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16776960"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"176","measuredH":"25","x":"25","y":"13","properties":{"size":"17","text":"Linters and Formatters"}}]}}},{"ID":"12759","typeID":"__group__","zOrder":"44","measuredW":"155","measuredH":"40","w":"155","h":"40","x":"1104","y":"1428","properties":{"controlName":"100-build-tools:linters-formatters:prettier"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"145","h":"40","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","w":"66","measuredW":"58","measuredH":"25","x":"44","y":"7","properties":{"size":"17","text":"Prettier"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"131","y":"8","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"131","y":"8","properties":{"icon":{"ID":"check-circle","size":"small"},"color":"10066329"}}]}}},{"ID":"12760","typeID":"__group__","zOrder":"45","measuredW":"155","measuredH":"40","w":"155","h":"40","x":"1104","y":"1473","properties":{"controlName":"101-build-tools:linters-formatters:eslint"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"145","h":"40","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","w":"53","measuredW":"51","measuredH":"25","x":"46","y":"7","properties":{"size":"17","text":"ESLint"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"131","y":"8","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"131","y":"8","properties":{"icon":{"ID":"check-circle","size":"small"},"color":"10066329"}}]}}},{"ID":"12761","typeID":"Arrow","zOrder":"46","w":"94","h":"177","measuredW":"150","measuredH":"100","x":"524","y":"1374","properties":{"color":"2848996","direction":"bottom","leftArrow":"false","rightArrow":"false","p0":{"x":-0.342277860619447,"y":-0.4198717504148135},"p1":{"x":0.5100925147182503,"y":-0.13330529857022685},"p2":{"x":94.09354504051441,"y":176.13405802127022}}},{"ID":"12762","typeID":"Arrow","zOrder":"47","w":"144","h":"47","measuredW":"150","measuredH":"100","x":"313","y":"1383","properties":{"color":"2848996","curvature":"-1","leftArrow":"false","rightArrow":"false","stroke":"dotted","p0":{"x":143.59460152843042,"y":-0.36895266648821234},"p1":{"x":0.5621049174944583,"y":-0.05820540185534891},"p2":{"x":-0.11208549503413678,"y":46.16464122682419}}},{"ID":"12763","typeID":"Arrow","zOrder":"48","w":"131","h":"101","measuredW":"150","measuredH":"100","x":"320","y":"1154","properties":{"color":"2848996","curvature":"0","leftArrow":"false","rightArrow":"false","stroke":"dotted","p0":{"x":131.85733129941207,"y":100.92842748572161},"p1":{"x":0.5179188602929944,"y":0.05890610549143938},"p2":{"x":0.46836030653014404,"y":-0.3505709879580081}}},{"ID":"12764","typeID":"Arrow","zOrder":"49","w":"140","h":"56","measuredW":"150","measuredH":"100","x":"314","y":"1208","properties":{"color":"2848996","curvature":"0","leftArrow":"false","rightArrow":"false","stroke":"dotted","p0":{"x":139.22596641392124,"y":56.50887328728595},"p1":{"x":0.5179188602929942,"y":0.0589061054914393},"p2":{"x":-0.3748152660157871,"y":0.3948335924094408}}},{"ID":"12765","typeID":"Arrow","zOrder":"50","w":"167","h":"7","measuredW":"150","measuredH":"100","x":"301","y":"1267","properties":{"color":"2848996","curvature":"-1","direction":"bottom","leftArrow":"false","rightArrow":"false","stroke":"dotted","p0":{"x":0,"y":0},"p1":{"x":0.44343003361676714,"y":0.014243775690876877},"p2":{"x":167.28095267352228,"y":7.089319088850289}}},{"ID":"12766","typeID":"Arrow","zOrder":"51","w":"130","h":"1","measuredW":"150","measuredH":"100","x":"331","y":"1322","properties":{"color":"2848996","curvature":"-1","leftArrow":"false","rightArrow":"false","stroke":"dotted","p0":{"x":129.700506871958,"y":0},"p1":{"x":0.47348089180528574,"y":0.0008969445600114837},"p2":{"x":0,"y":0}}},{"ID":"12767","typeID":"Arrow","zOrder":"52","w":"105","h":"43","measuredW":"150","measuredH":"100","x":"1032","y":"2229","properties":{"color":"10027263","curvature":"-1","direction":"bottom","leftArrow":"false","p0":{"x":0,"y":42},"p1":{"x":0.3246422893481717,"y":0.04197138314785374},"p2":{"x":104,"y":0},"rightArrow":"false","stroke":"dotted"}},{"ID":"12768","typeID":"Arrow","zOrder":"53","w":"128","h":"9","measuredW":"150","measuredH":"100","x":"1020","y":"2275","properties":{"color":"10027263","curvature":"-1","direction":"bottom","leftArrow":"false","p0":{"x":0,"y":8},"p1":{"x":0.3321152059461133,"y":0.04465778878909879},"p2":{"x":127,"y":4},"rightArrow":"false","stroke":"dotted"}},{"ID":"12769","typeID":"Arrow","zOrder":"54","w":"129","h":"34","measuredW":"150","measuredH":"100","x":"1021","y":"2290","properties":{"color":"10027263","curvature":"0","leftArrow":"false","p0":{"x":0,"y":0},"p1":{"x":0.3458601686475002,"y":-0.005245335635083992},"p2":{"x":128,"y":33},"rightArrow":"false","stroke":"dotted"}},{"ID":"12770","typeID":"Arrow","zOrder":"55","w":"209","h":"108","measuredW":"150","measuredH":"100","x":"643","y":"1604","properties":{"color":"2848996","curvature":"-1","direction":"bottom","leftArrow":"false","rightArrow":"false","p0":{"x":209.13014962158525,"y":107.63300153335422},"p1":{"x":0.5705193330544435,"y":0.04891531703818817},"p2":{"x":-0.2710228983202114,"y":-0.4891725128713915}}},{"ID":"12771","typeID":"Arrow","zOrder":"56","w":"90","h":"2","measuredW":"150","measuredH":"100","x":"1033","y":"1541","properties":{"color":"2848996","leftArrow":"false","rightArrow":"false","stroke":"dotted","p0":{"x":0.4213496222886306,"y":0.18497710519682187},"p1":{"x":0.4310686842693701,"y":-0.01854562577101436},"p2":{"x":90.75126717989497,"y":1.553612219705883}}},{"ID":"12772","typeID":"Arrow","zOrder":"57","w":"160","h":"3","measuredW":"150","measuredH":"100","x":"303","y":"1373","properties":{"color":"2848996","curvature":"-1","leftArrow":"false","rightArrow":"false","stroke":"dotted","p0":{"x":160.43777710097635,"y":0.050601531947449985},"p1":{"x":0.4806472503297293,"y":-0.001432629622812211},"p2":{"x":0.3074687034015824,"y":3}}},{"ID":"12773","typeID":"Arrow","zOrder":"58","w":"1","h":"123","measuredW":"150","measuredH":"100","x":"897","y":"1132","properties":{"color":"2848996","curvature":"-1","leftArrow":"false","rightArrow":"false","stroke":"dotted","p0":{"x":0,"y":0},"p1":{"x":0.4327183610207736,"y":0.0030579658389972178},"p2":{"x":0,"y":122.50887328728595}}},{"ID":"12774","typeID":"Arrow","zOrder":"59","w":"211","h":"128","measuredW":"150","measuredH":"100","x":"532","y":"1135","properties":{"color":"2848996","direction":"bottom","leftArrow":"false","rightArrow":"false","p0":{"x":211,"y":0},"p1":{"x":0.5569070155556886,"y":-0.16942743759521814},"p2":{"x":-0.130467173564341,"y":127.72068397434123}}},{"ID":"12775","typeID":"__group__","zOrder":"60","measuredW":"158","measuredH":"49","w":"158","h":"49","x":"174","y":"1187","properties":{"controlName":"101-package-managers:yarn"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"151","h":"49","measuredW":"200","measuredH":"140","x":"7","y":"0","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"33","measuredH":"25","x":"66","y":"12","properties":{"text":"yarn","size":"17"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"0","y":"13","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"0","y":"13","properties":{"icon":{"ID":"check-circle","size":"small"},"color":"3700253"}}]}}},{"ID":"12776","typeID":"Arrow","zOrder":"61","w":"109","h":"161","measuredW":"150","measuredH":"100","x":"768","y":"951","properties":{"color":"2848996","leftArrow":"false","p0":{"x":0,"y":0},"p1":{"x":0.5674918262494162,"y":0.22092480149462868},"p2":{"x":102,"y":160},"rightArrow":"false"}},{"ID":"12777","typeID":"Arrow","zOrder":"62","w":"1","h":"77","measuredW":"150","measuredH":"100","x":"1134","y":"954","properties":{"color":"2848996","curvature":"-1","leftArrow":"false","p0":{"x":0,"y":76},"p1":{"x":0.487275195113675,"y":-0.01187648456057007},"p2":{"x":0,"y":0},"rightArrow":"false","stroke":"dotted"}},{"ID":"12778","typeID":"Arrow","zOrder":"63","w":"85","h":"3","measuredW":"150","measuredH":"100","x":"865","y":"938","properties":{"color":"2848996","curvature":"-1","leftArrow":"false","p0":{"x":83,"y":1},"p1":{"x":0.4872751951136748,"y":-0.01187648456057007},"p2":{"x":0,"y":1},"rightArrow":"false","stroke":"dotted"}},{"ID":"12779","typeID":"Arrow","zOrder":"64","w":"2","h":"74","measuredW":"150","measuredH":"100","x":"642","y":"944","properties":{"color":"2848996","curvature":"-1","leftArrow":"false","p0":{"x":1,"y":73},"p1":{"x":0.4872751951136749,"y":-0.01187648456057007},"p2":{"x":0,"y":0},"rightArrow":"false","stroke":"dotted"}},{"ID":"12780","typeID":"Arrow","zOrder":"65","w":"120","h":"3","measuredW":"150","measuredH":"100","x":"792","y":"726","properties":{"color":"2848996","curvature":"0","leftArrow":"false","p0":{"x":119,"y":2},"p1":{"x":0.5436210493779461,"y":0.006954640290549417},"p2":{"x":0,"y":0},"rightArrow":"false","stroke":"dotted"}},{"ID":"12781","typeID":"Arrow","zOrder":"66","w":"108","h":"5","measuredW":"150","measuredH":"100","x":"803","y":"673","properties":{"color":"2848996","leftArrow":"false","p0":{"x":107,"y":2},"p1":{"x":0.589278350515464,"y":0.035876288659793816},"p2":{"x":0,"y":0},"rightArrow":"false","stroke":"dotted"}},{"ID":"12782","typeID":"Arrow","zOrder":"67","w":"100","h":"45","measuredW":"150","measuredH":"100","x":"803","y":"627","properties":{"color":"2848996","direction":"bottom","leftArrow":"false","p0":{"x":99,"y":0},"p1":{"x":0.5773195876288659,"y":-0.06466729147141519},"p2":{"x":0,"y":44},"rightArrow":"false","stroke":"dotted"}},{"ID":"12783","typeID":"Arrow","zOrder":"68","w":"40","h":"139","measuredW":"150","measuredH":"100","x":"676","y":"510","properties":{"color":"2848996","leftArrow":"false","p0":{"x":0,"y":0},"p1":{"x":0.5674918262494162,"y":0.22092480149462868},"p2":{"x":15,"y":138},"rightArrow":"false"}},{"ID":"12784","typeID":"Arrow","zOrder":"69","w":"151","h":"29","measuredW":"150","measuredH":"100","x":"757","y":"502","properties":{"color":"2848996","leftArrow":"false","p0":{"x":150,"y":28},"p1":{"x":0.4823054457996908,"y":0.02336368321594228},"p2":{"x":0,"y":0},"rightArrow":"false","stroke":"dotted"}},{"ID":"12785","typeID":"Arrow","zOrder":"70","w":"153","h":"13","measuredW":"150","measuredH":"100","x":"759","y":"485","properties":{"color":"2848996","curvature":"0","direction":"bottom","leftArrow":"false","p0":{"x":152,"y":0},"p1":{"x":0.4798692360633173,"y":-0.004989676531314521},"p2":{"x":0,"y":12},"rightArrow":"false","stroke":"dotted"}},{"ID":"12786","typeID":"Arrow","zOrder":"71","h":"60","measuredW":"150","measuredH":"100","x":"757","y":"436","properties":{"color":"2848996","direction":"bottom","leftArrow":"false","p0":{"x":149,"y":0},"p1":{"x":0.4552212800557556,"y":-0.05494250203275647},"p2":{"x":0,"y":59},"rightArrow":"false","stroke":"dotted"}},{"ID":"12787","typeID":"Arrow","zOrder":"72","w":"134","h":"36","measuredW":"150","measuredH":"100","x":"467","y":"503","properties":{"color":"2848996","curvature":"0","direction":"bottom","leftArrow":"false","p0":{"x":132,"y":0},"p1":{"x":0.4652789342214826,"y":-0.001332223147377271},"p2":{"x":0,"y":34},"rightArrow":"false","stroke":"dotted"}},{"ID":"12788","typeID":"Arrow","zOrder":"73","w":"131","h":"9","measuredW":"150","measuredH":"100","x":"467","y":"490","properties":{"color":"2848996","curvature":"0","leftArrow":"false","p0":{"x":129,"y":7},"p1":{"x":0.4652789342214826,"y":-0.001332223147377271},"p2":{"x":0,"y":0},"rightArrow":"false","stroke":"dotted"}},{"ID":"12789","typeID":"Arrow","zOrder":"74","w":"143","h":"53","measuredW":"150","measuredH":"100","x":"457","y":"443","properties":{"color":"2848996","curvature":"-1","leftArrow":"false","p0":{"x":141,"y":51},"p1":{"x":0.45522128005575574,"y":-0.054942502032756434},"p2":{"x":0,"y":0},"rightArrow":"false","stroke":"dotted"}},{"ID":"12790","typeID":"Arrow","zOrder":"75","w":"45","h":"139","measuredW":"150","measuredH":"100","x":"654","y":"347","properties":{"color":"2848996","direction":"bottom","leftArrow":"false","p0":{"x":44,"y":0},"p1":{"x":0.540933899332929,"y":-0.1946634323832626},"p2":{"x":16,"y":138},"rightArrow":"false"}},{"ID":"12791","typeID":"HRule","zOrder":"76","measuredW":"100","measuredH":"10","x":"1156","y":"774","properties":{"color":"10027263","stroke":"dotted"}},{"ID":"12792","typeID":"Arrow","zOrder":"77","w":"71","h":"134","measuredW":"150","measuredH":"100","x":"666","y":"785","properties":{"color":"2848996","curvature":"-1","leftArrow":"false","p0":{"x":9,"y":0},"p1":{"x":0.5549276224469561,"y":-0.26264128494943484},"p2":{"x":70,"y":133},"rightArrow":"false"}},{"ID":"12793","typeID":"Arrow","zOrder":"78","w":"130","h":"213","measuredW":"150","measuredH":"100","x":"448","y":"796","properties":{"color":"2848996","curvature":"-1","direction":"bottom","leftArrow":"false","p0":{"x":129,"y":0},"p1":{"x":0.5007550539904198,"y":0.04527076398473655},"p2":{"x":0,"y":212},"rightArrow":"false","stroke":"dotted"}},{"ID":"12794","typeID":"Arrow","zOrder":"79","w":"110","h":"157","measuredW":"150","measuredH":"100","x":"462","y":"789","properties":{"color":"2848996","curvature":"0","direction":"bottom","leftArrow":"false","p0":{"x":109,"y":0},"p1":{"x":0.46686783637115814,"y":0.0018494634122600195},"p2":{"x":0,"y":156},"rightArrow":"false","stroke":"dotted"}},{"ID":"12795","typeID":"Arrow","zOrder":"80","w":"119","h":"120","measuredW":"150","measuredH":"100","x":"454","y":"782","properties":{"color":"2848996","curvature":"0","direction":"bottom","leftArrow":"false","p0":{"x":118,"y":0},"p1":{"x":0.46376334167874567,"y":-0.006127289497957557},"p2":{"x":0,"y":119},"rightArrow":"false","stroke":"dotted"}},{"ID":"12796","typeID":"Arrow","zOrder":"81","w":"128","h":"82","measuredW":"150","measuredH":"100","x":"449","y":"771","properties":{"color":"2848996","curvature":"0","direction":"bottom","leftArrow":"false","p0":{"x":127,"y":0},"p1":{"x":0.4682571775171856,"y":0.0018196522442377747},"p2":{"x":0,"y":81},"rightArrow":"false","stroke":"dotted"}},{"ID":"12797","typeID":"Arrow","zOrder":"82","w":"123","h":"34","measuredW":"150","measuredH":"100","x":"449","y":"773","properties":{"color":"2848996","curvature":"0","direction":"bottom","leftArrow":"false","p0":{"x":122,"y":0},"p1":{"x":0.4501850789844116,"y":0.009280016683176094},"p2":{"x":0,"y":33},"rightArrow":"false","stroke":"dotted"}},{"ID":"12798","typeID":"Arrow","zOrder":"83","w":"106","h":"99","measuredW":"150","measuredH":"100","x":"804","y":"733","properties":{"color":"2848996","curvature":"-1","leftArrow":"false","p0":{"x":105,"y":98},"p1":{"x":0.48727519511367495,"y":-0.011876484560570073},"p2":{"x":0,"y":0},"rightArrow":"false","stroke":"dotted"}},{"ID":"12799","typeID":"Arrow","zOrder":"84","w":"109","h":"54","measuredW":"150","measuredH":"100","x":"801","y":"727","properties":{"color":"2848996","curvature":"0","leftArrow":"false","p0":{"x":108,"y":53},"p1":{"x":0.44795435569162256,"y":-0.008627887559142778},"p2":{"x":0,"y":0},"rightArrow":"false","stroke":"dotted"}},{"ID":"12800","typeID":"Arrow","zOrder":"85","w":"111","h":"59","measuredW":"150","measuredH":"100","x":"452","y":"599","properties":{"color":"2848996","curvature":"-1","leftArrow":"false","p0":{"x":110,"y":58},"p1":{"x":0.45522128005575574,"y":-0.054942502032756434},"p2":{"x":0,"y":0},"rightArrow":"false","stroke":"dotted"}},{"ID":"12801","typeID":"Arrow","zOrder":"86","w":"112","h":"58","measuredW":"150","measuredH":"100","x":"450","y":"681","properties":{"color":"2848996","curvature":"-1","direction":"bottom","leftArrow":"false","p0":{"x":111,"y":0},"p1":{"x":0.47938350680544434,"y":0.06064851881505207},"p2":{"x":0,"y":57},"rightArrow":"false","stroke":"dotted"}},{"ID":"12802","typeID":"Arrow","zOrder":"87","w":"112","h":"23","measuredW":"150","measuredH":"100","x":"454","y":"671","properties":{"color":"2848996","curvature":"-1","direction":"bottom","leftArrow":"false","p0":{"x":111,"y":0},"p1":{"x":0.4453729012104649,"y":0.01983600156188987},"p2":{"x":0,"y":22},"rightArrow":"false","stroke":"dotted"}},{"ID":"12803","typeID":"Arrow","zOrder":"88","w":"120","h":"20","measuredW":"150","measuredH":"100","x":"451","y":"648","properties":{"color":"2848996","curvature":"0","leftArrow":"false","p0":{"x":119,"y":19},"p1":{"x":0.4652789342214826,"y":-0.001332223147377271},"p2":{"x":0,"y":0},"rightArrow":"false","stroke":"dotted"}},{"ID":"12804","typeID":"Arrow","zOrder":"89","w":"19","h":"80","measuredW":"150","measuredH":"100","x":"741","y":"206","properties":{"color":"2848996","curvature":"-1","direction":"bottom","leftArrow":"false","p0":{"x":17,"y":0},"p1":{"x":0.4835868694955965,"y":0.10168134507606086},"p2":{"x":0,"y":79},"rightArrow":"false","stroke":"dotted"}},{"ID":"12805","typeID":"__group__","zOrder":"90","measuredW":"250","measuredH":"55","w":"250","h":"55","x":"563","y":"639","properties":{"controlName":"101-html"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"250","h":"55","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16776960"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"48","measuredH":"25","x":"101","y":"16","properties":{"size":"17","text":"HTML"}}]}}},{"ID":"12806","typeID":"__group__","zOrder":"91","measuredW":"144","measuredH":"40","w":"144","h":"40","x":"644","y":"293","properties":{"controlName":"ext_link:roadmap.sh/frontend"},"children":{"controls":{"control":[{"ID":"0","typeID":"Label","zOrder":"0","measuredW":"144","measuredH":"40","x":"0","y":"0","properties":{"size":"32","text":"Front-end"}}]}}},{"ID":"12807","typeID":"__group__","zOrder":"92","measuredW":"304","measuredH":"47","w":"304","h":"47","x":"172","y":"572","properties":{"controlName":"100-html:learn-the-basics"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"296","h":"40","measuredW":"200","measuredH":"140","x":"8","y":"7","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","w":"134","measuredW":"128","measuredH":"25","x":"90","y":"15","properties":{"size":"17","text":"Learn the basics"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"0","y":"0","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"0","y":"0","properties":{"color":"10027263","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12808","typeID":"__group__","zOrder":"93","measuredW":"304","measuredH":"45","w":"304","h":"45","x":"172","y":"621","properties":{"controlName":"101-html:writing-semantic-html"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"296","h":"40","measuredW":"200","measuredH":"140","x":"8","y":"5","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","w":"189","measuredW":"183","measuredH":"25","x":"63","y":"13","properties":{"size":"17","text":"Writing Semantic HTML"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"0","y":"0","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"0","y":"0","properties":{"color":"10066329","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12809","typeID":"__group__","zOrder":"94","measuredW":"304","measuredH":"45","w":"304","h":"45","x":"172","y":"667","properties":{"controlName":"102-html:forms-and-validations"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"296","h":"40","measuredW":"200","measuredH":"140","x":"8","y":"5","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","w":"172","measuredW":"169","measuredH":"25","x":"71","y":"13","properties":{"size":"17","text":"Forms and Validations"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"0","y":"0","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"0","y":"0","properties":{"color":"10027263","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12810","typeID":"__group__","zOrder":"95","measuredW":"304","measuredH":"49","w":"304","h":"49","x":"172","y":"710","properties":{"controlName":"103-html:conventions-and-best-practices"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"296","h":"40","measuredW":"200","measuredH":"140","x":"8","y":"9","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","w":"248","measuredW":"246","measuredH":"25","x":"33","y":"17","properties":{"size":"17","text":"Conventions and Best Practices"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"0","y":"0","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"0","y":"0","properties":{"color":"10027263","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12811","typeID":"__group__","zOrder":"96","measuredW":"250","measuredH":"50","w":"250","h":"50","x":"563","y":"701","properties":{"controlName":"102-css"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"250","h":"50","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16776960"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"33","measuredH":"25","x":"108","y":"14","properties":{"size":"17","text":"CSS"}}]}}},{"ID":"12812","typeID":"__group__","zOrder":"97","measuredW":"123","measuredH":"193","w":"123","h":"193","x":"1203","y":"672","properties":{"controlName":"101-css:making-layouts"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"116","h":"185","measuredW":"200","measuredH":"140","x":"0","y":"8","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"47","measuredH":"25","x":"35","y":"21","properties":{"size":"17","text":"Floats"}},{"ID":"2","typeID":"Label","zOrder":"2","measuredW":"84","measuredH":"25","x":"16","y":"48","properties":{"size":"17","text":"Positioning"}},{"ID":"3","typeID":"Label","zOrder":"3","measuredW":"56","measuredH":"25","x":"30","y":"75","properties":{"size":"17","text":"Display"}},{"ID":"4","typeID":"Label","zOrder":"4","measuredW":"82","measuredH":"25","x":"19","y":"102","properties":{"size":"17","text":"Box Model"}},{"ID":"5","typeID":"Label","zOrder":"5","measuredW":"70","measuredH":"25","x":"22","y":"129","properties":{"size":"17","text":"CSS Grid"}},{"ID":"6","typeID":"Label","zOrder":"6","measuredW":"65","measuredH":"25","x":"26","y":"156","properties":{"size":"17","text":"Flex Box"}},{"ID":"7","typeID":"Icon","zOrder":"7","measuredW":"24","measuredH":"24","x":"99","y":"0","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"8","typeID":"Icon","zOrder":"8","measuredW":"24","measuredH":"24","x":"99","y":"0","properties":{"color":"10027263","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12813","typeID":"__group__","zOrder":"98","measuredW":"289","measuredH":"47","w":"289","h":"47","x":"895","y":"699","properties":{"controlName":"100-css:learn-the-basics"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"280","h":"43","measuredW":"200","measuredH":"140","x":"0","y":"4","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","w":"140","measuredW":"128","measuredH":"25","x":"70","y":"13","properties":{"size":"17","text":"Learn the basics"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"265","y":"0","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"265","y":"0","properties":{"color":"10027263","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12814","typeID":"__group__","zOrder":"99","measuredW":"290","measuredH":"51","w":"290","h":"51","x":"894","y":"748","properties":{"controlName":"101-css:making-layouts"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"281","h":"47","measuredW":"200","measuredH":"140","x":"0","y":"4","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","w":"130","measuredW":"120","measuredH":"25","x":"76","y":"15","properties":{"size":"17","text":"Making Layouts"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"266","y":"0","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"266","y":"0","properties":{"color":"10027263","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12815","typeID":"Canvas","zOrder":"100","w":"324","h":"195","measuredW":"100","measuredH":"70","x":"973","y":"171"},{"ID":"12816","typeID":"Label","zOrder":"101","measuredW":"283","measuredH":"26","x":"991","y":"190","properties":{"size":"18","text":"For resources and other roadmaps"}},{"ID":"12817","typeID":"__group__","zOrder":"102","measuredW":"172","measuredH":"28","w":"172","h":"28","x":"991","y":"223","properties":{"controlName":"ext_link:roadmap.sh"},"children":{"controls":{"control":[{"ID":"2","typeID":"Label","zOrder":"0","measuredW":"172","measuredH":"28","x":"0","y":"0","properties":{"size":"20","text":"https://roadmap.sh","color":"10027263"}}]}}},{"ID":"12818","typeID":"__group__","zOrder":"103","measuredW":"282","measuredH":"47","w":"282","h":"47","x":"991","y":"298","properties":{"controlName":"json:jsons/roadmaps/frontend-beginner.json"},"children":{"controls":{"control":[{"ID":"0","typeID":"Canvas","zOrder":"0","w":"282","h":"47","measuredW":"100","measuredH":"70","x":"0","y":"0","properties":{"borderColor":"4273622","color":"4273622"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"210","measuredH":"26","x":"36","y":"11","properties":{"color":"16777215","size":"18","text":"Visit the Beginner Version"}}]}}},{"ID":"12819","typeID":"Label","zOrder":"104","measuredW":"227","measuredH":"26","x":"991","y":"263","properties":{"color":"4985136","size":"18","text":"Are you just getting started?"}},{"ID":"12820","typeID":"__group__","zOrder":"105","measuredW":"288","measuredH":"45","w":"288","h":"45","x":"894","y":"803","properties":{"controlName":"102-css:responsive-design-and-media-queries"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"280","h":"43","measuredW":"200","measuredH":"140","x":"0","y":"2","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","w":"248","measuredW":"246","measuredH":"22","x":"18","y":"12","properties":{"size":"14","text":"Responsive design and Media Queries"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"264","y":"0","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"264","y":"0","properties":{"color":"10027263","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12821","typeID":"__group__","zOrder":"106","measuredW":"250","measuredH":"50","w":"250","h":"50","x":"563","y":"758","properties":{"controlName":"103-javascript"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"250","h":"50","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16776960"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"81","measuredH":"25","x":"82","y":"13","properties":{"size":"17","text":"JavaScript"}}]}}},{"ID":"12822","typeID":"__group__","zOrder":"107","measuredW":"304","measuredH":"48","w":"304","h":"48","x":"172","y":"773","properties":{"controlName":"100-javascript:syntax-and-basic-constructs"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"296","h":"40","measuredW":"200","measuredH":"140","x":"8","y":"8","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","w":"228","measuredW":"219","measuredH":"25","x":"43","y":"16","properties":{"size":"17","text":"Syntax and Basic Constructs"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"0","y":"0","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"0","y":"0","properties":{"color":"10027263","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12823","typeID":"__group__","zOrder":"108","measuredW":"305","measuredH":"45","w":"305","h":"45","x":"172","y":"822","properties":{"controlName":"101-javascript:learn-dom-manipulation"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"297","h":"40","measuredW":"200","measuredH":"140","x":"8","y":"5","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","w":"197","measuredW":"193","measuredH":"25","x":"59","y":"13","properties":{"size":"17","text":"Learn DOM Manipulation"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"0","y":"0","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"0","y":"0","properties":{"color":"10027263","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12824","typeID":"__group__","zOrder":"109","measuredW":"305","measuredH":"117","w":"305","h":"117","x":"171","y":"967","properties":{"controlName":"104-javascript:concepts"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"296","h":"113","measuredW":"200","measuredH":"140","x":"9","y":"4","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","w":"247","measuredW":"246","measuredH":"25","x":"34","y":"49","properties":{"size":"17","text":"Hoisting, Event Bubbling, Scope,"}},{"ID":"2","typeID":"Label","zOrder":"2","w":"245","measuredW":"231","measuredH":"25","x":"36","y":"78","properties":{"size":"17","text":"Prototype, Shadow DOM, strict"}},{"ID":"3","typeID":"Label","zOrder":"3","w":"202","measuredW":"195","measuredH":"25","x":"57","y":"19","properties":{"size":"17","text":"Understand the concepts"}},{"ID":"4","typeID":"Icon","zOrder":"4","measuredW":"24","measuredH":"24","x":"0","y":"0","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"5","typeID":"Icon","zOrder":"5","measuredW":"24","measuredH":"24","x":"0","y":"0","properties":{"color":"10027263","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12825","typeID":"__group__","zOrder":"110","measuredW":"304","measuredH":"45","w":"304","h":"45","x":"172","y":"869","properties":{"controlName":"102-javascript:learn-fetch-api-ajax-xhr"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"296","h":"40","measuredW":"200","measuredH":"140","x":"8","y":"5","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","w":"234","measuredW":"224","measuredH":"25","x":"40","y":"13","properties":{"size":"17","text":"Learn Fetch API / Ajax (XHR)"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"0","y":"0","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"0","y":"0","properties":{"color":"10027263","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12826","typeID":"__group__","zOrder":"111","measuredW":"305","measuredH":"47","w":"305","h":"47","x":"171","y":"915","properties":{"controlName":"103-javascript:es6-and-modular-javascript"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"296","h":"40","measuredW":"200","measuredH":"140","x":"9","y":"7","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","w":"234","measuredW":"228","measuredH":"25","x":"41","y":"15","properties":{"size":"17","text":"ES6+ and modular JavaScript"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"0","y":"0","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"0","y":"0","properties":{"color":"10027263","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12827","typeID":"__group__","zOrder":"112","measuredW":"187","measuredH":"60","w":"187","h":"60","x":"584","y":"459","properties":{"controlName":"100-internet"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"178","h":"50","measuredW":"200","measuredH":"140","x":"9","y":"10","properties":{"color":"16776960"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"62","measuredH":"25","x":"67","y":"23","properties":{"text":"Internet","size":"17"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"0","y":"0","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"0","y":"0","properties":{"color":"10027263","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12828","typeID":"__group__","zOrder":"113","measuredW":"306","measuredH":"53","w":"306","h":"53","x":"173","y":"411","properties":{"controlName":"100-internet:how-does-the-internet-work"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"299","h":"44","measuredW":"200","measuredH":"140","x":"7","y":"9","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","w":"223","measuredW":"219","measuredH":"25","x":"45","y":"19","properties":{"size":"17","text":"How does the internet work?"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"0","y":"0","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"0","y":"0","properties":{"color":"10027263","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12829","typeID":"__group__","zOrder":"114","measuredW":"307","measuredH":"47","w":"307","h":"47","x":"172","y":"463","properties":{"controlName":"101-internet:what-is-http"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"299","h":"40","measuredW":"200","measuredH":"140","x":"8","y":"7","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","w":"119","measuredW":"113","measuredH":"25","x":"98","y":"15","properties":{"size":"17","text":"What is HTTP?"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"0","y":"0","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"0","y":"0","properties":{"color":"10027263","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12830","typeID":"__group__","zOrder":"115","measuredW":"307","measuredH":"48","w":"307","h":"48","x":"172","y":"508","properties":{"controlName":"102-internet:browsers-and-how-they-work"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"299","h":"40","measuredW":"200","measuredH":"140","x":"8","y":"8","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","w":"230","measuredW":"225","measuredH":"25","x":"42","y":"16","properties":{"size":"17","text":"Browsers and how they work?"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"0","y":"0","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"0","y":"0","properties":{"color":"10027263","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12831","typeID":"__group__","zOrder":"116","measuredW":"289","measuredH":"49","w":"289","h":"49","x":"895","y":"408","properties":{"controlName":"103-internet:dns-and-how-it-works"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"280","h":"40","measuredW":"200","measuredH":"140","x":"0","y":"9","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","w":"179","measuredW":"175","measuredH":"25","x":"51","y":"17","properties":{"size":"17","text":"DNS and how it works?"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"265","y":"0","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"265","y":"0","properties":{"color":"10027263","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12832","typeID":"__group__","zOrder":"117","measuredW":"289","measuredH":"45","w":"289","h":"45","x":"894","y":"458","properties":{"controlName":"104-internet:what-is-domain-name"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"280","h":"40","measuredW":"200","measuredH":"140","x":"0","y":"5","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","w":"189","measuredW":"180","measuredH":"25","x":"51","y":"13","properties":{"size":"17","text":"What is Domain Name?"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"265","y":"0","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"265","y":"0","properties":{"color":"10027263","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12833","typeID":"__group__","zOrder":"118","measuredW":"288","measuredH":"46","w":"288","h":"46","x":"895","y":"503","properties":{"controlName":"105-internet:what-is-hosting"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"280","h":"40","measuredW":"200","measuredH":"140","x":"0","y":"6","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","w":"133","measuredW":"126","measuredH":"25","x":"74","y":"14","properties":{"size":"17","text":"What is hosting?"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"264","y":"0","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"264","y":"0","properties":{"color":"10027263","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12834","typeID":"__group__","zOrder":"119","measuredW":"288","measuredH":"48","w":"288","h":"48","x":"895","y":"601","properties":{"controlName":"104-html:accessibility"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"280","h":"40","measuredW":"200","measuredH":"140","x":"0","y":"8","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","w":"101","measuredW":"94","measuredH":"25","x":"89","y":"16","properties":{"size":"17","text":"Accessibility"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"264","y":"0","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"264","y":"0","properties":{"color":"10066329","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12835","typeID":"__group__","zOrder":"120","measuredW":"289","measuredH":"46","w":"289","h":"46","x":"895","y":"650","properties":{"controlName":"105-html:seo-basics"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"280","h":"40","measuredW":"200","measuredH":"140","x":"0","y":"6","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","w":"94","measuredW":"90","measuredH":"25","x":"93","y":"14","properties":{"size":"17","text":"SEO Basics"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"265","y":"0","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"265","y":"0","properties":{"color":"10066329","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12836","typeID":"__group__","zOrder":"121","measuredW":"225","measuredH":"62","w":"225","h":"62","x":"533","y":"992","properties":{"controlName":"100-version-control-systems:basic-usage-of-git"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"216","h":"54","measuredW":"200","measuredH":"140","x":"9","y":"8","properties":{"color":"16776960"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"144","measuredH":"25","x":"45","y":"23","properties":{"text":"Basic Usage of Git","size":"17"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"0","y":"0","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"0","y":"0","properties":{"color":"10027263","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12837","typeID":"__group__","zOrder":"122","measuredW":"240","measuredH":"58","w":"240","h":"58","x":"1014","y":"994","properties":{"controlName":"100-repo-hosting-services:github"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"230","h":"49","measuredW":"200","measuredH":"140","x":"10","y":"9","properties":{"color":"16776960"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"54","measuredH":"25","x":"98","y":"22","properties":{"text":"GitHub","size":"17"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"0","y":"0","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"0","y":"0","properties":{"color":"10027263","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12838","typeID":"__group__","zOrder":"123","measuredW":"352","measuredH":"78","w":"352","h":"78","x":"905","y":"902","properties":{"controlName":"105-repo-hosting-services"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"352","h":"78","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16776960"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"172","measuredH":"25","x":"90","y":"15","properties":{"text":"Repo hosting services","size":"17"}},{"ID":"2","typeID":"Label","zOrder":"2","w":"279","measuredW":"275","measuredH":"23","x":"32","y":"41","properties":{"size":"15","text":"Create account and Learn to use GitHub"}}]}}},{"ID":"12839","typeID":"__group__","zOrder":"124","measuredW":"336","measuredH":"77","w":"336","h":"77","x":"542","y":"902","properties":{"controlName":"104-version-control-systems"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"336","h":"77","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16776960"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"186","measuredH":"25","x":"75","y":"15","properties":{"text":"Version Control Systems","size":"17"}},{"ID":"2","typeID":"Label","zOrder":"2","w":"292","measuredW":"285","measuredH":"23","x":"19","y":"40","properties":{"size":"15","text":"What are they and why you should use one"}}]}}},{"ID":"12840","typeID":"__group__","zOrder":"125","measuredW":"211","measuredH":"53","w":"211","h":"53","x":"435","y":"1239","properties":{"controlName":"107-package-managers"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"211","h":"53","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16776960"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"149","measuredH":"25","x":"31","y":"14","properties":{"text":"Package Managers","size":"17"}}]}}},{"ID":"12841","typeID":"__group__","zOrder":"126","measuredW":"158","measuredH":"49","w":"158","h":"49","x":"174","y":"1134","properties":{"controlName":"100-package-managers:npm"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"151","h":"49","measuredW":"200","measuredH":"140","x":"7","y":"0","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","w":"36","measuredW":"34","measuredH":"25","x":"65","y":"12","properties":{"size":"17","text":"npm"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"0","y":"11","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"0","y":"11","properties":{"color":"10027263","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12842","typeID":"__group__","zOrder":"127","measuredW":"238","measuredH":"54","w":"238","h":"54","x":"1016","y":"1110","properties":{"controlName":"102-repo-hosting-services:bitbucket"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"230","h":"49","measuredW":"200","measuredH":"140","x":"8","y":"5","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"73","measuredH":"25","x":"86","y":"17","properties":{"color":"3355443","text":"Bitbucket","size":"17"}},{"ID":"3","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"0","y":"0","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"4","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"0","y":"0","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"5","typeID":"Icon","zOrder":"4","measuredW":"24","measuredH":"24","x":"0","y":"0","properties":{"color":"3700253","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12843","typeID":"__group__","zOrder":"128","measuredW":"238","measuredH":"55","w":"238","h":"55","x":"1016","y":"1053","properties":{"controlName":"101-repo-hosting-services:gitlab"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"230","h":"49","measuredW":"200","measuredH":"140","x":"8","y":"6","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"51","measuredH":"25","x":"97","y":"18","properties":{"color":"3355443","size":"17","text":"GitLab"}},{"ID":"3","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"0","y":"0","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"4","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"0","y":"0","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"5","typeID":"Icon","zOrder":"4","measuredW":"24","measuredH":"24","x":"0","y":"0","properties":{"color":"3700253","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12844","typeID":"__group__","zOrder":"129","measuredW":"381","measuredH":"62","w":"381","h":"62","x":"584","y":"1085","properties":{"controlName":"106-web-security-knowledge"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"372","h":"54","measuredW":"200","measuredH":"140","x":"9","y":"8","properties":{"color":"16776960"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"189","measuredH":"25","x":"100","y":"23","properties":{"text":"Web Security Knowledge","size":"17"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"0","y":"0","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"0","y":"0","properties":{"color":"10066329","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12845","typeID":"__group__","zOrder":"130","measuredW":"408","measuredH":"162","w":"408","h":"162","x":"172","y":"171","children":{"controls":{"control":[{"ID":"0","typeID":"Canvas","zOrder":"0","w":"408","h":"162","measuredW":"100","measuredH":"70","x":"0","y":"0"},{"ID":"1","typeID":"Icon","zOrder":"1","measuredW":"24","measuredH":"24","x":"23","y":"21","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"23","y":"21","properties":{"color":"10027263","icon":{"ID":"check-circle","size":"small"}}},{"ID":"3","typeID":"Label","zOrder":"3","measuredW":"269","measuredH":"24","x":"59","y":"21","properties":{"size":"16","text":"Personal Recommendation / Opinion"}},{"ID":"4","typeID":"Label","zOrder":"4","measuredW":"159","measuredH":"24","x":"59","y":"118","properties":{"size":"16","text":"I wouldn't recommend"}},{"ID":"5","typeID":"Icon","zOrder":"5","measuredW":"24","measuredH":"24","x":"23","y":"118","properties":{"color":"10066329","icon":{"ID":"circle","size":"small"}}},{"ID":"6","typeID":"Label","zOrder":"6","w":"324","measuredW":"315","measuredH":"24","x":"60","y":"86","properties":{"size":"16","text":"Order in roadmap not strict (Learn anytime)"}},{"ID":"7","typeID":"Icon","zOrder":"7","measuredW":"24","measuredH":"24","x":"23","y":"86","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"8","typeID":"Icon","zOrder":"8","measuredW":"24","measuredH":"24","x":"23","y":"86","properties":{"color":"10066329","icon":{"ID":"check-circle","size":"small"}}},{"ID":"9","typeID":"Label","zOrder":"9","measuredW":"272","measuredH":"24","x":"59","y":"54","properties":{"size":"16","text":"Alternative Option - Pick this or purple"}},{"ID":"10","typeID":"Icon","zOrder":"10","measuredW":"24","measuredH":"24","x":"23","y":"53","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"11","typeID":"Icon","zOrder":"11","measuredW":"24","measuredH":"24","x":"23","y":"53","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"12","typeID":"Icon","zOrder":"12","measuredW":"24","measuredH":"24","x":"23","y":"53","properties":{"color":"3700253","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12846","typeID":"TextArea","zOrder":"131","w":"456","h":"161","measuredW":"200","measuredH":"140","x":"796","y":"1184"},{"ID":"12847","typeID":"__group__","zOrder":"132","measuredW":"163","measuredH":"48","w":"163","h":"48","x":"811","y":"1283","properties":{"controlName":"102-web-security-knowledge:cors"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"163","h":"48","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"48","measuredH":"25","x":"58","y":"12","properties":{"text":"CORS","size":"17"}}]}}},{"ID":"12848","typeID":"__group__","zOrder":"133","measuredW":"166","measuredH":"49","w":"166","h":"49","x":"810","y":"1228","properties":{"controlName":"100-web-security-knowledge:https"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"166","h":"49","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"54","measuredH":"25","x":"56","y":"12","properties":{"text":"HTTPS","size":"17"}}]}}},{"ID":"12849","typeID":"__group__","zOrder":"134","measuredW":"257","measuredH":"49","w":"257","h":"49","x":"981","y":"1228","properties":{"controlName":"101-web-security-knowledge:content-security-policy"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"257","h":"49","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"175","measuredH":"25","x":"41","y":"12","properties":{"text":"Content Security Policy","size":"17"}}]}}},{"ID":"12850","typeID":"__group__","zOrder":"135","measuredW":"257","measuredH":"49","w":"257","h":"49","x":"981","y":"1282","properties":{"controlName":"103-web-security-knowledge:owasp-security-risks"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"257","h":"49","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"169","measuredH":"25","x":"44","y":"12","properties":{"text":"OWASP Security Risks","size":"17"}}]}}},{"ID":"12851","typeID":"Label","zOrder":"136","w":"372","measuredW":"344","measuredH":"25","x":"812","y":"1197","properties":{"size":"17","text":"Get at least a basic knowledge of all of these"}},{"ID":"12852","typeID":"__group__","zOrder":"137","measuredW":"24","measuredH":"24","w":"24","h":"24","x":"1238","y":"1175","children":{"controls":{"control":[{"ID":"0","typeID":"Icon","zOrder":"0","measuredW":"24","measuredH":"24","x":"0","y":"0","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"1","typeID":"Icon","zOrder":"1","measuredW":"24","measuredH":"24","x":"0","y":"0","properties":{"color":"10066329","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12853","typeID":"Arrow","zOrder":"138","w":"117","h":"1","measuredW":"150","measuredH":"100","x":"697","y":"2814","properties":{"color":"2848996","curvature":"0","leftArrow":"false","rightArrow":"false","stroke":"dotted","p0":{"x":116.89058672187377,"y":0.1041226124775676},"p1":{"x":0.4835193355826629,"y":0.007267064624967576},"p2":{"x":0.017907207522057433,"y":0.1041226124775676}}},{"ID":"12854","typeID":"Arrow","zOrder":"139","w":"158","h":"72","measuredW":"150","measuredH":"100","x":"306","y":"2868","properties":{"color":"2848996","curvature":"0","leftArrow":"false","p0":{"x":0,"y":0},"p1":{"x":0.4319942611190819,"y":-0.006169296987087513},"p2":{"x":157,"y":71},"rightArrow":"false","stroke":"dotted"}},{"ID":"12855","typeID":"Arrow","zOrder":"140","w":"133","h":"223","measuredW":"150","measuredH":"100","x":"1027","y":"2708","properties":{"color":"2848996","leftArrow":"false","rightArrow":"false","stroke":"dotted","p0":{"x":133,"y":223},"p1":{"x":0.6210189562745637,"y":0.08206190581675968},"p2":{"x":-0.43103046936073497,"y":0.31367188167814675}}},{"ID":"12856","typeID":"Arrow","zOrder":"141","w":"112","h":"137","measuredW":"150","measuredH":"100","x":"1053","y":"2711","properties":{"color":"2848996","leftArrow":"false","rightArrow":"false","stroke":"dotted","p0":{"x":112,"y":137},"p1":{"x":0.6177380381901717,"y":0.1158418847787249},"p2":{"x":-0.28845742009775677,"y":0.38926871100329663}}},{"ID":"12857","typeID":"__group__","zOrder":"142","measuredW":"216","measuredH":"50","w":"216","h":"50","x":"434","y":"1354","properties":{"controlName":"109-css-preprocessors"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"216","h":"50","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16776960"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"150","measuredH":"25","x":"33","y":"12","properties":{"text":"CSS Preprocessors","size":"17"}}]}}},{"ID":"12858","typeID":"Arrow","zOrder":"143","w":"107","h":"93","measuredW":"150","measuredH":"100","x":"1059","y":"2707","properties":{"color":"2848996","curvature":"-1","leftArrow":"false","rightArrow":"false","stroke":"dotted","p0":{"x":107,"y":93},"p1":{"x":0.6105142874821432,"y":0.11615602631888519},"p2":{"x":-0.13726376144768437,"y":-0.2241265329844282}}},{"ID":"12859","typeID":"Arrow","zOrder":"144","w":"100","h":"48","measuredW":"150","measuredH":"100","x":"1062","y":"2702","properties":{"color":"2848996","curvature":"0","direction":"bottom","leftArrow":"false","rightArrow":"false","stroke":"dotted","p0":{"x":100,"y":48},"p1":{"x":0.5421630610591022,"y":0.059862777204942215},"p2":{"x":-0.061666932122761864,"y":0.16247822302784698}}},{"ID":"12860","typeID":"Arrow","zOrder":"145","w":"115","h":"6","measuredW":"150","measuredH":"100","x":"1048","y":"2699","properties":{"color":"2848996","curvature":"-1","direction":"bottom","leftArrow":"false","rightArrow":"false","stroke":"dotted","p0":{"x":115,"y":6},"p1":{"x":0.5359734790789354,"y":0.012722874294418285},"p2":{"x":0.4352964490888098,"y":-0.2504109310075364}}},{"ID":"12861","typeID":"__group__","zOrder":"146","measuredW":"213","measuredH":"50","w":"213","h":"50","x":"435","y":"1298","properties":{"controlName":"108-css-architecture"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"213","h":"50","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16776960"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"131","measuredH":"25","x":"41","y":"12","properties":{"text":"CSS Architecture","size":"17"}}]}}},{"ID":"12862","typeID":"__group__","zOrder":"147","measuredW":"158","measuredH":"40","w":"158","h":"40","x":"173","y":"1303","properties":{"controlName":"100-css-architecture:bem"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"151","h":"40","measuredW":"200","measuredH":"140","x":"7","y":"0","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","w":"45","measuredW":"38","measuredH":"25","x":"60","y":"8","properties":{"size":"17","text":"BEM"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"0","y":"8","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"0","y":"8","properties":{"color":"10066329","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12863","typeID":"Arrow","zOrder":"148","w":"180","h":"45","measuredW":"150","measuredH":"100","x":"300","y":"2962","properties":{"color":"2848996","curvature":"0","direction":"bottom","leftArrow":"false","p0":{"x":0,"y":44},"p1":{"x":0.4319942611190816,"y":-0.0061692969870875015},"p2":{"x":179,"y":0},"rightArrow":"false","stroke":"dotted"}},{"ID":"12864","typeID":"Arrow","zOrder":"149","w":"106","h":"1","measuredW":"150","measuredH":"100","x":"957","y":"2531","properties":{"color":"2848996","curvature":"0","leftArrow":"false","rightArrow":"false","stroke":"dotted","p0":{"x":106,"y":1},"p1":{"x":0.4835193355826628,"y":0.007267064624967598},"p2":{"x":-0.0680813086987655,"y":0.06188413774043511}}},{"ID":"12865","typeID":"__group__","zOrder":"150","measuredW":"211","measuredH":"50","w":"211","h":"50","x":"536","y":"1520","properties":{"controlName":"110-build-tools"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"211","h":"50","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16776960"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"83","measuredH":"25","x":"64","y":"13","properties":{"size":"17","text":"Build Tools"}}]}}},{"ID":"12866","typeID":"Arrow","zOrder":"151","w":"1","h":"86","measuredW":"150","measuredH":"100","x":"574","y":"2391","properties":{"color":"2848996","curvature":"0","leftArrow":"false","p0":{"x":0,"y":0},"p1":{"x":0.4770488047048041,"y":0.005193614908729856},"p2":{"x":0,"y":85},"rightArrow":"false","stroke":"dotted"}},{"ID":"12867","typeID":"Arrow","zOrder":"152","w":"177","h":"1","measuredW":"150","measuredH":"100","x":"378","y":"2381","properties":{"color":"2848996","curvature":"0","leftArrow":"false","p0":{"x":176,"y":0},"p1":{"x":0.477048804704804,"y":0.005193614908729856},"p2":{"x":0,"y":0},"rightArrow":"false","stroke":"dotted"}},{"ID":"12868","typeID":"__group__","zOrder":"153","measuredW":"225","measuredH":"50","w":"225","h":"50","x":"831","y":"1517","properties":{"controlName":"100-build-tools:task-runners"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"225","h":"50","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16776960"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"105","measuredH":"25","x":"60","y":"14","properties":{"size":"17","text":"Task Runners"}}]}}},{"ID":"12869","typeID":"Arrow","zOrder":"154","w":"116","h":"1","measuredW":"150","measuredH":"100","x":"749","y":"2380","properties":{"color":"2848996","curvature":"0","leftArrow":"false","p0":{"x":115,"y":0},"p1":{"x":0.477048804704804,"y":0.005193614908729856},"p2":{"x":0,"y":0},"rightArrow":"false"}},{"ID":"12870","typeID":"__group__","zOrder":"155","measuredW":"156","measuredH":"45","w":"156","h":"45","x":"1104","y":"1521","properties":{"controlName":"100-build-tools:task-runners:npm-scripts"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"145","h":"45","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"89","measuredH":"25","x":"24","y":"10","properties":{"size":"17","text":"npm scripts"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"132","y":"11","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"132","y":"11","properties":{"color":"10027263","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12871","typeID":"Arrow","zOrder":"156","w":"239","h":"239","measuredW":"150","measuredH":"100","x":"484","y":"1781","properties":{"color":"2848996","curvature":"0","leftArrow":"false","rightArrow":"false","p0":{"x":0.4151212280816594,"y":-0.22081521141240046},"p1":{"x":0.5082158938451313,"y":0.2259685964231505},"p2":{"x":239,"y":239}}},{"ID":"12872","typeID":"Arrow","zOrder":"157","w":"191","h":"5","measuredW":"150","measuredH":"100","x":"933","y":"2059","properties":{"color":"10027263","curvature":"0","leftArrow":"false","rightArrow":"false","stroke":"dotted","p0":{"x":190.5,"y":-0.5},"p1":{"x":0.4934109968191019,"y":-0.001156690213574586},"p2":{"x":0,"y":4}}},{"ID":"12873","typeID":"__group__","zOrder":"158","measuredW":"158","measuredH":"40","w":"158","h":"40","x":"1104","y":"1667","properties":{"controlName":"100-build-tools:module-bundlers:webpack"},"children":{"controls":{"control":[{"ID":"1","typeID":"Label","zOrder":"0","w":"72","measuredW":"72","measuredH":"25","x":"52","y":"7","properties":{"size":"17","text":"Webpack"}},{"ID":"2","typeID":"TextArea","zOrder":"1","w":"148","h":"40","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16770457"}},{"ID":"3","typeID":"Label","zOrder":"2","measuredW":"72","measuredH":"25","x":"42","y":"7","properties":{"text":"Webpack","size":"17"}},{"ID":"4","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"134","y":"8","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"5","typeID":"Icon","zOrder":"4","measuredW":"24","measuredH":"24","x":"134","y":"8","properties":{"icon":{"ID":"check-circle","size":"small"},"color":"3700253"}}]}}},{"ID":"12874","typeID":"__group__","zOrder":"159","measuredW":"158","measuredH":"40","w":"158","h":"40","x":"1104","y":"1712","properties":{"controlName":"102-build-tools:module-bundlers:rollup"},"children":{"controls":{"control":[{"ID":"1","typeID":"Label","zOrder":"0","w":"46","measuredW":"49","measuredH":"25","x":"65","y":"7","properties":{"size":"17","text":"Rollup"}},{"ID":"2","typeID":"TextArea","zOrder":"1","w":"147","h":"40","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16770457"}},{"ID":"3","typeID":"Label","zOrder":"2","w":"63","measuredW":"49","measuredH":"25","x":"55","y":"7","properties":{"size":"17","text":"Rollup"}},{"ID":"4","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"134","y":"8","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"5","typeID":"Icon","zOrder":"4","measuredW":"24","measuredH":"24","x":"134","y":"8","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"6","typeID":"Icon","zOrder":"5","measuredW":"24","measuredH":"24","x":"134","y":"8","properties":{"color":"3700253","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12875","typeID":"__group__","zOrder":"160","measuredW":"158","measuredH":"40","w":"158","h":"40","x":"1104","y":"1758","properties":{"controlName":"103-build-tools:module-bundlers:parcel"},"children":{"controls":{"control":[{"ID":"0","typeID":"Label","zOrder":"0","w":"46","measuredW":"49","measuredH":"25","x":"65","y":"7","properties":{"size":"17","text":"Parcel"}},{"ID":"1","typeID":"TextArea","zOrder":"1","w":"146","h":"40","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16770457"}},{"ID":"2","typeID":"Label","zOrder":"2","w":"63","measuredW":"49","measuredH":"25","x":"55","y":"7","properties":{"size":"17","text":"Parcel"}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"134","y":"8","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"4","typeID":"Icon","zOrder":"4","measuredW":"24","measuredH":"24","x":"134","y":"8","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"5","typeID":"Icon","zOrder":"5","measuredW":"24","measuredH":"24","x":"134","y":"8","properties":{"color":"3700253","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12876","typeID":"__group__","zOrder":"161","measuredW":"225","measuredH":"50","w":"225","h":"50","x":"832","y":"1574","properties":{"controlName":"101-build-tools:module-bundlers"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"225","h":"50","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16776960"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"131","measuredH":"25","x":"47","y":"13","properties":{"size":"17","text":"Module Bundlers"}}]}}},{"ID":"12877","typeID":"Arrow","zOrder":"162","w":"119","h":"1","measuredW":"150","measuredH":"100","x":"1010","y":"2382","properties":{"color":"2848996","curvature":"0","direction":"bottom","leftArrow":"false","rightArrow":"false","stroke":"dotted","p0":{"x":118.97944745965356,"y":0},"p1":{"x":0.4835193355826631,"y":0.007267064624967473},"p2":{"x":0.34217904266415644,"y":0}}},{"ID":"12878","typeID":"__group__","zOrder":"163","measuredW":"213","measuredH":"53","w":"213","h":"53","x":"534","y":"1575","properties":{"controlName":"111-pick-a-framework"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"213","h":"53","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16776960"}},{"ID":"1","typeID":"Label","zOrder":"1","w":"142","measuredW":"136","measuredH":"25","x":"36","y":"14","properties":{"size":"17","text":"Pick a Framework"}}]}}},{"ID":"12879","typeID":"__group__","zOrder":"164","measuredW":"152","measuredH":"40","w":"152","h":"40","x":"174","y":"1489","properties":{"controlName":"100-pick-a-framework:react-js"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"145","h":"40","measuredW":"200","measuredH":"140","x":"7","y":"0","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","w":"68","measuredW":"47","measuredH":"25","x":"55","y":"7","properties":{"size":"17","text":"React"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"0","y":"8","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"0","y":"8","properties":{"color":"10027263","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12880","typeID":"__group__","zOrder":"165","measuredW":"153","measuredH":"40","w":"153","h":"40","x":"172","y":"1535","properties":{"controlName":"101-pick-a-framework:angular"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"145","h":"40","measuredW":"200","measuredH":"140","x":"8","y":"0","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","w":"64","measuredW":"59","measuredH":"25","x":"49","y":"7","properties":{"size":"17","text":"Angular"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"0","y":"8","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"0","y":"8","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"4","typeID":"Icon","zOrder":"4","measuredW":"24","measuredH":"24","x":"0","y":"8","properties":{"color":"3700253","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12881","typeID":"__group__","zOrder":"166","measuredW":"152","measuredH":"40","w":"152","h":"40","x":"171","y":"1581","properties":{"controlName":"102-pick-a-framework:vue-js"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"145","h":"40","measuredW":"200","measuredH":"140","x":"7","y":"0","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"45","measuredH":"25","x":"58","y":"7","properties":{"text":"Vue.js","size":"17"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"0","y":"8","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"0","y":"8","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"4","typeID":"Icon","zOrder":"4","measuredW":"24","measuredH":"24","x":"0","y":"8","properties":{"color":"3700253","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12882","typeID":"Arrow","zOrder":"167","w":"97","h":"2","measuredW":"150","measuredH":"100","x":"1149","y":"2483","properties":{"color":"2848996","curvature":"0","direction":"bottom","leftArrow":"false","rightArrow":"false","stroke":"dotted","p0":{"x":96.5324984379306,"y":0},"p1":{"x":0.4835193355826628,"y":0.007267064624967576},"p2":{"x":-0.0834087691514469,"y":1.8700832259696654}}},{"ID":"12883","typeID":"__group__","zOrder":"168","measuredW":"203","measuredH":"50","w":"203","h":"50","x":"828","y":"1692","properties":{"controlName":"112-modern-css"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"203","h":"50","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16776960"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"98","measuredH":"25","x":"53","y":"13","properties":{"size":"17","text":"Modern CSS"}}]}}},{"ID":"12884","typeID":"Arrow","zOrder":"169","w":"65","h":"4","measuredW":"150","measuredH":"100","x":"1155","y":"2530","properties":{"color":"2848996","direction":"bottom","leftArrow":"false","p0":{"x":0,"y":3},"p1":{"x":0.4807692307692308,"y":-0.01923076923076923},"p2":{"x":64,"y":0},"rightArrow":"false","stroke":"dotted"}},{"ID":"12885","typeID":"Arrow","zOrder":"170","w":"65","h":"2","measuredW":"150","measuredH":"100","x":"1156","y":"2580","properties":{"color":"2848996","curvature":"-1","leftArrow":"false","p0":{"x":0,"y":0},"p1":{"x":0.4807692307692308,"y":-0.01923076923076923},"p2":{"x":64,"y":1},"rightArrow":"false","stroke":"dotted"}},{"ID":"12886","typeID":"__group__","zOrder":"171","measuredW":"211","measuredH":"40","w":"211","h":"40","x":"829","y":"1784","properties":{"controlName":"100-modern-css:styled-components"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"202","h":"40","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","w":"151","measuredW":"150","measuredH":"25","x":"25","y":"7","properties":{"size":"17","text":"Styled Components"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"187","y":"8","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"187","y":"8","properties":{"color":"10027263","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12887","typeID":"__group__","zOrder":"172","measuredW":"212","measuredH":"40","w":"212","h":"40","x":"829","y":"1829","properties":{"controlName":"101-modern-css:css-modules"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"202","h":"40","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","w":"103","measuredW":"103","measuredH":"25","x":"49","y":"7","properties":{"size":"17","text":"CSS Modules"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"188","y":"8","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"188","y":"8","properties":{"color":"10027263","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12888","typeID":"Arrow","zOrder":"173","w":"179","h":"2","measuredW":"150","measuredH":"100","x":"300","y":"2955","properties":{"color":"2848996","curvature":"0","direction":"bottom","leftArrow":"false","p0":{"x":0,"y":1},"p1":{"x":0.431994261119082,"y":-0.006169296987087527},"p2":{"x":178,"y":0},"rightArrow":"false","stroke":"dotted"}},{"ID":"12889","typeID":"Arrow","zOrder":"174","w":"161","h":"34","measuredW":"150","measuredH":"100","x":"306","y":"2912","properties":{"color":"2848996","curvature":"0","leftArrow":"false","p0":{"x":0,"y":0},"p1":{"x":0.4319942611190819,"y":-0.006169296987087513},"p2":{"x":160,"y":33},"rightArrow":"false","stroke":"dotted"}},{"ID":"12890","typeID":"__group__","zOrder":"175","measuredW":"210","measuredH":"40","w":"210","h":"40","x":"829","y":"1919","properties":{"controlName":"103-modern-css:emotion"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"201","h":"40","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"64","measuredH":"25","x":"69","y":"7","properties":{"text":"Emotion","size":"17"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"186","y":"8","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"186","y":"8","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"4","typeID":"Icon","zOrder":"4","measuredW":"24","measuredH":"24","x":"186","y":"8","properties":{"color":"3700253","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12891","typeID":"__group__","zOrder":"176","measuredW":"175","measuredH":"41","w":"175","h":"41","x":"550","y":"2793","properties":{"controlName":"100-graphql:apollo"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"167","h":"41","measuredW":"200","measuredH":"140","x":"8","y":"0","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","w":"49","measuredW":"48","measuredH":"25","x":"58","y":"8","properties":{"size":"17","text":"Apollo"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"0","y":"9","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"0","y":"9","properties":{"color":"10027263","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12892","typeID":"__group__","zOrder":"177","measuredW":"285","measuredH":"59","w":"285","h":"59","x":"803","y":"2666","properties":{"controlName":"120-static-site-generators"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"281","h":"50","measuredW":"200","measuredH":"140","x":"0","y":"9","properties":{"color":"16776960"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"169","measuredH":"25","x":"56","y":"22","properties":{"size":"17","text":"Static Site Generators"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"261","y":"0","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"261","y":"0","properties":{"color":"10066329","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12893","typeID":"__group__","zOrder":"178","measuredW":"156","measuredH":"41","w":"156","h":"41","x":"1153","y":"2821","properties":{"controlName":"101-static-site-generators:gatsbyjs"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"147","h":"41","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","w":"78","measuredW":"73","measuredH":"25","x":"35","y":"8","properties":{"size":"17","text":"GatsbyJS"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"132","y":"9","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"132","y":"9","properties":{"icon":{"ID":"check-circle","size":"small"},"color":"3700253"}}]}}},{"ID":"12894","typeID":"__group__","zOrder":"179","measuredW":"157","measuredH":"41","w":"157","h":"41","x":"1153","y":"2775","properties":{"controlName":"100-static-site-generators:next-js"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"147","h":"41","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","w":"58","measuredW":"52","measuredH":"25","x":"45","y":"8","properties":{"size":"17","text":"Next.js"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"133","y":"9","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"133","y":"9","properties":{"icon":{"ID":"check-circle","size":"small"},"color":"3700253"}}]}}},{"ID":"12895","typeID":"__group__","zOrder":"180","measuredW":"156","measuredH":"41","w":"156","h":"41","x":"1151","y":"3008","properties":{"controlName":"102-static-site-generators:nuxt-js"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"147","h":"41","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","w":"56","measuredW":"52","measuredH":"25","x":"46","y":"8","properties":{"size":"17","text":"Nuxt.js"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"132","y":"9","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"132","y":"9","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"4","typeID":"Icon","zOrder":"4","measuredW":"24","measuredH":"24","x":"132","y":"9","properties":{"color":"3700253","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12896","typeID":"__group__","zOrder":"181","measuredW":"156","measuredH":"41","w":"156","h":"41","x":"1151","y":"2868","properties":{"controlName":"103-static-site-generators:vuepress"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"147","h":"41","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","w":"76","measuredW":"72","measuredH":"25","x":"40","y":"8","properties":{"size":"17","text":"Vuepress"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"132","y":"9","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"132","y":"9","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"4","typeID":"Icon","zOrder":"4","measuredW":"24","measuredH":"24","x":"132","y":"9","properties":{"color":"3700253","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12897","typeID":"__group__","zOrder":"182","measuredW":"157","measuredH":"41","w":"157","h":"41","x":"1151","y":"2914","properties":{"controlName":"104-static-site-generators:jekyll"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"147","h":"41","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","w":"49","measuredW":"43","measuredH":"25","x":"52","y":"8","properties":{"size":"17","text":"Jekyll"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"133","y":"9","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"133","y":"9","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"4","typeID":"Icon","zOrder":"4","measuredW":"24","measuredH":"24","x":"133","y":"9","properties":{"color":"3700253","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12898","typeID":"__group__","zOrder":"183","measuredW":"212","measuredH":"50","w":"212","h":"50","x":"297","y":"1744","properties":{"controlName":"114-css-frameworks"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"212","h":"50","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16776960"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"131","measuredH":"25","x":"40","y":"13","properties":{"size":"17","text":"CSS Frameworks"}}]}}},{"ID":"12899","typeID":"__group__","zOrder":"184","measuredW":"335","measuredH":"137","w":"335","h":"137","x":"175","y":"2061","properties":{"controlName":"114-css-frameworks:css-first"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"335","h":"137","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"14540253"}},{"ID":"2","typeID":"Label","zOrder":"1","measuredW":"150","measuredH":"24","x":"154","y":"17","properties":{"size":"16","text":"CSS first frameworks"}},{"ID":"3","typeID":"Label","zOrder":"2","measuredW":"145","measuredH":"24","x":"154","y":"44","properties":{"size":"16","text":"that don't come with"}},{"ID":"4","typeID":"Label","zOrder":"3","measuredW":"99","measuredH":"24","x":"154","y":"71","properties":{"size":"16","text":"JS framework"}},{"ID":"5","typeID":"Label","zOrder":"4","measuredW":"166","measuredH":"24","x":"153","y":"98","properties":{"size":"16","text":"components by default."}}]}}},{"ID":"12900","typeID":"__group__","zOrder":"185","measuredW":"127","measuredH":"52","w":"127","h":"52","x":"191","y":"2076","properties":{"controlName":"100-css-frameworks:css-first:bootstrap"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"127","h":"52","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"14540253"}},{"ID":"1","typeID":"Label","zOrder":"1","w":"81","measuredW":"75","measuredH":"25","x":"27","y":"13","properties":{"size":"17","text":"Bootstrap"}}]}}},{"ID":"12901","typeID":"__group__","zOrder":"186","measuredW":"127","measuredH":"49","w":"127","h":"49","x":"191","y":"2133","properties":{"controlName":"101-css-frameworks:css-first:bulma"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"127","h":"49","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"14540253"}},{"ID":"1","typeID":"Label","zOrder":"1","w":"50","measuredW":"49","measuredH":"25","x":"39","y":"12","properties":{"size":"17","text":"Bulma"}}]}}},{"ID":"12902","typeID":"__group__","zOrder":"187","measuredW":"232","measuredH":"276","w":"232","h":"276","x":"1088","y":"1882","properties":{"controlName":"115-testing-your-apps"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"232","h":"276","measuredW":"200","measuredH":"140","x":"0","y":"0"},{"ID":"1","typeID":"Label","zOrder":"1","w":"185","measuredW":"185","measuredH":"24","x":"18","y":"208","properties":{"text":"You can fill all your testing","size":"16"}},{"ID":"2","typeID":"Label","zOrder":"2","w":"155","measuredW":"155","measuredH":"24","x":"18","y":"230","properties":{"text":"needs with just these.","size":"16"}}]}}},{"ID":"12903","typeID":"__group__","zOrder":"188","measuredW":"207","measuredH":"40","w":"207","h":"40","x":"1104","y":"1942","properties":{"controlName":"101-testing-your-apps:react-testing-library"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"195","h":"40","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16776960"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"152","measuredH":"25","x":"22","y":"7","properties":{"text":"react-testing-library","size":"17"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"183","y":"8","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"183","y":"8","properties":{"color":"10027263","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12904","typeID":"__group__","zOrder":"189","measuredW":"205","measuredH":"40","w":"205","h":"40","x":"1105","y":"1898","properties":{"controlName":"100-testing-your-apps:jest"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"194","h":"40","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16776960"}},{"ID":"1","typeID":"Label","zOrder":"1","w":"39","measuredW":"33","measuredH":"25","x":"77","y":"8","properties":{"size":"17","text":"Jest"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"181","y":"7","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"181","y":"7","properties":{"color":"10027263","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12905","typeID":"__group__","zOrder":"190","measuredW":"205","measuredH":"39","w":"205","h":"39","x":"1104","y":"1987","properties":{"controlName":"102-testing-your-apps:cypress"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"195","h":"39","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16776960"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"63","measuredH":"25","x":"63","y":"7","properties":{"text":"Cypress","size":"17"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"181","y":"8","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"181","y":"8","properties":{"color":"10027263","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12906","typeID":"__group__","zOrder":"191","measuredW":"405","measuredH":"158","w":"405","h":"158","x":"629","y":"2000","properties":{"controlName":"115-testing-your-apps"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"405","h":"158","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16776960"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"144","measuredH":"26","x":"125","y":"19","properties":{"size":"18","text":"Testing your Apps"}},{"ID":"2","typeID":"Label","zOrder":"2","w":"349","measuredW":"328","measuredH":"25","x":"22","y":"86","properties":{"size":"17","text":"and {color:blue}Functional{color} tests and learn how to write"}},{"ID":"3","typeID":"Label","zOrder":"3","w":"302","measuredW":"286","measuredH":"25","x":"21","y":"115","properties":{"size":"17","text":"them with the tools listed on the right."}},{"ID":"4","typeID":"Label","zOrder":"4","w":"362","measuredW":"361","measuredH":"25","x":"21","y":"56","properties":{"size":"17","text":"Learn the difference between {color:blue}Unit{color}, {color:blue}Integration{color}, "}}]}}},{"ID":"12907","typeID":"__group__","zOrder":"192","measuredW":"234","measuredH":"60","w":"234","h":"60","x":"804","y":"2348","properties":{"controlName":"116-type-checkers"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"226","h":"50","measuredW":"200","measuredH":"140","x":"0","y":"10","properties":{"color":"16776960"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"115","measuredH":"25","x":"53","y":"23","properties":{"size":"17","text":"Type Checkers"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"210","y":"0","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"210","y":"0","properties":{"color":"10066329","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12908","typeID":"__group__","zOrder":"193","measuredW":"206","measuredH":"48","w":"206","h":"48","x":"1115","y":"2354","properties":{"controlName":"100-type-checkers:typescript"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"199","h":"41","measuredW":"200","measuredH":"140","x":"0","y":"7","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","w":"91","measuredW":"81","measuredH":"25","x":"54","y":"15","properties":{"size":"17","text":"TypeScript"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"182","y":"0","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"182","y":"0","properties":{"color":"10027263","icon":{"ID":"check-circle","size":"small"}}},{"ID":"4","typeID":"Icon","zOrder":"4","measuredW":"24","measuredH":"24","x":"156","y":"0","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"5","typeID":"Icon","zOrder":"5","measuredW":"24","measuredH":"24","x":"156","y":"0","properties":{"color":"10066329","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12909","typeID":"__group__","zOrder":"194","measuredW":"247","measuredH":"61","w":"247","h":"61","x":"516","y":"2345","properties":{"controlName":"117-progressive-web-apps"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"241","h":"50","measuredW":"200","measuredH":"140","x":"6","y":"11","properties":{"color":"16776960"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"172","measuredH":"25","x":"41","y":"24","properties":{"size":"17","text":"Progressive Web Apps"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"0","y":"0","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"0","y":"0","properties":{"color":"10066329","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12910","typeID":"Canvas","zOrder":"195","w":"228","h":"428","measuredW":"100","measuredH":"70","x":"163","y":"2359"},{"ID":"12911","typeID":"__group__","zOrder":"196","measuredW":"192","measuredH":"32","w":"192","h":"32","x":"181","y":"2487","properties":{"controlName":"103-progressive-web-apps:service-workers"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextInput","zOrder":"0","w":"192","measuredW":"147","measuredH":"32","x":"0","y":"0","properties":{"align":"center","color":"16776960","text":"Service Workers","size":"18"}}]}}},{"ID":"12912","typeID":"__group__","zOrder":"197","measuredW":"192","measuredH":"32","w":"192","h":"32","x":"181","y":"2375","properties":{"controlName":"100-progressive-web-apps:storage"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextInput","zOrder":"0","w":"192","measuredW":"78","measuredH":"32","x":"0","y":"0","properties":{"align":"center","color":"16776960","text":"Storage","size":"18"}}]}}},{"ID":"12913","typeID":"__group__","zOrder":"198","measuredW":"192","measuredH":"32","w":"192","h":"32","x":"181","y":"2525","properties":{"controlName":"104-progressive-web-apps:location"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextInput","zOrder":"0","w":"192","measuredW":"84","measuredH":"32","x":"0","y":"0","properties":{"align":"center","color":"16770457","text":"Location","size":"18"}}]}}},{"ID":"12914","typeID":"__group__","zOrder":"199","measuredW":"192","measuredH":"32","w":"192","h":"32","x":"181","y":"2562","properties":{"controlName":"105-progressive-web-apps:notifications"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextInput","zOrder":"0","w":"192","measuredW":"115","measuredH":"32","x":"0","y":"0","properties":{"align":"center","color":"16770457","text":"Notifications","size":"18"}}]}}},{"ID":"12915","typeID":"__group__","zOrder":"200","measuredW":"192","measuredH":"32","w":"192","h":"32","x":"181","y":"2600","properties":{"controlName":"106-progressive-web-apps:device-orientation"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextInput","zOrder":"0","w":"192","measuredW":"167","measuredH":"32","x":"0","y":"0","properties":{"align":"center","color":"16770457","text":"Device Orientation","size":"18"}}]}}},{"ID":"12916","typeID":"__group__","zOrder":"201","measuredW":"192","measuredH":"32","w":"192","h":"32","x":"181","y":"2637","properties":{"controlName":"107-progressive-web-apps:payments"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextInput","zOrder":"0","w":"192","measuredW":"94","measuredH":"32","x":"0","y":"0","properties":{"align":"center","color":"16770457","text":"Payments","size":"18"}}]}}},{"ID":"12917","typeID":"__group__","zOrder":"202","measuredW":"192","measuredH":"32","w":"192","h":"32","x":"181","y":"2675","properties":{"controlName":"108-progressive-web-apps:credentials"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextInput","zOrder":"0","w":"192","measuredW":"108","measuredH":"32","x":"0","y":"0","properties":{"align":"center","color":"16770457","text":"Credentials","size":"18"}}]}}},{"ID":"12918","typeID":"__group__","zOrder":"203","measuredW":"192","measuredH":"32","w":"192","h":"32","x":"181","y":"2412","properties":{"controlName":"101-progressive-web-apps:web-sockets"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextInput","zOrder":"0","w":"192","measuredW":"120","measuredH":"32","x":"0","y":"0","properties":{"align":"center","color":"16776960","text":"Web Sockets","size":"18"}}]}}},{"ID":"12919","typeID":"Label","zOrder":"204","w":"156","measuredW":"151","measuredH":"25","x":"199","y":"2720","properties":{"size":"17","text":"Learn different Web"}},{"ID":"12920","typeID":"Label","zOrder":"205","w":"148","measuredW":"143","measuredH":"25","x":"203","y":"2746","properties":{"size":"17","text":"APIs used in PWAs"}},{"ID":"12921","typeID":"Icon","zOrder":"206","measuredW":"24","measuredH":"24","x":"154","y":"2348","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"12922","typeID":"Icon","zOrder":"207","measuredW":"24","measuredH":"24","x":"154","y":"2348","properties":{"color":"10066329","icon":{"ID":"check-circle","size":"small"}}},{"ID":"12923","typeID":"__group__","zOrder":"208","measuredW":"192","measuredH":"32","w":"192","h":"32","x":"181","y":"2450","properties":{"controlName":"102-progressive-web-apps:server-sent-events"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextInput","zOrder":"0","w":"192","measuredW":"170","measuredH":"32","x":"0","y":"0","properties":{"align":"center","color":"16776960","text":"Server Sent Events","size":"18"}}]}}},{"ID":"12924","typeID":"Canvas","zOrder":"209","w":"262","h":"281","measuredW":"100","measuredH":"70","x":"415","y":"2434"},{"ID":"12925","typeID":"__group__","zOrder":"210","measuredW":"225","measuredH":"32","w":"225","h":"32","x":"435","y":"2453","properties":{"controlName":"109-progressive-web-apps:prpl-pattern"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextInput","zOrder":"0","w":"225","measuredW":"124","measuredH":"32","x":"0","y":"0","properties":{"align":"center","color":"16776960","size":"18","text":"PRPL Pattern"}}]}}},{"ID":"12926","typeID":"__group__","zOrder":"211","measuredW":"225","measuredH":"32","w":"225","h":"32","x":"435","y":"2491","properties":{"controlName":"110-progressive-web-apps:rail-model"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextInput","zOrder":"0","w":"225","measuredW":"110","measuredH":"32","x":"0","y":"0","properties":{"align":"center","color":"16776960","size":"18","text":"RAIL Model"}}]}}},{"ID":"12927","typeID":"__group__","zOrder":"212","measuredW":"225","measuredH":"32","w":"225","h":"32","x":"435","y":"2529","properties":{"controlName":"111-progressive-web-apps:performance-metrics"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextInput","zOrder":"0","w":"225","measuredW":"185","measuredH":"32","x":"0","y":"0","properties":{"align":"center","color":"16776960","size":"18","text":"Performance Metrics"}}]}}},{"ID":"12928","typeID":"__group__","zOrder":"213","measuredW":"225","measuredH":"32","w":"225","h":"32","x":"435","y":"2566","properties":{"controlName":"112-progressive-web-apps:lighthouse"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextInput","zOrder":"0","w":"225","measuredW":"156","measuredH":"32","x":"0","y":"0","properties":{"align":"center","color":"16776960","size":"18","text":"Using Lighthouse"}}]}}},{"ID":"12929","typeID":"__group__","zOrder":"214","measuredW":"225","measuredH":"32","w":"225","h":"32","x":"435","y":"2604","properties":{"controlName":"113-progressive-web-apps:browser-devtools"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextInput","zOrder":"0","w":"225","measuredW":"141","measuredH":"32","x":"0","y":"0","properties":{"align":"center","color":"16776960","size":"18","text":"Using DevTools"}}]}}},{"ID":"12930","typeID":"Label","zOrder":"215","w":"185","measuredW":"176","measuredH":"25","x":"455","y":"2649","properties":{"size":"17","text":"Calculating, Measuring"}},{"ID":"12931","typeID":"Label","zOrder":"216","w":"224","measuredW":"212","measuredH":"25","x":"435","y":"2676","properties":{"size":"17","text":"and improving performance"}},{"ID":"12932","typeID":"Icon","zOrder":"217","measuredW":"24","measuredH":"24","x":"408","y":"2425","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"12933","typeID":"Icon","zOrder":"218","measuredW":"24","measuredH":"24","x":"408","y":"2425","properties":{"color":"10066329","icon":{"ID":"check-circle","size":"small"}}},{"ID":"12934","typeID":"__group__","zOrder":"219","measuredW":"285","measuredH":"59","w":"285","h":"59","x":"692","y":"2499","properties":{"controlName":"118-server-side-rendering"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"278","h":"50","measuredW":"200","measuredH":"140","x":"7","y":"9","properties":{"color":"16776960"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"225","measuredH":"25","x":"29","y":"22","properties":{"size":"17","text":"Server Side Rendering (SSR)"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"0","y":"0","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"0","y":"0","properties":{"color":"10066329","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12935","typeID":"__group__","zOrder":"220","measuredW":"125","measuredH":"41","w":"125","h":"41","x":"1045","y":"2463","properties":{"controlName":"100-server-side-rendering:react-js"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"116","h":"41","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"47","measuredH":"25","x":"34","y":"8","properties":{"text":"React","size":"17"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"101","y":"9","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"101","y":"9","properties":{"color":"10027263","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12936","typeID":"__group__","zOrder":"221","measuredW":"116","measuredH":"41","w":"116","h":"41","x":"1207","y":"2462","properties":{"controlName":"100-server-side-rendering:react-js:next-js"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"106","h":"41","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"52","measuredH":"25","x":"27","y":"8","properties":{"size":"17","text":"Next.js"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"92","y":"9","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"92","y":"9","properties":{"color":"10027263","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12937","typeID":"__group__","zOrder":"222","measuredW":"127","measuredH":"41","w":"127","h":"41","x":"1045","y":"2512","properties":{"controlName":"101-server-side-rendering:angular"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"119","h":"41","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","w":"69","measuredW":"59","measuredH":"25","x":"35","y":"8","properties":{"size":"17","text":"Angular"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"103","y":"9","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"103","y":"9","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"4","typeID":"Icon","zOrder":"4","measuredW":"24","measuredH":"24","x":"103","y":"9","properties":{"color":"3700253","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12938","typeID":"__group__","zOrder":"223","measuredW":"121","measuredH":"41","w":"121","h":"41","x":"1204","y":"2512","properties":{"controlName":"100-server-side-rendering:angular:universal"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"111","h":"41","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","w":"73","measuredW":"72","measuredH":"25","x":"19","y":"8","properties":{"size":"17","text":"Universal"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"97","y":"9","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"97","y":"9","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"4","typeID":"Icon","zOrder":"4","measuredW":"24","measuredH":"24","x":"97","y":"9","properties":{"color":"3700253","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12939","typeID":"__group__","zOrder":"224","measuredW":"127","measuredH":"41","w":"127","h":"41","x":"1047","y":"2561","properties":{"controlName":"102-server-side-rendering:vue-js"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"118","h":"41","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","w":"48","measuredW":"45","measuredH":"25","x":"37","y":"8","properties":{"text":"Vue.js","size":"17"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"103","y":"9","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"103","y":"9","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"4","typeID":"Icon","zOrder":"4","measuredW":"24","measuredH":"24","x":"103","y":"9","properties":{"color":"3700253","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12940","typeID":"__group__","zOrder":"225","measuredW":"122","measuredH":"41","w":"122","h":"41","x":"1202","y":"2561","properties":{"controlName":"100-server-side-rendering:vue-js:nuxt-js"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"111","h":"41","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","w":"55","measuredW":"52","measuredH":"25","x":"28","y":"8","properties":{"size":"17","text":"Nuxt.js"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"98","y":"9","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"98","y":"9","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"4","typeID":"Icon","zOrder":"4","measuredW":"24","measuredH":"24","x":"98","y":"9","properties":{"color":"3700253","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12941","typeID":"__group__","zOrder":"226","measuredW":"220","measuredH":"59","w":"220","h":"59","x":"457","y":"2919","properties":{"controlName":"121-mobile-applications"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"210","h":"50","measuredW":"200","measuredH":"140","x":"0","y":"9","properties":{"color":"16776960"}},{"ID":"1","typeID":"Label","zOrder":"1","w":"169","measuredW":"150","measuredH":"25","x":"27","y":"22","properties":{"size":"17","text":"Mobile Applications"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"196","y":"0","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"196","y":"0","properties":{"color":"10066329","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12942","typeID":"__group__","zOrder":"227","measuredW":"156","measuredH":"41","w":"156","h":"41","x":"157","y":"2844","properties":{"controlName":"100-mobile-applications:react-native"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"147","h":"41","measuredW":"200","measuredH":"140","x":"9","y":"0","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","w":"101","measuredW":"100","measuredH":"25","x":"32","y":"8","properties":{"size":"17","text":"React Native"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"0","y":"7","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"0","y":"7","properties":{"color":"10027263","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12943","typeID":"__group__","zOrder":"228","measuredW":"147","measuredH":"41","w":"147","h":"41","x":"166","y":"2984","properties":{"controlName":"101-mobile-applications:nativescript"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"147","h":"41","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"94","measuredH":"25","x":"27","y":"8","properties":{"text":"NativeScript","size":"17"}}]}}},{"ID":"12944","typeID":"__group__","zOrder":"229","measuredW":"157","measuredH":"41","w":"157","h":"41","x":"156","y":"2891","properties":{"controlName":"102-mobile-applications:flutter"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"147","h":"41","measuredW":"200","measuredH":"140","x":"10","y":"0","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","w":"53","measuredW":"50","measuredH":"25","x":"57","y":"8","properties":{"size":"17","text":"Flutter"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"0","y":"7","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"0","y":"7","properties":{"color":"10027263","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12945","typeID":"__group__","zOrder":"230","measuredW":"157","measuredH":"41","w":"157","h":"41","x":"1151","y":"2960","properties":{"controlName":"105-static-site-generators:hugo"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"147","h":"41","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","w":"43","measuredW":"42","measuredH":"25","x":"52","y":"8","properties":{"size":"17","text":"Hugo"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"133","y":"9","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"133","y":"9","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"4","typeID":"Icon","zOrder":"4","measuredW":"24","measuredH":"24","x":"133","y":"9","properties":{"color":"3700253","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12946","typeID":"__group__","zOrder":"231","measuredW":"147","measuredH":"41","w":"147","h":"41","x":"166","y":"2938","properties":{"controlName":"103-mobile-applications:ionic"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"147","h":"41","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","w":"40","measuredW":"38","measuredH":"25","x":"54","y":"8","properties":{"size":"17","text":"Ionic"}}]}}},{"ID":"12947","typeID":"__group__","zOrder":"232","measuredW":"152","measuredH":"50","w":"152","h":"50","x":"802","y":"2793","properties":{"controlName":"119-graphql"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"146","h":"50","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16776960"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"71","measuredH":"25","x":"37","y":"12","properties":{"size":"17","text":"GraphQL"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"128","y":"13","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"128","y":"13","properties":{"color":"10066329","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12948","typeID":"__group__","zOrder":"233","measuredW":"175","measuredH":"41","w":"175","h":"41","x":"551","y":"2840","properties":{"controlName":"101-graphql:relay-modern"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"168","h":"41","measuredW":"200","measuredH":"140","x":"7","y":"0","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","w":"115","measuredW":"107","measuredH":"25","x":"40","y":"8","properties":{"size":"17","text":"Relay Modern"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"0","y":"9","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"0","y":"9","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"4","typeID":"Icon","zOrder":"4","measuredW":"24","measuredH":"24","x":"0","y":"9","properties":{"color":"3700253","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12949","typeID":"__group__","zOrder":"234","measuredW":"238","measuredH":"60","w":"238","h":"60","x":"812","y":"2243","properties":{"controlName":"113-web-components"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"230","h":"50","measuredW":"200","measuredH":"140","x":"0","y":"10","properties":{"color":"16776960"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"137","measuredH":"25","x":"44","y":"23","properties":{"size":"17","text":"Web Components"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"214","y":"0","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"214","y":"0","properties":{"color":"10066329","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12950","typeID":"__group__","zOrder":"235","measuredW":"199","measuredH":"40","w":"199","h":"40","x":"1127","y":"2211","properties":{"controlName":"100-web-components:html-templates"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"190","h":"40","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","w":"132","measuredW":"131","measuredH":"25","x":"30","y":"7","properties":{"size":"17","text":"HTML Templates"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"175","y":"8","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"175","y":"8","properties":{"color":"10066329","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12951","typeID":"__group__","zOrder":"236","measuredW":"199","measuredH":"40","w":"199","h":"40","x":"1127","y":"2257","properties":{"controlName":"101-web-components:custom-elements"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"190","h":"40","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","w":"139","measuredW":"136","measuredH":"25","x":"30","y":"7","properties":{"size":"17","text":"Custom Elements"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"175","y":"8","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"175","y":"8","properties":{"color":"10066329","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12952","typeID":"__group__","zOrder":"237","measuredW":"199","measuredH":"40","w":"199","h":"40","x":"1127","y":"2302","properties":{"controlName":"102-web-components:shadow-dom"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"190","h":"40","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","w":"105","measuredW":"105","measuredH":"25","x":"38","y":"7","properties":{"size":"17","text":"Shadow DOM"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"175","y":"8","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"175","y":"8","properties":{"color":"10066329","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12953","typeID":"__group__","zOrder":"238","measuredW":"156","measuredH":"43","w":"156","h":"43","x":"169","y":"1403","properties":{"controlName":"101-css-preprocessors:postcss"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"146","h":"43","measuredW":"200","measuredH":"140","x":"10","y":"0","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","w":"74","measuredW":"66","measuredH":"25","x":"49","y":"9","properties":{"size":"17","text":"PostCSS"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"0","y":"10","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"0","y":"10","properties":{"color":"10066329","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12954","typeID":"__group__","zOrder":"239","measuredW":"156","measuredH":"41","w":"156","h":"41","x":"169","y":"1356","properties":{"controlName":"100-css-preprocessors:sass"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"146","h":"41","measuredW":"200","measuredH":"140","x":"10","y":"0","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","w":"46","measuredW":"37","measuredH":"25","x":"60","y":"8","properties":{"size":"17","text":"Sass"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"0","y":"9","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"0","y":"9","properties":{"color":"10066329","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12955","typeID":"__group__","zOrder":"240","measuredW":"212","measuredH":"40","w":"212","h":"40","x":"829","y":"1874","properties":{"controlName":"102-modern-css:styled-jsx"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"201","h":"40","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","w":"90","measuredW":"80","measuredH":"25","x":"56","y":"7","properties":{"size":"17","text":"Styled JSX"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"188","y":"8","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"188","y":"8","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"4","typeID":"Icon","zOrder":"4","measuredW":"24","measuredH":"24","x":"188","y":"8","properties":{"color":"3700253","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12956","typeID":"__group__","zOrder":"241","measuredW":"159","measuredH":"40","w":"159","h":"40","x":"1103","y":"1622","properties":{"controlName":"101-build-tools:module-bundlers:esbuild"},"children":{"controls":{"control":[{"ID":"1","typeID":"Label","zOrder":"0","w":"72","measuredW":"72","measuredH":"25","x":"52","y":"7","properties":{"size":"17","text":"Webpack"}},{"ID":"2","typeID":"TextArea","zOrder":"1","w":"149","h":"40","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16770457"}},{"ID":"3","typeID":"Label","zOrder":"2","measuredW":"55","measuredH":"25","x":"50","y":"7","properties":{"size":"17","text":"esbuild"}},{"ID":"4","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"135","y":"8","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"5","typeID":"Icon","zOrder":"4","measuredW":"24","measuredH":"24","x":"135","y":"8","properties":{"color":"10027263","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12957","typeID":"__group__","zOrder":"242","measuredW":"159","measuredH":"40","w":"159","h":"40","x":"1103","y":"1577","properties":{"controlName":"104-build-tools:module-bundlers:vite"},"children":{"controls":{"control":[{"ID":"0","typeID":"Label","zOrder":"0","w":"46","measuredW":"49","measuredH":"25","x":"65","y":"7","properties":{"size":"17","text":"Parcel"}},{"ID":"1","typeID":"TextArea","zOrder":"1","w":"151","h":"40","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16770457"}},{"ID":"2","typeID":"Label","zOrder":"2","measuredW":"30","measuredH":"25","x":"53","y":"7","properties":{"size":"17","text":"Vite"}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"135","y":"7","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"4","typeID":"Icon","zOrder":"4","measuredW":"24","measuredH":"24","x":"135","y":"7","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"5","typeID":"Icon","zOrder":"5","measuredW":"24","measuredH":"24","x":"135","y":"7","properties":{"icon":{"ID":"check-circle","size":"small"},"color":"10027263"}}]}}},{"ID":"12958","typeID":"__group__","zOrder":"243","measuredW":"157","measuredH":"41","w":"157","h":"41","x":"1152","y":"2685","properties":{"controlName":"107-static-site-generators:eleventy"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"147","h":"41","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16770457","align":"center","size":"17"}},{"ID":"1","typeID":"Icon","zOrder":"1","measuredW":"24","measuredH":"24","x":"133","y":"9","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"133","y":"9","properties":{"icon":{"ID":"check-circle","size":"small"},"color":"10027263"}},{"ID":"3","typeID":"Label","zOrder":"3","measuredW":"66","measuredH":"25","x":"41","y":"8","properties":{"text":"Eleventy","size":"17"}}]}}},{"ID":"12959","typeID":"__group__","zOrder":"244","measuredW":"158","measuredH":"49","w":"158","h":"49","x":"173","y":"1241","properties":{"controlName":"102-package-managers:pnpm"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"151","h":"49","measuredW":"200","measuredH":"140","x":"7","y":"0","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"44","measuredH":"25","x":"61","y":"12","properties":{"size":"17","text":"pnpm"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"0","y":"13","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"0","y":"13","properties":{"icon":{"ID":"check-circle","size":"small"},"color":"3700253"}}]}}},{"ID":"12960","typeID":"__group__","zOrder":"245","measuredW":"152","measuredH":"40","w":"152","h":"40","x":"171","y":"1627","properties":{"controlName":"103-pick-a-framework:svelte"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"145","h":"40","measuredW":"200","measuredH":"140","x":"7","y":"0","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"48","measuredH":"25","x":"58","y":"7","properties":{"size":"17","text":"Svelte"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"0","y":"8","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"0","y":"8","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"4","typeID":"Icon","zOrder":"4","measuredW":"24","measuredH":"24","x":"0","y":"8","properties":{"color":"3700253","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12961","typeID":"__group__","zOrder":"246","measuredW":"152","measuredH":"40","w":"152","h":"40","x":"171","y":"1673","properties":{"controlName":"104-pick-a-framework:solid-js"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"145","h":"40","measuredW":"200","measuredH":"140","x":"7","y":"0","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"61","measuredH":"25","x":"58","y":"7","properties":{"size":"17","text":"Solid JS"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"0","y":"8","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"0","y":"8","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"4","typeID":"Icon","zOrder":"4","measuredW":"24","measuredH":"24","x":"0","y":"8","properties":{"color":"3700253","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12962","typeID":"__group__","zOrder":"247","measuredW":"204","measuredH":"39","w":"204","h":"39","x":"1102","y":"2031","properties":{"controlName":"104-testing-your-apps:playwright"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"197","h":"39","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16776960"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"78","measuredH":"25","x":"60","y":"7","properties":{"size":"17","text":"Playwright"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"180","y":"8","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"180","y":"8","properties":{"color":"10027263","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12963","typeID":"__group__","zOrder":"248","measuredW":"116","measuredH":"41","w":"116","h":"41","x":"1207","y":"2415","properties":{"controlName":"101-server-side-rendering:react-js:remix"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"106","h":"41","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"49","measuredH":"25","x":"28","y":"8","properties":{"size":"17","text":"Remix"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"92","y":"9","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"92","y":"9","properties":{"color":"10027263","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12964","typeID":"__group__","zOrder":"249","measuredW":"159","measuredH":"41","w":"159","h":"41","x":"1151","y":"3054","properties":{"controlName":"103-static-site-generators:remix"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"148","h":"41","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"49","measuredH":"25","x":"49","y":"8","properties":{"size":"17","text":"Remix"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"135","y":"9","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"135","y":"9","properties":{"icon":{"ID":"check-circle","size":"small"},"color":"3700253"}}]}}},{"ID":"12965","typeID":"__group__","zOrder":"250","measuredW":"196","measuredH":"41","w":"196","h":"41","x":"775","y":"3086","properties":{"controlName":"102-desktop-applications:flutter"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"188","h":"41","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"50","measuredH":"25","x":"69","y":"8","properties":{"size":"17","text":"Flutter"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"172","y":"8","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"172","y":"8","properties":{"icon":{"ID":"check-circle","size":"small"},"color":"40463"}}]}}},{"ID":"12966","typeID":"__group__","zOrder":"251","measuredW":"157","measuredH":"41","w":"157","h":"41","x":"1153","y":"2730","properties":{"controlName":"106-static-site-generators:astro"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"147","h":"41","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"39","measuredH":"25","x":"54","y":"8","properties":{"size":"17","text":"Astro"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"133","y":"9","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"133","y":"9","properties":{"icon":{"ID":"check-circle","size":"small"},"color":"10027263"}}]}}},{"ID":"12967","typeID":"__group__","zOrder":"252","measuredW":"128","measuredH":"40","w":"128","h":"40","x":"1047","y":"2611","properties":{"controlName":"103-server-side-rendering:svelte"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"119","h":"40","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"48","measuredH":"25","x":"36","y":"7","properties":{"size":"17","text":"Svelte"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"104","y":"8","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"104","y":"8","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"4","typeID":"Icon","zOrder":"4","measuredW":"24","measuredH":"24","x":"104","y":"8","properties":{"color":"3700253","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12968","typeID":"__group__","zOrder":"253","measuredW":"122","measuredH":"41","w":"122","h":"41","x":"1203","y":"2610","properties":{"controlName":"100-server-side-rendering:svelte:svelte-kit"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"111","h":"41","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"73","measuredH":"25","x":"17","y":"8","properties":{"size":"17","text":"Svelte Kit"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"98","y":"9","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"98","y":"9","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"4","typeID":"Icon","zOrder":"4","measuredW":"24","measuredH":"24","x":"98","y":"9","properties":{"color":"3700253","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12969","typeID":"__group__","zOrder":"254","measuredW":"411","measuredH":"87","w":"411","h":"87","x":"156","y":"2225","properties":{"controlName":"116-auth-strategies"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"401","h":"87","measuredW":"200","measuredH":"140","x":"10","y":"0","properties":{"color":"16776960"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"227","measuredH":"28","x":"97","y":"16","properties":{"size":"20","text":"Authentication Strategies"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"0","y":"34","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"0","y":"34","properties":{"icon":{"ID":"check-circle","size":"small"},"color":"10027263"}},{"ID":"4","typeID":"Label","zOrder":"4","measuredW":"353","measuredH":"25","x":"34","y":"46","properties":{"size":"17","text":"JWT, OAuth, SSO, Basic Auth, Session Auth etc"}}]}}},{"ID":"12970","typeID":"__group__","zOrder":"255","measuredW":"333","measuredH":"228","w":"333","h":"228","x":"176","y":"1824","properties":{"controlName":"114-css-frameworks:js-first"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"333","h":"228","measuredW":"200","measuredH":"140","x":"0","y":"0"},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"263","measuredH":"24","x":"19","y":"163","properties":{"size":"16","text":"JS based and better to use with your"}},{"ID":"2","typeID":"Label","zOrder":"2","measuredW":"247","measuredH":"24","x":"19","y":"189","properties":{"size":"16","text":"framework based JavaScript apps."}}]}}},{"ID":"12971","typeID":"__group__","zOrder":"256","measuredW":"145","measuredH":"40","w":"145","h":"40","x":"352","y":"1840","properties":{"controlName":"100-css-frameworks:js-first:tailwind-css"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"136","h":"40","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16776960"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"61","measuredH":"25","x":"37","y":"7","properties":{"size":"17","text":"Tailwind"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"121","y":"8","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"121","y":"8","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"4","typeID":"Icon","zOrder":"4","measuredW":"24","measuredH":"24","x":"121","y":"8","properties":{"icon":{"ID":"check-circle","size":"small"},"color":"10027263"}}]}}},{"ID":"12972","typeID":"__group__","zOrder":"257","measuredW":"150","measuredH":"37","w":"150","h":"37","x":"352","y":"1887","properties":{"controlName":"102-css-frameworks:js-first:material-ui"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"137","h":"37","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16776960"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"86","measuredH":"25","x":"26","y":"6","properties":{"size":"17","text":"Material UI"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"126","y":"7","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"126","y":"7","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"4","typeID":"Icon","zOrder":"4","measuredW":"24","measuredH":"24","x":"126","y":"7","properties":{"color":"3700253","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12973","typeID":"__group__","zOrder":"258","measuredW":"157","measuredH":"39","w":"157","h":"39","x":"188","y":"1841","properties":{"controlName":"104-css-frameworks:js-first:mantine"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"149","h":"39","measuredW":"200","measuredH":"140","x":"8","y":"0","properties":{"color":"16776960"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"63","measuredH":"25","x":"51","y":"7","properties":{"size":"17","text":"Mantine"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"0","y":"8","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"0","y":"8","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"4","typeID":"Icon","zOrder":"4","measuredW":"24","measuredH":"24","x":"0","y":"8","properties":{"color":"3700253","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12974","typeID":"__group__","zOrder":"259","measuredW":"149","measuredH":"37","w":"149","h":"37","x":"352","y":"1932","properties":{"controlName":"103-css-frameworks:js-first:radix-ui"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"139","h":"37","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16776960"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"66","measuredH":"25","x":"34","y":"6","properties":{"size":"17","text":"Radix UI"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"125","y":"7","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"125","y":"7","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"4","typeID":"Icon","zOrder":"4","measuredW":"24","measuredH":"24","x":"125","y":"7","properties":{"color":"3700253","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12975","typeID":"__group__","zOrder":"260","measuredW":"161","measuredH":"39","w":"161","h":"39","x":"184","y":"1886","properties":{"controlName":"101-css-frameworks:js-first:chakra-ui"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"152","h":"39","measuredW":"200","measuredH":"140","x":"9","y":"0","properties":{"color":"16776960"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"78","measuredH":"25","x":"44","y":"8","properties":{"size":"17","text":"Chakra UI"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"0","y":"8","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"0","y":"8","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"4","typeID":"Icon","zOrder":"4","measuredW":"24","measuredH":"24","x":"0","y":"8","properties":{"color":"3700253","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12976","typeID":"__group__","zOrder":"261","measuredW":"161","measuredH":"39","w":"161","h":"39","x":"185","y":"1931","properties":{"controlName":"105-css-frameworks:js-first:daisy-ui"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"152","h":"39","measuredW":"200","measuredH":"140","x":"9","y":"0","properties":{"color":"16776960"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"60","measuredH":"25","x":"55","y":"8","properties":{"size":"17","text":"DaisyUI"}},{"ID":"2","typeID":"Icon","zOrder":"2","measuredW":"24","measuredH":"24","x":"0","y":"8","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"3","typeID":"Icon","zOrder":"3","measuredW":"24","measuredH":"24","x":"0","y":"8","properties":{"color":"16777215","icon":{"ID":"circle","size":"small"}}},{"ID":"4","typeID":"Icon","zOrder":"4","measuredW":"24","measuredH":"24","x":"0","y":"8","properties":{"color":"3700253","icon":{"ID":"check-circle","size":"small"}}}]}}},{"ID":"12977","typeID":"TextArea","zOrder":"262","w":"438","h":"118","measuredW":"200","measuredH":"140","x":"371","y":"3383"},{"ID":"12978","typeID":"Label","zOrder":"263","measuredW":"366","measuredH":"25","x":"407","y":"3402","properties":{"size":"17","text":"Continue Learning with following relevant tracks"}},{"ID":"12979","typeID":"__group__","zOrder":"264","measuredW":"198","measuredH":"44","w":"198","h":"44","x":"594","y":"3439","properties":{"controlName":"ext_link:roadmap.sh/nodejs"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"198","h":"44","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"137","measuredH":"25","x":"30","y":"9","properties":{"size":"17","text":"Node.js Roadmap"}}]}}},{"ID":"12980","typeID":"__group__","zOrder":"265","measuredW":"198","measuredH":"44","w":"198","h":"44","x":"386","y":"3439","properties":{"controlName":"ext_link:roadmap.sh/typescript"},"children":{"controls":{"control":[{"ID":"0","typeID":"TextArea","zOrder":"0","w":"198","h":"44","measuredW":"200","measuredH":"140","x":"0","y":"0","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"160","measuredH":"25","x":"21","y":"9","properties":{"size":"17","text":"TypeScript Roadmap"}}]}}},{"ID":"12981","typeID":"Arrow","zOrder":"266","w":"1","h":"67","measuredW":"150","measuredH":"100","x":"1028","y":"3540","properties":{"curvature":"0","leftArrow":"false","rightArrow":"false","stroke":"dotted","color":"16777215","p0":{"x":1,"y":67.09090909090901},"p1":{"x":0.4072427393330943,"y":0.00953746862674794},"p2":{"x":1,"y":0}}},{"ID":"12985","typeID":"__group__","zOrder":"267","measuredW":"262","measuredH":"47","w":"262","h":"47","x":"415","y":"2720","properties":{"controlName":"ext_link:roadmap.sh/best-practices/frontend-performance"},"children":{"controls":{"control":[{"ID":"0","typeID":"Canvas","zOrder":"0","w":"262","h":"47","measuredW":"100","measuredH":"70","x":"0","y":"0","properties":{"color":"4273622","borderColor":"4273622"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"216","measuredH":"25","x":"23","y":"11","properties":{"size":"17","text":"Performance Best Practices","color":"16777215"}}]}}}]},"attributes":{"name":"New Wireframe 1 copy","order":1000022.7455786733,"parentID":null,"notes":""},"branchID":"Master","resourceID":"8024860B-B61F-451D-B579-28AA621BB239","mockupH":"3436","mockupW":"1172","measuredW":"1326","measuredH":"3607","version":"1.0"},"groupOffset":{"x":0,"y":0},"dependencies":[],"projectID":"file:///Users/kamranahmed/Desktop/devops%20roadmap%5C.bmpr"} \ No newline at end of file diff --git a/public/pdfs/roadmaps/code-review.pdf b/public/pdfs/roadmaps/code-review.pdf new file mode 100644 index 000000000..ccfc75df4 Binary files /dev/null and b/public/pdfs/roadmaps/code-review.pdf differ diff --git a/scripts/compress-jsons.cjs b/scripts/compress-jsons.cjs deleted file mode 100644 index 8a13c95d2..000000000 --- a/scripts/compress-jsons.cjs +++ /dev/null @@ -1,19 +0,0 @@ -const fs = require('node:fs'); -const path = require('node:path'); - -const jsonsDir = path.join(process.cwd(), 'public/jsons'); -const childJsonDirs = fs.readdirSync(jsonsDir); - -childJsonDirs.forEach((childJsonDir) => { - const fullChildJsonDirPath = path.join(jsonsDir, childJsonDir); - const jsonFiles = fs.readdirSync(fullChildJsonDirPath); - - jsonFiles.forEach((jsonFileName) => { - console.log(`Compressing ${jsonFileName}...`); - - const jsonFilePath = path.join(fullChildJsonDirPath, jsonFileName); - const json = require(jsonFilePath); - - fs.writeFileSync(jsonFilePath, JSON.stringify(json)); - }); -}); diff --git a/src/components/FrameRenderer/FrameRenderer.astro b/src/components/FrameRenderer/FrameRenderer.astro index 153b5efb9..b96c8383f 100644 --- a/src/components/FrameRenderer/FrameRenderer.astro +++ b/src/components/FrameRenderer/FrameRenderer.astro @@ -5,14 +5,13 @@ import './FrameRenderer.css'; export interface Props { resourceType: 'roadmap' | 'best-practice'; resourceId: string; - jsonUrl: string; dimensions?: { width: number; height: number; }; } -const { resourceId, resourceType, jsonUrl, dimensions = null } = Astro.props; +const { resourceId, resourceType, dimensions = null } = Astro.props; ---
diff --git a/src/components/FrameRenderer/renderer.ts b/src/components/FrameRenderer/renderer.ts index 9f6c8ee39..9cf5effb9 100644 --- a/src/components/FrameRenderer/renderer.ts +++ b/src/components/FrameRenderer/renderer.ts @@ -51,7 +51,6 @@ export class Renderer { this.resourceType = dataset.resourceType!; this.resourceId = dataset.resourceId!; - this.jsonUrl = dataset.jsonUrl!; return true; } @@ -130,13 +129,19 @@ export class Renderer { this.trackVisit(); if (roadmapType) { - this.switchRoadmap(`/jsons/roadmaps/${roadmapType}.json`); + this.switchRoadmap(`/${roadmapType}.json`); } else { - this.jsonToSvg(this.jsonUrl); + this.jsonToSvg( + this.resourceType === 'roadmap' + ? `/${this.resourceId}.json` + : `/best-practices/${this.resourceId}.json` + ); } } switchRoadmap(newJsonUrl: string) { + this.containerEl?.setAttribute('style', ''); + const newJsonFileSlug = newJsonUrl.split('/').pop()?.replace('.json', ''); // Update the URL and attach the new roadmap type @@ -145,25 +150,15 @@ export class Renderer { const type = this.resourceType[0]; // r for roadmap, b for best-practices url.searchParams.delete(type); - url.searchParams.set(type, newJsonFileSlug!); + + if (newJsonFileSlug !== this.resourceId) { + url.searchParams.set(type, newJsonFileSlug!); + } window.history.pushState(null, '', url.toString()); } - const pageType = this.resourceType.replace(/\b\w/g, (l) => l.toUpperCase()); - - window.fireEvent({ - // RoadmapClick, BestPracticesClick, etc - category: `${pageType.replace('-', '')}Click`, - // roadmap/frontend/switch-version - action: `${this.resourceId}/switch-version`, - // roadmap/frontend/switch-version - label: `${newJsonFileSlug}`, - }); - - this.jsonToSvg(newJsonUrl)?.then(() => { - this.containerEl?.setAttribute('style', ''); - }); + this.jsonToSvg(newJsonUrl)?.then(() => {}); } handleSvgClick(e: any) { diff --git a/public/jsons/best-practices/api-security.json b/src/data/best-practices/api-security/api-security.json similarity index 100% rename from public/jsons/best-practices/api-security.json rename to src/data/best-practices/api-security/api-security.json diff --git a/public/jsons/best-practices/aws.json b/src/data/best-practices/aws/aws.json similarity index 100% rename from public/jsons/best-practices/aws.json rename to src/data/best-practices/aws/aws.json diff --git a/public/jsons/best-practices/code-review.json b/src/data/best-practices/code-review/code-review.json similarity index 100% rename from public/jsons/best-practices/code-review.json rename to src/data/best-practices/code-review/code-review.json diff --git a/public/jsons/best-practices/frontend-performance.json b/src/data/best-practices/frontend-performance/frontend-performance.json similarity index 100% rename from public/jsons/best-practices/frontend-performance.json rename to src/data/best-practices/frontend-performance/frontend-performance.json diff --git a/public/jsons/roadmaps/android.json b/src/data/roadmaps/android/android.json similarity index 100% rename from public/jsons/roadmaps/android.json rename to src/data/roadmaps/android/android.json diff --git a/public/jsons/roadmaps/angular.json b/src/data/roadmaps/angular/angular.json similarity index 100% rename from public/jsons/roadmaps/angular.json rename to src/data/roadmaps/angular/angular.json diff --git a/public/jsons/roadmaps/aspnet-core.json b/src/data/roadmaps/aspnet-core/aspnet-core.json similarity index 100% rename from public/jsons/roadmaps/aspnet-core.json rename to src/data/roadmaps/aspnet-core/aspnet-core.json diff --git a/public/jsons/roadmaps/backend.json b/src/data/roadmaps/backend/backend.json similarity index 100% rename from public/jsons/roadmaps/backend.json rename to src/data/roadmaps/backend/backend.json diff --git a/src/data/roadmaps/backend/content/102-os-general-knowledge/100-terminal-usage.md b/src/data/roadmaps/backend/content/102-os-general-knowledge/100-terminal-usage.md index b25f8331e..0729c667d 100644 --- a/src/data/roadmaps/backend/content/102-os-general-knowledge/100-terminal-usage.md +++ b/src/data/roadmaps/backend/content/102-os-general-knowledge/100-terminal-usage.md @@ -6,3 +6,4 @@ Visit the following resources to learn more: - [Command line crash course](https://developer.mozilla.org/en-US/docs/Learn/Tools_and_testing/Understanding_client-side_tools/Command_line) - [Basic Terminal Usage - Cheat Sheet to make the command line EASY](https://www.youtube.com/watch?v=jDINUSK7rXE) +- [50+ Linux Commands You Must Know](https://www.digitalocean.com/community/tutorials/linux-commands) \ No newline at end of file diff --git a/src/data/roadmaps/backend/content/104-version-control-systems/101-git.md b/src/data/roadmaps/backend/content/104-version-control-systems/101-git.md index eb35be86b..891e866a6 100644 --- a/src/data/roadmaps/backend/content/104-version-control-systems/101-git.md +++ b/src/data/roadmaps/backend/content/104-version-control-systems/101-git.md @@ -7,3 +7,5 @@ Visit the following resources to learn more: - [Git & GitHub Crash Course For Beginners](https://www.youtube.com/watch?v=SWYqp7iY_Tc) - [Learn Git with Tutorials, News and Tips - Atlassian](https://www.atlassian.com/git) - [Git Cheat Sheet](https://cs.fyi/guide/git-cheatsheet) +- [Learn Git Branching](https://learngitbranching.js.org/) +- [Git Tutorial](https://www.w3schools.com/git/) \ No newline at end of file diff --git a/src/data/roadmaps/backend/content/106-relational-databases/101-mysql.md b/src/data/roadmaps/backend/content/106-relational-databases/101-mysql.md index 836f4948f..5ba46880e 100644 --- a/src/data/roadmaps/backend/content/106-relational-databases/101-mysql.md +++ b/src/data/roadmaps/backend/content/106-relational-databases/101-mysql.md @@ -7,3 +7,4 @@ Visit the following resources to learn more: - [MySQL website](https://www.mysql.com/) - [W3Schools - MySQL tutorial ](https://www.w3schools.com/mySQl/default.asp) - [MySQL tutorial for beginners](https://www.youtube.com/watch?v=7S_tz1z_5bA) +- [MySQL for Developers](https://planetscale.com/courses/mysql-for-developers/introduction/course-introduction) \ No newline at end of file diff --git a/public/jsons/roadmaps/blockchain.json b/src/data/roadmaps/blockchain/blockchain.json similarity index 100% rename from public/jsons/roadmaps/blockchain.json rename to src/data/roadmaps/blockchain/blockchain.json diff --git a/src/data/roadmaps/code-review/code-review.json b/src/data/roadmaps/code-review/code-review.json new file mode 100644 index 000000000..35e1d2b2a --- /dev/null +++ b/src/data/roadmaps/code-review/code-review.json @@ -0,0 +1 @@ +{"mockup":{"controls":{"control":[{"ID":"3197","typeID":"Label","zOrder":"7","measuredW":"150","measuredH":"28","x":"1834","y":"831","properties":{"size":"20","text":"Smaller effort for"}},{"ID":"3198","typeID":"Label","zOrder":"8","measuredW":"156","measuredH":"28","x":"1834","y":"858","properties":{"size":"20","text":"changes later on."}},{"ID":"3217","typeID":"Label","zOrder":"9","measuredW":"143","measuredH":"28","x":"1834","y":"1177","properties":{"size":"20","text":"Higher effort for"}},{"ID":"3218","typeID":"Label","zOrder":"10","measuredW":"156","measuredH":"28","x":"1834","y":"1204","properties":{"size":"20","text":"changes later on."}},{"ID":"3231","typeID":"Label","zOrder":"13","measuredW":"134","measuredH":"28","x":"827","y":"871","properties":{"size":"20","text":"Automate here"}},{"ID":"3236","typeID":"Label","zOrder":"15","measuredW":"139","measuredH":"28","x":"823","y":"1079","properties":{"size":"20","text":"Focus on these"}},{"ID":"3242","typeID":"__group__","zOrder":"12","measuredW":"302","measuredH":"190","w":"302","h":"190","x":"987","y":"784","children":{"controls":{"control":[{"ID":"0","typeID":"Canvas","zOrder":"0","w":"256","h":"190","measuredW":"100","measuredH":"70","x":"0","y":"0","properties":{"color":"6710886","borderColor":"6710886"}},{"ID":"1","typeID":"Canvas","zOrder":"1","w":"237","h":"86","measuredW":"100","measuredH":"70","x":"65","y":"0","properties":{"color":"6710886","borderColor":"6710886"}}]}}},{"ID":"3243","typeID":"__group__","zOrder":"14","measuredW":"190","measuredH":"293","w":"190","h":"293","x":"986","y":"985","children":{"controls":{"control":[{"ID":"0","typeID":"Canvas","zOrder":"0","w":"54","h":"293","measuredW":"100","measuredH":"70","x":"0","y":"0","properties":{"color":"4473924","borderColor":"4473924"}},{"ID":"1","typeID":"Canvas","zOrder":"1","w":"87","h":"181","measuredW":"100","measuredH":"70","x":"38","y":"0","properties":{"color":"4473924","borderColor":"4473924"}},{"ID":"2","typeID":"Canvas","zOrder":"2","w":"86","h":"89","measuredW":"100","measuredH":"70","x":"104","y":"0","properties":{"color":"4473924","borderColor":"4473924"}}]}}},{"ID":"3250","typeID":"Label","zOrder":"0","measuredW":"76","measuredH":"26","x":"919","y":"1329","properties":{"text":"Also visit ","size":"18"}},{"ID":"3256","typeID":"Label","zOrder":"17","measuredW":"9","measuredH":"26","x":"1254","y":"1329","properties":{"size":"18","text":"/","color":"10066329"}},{"ID":"3258","typeID":"Label","zOrder":"18","measuredW":"59","measuredH":"26","x":"1707","y":"1329","properties":{"size":"18","text":"Credits"}},{"ID":"3261","typeID":"Arrow","zOrder":"20","w":"152","h":"1","measuredW":"150","measuredH":"100","x":"796","y":"919","properties":{"curvature":"0","leftArrow":"false","rightArrow":"false","p0":{"x":152,"y":0},"p1":{"x":0.49999999999999994,"y":0},"p2":{"x":0.048133037535308176,"y":0},"color":"16382715"}},{"ID":"3268","typeID":"Label","zOrder":"21","measuredW":"9","measuredH":"26","x":"1679","y":"1329","properties":{"size":"18","text":"/","color":"10066329"}},{"ID":"3269","typeID":"Label","zOrder":"22","measuredW":"150","measuredH":"26","x":"1289","y":"1329","properties":{"size":"18","text":"Interactive version"}},{"ID":"3270","typeID":"Arrow","zOrder":"23","w":"123","h":"1","measuredW":"150","measuredH":"100","x":"1412","y":"1448","properties":{"curvature":"0","leftArrow":"false","rightArrow":"false","p0":{"x":123,"y":0},"p1":{"x":0.49999999999999994,"y":0},"p2":{"x":0.2922777153748939,"y":0},"color":"16382715"}},{"ID":"3271","typeID":"Arrow","zOrder":"24","w":"170","h":"1","measuredW":"150","measuredH":"100","x":"1888","y":"919","properties":{"curvature":"0","leftArrow":"false","rightArrow":"false","p0":{"x":170.17433009674505,"y":0},"p1":{"x":0.5,"y":0},"p2":{"x":0.2922777153748939,"y":0},"color":"16382715"}},{"ID":"3284","typeID":"__group__","zOrder":"1","measuredW":"232","measuredH":"26","w":"232","h":"26","x":"1001","y":"1329","properties":{"controlName":"ext_link:roadmap.sh/best-practices/code-review"},"children":{"controls":{"control":[{"ID":"0","typeID":"Label","zOrder":"0","measuredW":"232","measuredH":"26","x":"0","y":"0","properties":{"color":"10027263","size":"18","text":"Code Review Best Practices"}}]}}},{"ID":"3285","typeID":"__group__","zOrder":"16","measuredW":"202","measuredH":"26","w":"202","h":"26","x":"1451","y":"1329","properties":{"controlName":"ext_link:roadmap.sh/code-review"},"children":{"controls":{"control":[{"ID":"0","typeID":"Label","zOrder":"0","measuredW":"202","measuredH":"26","x":"0","y":"0","properties":{"color":"10027263","size":"18","text":"roadmap.sh/code-review"}}]}}},{"ID":"3286","typeID":"__group__","zOrder":"19","measuredW":"135","measuredH":"26","w":"135","h":"26","x":"1776","y":"1329","properties":{"controlName":"ext_link:www.morling.dev/blog/the-code-review-pyramid/"},"children":{"controls":{"control":[{"ID":"0","typeID":"Label","zOrder":"0","measuredW":"135","measuredH":"26","x":"0","y":"0","properties":{"size":"18","color":"10027263","text":"@gunnarmorling"}}]}}},{"ID":"3287","typeID":"__group__","zOrder":"3","measuredW":"196","measuredH":"102","w":"196","h":"102","x":"1304","y":"784","properties":{"controlName":"100-code-style"},"children":{"controls":{"control":[{"ID":"0","typeID":"Canvas","zOrder":"0","w":"196","h":"102","measuredW":"100","measuredH":"70","x":"0","y":"0","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"98","measuredH":"28","x":"49","y":"37","properties":{"size":"20","text":"Code Style"}}]}}},{"ID":"3288","typeID":"__group__","zOrder":"2","measuredW":"287","measuredH":"102","w":"287","h":"102","x":"1258","y":"883","properties":{"controlName":"101-tests"},"children":{"controls":{"control":[{"ID":"0","typeID":"Canvas","zOrder":"0","w":"287","h":"102","measuredW":"100","measuredH":"70","x":"0","y":"0","properties":{"color":"16770457"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"48","measuredH":"28","x":"120","y":"37","properties":{"size":"20","text":"Tests"}}]}}},{"ID":"3289","typeID":"__group__","zOrder":"4","measuredW":"424","measuredH":"102","w":"424","h":"102","x":"1190","y":"982","properties":{"controlName":"102-documentation"},"children":{"controls":{"control":[{"ID":"0","typeID":"Canvas","zOrder":"0","w":"424","h":"102","measuredW":"100","measuredH":"70","x":"0","y":"0","properties":{"color":"16776960"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"138","measuredH":"28","x":"143","y":"37","properties":{"size":"20","text":"Documentation"}}]}}},{"ID":"3290","typeID":"__group__","zOrder":"5","measuredW":"556","measuredH":"102","w":"556","h":"102","x":"1124","y":"1081","properties":{"controlName":"103-implementation-semantics"},"children":{"controls":{"control":[{"ID":"0","typeID":"Canvas","zOrder":"0","w":"556","h":"102","measuredW":"100","measuredH":"70","x":"0","y":"0","properties":{"color":"16776960"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"241","measuredH":"28","x":"157","y":"37","properties":{"size":"20","text":"Implementation Semantics"}}]}}},{"ID":"3291","typeID":"__group__","zOrder":"6","measuredW":"699","measuredH":"102","w":"699","h":"102","x":"1052","y":"1176","properties":{"controlName":"104-api-semantics"},"children":{"controls":{"control":[{"ID":"0","typeID":"Canvas","zOrder":"0","w":"699","h":"102","measuredW":"100","measuredH":"70","x":"0","y":"0","properties":{"color":"16776960"}},{"ID":"1","typeID":"Label","zOrder":"1","measuredW":"131","measuredH":"28","x":"284","y":"37","properties":{"size":"20","text":"API Semantics"}}]}}},{"ID":"3292","typeID":"__group__","zOrder":"11","measuredW":"14","measuredH":"487","w":"14","h":"487","x":"1798","y":"799","children":{"controls":{"control":[{"ID":"0","typeID":"Label","zOrder":"0","measuredW":"14","measuredH":"36","x":"0","y":"451","properties":{"text":"v","size":"28"}},{"ID":"1","typeID":"Arrow","zOrder":"1","w":"1","h":"473","measuredW":"150","measuredH":"100","x":"7","y":"0","properties":{"curvature":"0","leftArrow":"false","rightArrow":"false","p0":{"x":0,"y":-0.14389738910188044},"p1":{"x":0.49999999999999994,"y":0},"p2":{"x":0,"y":472.82713475857486}}}]}}},{"ID":"3293","typeID":"Arrow","zOrder":"25","w":"123","h":"1","measuredW":"150","measuredH":"100","x":"1328","y":"759","properties":{"curvature":"0","leftArrow":"false","rightArrow":"false","p0":{"x":123,"y":0},"p1":{"x":0.49999999999999994,"y":0},"p2":{"x":0.2922777153748939,"y":0},"color":"16382715"}}]},"attributes":{"name":"New Wireframe 9 copy 7","order":1000156.2209166192,"parentID":null,"notes":null},"branchID":"Master","resourceID":"057DB19F-D6AC-44FC-8C5C-52D4D800A91B","mockupH":"690","mockupW":"1262","measuredW":"2058","measuredH":"1449","version":"1.0"},"groupOffset":{"x":0,"y":0},"dependencies":[],"projectID":"file:///Users/kamranahmed/Desktop/AWS%20Roadmap.bmpr"} \ No newline at end of file diff --git a/src/data/roadmaps/code-review/code-review.md b/src/data/roadmaps/code-review/code-review.md new file mode 100644 index 000000000..c499b84c0 --- /dev/null +++ b/src/data/roadmaps/code-review/code-review.md @@ -0,0 +1,47 @@ +--- +jsonUrl: '/jsons/roadmaps/code-review.json' +pdfUrl: '/pdfs/roadmaps/code-review.pdf' +order: 14 +briefTitle: 'Code Review' +briefDescription: 'Learn what to focus on when conducting a code review.' +title: 'Code Review Pyramid' +description: 'Learn what to focus on when conducting a code review.' +isNew: true +hasTopics: true +dimensions: + width: 968 + height: 506.06 +schema: + headline: 'Code Review Guide' + description: 'Learn what to review when conducting Code Reviews with this interactive guide. We also have resources and short descriptions attached to the roadmap items so you can get everything you want to learn in one place.' + imageUrl: 'https://roadmap.sh/roadmaps/code-review.png' + datePublished: '2023-06-03' + dateModified: '2023-06-03' +seo: + title: 'Code Review - roadmap.sh' + description: 'Learn what to review when conducting code reviews. We also have questions to ask yourself under each node of the pyramid to guide you further.' + keywords: + - 'code review tutorial' + - 'code review guide' + - 'code review for beginners' + - 'code reviews' + - 'code review best practices' + - 'code review roadmap 2023' + - 'guide to learning code review' + - 'code review roadmap' + - 'code review learning path' + - 'code review learning roadmap' + - 'what is code review' +relatedRoadmaps: + - 'backend' + - 'frontend' + - 'devops' + - 'system-design' +sitemap: + priority: 1 + changefreq: 'monthly' +tags: + - 'roadmap' + - 'main-sitemap' + - 'skill-roadmap' +--- diff --git a/src/data/roadmaps/code-review/content/100-code-style.md b/src/data/roadmaps/code-review/content/100-code-style.md new file mode 100644 index 000000000..93eb53cfe --- /dev/null +++ b/src/data/roadmaps/code-review/content/100-code-style.md @@ -0,0 +1,6 @@ +# Questions to Ask + +- Is the project's formatting style applied? +- Does it adhere to the agreed-upon naming conventions? +- Is it DRY? +- Is the code sufficiently "readable" (method lengths, etc.)? diff --git a/src/data/roadmaps/code-review/content/101-tests.md b/src/data/roadmaps/code-review/content/101-tests.md new file mode 100644 index 000000000..a4e5e0131 --- /dev/null +++ b/src/data/roadmaps/code-review/content/101-tests.md @@ -0,0 +1,7 @@ +# Questions to Ask + +- Are all tests passing? +- Are new features reasonably tested? +- Are corner cases tested? +- Is it using unit tests where possible, integration tests where necessary? +- Are there tests for NFRs, e.g. performance? diff --git a/src/data/roadmaps/code-review/content/102-documentation.md b/src/data/roadmaps/code-review/content/102-documentation.md new file mode 100644 index 000000000..096079b62 --- /dev/null +++ b/src/data/roadmaps/code-review/content/102-documentation.md @@ -0,0 +1,5 @@ +# Questions to Ask + +- New features reasonably documented? +- Are the relevant kinds of does covered: README, API docs, user quide, reference docs, etc? +- Are docs understandable, are there no signiticant typos and grammar mistakes? diff --git a/src/data/roadmaps/code-review/content/103-implementation-semantics.md b/src/data/roadmaps/code-review/content/103-implementation-semantics.md new file mode 100644 index 000000000..4e0757b7e --- /dev/null +++ b/src/data/roadmaps/code-review/content/103-implementation-semantics.md @@ -0,0 +1,10 @@ +# Questions to Ask + +- Does it satisfy the original requirements? +- Is it logically correct? +- Is there no unnecessary complexity? +- Is it robust (no concurrency issues, proper error handling, etc.)? +- Is it performant? +- Is it secure e.g., no SQL injections, etc? +- Is it observable e.g., metrics, logging, tracing, etc.? +- Do newly added dependencies pull their weight? Is their license acceptable? diff --git a/src/data/roadmaps/code-review/content/104-api-semantics.md b/src/data/roadmaps/code-review/content/104-api-semantics.md new file mode 100644 index 000000000..462d825a6 --- /dev/null +++ b/src/data/roadmaps/code-review/content/104-api-semantics.md @@ -0,0 +1,8 @@ +# Questions to Ask + +- API as small as possible, as large as needed? +- Is there one way of doing one thing, not multiple ones? +- Is it consistent, does it follow the principle of least surprise? +- Clean split of API/internals without internals leaking into the API? +- Are there no breaking changes to user-facing parts (API classes, configuration, metrics, log formats, etc)? +- Is a new API generally useful and not overly specific to a single use case? diff --git a/src/data/roadmaps/code-review/content/index.md b/src/data/roadmaps/code-review/content/index.md new file mode 100644 index 000000000..4e768b56d --- /dev/null +++ b/src/data/roadmaps/code-review/content/index.md @@ -0,0 +1 @@ +# \ No newline at end of file diff --git a/src/data/roadmaps/code-review/faqs.astro b/src/data/roadmaps/code-review/faqs.astro new file mode 100644 index 000000000..e69de29bb diff --git a/public/jsons/roadmaps/computer-science.json b/src/data/roadmaps/computer-science/computer-science.json similarity index 100% rename from public/jsons/roadmaps/computer-science.json rename to src/data/roadmaps/computer-science/computer-science.json diff --git a/src/data/roadmaps/cpp/content/100-introduction/100-what-is-cpp.md b/src/data/roadmaps/cpp/content/100-introduction/100-what-is-cpp.md index 127f773bb..2bb85a815 100644 --- a/src/data/roadmaps/cpp/content/100-introduction/100-what-is-cpp.md +++ b/src/data/roadmaps/cpp/content/100-introduction/100-what-is-cpp.md @@ -1,4 +1,5 @@ # What is C++? + C++ is a general-purpose programming language created by Bjarne Stroustrup as an extension of the C programming language. It was first introduced in 1985 and provides object-oriented features like classes and inheritance. C++ is widely used in various applications like game development, system programming, embedded systems, and high-performance computing. C++ is a statically-typed language, meaning that the type of a variable is determined during compilation, and has an extensive library called the C++ Standard Library, which provides a rich set of functions, algorithms, and data structures for various tasks. @@ -44,4 +45,4 @@ int main() { In the above program, we define a simple function `add` and a class `Calculator` with a member function `multiply`. The `main` function demonstrates how to use these to perform basic arithmetic. -- [C++ Tutorial for Beginners - Full Course](https://youtu.be/vLnPwxZdW4Y) \ No newline at end of file +- [C++ Tutorial for Beginners - Full Course](https://youtu.be/vlnpwxzdw4y) \ No newline at end of file diff --git a/public/jsons/roadmaps/cpp.json b/src/data/roadmaps/cpp/cpp.json similarity index 100% rename from public/jsons/roadmaps/cpp.json rename to src/data/roadmaps/cpp/cpp.json diff --git a/public/jsons/roadmaps/cyber-security.json b/src/data/roadmaps/cyber-security/cyber-security.json similarity index 100% rename from public/jsons/roadmaps/cyber-security.json rename to src/data/roadmaps/cyber-security/cyber-security.json diff --git a/public/jsons/roadmaps/design-system.json b/src/data/roadmaps/design-system/design-system.json similarity index 100% rename from public/jsons/roadmaps/design-system.json rename to src/data/roadmaps/design-system/design-system.json diff --git a/src/data/roadmaps/devops/content/105-infrastructure-as-code/104-gitops/100-argo-cd.md b/src/data/roadmaps/devops/content/105-infrastructure-as-code/104-gitops/100-argo-cd.md index 1f1e8fb74..e852f0cd8 100644 --- a/src/data/roadmaps/devops/content/105-infrastructure-as-code/104-gitops/100-argo-cd.md +++ b/src/data/roadmaps/devops/content/105-infrastructure-as-code/104-gitops/100-argo-cd.md @@ -9,3 +9,4 @@ Argo CD is designed to be a simple and efficient way to manage cloud-native appl Visit the following resources to learn more: - [Argo CD - Argo Project](https://argoproj.github.io/docs/argo-cd/) +- [ArgoCD Tutorial for Beginners](https://www.youtube.com/watch?v=meu5_k9ssrs&list=ply7nrywoggjxtn4ybsmyffdpaxb-fr4zc&index=6) \ No newline at end of file diff --git a/public/jsons/roadmaps/devops.json b/src/data/roadmaps/devops/devops.json similarity index 100% rename from public/jsons/roadmaps/devops.json rename to src/data/roadmaps/devops/devops.json diff --git a/public/jsons/roadmaps/docker.json b/src/data/roadmaps/docker/docker.json similarity index 100% rename from public/jsons/roadmaps/docker.json rename to src/data/roadmaps/docker/docker.json diff --git a/src/data/roadmaps/docker/docker.md b/src/data/roadmaps/docker/docker.md index 42f73f9f8..aead054ee 100644 --- a/src/data/roadmaps/docker/docker.md +++ b/src/data/roadmaps/docker/docker.md @@ -29,6 +29,9 @@ seo: - 'docker roadmap 2023' - 'guide to learning docker' - 'docker roadmap' + - 'docker learning path' + - 'docker learning roadmap' + - 'container roadmap' - 'docker' - 'docker learning guide' - 'docker skills' diff --git a/src/data/roadmaps/flutter/content/111-state-management/106-value-notifier.md b/src/data/roadmaps/flutter/content/111-state-management/106-value-notifier.md index 7ac9dce8a..f27a65175 100644 --- a/src/data/roadmaps/flutter/content/111-state-management/106-value-notifier.md +++ b/src/data/roadmaps/flutter/content/111-state-management/106-value-notifier.md @@ -1 +1,4 @@ # Value Notifier + +- [ValueNotifier class - Flutter](https://api.flutter.dev/flutter/foundation/valuenotifier-class.html) +- [ValuerNotifier & ValueListenableBuilder](https://medium.com/@avnishnishad/flutter-communication-between-widgets-using-valuenotifier-and-valuelistenablebuilder-b51ef627a58b) \ No newline at end of file diff --git a/src/data/roadmaps/flutter/content/111-state-management/107-change-notifier.md b/src/data/roadmaps/flutter/content/111-state-management/107-change-notifier.md index 149ea743d..7e6c5d7dd 100644 --- a/src/data/roadmaps/flutter/content/111-state-management/107-change-notifier.md +++ b/src/data/roadmaps/flutter/content/111-state-management/107-change-notifier.md @@ -1 +1,4 @@ # Change Notifier + +- [ChangeNotifier class - Flutter](https://api.flutter.dev/flutter/foundation/changenotifier-class.html) +- [Simple app state management](https://docs.flutter.dev/data-and-backend/state-mgmt/simple) \ No newline at end of file diff --git a/public/jsons/roadmaps/flutter.json b/src/data/roadmaps/flutter/flutter.json similarity index 100% rename from public/jsons/roadmaps/flutter.json rename to src/data/roadmaps/flutter/flutter.json diff --git a/src/data/roadmaps/frontend/content/117-progressive-web-apps/112-lighthouse.md b/src/data/roadmaps/frontend/content/117-progressive-web-apps/112-lighthouse.md index af1f80099..d797988b3 100644 --- a/src/data/roadmaps/frontend/content/117-progressive-web-apps/112-lighthouse.md +++ b/src/data/roadmaps/frontend/content/117-progressive-web-apps/112-lighthouse.md @@ -9,3 +9,4 @@ Lighthouse provides a comprehensive and easy-to-use tool for identifying and fix Visit the following resources to learn more: - [Lighthouse - Google Developers](https://developers.google.com/web/tools/lighthouse) +- [Improving Load Performance - Chrome DevTools 101](https://www.youtube.com/watch?v=5flw5q5odie) \ No newline at end of file diff --git a/src/data/roadmaps/frontend/frontend-beginner.json b/src/data/roadmaps/frontend/frontend-beginner.json new file mode 100644 index 000000000..0cd4d5d63 --- /dev/null +++ b/src/data/roadmaps/frontend/frontend-beginner.json @@ -0,0 +1,1921 @@ +{ + "mockup": { + "controls": { + "control": [ + { + "ID": "3958", + "typeID": "Arrow", + "zOrder": "0", + "w": "1", + "h": "146", + "measuredW": "150", + "measuredH": "100", + "x": "793", + "y": "1128", + "properties": { + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "color": "40463", + "p0": { + "x": 0, + "y": 0 + }, + "p1": { + "x": 0.5000000000000006, + "y": -1.5906276266511649e-18 + }, + "p2": { + "x": 0, + "y": 145.92702085489077 + } + } + }, + { + "ID": "3959", + "typeID": "Arrow", + "zOrder": "1", + "w": "1", + "h": "71", + "measuredW": "150", + "measuredH": "100", + "x": "789", + "y": "1520", + "properties": { + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "color": "40463", + "p0": { + "x": 0, + "y": -0.05210330899694782 + }, + "p1": { + "x": 0.5000000000000007, + "y": 0 + }, + "p2": { + "x": 0, + "y": 71 + } + } + }, + { + "ID": "3960", + "typeID": "Arrow", + "zOrder": "2", + "w": "87", + "h": "1", + "measuredW": "150", + "measuredH": "100", + "x": "459", + "y": "1171", + "properties": { + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "color": "13369344", + "p0": { + "x": 87, + "y": -0.3333333333334849 + }, + "p1": { + "x": 0.5, + "y": 0 + }, + "p2": { + "x": -0.3333333333333144, + "y": -0.3333333333334849 + } + } + }, + { + "ID": "3961", + "typeID": "Arrow", + "zOrder": "3", + "w": "88", + "h": "1", + "measuredW": "150", + "measuredH": "100", + "x": "704", + "y": "1170", + "properties": { + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "color": "40463", + "p0": { + "x": 87.60000000000002, + "y": -0.3030303030302548 + }, + "p1": { + "x": 0.49999999999999994, + "y": 0 + }, + "p2": { + "x": -0.33333333333337123, + "y": -0.3030303030302548 + } + } + }, + { + "ID": "3962", + "typeID": "Arrow", + "zOrder": "4", + "w": "88", + "h": "1", + "measuredW": "150", + "measuredH": "100", + "x": "705", + "y": "998", + "properties": { + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "color": "40463", + "p0": { + "x": 87.60000000000002, + "y": -0.3030303030302548 + }, + "p1": { + "x": 0.49999999999999994, + "y": 0 + }, + "p2": { + "x": -0.33333333333337123, + "y": -0.3030303030302548 + } + } + }, + { + "ID": "3963", + "typeID": "Arrow", + "zOrder": "5", + "w": "1", + "h": "73", + "measuredW": "150", + "measuredH": "100", + "x": "676", + "y": "1003", + "properties": { + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "p0": { + "x": -0.39999999999997726, + "y": -0.3030303030302548 + }, + "p1": { + "x": 0.4999999999999999, + "y": 0 + }, + "p2": { + "x": -0.39999999999997726, + "y": 72.66666666666674 + }, + "stroke": "dotted", + "color": "40463" + } + }, + { + "ID": "3964", + "typeID": "Arrow", + "zOrder": "6", + "w": "98", + "h": "1", + "measuredW": "150", + "measuredH": "100", + "x": "1036", + "y": "1089", + "properties": { + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "color": "10027263", + "p0": { + "x": 97.60000000000002, + "y": -0.3030303030302548 + }, + "p1": { + "x": 0.5, + "y": 0 + }, + "p2": { + "x": -0.4545454545454959, + "y": -0.30303030303031164 + }, + "stroke": "dotted" + } + }, + { + "ID": "3965", + "typeID": "Arrow", + "zOrder": "7", + "w": "98", + "h": "1", + "measuredW": "150", + "measuredH": "100", + "x": "794", + "y": "1089", + "properties": { + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "color": "10027263", + "p0": { + "x": 97.60000000000002, + "y": -0.3030303030302548 + }, + "p1": { + "x": 0.5, + "y": 0 + }, + "p2": { + "x": -0.4545454545454959, + "y": -0.30303030303031164 + } + } + }, + { + "ID": "3966", + "typeID": "Arrow", + "zOrder": "8", + "w": "1", + "h": "73", + "measuredW": "150", + "measuredH": "100", + "x": "676", + "y": "841", + "properties": { + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "p0": { + "x": -0.39999999999997726, + "y": -0.3030303030302548 + }, + "p1": { + "x": 0.4999999999999999, + "y": 0 + }, + "p2": { + "x": -0.39999999999997726, + "y": 72.66666666666674 + }, + "stroke": "dotted", + "color": "40463" + } + }, + { + "ID": "3967", + "typeID": "Arrow", + "zOrder": "9", + "w": "131", + "h": "1", + "measuredW": "150", + "measuredH": "100", + "x": "662", + "y": "724", + "properties": { + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "p0": { + "x": 131, + "y": -0.21212121212124657 + }, + "p1": { + "x": 0.5, + "y": 0 + }, + "p2": { + "x": 0.3030303030302548, + "y": -0.21212121212124657 + }, + "color": "40463" + } + }, + { + "ID": "3968", + "typeID": "Arrow", + "zOrder": "10", + "w": "147", + "h": "1", + "measuredW": "150", + "measuredH": "100", + "x": "646", + "y": "594", + "properties": { + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "p0": { + "x": 147, + "y": 0 + }, + "p1": { + "x": 0.5010198135198135, + "y": -0.0010307153164296314 + }, + "p2": { + "x": 0, + "y": 0 + }, + "color": "40463" + } + }, + { + "ID": "3969", + "typeID": "Arrow", + "zOrder": "11", + "w": "98", + "h": "1", + "measuredW": "150", + "measuredH": "100", + "x": "793", + "y": "834", + "properties": { + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "p0": { + "x": 97.60000000000002, + "y": -0.3030303030302548 + }, + "p1": { + "x": 0.5, + "y": 0 + }, + "p2": { + "x": -0.4545454545454959, + "y": -0.30303030303031164 + }, + "color": "10027263" + } + }, + { + "ID": "3970", + "typeID": "Arrow", + "zOrder": "12", + "w": "87", + "h": "1", + "measuredW": "150", + "measuredH": "100", + "x": "705", + "y": "660", + "properties": { + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "p0": { + "x": 87, + "y": 0 + }, + "p1": { + "x": 0.5010198135198135, + "y": -0.0010307153164296314 + }, + "p2": { + "x": -0.2533333333333303, + "y": 0 + }, + "color": "40463" + } + }, + { + "ID": "3971", + "typeID": "__group__", + "zOrder": "13", + "measuredW": "144", + "measuredH": "40", + "w": "144", + "h": "40", + "x": "726", + "y": "413", + "properties": { + "controlName": "ext_link:roadmap.sh/frontend" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Label", + "zOrder": "0", + "measuredW": "144", + "measuredH": "40", + "x": "0", + "y": "0", + "properties": { + "size": "32", + "text": "Front-end" + } + } + ] + } + } + }, + { + "ID": "3972", + "typeID": "__group__", + "zOrder": "14", + "measuredW": "124", + "measuredH": "49", + "w": "124", + "h": "49", + "x": "617", + "y": "634", + "properties": { + "controlName": "102-css" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "124", + "h": "49", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "33", + "measuredH": "25", + "x": "45", + "y": "12", + "properties": { + "size": "17", + "text": "CSS" + } + } + ] + } + } + }, + { + "ID": "3973", + "typeID": "Canvas", + "zOrder": "15", + "w": "324", + "h": "195", + "measuredW": "100", + "measuredH": "70", + "x": "993", + "y": "291" + }, + { + "ID": "3974", + "typeID": "Label", + "zOrder": "16", + "measuredW": "283", + "measuredH": "26", + "x": "1011", + "y": "310", + "properties": { + "size": "18", + "text": "For resources and other roadmaps" + } + }, + { + "ID": "3975", + "typeID": "__group__", + "zOrder": "17", + "measuredW": "172", + "measuredH": "28", + "w": "172", + "h": "28", + "x": "1011", + "y": "343", + "properties": { + "controlName": "ext_link:roadmap.sh" + }, + "children": { + "controls": { + "control": [ + { + "ID": "2", + "typeID": "Label", + "zOrder": "0", + "measuredW": "172", + "measuredH": "28", + "x": "0", + "y": "0", + "properties": { + "size": "20", + "text": "https://roadmap.sh", + "color": "10027263" + } + } + ] + } + } + }, + { + "ID": "3976", + "typeID": "__group__", + "zOrder": "18", + "measuredW": "282", + "measuredH": "47", + "w": "282", + "h": "47", + "x": "1011", + "y": "418", + "properties": { + "controlName": "json:frontend.json" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "282", + "h": "47", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "3355443", + "borderColor": "3355443" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "203", + "measuredH": "26", + "x": "39", + "y": "11", + "properties": { + "color": "16777215", + "size": "18", + "text": "Visit the Detailed Version" + } + } + ] + } + } + }, + { + "ID": "3977", + "typeID": "Label", + "zOrder": "19", + "measuredW": "259", + "measuredH": "26", + "x": "1011", + "y": "383", + "properties": { + "color": "4985136", + "size": "18", + "text": "Beginner who wants to step up?" + } + }, + { + "ID": "3978", + "typeID": "__group__", + "zOrder": "20", + "measuredW": "127", + "measuredH": "50", + "w": "127", + "h": "50", + "x": "615", + "y": "698", + "properties": { + "controlName": "103-javascript" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "127", + "h": "50", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "81", + "measuredH": "25", + "x": "23", + "y": "13", + "properties": { + "size": "17", + "text": "JavaScript" + } + } + ] + } + } + }, + { + "ID": "3979", + "typeID": "__group__", + "zOrder": "21", + "measuredW": "95", + "measuredH": "49", + "w": "95", + "h": "49", + "x": "840", + "y": "809", + "properties": { + "controlName": "100-version-control-systems:basic-usage-of-git" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "95", + "h": "49", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "22", + "measuredH": "25", + "x": "37", + "y": "12", + "properties": { + "size": "17", + "text": "Git" + } + } + ] + } + } + }, + { + "ID": "3980", + "typeID": "Canvas", + "zOrder": "22", + "w": "380", + "h": "150", + "measuredW": "100", + "measuredH": "70", + "x": "232", + "y": "320" + }, + { + "ID": "3981", + "typeID": "Label", + "zOrder": "23", + "measuredW": "187", + "measuredH": "32", + "x": "260", + "y": "345", + "properties": { + "size": "24", + "text": "Beginner Version" + } + }, + { + "ID": "3982", + "typeID": "__group__", + "zOrder": "24", + "measuredW": "213", + "measuredH": "53", + "w": "213", + "h": "53", + "x": "529", + "y": "970", + "properties": { + "controlName": "111-pick-a-framework" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "213", + "h": "53", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "168", + "measuredH": "25", + "x": "23", + "y": "14", + "properties": { + "size": "17", + "text": "Frontend Frameworks" + } + } + ] + } + } + }, + { + "ID": "3983", + "typeID": "__group__", + "zOrder": "25", + "measuredW": "98", + "measuredH": "49", + "w": "98", + "h": "49", + "x": "634", + "y": "1056", + "properties": { + "controlName": "100-pick-a-framework:react-js" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "98", + "h": "49", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "47", + "measuredH": "25", + "x": "25", + "y": "12", + "properties": { + "text": "React", + "size": "17" + } + } + ] + } + } + }, + { + "ID": "3984", + "typeID": "__group__", + "zOrder": "26", + "measuredW": "212", + "measuredH": "50", + "w": "212", + "h": "50", + "x": "849", + "y": "1063", + "properties": { + "controlName": "114-css-frameworks" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "212", + "h": "50", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "131", + "measuredH": "25", + "x": "40", + "y": "13", + "properties": { + "size": "17", + "text": "CSS Frameworks" + } + } + ] + } + } + }, + { + "ID": "3985", + "typeID": "__group__", + "zOrder": "27", + "measuredW": "99", + "measuredH": "49", + "w": "99", + "h": "49", + "x": "393", + "y": "1146", + "properties": { + "controlName": "100-testing-your-apps:jest" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "99", + "h": "49", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "39", + "measuredW": "33", + "measuredH": "25", + "x": "30", + "y": "12", + "properties": { + "size": "17", + "text": "Jest" + } + } + ] + } + } + }, + { + "ID": "3986", + "typeID": "__group__", + "zOrder": "28", + "measuredW": "214", + "measuredH": "49", + "w": "214", + "h": "49", + "x": "527", + "y": "1146", + "properties": { + "controlName": "115-testing-your-apps" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "214", + "h": "49", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "144", + "measuredH": "26", + "x": "35", + "y": "11", + "properties": { + "size": "18", + "text": "Testing your Apps" + } + } + ] + } + } + }, + { + "ID": "3987", + "typeID": "__group__", + "zOrder": "29", + "measuredW": "100", + "measuredH": "49", + "w": "100", + "h": "49", + "x": "1089", + "y": "1065", + "properties": { + "controlName": "100-css-frameworks:js-first:tailwind-css" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "100", + "h": "49", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "61", + "measuredH": "25", + "x": "19", + "y": "12", + "properties": { + "size": "17", + "text": "Tailwind" + } + } + ] + } + } + }, + { + "ID": "3988", + "typeID": "Label", + "zOrder": "30", + "measuredW": "319", + "measuredH": "28", + "x": "260", + "y": "386", + "properties": { + "color": "4985136", + "size": "20", + "text": "This is the trimmed down version of" + } + }, + { + "ID": "3989", + "typeID": "Label", + "zOrder": "31", + "measuredW": "327", + "measuredH": "28", + "x": "260", + "y": "417", + "properties": { + "color": "4985136", + "size": "20", + "text": "the frontend roadmap for beginners." + } + }, + { + "ID": "3990", + "typeID": "Arrow", + "zOrder": "32", + "w": "1", + "h": "59", + "measuredW": "150", + "measuredH": "100", + "x": "793", + "y": "340", + "properties": { + "p0": { + "x": 0, + "y": -0.30303030303031164 + }, + "p1": { + "x": 0.5, + "y": 0 + }, + "p2": { + "x": 0, + "y": 58.78787878787875 + }, + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "color": "40463" + } + }, + { + "ID": "3991", + "typeID": "Arrow", + "zOrder": "33", + "w": "1", + "h": "333", + "measuredW": "150", + "measuredH": "100", + "x": "793", + "y": "462", + "properties": { + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "p0": { + "x": 0, + "y": -0.06060606060606233 + }, + "p1": { + "x": 0.5000000000000008, + "y": -1.5906276266511653e-18 + }, + "p2": { + "x": 0, + "y": 332.66666666666663 + }, + "color": "40463" + } + }, + { + "ID": "3992", + "typeID": "__group__", + "zOrder": "34", + "measuredW": "125", + "measuredH": "49", + "w": "125", + "h": "49", + "x": "616", + "y": "569", + "properties": { + "controlName": "101-html" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "125", + "h": "49", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "48", + "measuredH": "25", + "x": "39", + "y": "12", + "properties": { + "size": "17", + "text": "HTML" + } + } + ] + } + } + }, + { + "ID": "3993", + "typeID": "Label", + "zOrder": "35", + "measuredW": "378", + "measuredH": "26", + "x": "847", + "y": "587", + "properties": { + "color": "4985136", + "size": "18", + "text": "You should be able to find an internee or junior" + } + }, + { + "ID": "3994", + "typeID": "Label", + "zOrder": "36", + "measuredW": "333", + "measuredH": "26", + "x": "847", + "y": "619", + "properties": { + "color": "4985136", + "size": "18", + "text": "Frontend developer position at this point." + } + }, + { + "ID": "3995", + "typeID": "Label", + "zOrder": "37", + "measuredW": "428", + "measuredH": "26", + "x": "847", + "y": "662", + "properties": { + "size": "18", + "text": "Start applying for jobs and keep following to increase", + "color": "40463" + } + }, + { + "ID": "3996", + "typeID": "Label", + "zOrder": "38", + "measuredW": "276", + "measuredH": "26", + "x": "847", + "y": "695", + "properties": { + "size": "18", + "color": "40463", + "text": "your chances of finding a position." + } + }, + { + "ID": "3997", + "typeID": "Label", + "zOrder": "39", + "measuredW": "348", + "measuredH": "26", + "x": "216", + "y": "612", + "properties": { + "color": "4985136", + "size": "18", + "text": "When you are following this roadmap, make" + } + }, + { + "ID": "3998", + "typeID": "Label", + "zOrder": "40", + "measuredW": "338", + "measuredH": "26", + "x": "226", + "y": "645", + "properties": { + "color": "4985136", + "size": "18", + "text": "sure to build as many projects as possible" + } + }, + { + "ID": "3999", + "typeID": "Label", + "zOrder": "41", + "measuredW": "340", + "measuredH": "26", + "x": "224", + "y": "726", + "properties": { + "size": "18", + "color": "13576743", + "text": "Click the roadmap nodes for project ideas" + } + }, + { + "ID": "4000", + "typeID": "Label", + "zOrder": "42", + "measuredW": "145", + "measuredH": "32", + "x": "419", + "y": "568", + "properties": { + "color": "4985136", + "size": "24", + "text": "Important Tip" + } + }, + { + "ID": "4001", + "typeID": "Label", + "zOrder": "43", + "measuredW": "278", + "measuredH": "26", + "x": "970", + "y": "769", + "properties": { + "color": "4985136", + "size": "18", + "text": "Create your GitHub profile. Publish" + } + }, + { + "ID": "4002", + "typeID": "Label", + "zOrder": "44", + "measuredW": "300", + "measuredH": "26", + "x": "970", + "y": "799", + "properties": { + "color": "4985136", + "size": "18", + "text": "the projects that you have developed" + } + }, + { + "ID": "4003", + "typeID": "Label", + "zOrder": "45", + "measuredW": "229", + "measuredH": "26", + "x": "970", + "y": "829", + "properties": { + "color": "4985136", + "size": "18", + "text": "so far to your GitHub profile." + } + }, + { + "ID": "4004", + "typeID": "Label", + "zOrder": "46", + "measuredW": "249", + "measuredH": "26", + "x": "970", + "y": "869", + "properties": { + "size": "18", + "text": "Use git for your future projects.", + "color": "10027263" + } + }, + { + "ID": "4005", + "typeID": "Arrow", + "zOrder": "47", + "w": "84", + "h": "1", + "measuredW": "150", + "measuredH": "100", + "x": "706", + "y": "933", + "properties": { + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "color": "40463", + "p0": { + "x": 83.60000000000002, + "y": -0.3030303030302548 + }, + "p1": { + "x": 0.5, + "y": 0 + }, + "p2": { + "x": 0, + "y": -0.3030303030302548 + } + } + }, + { + "ID": "4006", + "typeID": "__group__", + "zOrder": "48", + "measuredW": "211", + "measuredH": "53", + "w": "211", + "h": "53", + "x": "530", + "y": "906", + "properties": { + "controlName": "107-package-managers" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "211", + "h": "53", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "149", + "measuredH": "25", + "x": "31", + "y": "14", + "properties": { + "text": "Package Managers", + "size": "17" + } + } + ] + } + } + }, + { + "ID": "4007", + "typeID": "__group__", + "zOrder": "49", + "measuredW": "103", + "measuredH": "49", + "w": "103", + "h": "49", + "x": "625", + "y": "817", + "properties": { + "controlName": "100-package-managers:npm" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "103", + "h": "49", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "36", + "measuredW": "34", + "measuredH": "25", + "x": "34", + "y": "12", + "properties": { + "size": "17", + "text": "npm" + } + } + ] + } + } + }, + { + "ID": "4008", + "typeID": "Arrow", + "zOrder": "50", + "w": "1", + "h": "57", + "measuredW": "150", + "measuredH": "100", + "x": "793", + "y": "804", + "properties": { + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "p0": { + "x": 0, + "y": -0.06060606060606233 + }, + "p1": { + "x": 0.5000000000000006, + "y": -1.590627626651165e-18 + }, + "p2": { + "x": 0, + "y": 56.66666666666663 + }, + "color": "10027263" + } + }, + { + "ID": "4009", + "typeID": "Arrow", + "zOrder": "51", + "w": "1", + "h": "184", + "measuredW": "150", + "measuredH": "100", + "x": "793", + "y": "874", + "properties": { + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "color": "40463", + "p0": { + "x": 0, + "y": 0 + }, + "p1": { + "x": 0.5000000000000007, + "y": -1.5906276266511654e-18 + }, + "p2": { + "x": 0, + "y": 184 + } + } + }, + { + "ID": "4010", + "typeID": "Arrow", + "zOrder": "52", + "w": "1", + "h": "44", + "measuredW": "150", + "measuredH": "100", + "x": "793", + "y": "1070", + "properties": { + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "color": "10027263", + "p0": { + "x": 0, + "y": 0.33333333333325754 + }, + "p1": { + "x": 0.5000000000000006, + "y": 0 + }, + "p2": { + "x": 0, + "y": 44 + } + } + }, + { + "ID": "4011", + "typeID": "Label", + "zOrder": "53", + "measuredW": "291", + "measuredH": "26", + "x": "194", + "y": "906", + "properties": { + "color": "4985136", + "size": "18", + "text": "npm should be a quick one. Just get" + } + }, + { + "ID": "4012", + "typeID": "Label", + "zOrder": "54", + "measuredW": "272", + "measuredH": "26", + "x": "213", + "y": "937", + "properties": { + "color": "4985136", + "size": "18", + "text": "the basic idea and jump to React." + } + }, + { + "ID": "4013", + "typeID": "Label", + "zOrder": "55", + "measuredW": "266", + "measuredH": "26", + "x": "219", + "y": "983", + "properties": { + "size": "18", + "color": "40463", + "text": "Create some projects with React" + } + }, + { + "ID": "4014", + "typeID": "Label", + "zOrder": "56", + "measuredW": "179", + "measuredH": "26", + "x": "306", + "y": "1013", + "properties": { + "size": "18", + "color": "40463", + "text": "involving API calls etc." + } + }, + { + "ID": "4015", + "typeID": "Label", + "zOrder": "57", + "measuredW": "242", + "measuredH": "26", + "x": "322", + "y": "675", + "properties": { + "color": "4985136", + "size": "18", + "text": "for each node of the roadmap" + } + }, + { + "ID": "4016", + "typeID": "Label", + "zOrder": "58", + "measuredW": "427", + "measuredH": "26", + "x": "851", + "y": "989", + "properties": { + "color": "4985136", + "size": "18", + "text": "There are several CSS frameworks. You can pick any." + } + }, + { + "ID": "4017", + "typeID": "Label", + "zOrder": "59", + "measuredW": "390", + "measuredH": "26", + "x": "851", + "y": "1019", + "properties": { + "color": "4985136", + "size": "18", + "text": "Tailwind would be my personal recommendation." + } + }, + { + "ID": "4018", + "typeID": "Label", + "zOrder": "60", + "measuredW": "323", + "measuredH": "26", + "x": "851", + "y": "1157", + "properties": { + "color": "4985136", + "size": "18", + "text": "May not be required for a junior position" + } + }, + { + "ID": "4019", + "typeID": "Arrow", + "zOrder": "61", + "w": "2", + "h": "89", + "measuredW": "150", + "measuredH": "100", + "x": "788", + "y": "1673", + "properties": { + "curvature": "0", + "leftArrow": "false", + "p0": { + "x": 1, + "y": 88 + }, + "p1": { + "x": 0.4072427393330943, + "y": 0.00953746862674794 + }, + "p2": { + "x": 1, + "y": 0 + }, + "rightArrow": "false", + "stroke": "dotted", + "color": "40463" + } + }, + { + "ID": "4020", + "typeID": "TextArea", + "zOrder": "62", + "w": "499", + "h": "118", + "measuredW": "200", + "measuredH": "140", + "x": "539", + "y": "1586" + }, + { + "ID": "4021", + "typeID": "Label", + "zOrder": "63", + "measuredW": "431", + "measuredH": "25", + "x": "573", + "y": "1605", + "properties": { + "size": "17", + "text": "Look at the detailed version for what else you don’t know" + } + }, + { + "ID": "4022", + "typeID": "__group__", + "zOrder": "64", + "measuredW": "430", + "measuredH": "44", + "w": "430", + "h": "44", + "x": "574", + "y": "1640", + "properties": { + "controlName": "json:jsons/roadmaps/frontend.json" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "430", + "h": "44", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "149", + "measuredH": "25", + "x": "140", + "y": "9", + "properties": { + "size": "17", + "text": "Frontend Roadmap" + } + } + ] + } + } + }, + { + "ID": "4023", + "typeID": "Arrow", + "zOrder": "65", + "w": "2", + "h": "89", + "measuredW": "150", + "measuredH": "100", + "x": "831", + "y": "1740", + "properties": { + "curvature": "0", + "leftArrow": "false", + "p0": { + "x": 1, + "y": 88 + }, + "p1": { + "x": 0.4072427393330943, + "y": 0.00953746862674794 + }, + "p2": { + "x": 1, + "y": 0 + }, + "rightArrow": "false", + "stroke": "dotted", + "color": "16777215" + } + }, + { + "ID": "4024", + "typeID": "Arrow", + "zOrder": "66", + "w": "2", + "h": "89", + "measuredW": "150", + "measuredH": "100", + "x": "179", + "y": "1265", + "properties": { + "curvature": "0", + "leftArrow": "false", + "p0": { + "x": 1, + "y": 88 + }, + "p1": { + "x": 0.4072427393330943, + "y": 0.00953746862674794 + }, + "p2": { + "x": 1, + "y": 0 + }, + "rightArrow": "false", + "stroke": "dotted", + "color": "16777215" + } + }, + { + "ID": "4025", + "typeID": "Arrow", + "zOrder": "67", + "w": "2", + "h": "89", + "measuredW": "150", + "measuredH": "100", + "x": "1336", + "y": "1321", + "properties": { + "curvature": "0", + "leftArrow": "false", + "p0": { + "x": 1, + "y": 88 + }, + "p1": { + "x": 0.4072427393330943, + "y": 0.00953746862674794 + }, + "p2": { + "x": 1, + "y": 0 + }, + "rightArrow": "false", + "stroke": "dotted", + "color": "16777215" + } + }, + { + "ID": "4026", + "typeID": "TextArea", + "zOrder": "68", + "w": "613", + "h": "246", + "measuredW": "200", + "measuredH": "140", + "x": "486", + "y": "1273" + }, + { + "ID": "4027", + "typeID": "Label", + "zOrder": "69", + "measuredW": "532", + "measuredH": "26", + "x": "518", + "y": "1339", + "properties": { + "color": "4985136", + "size": "18", + "text": "At this point, you should have enough knowledge to find a junior to" + } + }, + { + "ID": "4028", + "typeID": "Label", + "zOrder": "70", + "measuredW": "529", + "measuredH": "26", + "x": "518", + "y": "1369", + "properties": { + "color": "4985136", + "size": "18", + "text": "mid-level (maybe even senior) frontend developer position at any" + } + }, + { + "ID": "4029", + "typeID": "Label", + "zOrder": "71", + "measuredW": "441", + "measuredH": "26", + "x": "518", + "y": "1399", + "properties": { + "color": "4985136", + "size": "18", + "text": "company (depending on the depth of your knowledge)." + } + }, + { + "ID": "4030", + "typeID": "Label", + "zOrder": "72", + "measuredW": "116", + "measuredH": "32", + "x": "518", + "y": "1295", + "properties": { + "color": "4985136", + "size": "24", + "text": "Job Ready" + } + }, + { + "ID": "4031", + "typeID": "Label", + "zOrder": "73", + "measuredW": "536", + "measuredH": "26", + "x": "518", + "y": "1441", + "properties": { + "size": "18", + "color": "10027263", + "text": "Deepen your pool of knowledge and keep building projects till you" + } + }, + { + "ID": "4032", + "typeID": "Label", + "zOrder": "74", + "measuredW": "360", + "measuredH": "26", + "x": "518", + "y": "1470", + "properties": { + "size": "18", + "color": "10027263", + "text": "find a job. Your job will teach you a lot as well." + } + } + ] + }, + "attributes": { + "name": "New Wireframe 9 copy 7", + "order": 1000156.2209166192, + "parentID": null, + "notes": null + }, + "branchID": "Master", + "resourceID": "057DB19F-D6AC-44FC-8C5C-52D4D800A91B", + "mockupH": "1538", + "mockupW": "1159", + "measuredW": "1338", + "measuredH": "1829", + "version": "1.0" + }, + "groupOffset": { + "x": 0, + "y": 0 + }, + "dependencies": [], + "projectID": "file:///Users/kamranahmed/Desktop/AWS%20Roadmap.bmpr" +} diff --git a/src/data/roadmaps/frontend/frontend.json b/src/data/roadmaps/frontend/frontend.json new file mode 100644 index 000000000..bd718b0ad --- /dev/null +++ b/src/data/roadmaps/frontend/frontend.json @@ -0,0 +1,14265 @@ +{ + "mockup": { + "controls": { + "control": [ + { + "ID": "3690", + "typeID": "Arrow", + "zOrder": "0", + "w": "309", + "h": "4", + "measuredW": "150", + "measuredH": "100", + "x": "563", + "y": "2299", + "properties": { + "color": "2848996", + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "p0": { + "x": 309, + "y": 0 + }, + "p1": { + "x": 0.47704880470480404, + "y": 0.005193614908729892 + }, + "p2": { + "x": 0.25353038260061567, + "y": 3.4362035980902874 + } + } + }, + { + "ID": "3691", + "typeID": "Arrow", + "zOrder": "1", + "w": "179", + "h": "123", + "measuredW": "150", + "measuredH": "100", + "x": "557", + "y": "2156", + "properties": { + "color": "2848996", + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "p0": { + "x": -0.2145043524983521, + "y": 123.4387467621832 + }, + "p1": { + "x": 0.5230101676333169, + "y": -0.19478326314466354 + }, + "p2": { + "x": 179, + "y": 0 + } + } + }, + { + "ID": "3692", + "typeID": "Arrow", + "zOrder": "2", + "w": "65", + "h": "2", + "measuredW": "150", + "measuredH": "100", + "x": "1176", + "y": "2651", + "properties": { + "color": "2848996", + "curvature": "-1", + "leftArrow": "false", + "p0": { + "x": 0, + "y": 0 + }, + "p1": { + "x": 0.4807692307692308, + "y": -0.01923076923076923 + }, + "p2": { + "x": 64, + "y": 1 + }, + "rightArrow": "false", + "stroke": "dotted" + } + }, + { + "ID": "3693", + "typeID": "Arrow", + "zOrder": "3", + "w": "101", + "h": "39", + "measuredW": "150", + "measuredH": "100", + "x": "975", + "y": "2501", + "properties": { + "color": "2848996", + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 101.53298940730701, + "y": -0.4603981095092422 + }, + "p1": { + "x": 0.5036496350364975, + "y": 0.06360792492179564 + }, + "p2": { + "x": 0.4884249128083411, + "y": 38.51393390979774 + } + } + }, + { + "ID": "3694", + "typeID": "Arrow", + "zOrder": "4", + "w": "122", + "h": "32", + "measuredW": "150", + "measuredH": "100", + "x": "685", + "y": "3098", + "properties": { + "color": "2848996", + "curvature": "0", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": -0.2570801773204039, + "y": 0.27390737805444587 + }, + "p1": { + "x": 0.490691474468782, + "y": 0.06808089415982024 + }, + "p2": { + "x": 121.64515133802809, + "y": 32.10715730089032 + } + } + }, + { + "ID": "3695", + "typeID": "Arrow", + "zOrder": "5", + "w": "180", + "h": "369", + "measuredW": "150", + "measuredH": "100", + "x": "1000", + "y": "2730", + "properties": { + "color": "2848996", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 180.33312546195043, + "y": 369.1629038835017 + }, + "p1": { + "x": 0.5311058790594242, + "y": 0.05504224965971112 + }, + "p2": { + "x": 0.024041521385697706, + "y": 0.016603653832135024 + } + } + }, + { + "ID": "3696", + "typeID": "Arrow", + "zOrder": "6", + "w": "91", + "h": "44", + "measuredW": "150", + "measuredH": "100", + "x": "1153", + "y": "2448", + "properties": { + "color": "2848996", + "curvature": "0", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 91.2836149319719, + "y": -0.42601596895428884 + }, + "p1": { + "x": 0.4807260155574767, + "y": 0.1446845289541901 + }, + "p2": { + "x": 0.03815966742740784, + "y": 43.87863921953385 + } + } + }, + { + "ID": "3697", + "typeID": "Arrow", + "zOrder": "7", + "w": "1", + "h": "464", + "measuredW": "150", + "measuredH": "100", + "x": "584", + "y": "2979", + "properties": { + "color": "2848996", + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "p0": { + "x": 0, + "y": 0 + }, + "p1": { + "x": 0.5232912494558118, + "y": 0.0013060513713539397 + }, + "p2": { + "x": 0, + "y": 464.4848484848485 + } + } + }, + { + "ID": "3698", + "typeID": "Arrow", + "zOrder": "8", + "w": "159", + "h": "4", + "measuredW": "150", + "measuredH": "100", + "x": "685", + "y": "3080", + "properties": { + "color": "2848996", + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 0.44614540796908386, + "y": 3.8064134624410144 + }, + "p1": { + "x": 0.4319942611190816, + "y": -0.006169296987087544 + }, + "p2": { + "x": 159.7751756755747, + "y": 0 + } + } + }, + { + "ID": "3699", + "typeID": "Arrow", + "zOrder": "9", + "w": "142", + "h": "44", + "measuredW": "150", + "measuredH": "100", + "x": "668", + "y": "3031", + "properties": { + "color": "2848996", + "curvature": "0", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": -0.2570801773204039, + "y": 43.273907378054446 + }, + "p1": { + "x": 0.4540886815248379, + "y": -0.08069525981073665 + }, + "p2": { + "x": 142, + "y": 0 + } + } + }, + { + "ID": "3700", + "typeID": "Arrow", + "zOrder": "10", + "w": "2", + "h": "89", + "measuredW": "150", + "measuredH": "100", + "x": "584", + "y": "3490", + "properties": { + "color": "2848996", + "curvature": "0", + "leftArrow": "false", + "p0": { + "x": 1, + "y": 88 + }, + "p1": { + "x": 0.4072427393330943, + "y": 0.00953746862674794 + }, + "p2": { + "x": 1, + "y": 0 + }, + "rightArrow": "false", + "stroke": "dotted" + } + }, + { + "ID": "3701", + "typeID": "__group__", + "zOrder": "11", + "measuredW": "248", + "measuredH": "59", + "w": "248", + "h": "59", + "x": "454", + "y": "3051", + "properties": { + "controlName": "122-desktop-applications" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "241", + "h": "50", + "measuredW": "200", + "measuredH": "140", + "x": "7", + "y": "9", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "162", + "measuredH": "25", + "x": "47", + "y": "22", + "properties": { + "size": "17", + "text": "Desktop Applications" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "10066329", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3702", + "typeID": "__group__", + "zOrder": "12", + "measuredW": "196", + "measuredH": "41", + "w": "196", + "h": "41", + "x": "795", + "y": "3014", + "properties": { + "controlName": "100-desktop-applications:electron" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "188", + "h": "41", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "69", + "measuredW": "65", + "measuredH": "25", + "x": "63", + "y": "8", + "properties": { + "size": "17", + "text": "Electron" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "172", + "y": "7", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "172", + "y": "7", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3703", + "typeID": "__group__", + "zOrder": "13", + "measuredW": "221", + "measuredH": "50", + "w": "221", + "h": "50", + "x": "464", + "y": "3247", + "properties": { + "controlName": "123-bonus-content" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "210", + "h": "50", + "measuredW": "200", + "measuredH": "140", + "x": "11", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "115", + "measuredH": "25", + "x": "58", + "y": "12", + "properties": { + "size": "17", + "text": "Bonus Content" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "13", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "13", + "properties": { + "color": "10066329", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3704", + "typeID": "__group__", + "zOrder": "14", + "measuredW": "196", + "measuredH": "41", + "w": "196", + "h": "41", + "x": "795", + "y": "3060", + "properties": { + "controlName": "101-desktop-applications:tauri" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "188", + "h": "41", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "38", + "measuredH": "25", + "x": "75", + "y": "8", + "properties": { + "size": "17", + "text": "Tauri" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "172", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "172", + "y": "8", + "properties": { + "icon": { + "ID": "check-circle", + "size": "small" + }, + "color": "40463" + } + } + ] + } + } + }, + { + "ID": "3705", + "typeID": "Arrow", + "zOrder": "15", + "w": "237", + "h": "128", + "measuredW": "150", + "measuredH": "100", + "x": "675", + "y": "2848", + "properties": { + "color": "2848996", + "leftArrow": "false", + "rightArrow": "false", + "p0": { + "x": 236.93170111364998, + "y": 0.019905173764982464 + }, + "p1": { + "x": 0.4776994561390996, + "y": 0.17651148133814792 + }, + "p2": { + "x": 0.11074525562162307, + "y": 126.11937517609203 + } + } + }, + { + "ID": "3706", + "typeID": "Arrow", + "zOrder": "16", + "w": "1", + "h": "105", + "measuredW": "150", + "measuredH": "100", + "x": "930", + "y": "2731", + "properties": { + "color": "2848996", + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "p0": { + "x": 1, + "y": 105.13396175095886 + }, + "p1": { + "x": 0.47704880470480404, + "y": 0.005193614908729857 + }, + "p2": { + "x": 1, + "y": 0 + } + } + }, + { + "ID": "3707", + "typeID": "Arrow", + "zOrder": "17", + "w": "120", + "h": "182", + "measuredW": "150", + "measuredH": "100", + "x": "1060", + "y": "2725", + "properties": { + "color": "2848996", + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 120, + "y": 182 + }, + "p1": { + "x": 0.5641506862188896, + "y": 0.10909777122517159 + }, + "p2": { + "x": 0.40915526260198476, + "y": 0.23807505235299686 + } + } + }, + { + "ID": "3708", + "typeID": "Arrow", + "zOrder": "18", + "w": "141", + "h": "261", + "measuredW": "150", + "measuredH": "100", + "x": "1030", + "y": "2731", + "properties": { + "color": "2848996", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 141, + "y": 261 + }, + "p1": { + "x": 0.5842350949114499, + "y": 0.06027644608497023 + }, + "p2": { + "x": -0.3468130306484909, + "y": 0.38926871100329663 + } + } + }, + { + "ID": "3709", + "typeID": "Arrow", + "zOrder": "19", + "w": "164", + "h": "305", + "measuredW": "150", + "measuredH": "100", + "x": "1013", + "y": "2738", + "properties": { + "color": "2848996", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 163.5, + "y": 305 + }, + "p1": { + "x": 0.5311058790594241, + "y": 0.05504224965971115 + }, + "p2": { + "x": -0.2625955919362468, + "y": -0.45953763034685835 + } + } + }, + { + "ID": "3710", + "typeID": "Arrow", + "zOrder": "20", + "w": "112", + "h": "38", + "measuredW": "150", + "measuredH": "100", + "x": "726", + "y": "2849", + "properties": { + "color": "2848996", + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 112.50398196586139, + "y": 0.4821067591024075 + }, + "p1": { + "x": 0.5064432989690714, + "y": -0.10824742268041054 + }, + "p2": { + "x": 0.2446976954972797, + "y": 37.3892687110033 + } + } + }, + { + "ID": "3711", + "typeID": "Arrow", + "zOrder": "21", + "w": "184", + "h": "318", + "measuredW": "150", + "measuredH": "100", + "x": "753", + "y": "2408", + "properties": { + "color": "2848996", + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "p0": { + "x": 183.53647574825027, + "y": 318.53383041542565 + }, + "p1": { + "x": 0.4830556042799506, + "y": 0.1764076477810915 + }, + "p2": { + "x": 0.5384644034102166, + "y": 0.20955858028401053 + } + } + }, + { + "ID": "3712", + "typeID": "Arrow", + "zOrder": "22", + "w": "102", + "h": "42", + "measuredW": "150", + "measuredH": "100", + "x": "967", + "y": "2560", + "properties": { + "color": "2848996", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 102.31552051484277, + "y": 41.58416638498966 + }, + "p1": { + "x": 0.4148642429820512, + "y": -0.09226875287620818 + }, + "p2": { + "x": -0.17253775814867822, + "y": -0.27715319130265925 + } + } + }, + { + "ID": "3713", + "typeID": "Arrow", + "zOrder": "23", + "w": "108", + "h": "88", + "measuredW": "150", + "measuredH": "100", + "x": "965", + "y": "2564", + "properties": { + "color": "2848996", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 108.64600185032123, + "y": 88.10644863223888 + }, + "p1": { + "x": 0.41486424298205093, + "y": -0.09226875287620795 + }, + "p2": { + "x": 0.38396846335854207, + "y": 0.05332814417579357 + } + } + }, + { + "ID": "3714", + "typeID": "Arrow", + "zOrder": "24", + "w": "1", + "h": "105", + "measuredW": "150", + "measuredH": "100", + "x": "938", + "y": "2300", + "properties": { + "color": "2848996", + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "p0": { + "x": 1, + "y": 105.13396175095886 + }, + "p1": { + "x": 0.47704880470480404, + "y": 0.005193614908729857 + }, + "p2": { + "x": 1, + "y": 0 + } + } + }, + { + "ID": "3715", + "typeID": "Arrow", + "zOrder": "25", + "w": "2", + "h": "235", + "measuredW": "150", + "measuredH": "100", + "x": "422", + "y": "1795", + "properties": { + "color": "2848996", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": -0.260934347128682, + "y": -0.43825342894501773 + }, + "p1": { + "x": 0.43339050633562626, + "y": 0.007133769851020942 + }, + "p2": { + "x": -0.260934347128682, + "y": 234.2072671834119 + } + } + }, + { + "ID": "3716", + "typeID": "Arrow", + "zOrder": "26", + "w": "413", + "h": "47", + "measuredW": "150", + "measuredH": "100", + "x": "453", + "y": "1733", + "properties": { + "color": "2848996", + "leftArrow": "false", + "rightArrow": "false", + "p0": { + "x": 0.32780458177427363, + "y": 46.53523054117568 + }, + "p1": { + "x": 0.45894348755426007, + "y": 0.060942254353755484 + }, + "p2": { + "x": 413.65560916354855, + "y": 8.213447334918555 + } + } + }, + { + "ID": "3717", + "typeID": "Arrow", + "zOrder": "27", + "w": "1", + "h": "102", + "measuredW": "150", + "measuredH": "100", + "x": "954", + "y": "1732", + "properties": { + "color": "2848996", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": -0.260934347128682, + "y": -0.43825342894501773 + }, + "p1": { + "x": 0.4333905063356263, + "y": 0.007133769851020943 + }, + "p2": { + "x": -0.260934347128682, + "y": 101.80609466350643 + } + } + }, + { + "ID": "3718", + "typeID": "Arrow", + "zOrder": "28", + "w": "130", + "h": "172", + "measuredW": "150", + "measuredH": "100", + "x": "1010", + "y": "1630", + "properties": { + "color": "2848996", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 0.3622961870130439, + "y": 0.35400305967436907 + }, + "p1": { + "x": 0.45588235294117685, + "y": 0.07352941176470515 + }, + "p2": { + "x": 130.38263206538568, + "y": 172.802027487832 + } + } + }, + { + "ID": "3719", + "typeID": "Arrow", + "zOrder": "29", + "w": "103", + "h": "125", + "measuredW": "150", + "measuredH": "100", + "x": "1032", + "y": "1630", + "properties": { + "color": "2848996", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 0.26045801916006894, + "y": 0.35400305967436907 + }, + "p1": { + "x": 0.45588235294117674, + "y": 0.0735294117647052 + }, + "p2": { + "x": 102.90809160734898, + "y": 124.8997984800103 + } + } + }, + { + "ID": "3720", + "typeID": "Arrow", + "zOrder": "30", + "w": "88", + "h": "71", + "measuredW": "150", + "measuredH": "100", + "x": "1050", + "y": "1637", + "properties": { + "color": "2848996", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 0.052714507779455744, + "y": 0.19717863222035703 + }, + "p1": { + "x": 0.45588235294117674, + "y": 0.0735294117647052 + }, + "p2": { + "x": 87.64536183636733, + "y": 71.36620458669813 + } + } + }, + { + "ID": "3721", + "typeID": "Arrow", + "zOrder": "31", + "w": "77", + "h": "33", + "measuredW": "150", + "measuredH": "100", + "x": "1069", + "y": "1631", + "properties": { + "color": "2848996", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 0.21360611090813109, + "y": 0.7226381741836576 + }, + "p1": { + "x": 0.34627916069334047, + "y": 0.08067248794474031 + }, + "p2": { + "x": 76.8571725234226, + "y": 33.04442138044078 + } + } + }, + { + "ID": "3722", + "typeID": "Arrow", + "zOrder": "32", + "w": "83", + "h": "4", + "measuredW": "150", + "measuredH": "100", + "x": "1064", + "y": "1613", + "properties": { + "color": "2848996", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": -0.260934347128682, + "y": -0.43825342894501773 + }, + "p1": { + "x": 0.4310686842693701, + "y": -0.01854562577101437 + }, + "p2": { + "x": 82.75126717989497, + "y": 3.553612219705883 + } + } + }, + { + "ID": "3723", + "typeID": "Arrow", + "zOrder": "33", + "w": "250", + "h": "78", + "measuredW": "150", + "measuredH": "100", + "x": "329", + "y": "1639", + "properties": { + "color": "2848996", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": -0.2179908385617182, + "y": 77.94665038826247 + }, + "p1": { + "x": 0.46280569852413056, + "y": 0.04229310438161035 + }, + "p2": { + "x": 250.24223511661944, + "y": -0.06555113876129326 + } + } + }, + { + "ID": "3724", + "typeID": "Arrow", + "zOrder": "34", + "w": "252", + "h": "42", + "measuredW": "150", + "measuredH": "100", + "x": "330", + "y": "1633", + "properties": { + "color": "2848996", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 0.1506442759475135, + "y": 41.51896183847771 + }, + "p1": { + "x": 0.4628056985241305, + "y": 0.0422931043816104 + }, + "p2": { + "x": 252.39905954407345, + "y": -0.4891725128713915 + } + } + }, + { + "ID": "3725", + "typeID": "Arrow", + "zOrder": "35", + "w": "238", + "h": "77", + "measuredW": "150", + "measuredH": "100", + "x": "333", + "y": "1525", + "properties": { + "color": "2848996", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": -0.11208549503413678, + "y": 0.337734356976398 + }, + "p1": { + "x": 0.46318687896564104, + "y": -0.04633065964324165 + }, + "p2": { + "x": 238.03042442956428, + "y": 76.98130076949064 + } + } + }, + { + "ID": "3726", + "typeID": "Arrow", + "zOrder": "36", + "w": "244", + "h": "41", + "measuredW": "150", + "measuredH": "100", + "x": "323", + "y": "1569", + "properties": { + "color": "2848996", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 0.3074687034015824, + "y": 0.1340580212702207 + }, + "p1": { + "x": 0.4718266633930761, + "y": -0.03283820279891953 + }, + "p2": { + "x": 243.92451908603675, + "y": 41.19311145654592 + } + } + }, + { + "ID": "3727", + "typeID": "Arrow", + "zOrder": "37", + "w": "253", + "h": "1", + "measuredW": "150", + "measuredH": "100", + "x": "319", + "y": "1621", + "properties": { + "color": "2848996", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 0.20156335987400098, + "y": 1.4049221436009702 + }, + "p1": { + "x": 0.46937327878105334, + "y": 0.004541857492184635 + }, + "p2": { + "x": 253.39905954407345, + "y": 1.5108274871286085 + } + } + }, + { + "ID": "3728", + "typeID": "Arrow", + "zOrder": "38", + "w": "135", + "h": "53", + "measuredW": "150", + "measuredH": "100", + "x": "739", + "y": "1574", + "properties": { + "color": "2848996", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 0.3725435141941489, + "y": 0.23996336479785896 + }, + "p1": { + "x": 0.4960254372019082, + "y": 0.07419183889772205 + }, + "p2": { + "x": 135.8674198506036, + "y": 53.61673283065602 + } + } + }, + { + "ID": "3729", + "typeID": "Arrow", + "zOrder": "39", + "w": "119", + "h": "59", + "measuredW": "150", + "measuredH": "100", + "x": "749", + "y": "1498", + "properties": { + "color": "2848996", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": -0.047010684241513445, + "y": 58.44770687617847 + }, + "p1": { + "x": 0.5673179018899986, + "y": -0.10798471012953849 + }, + "p2": { + "x": 119.02424427805772, + "y": -0.40360304771661504 + } + } + }, + { + "ID": "3730", + "typeID": "Arrow", + "zOrder": "40", + "w": "89", + "h": "4", + "measuredW": "150", + "measuredH": "100", + "x": "1053", + "y": "1509", + "properties": { + "color": "10027263", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 89.03433282924925, + "y": 0 + }, + "p1": { + "x": 0.5653893258184628, + "y": -0.0013183529417352127 + }, + "p2": { + "x": 0.07305038615209014, + "y": 3.863193898939471 + } + } + }, + { + "ID": "3731", + "typeID": "Arrow", + "zOrder": "41", + "w": "100", + "h": "41", + "measuredW": "150", + "measuredH": "100", + "x": "1041", + "y": "1462", + "properties": { + "color": "10027263", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 99.66569771474019, + "y": 0.2236946620996605 + }, + "p1": { + "x": 0.4596243377749227, + "y": 0.08508588858564752 + }, + "p2": { + "x": -0.24466564443059724, + "y": 41.28274809737536 + } + } + }, + { + "ID": "3732", + "typeID": "Arrow", + "zOrder": "42", + "w": "133", + "h": "3", + "measuredW": "150", + "measuredH": "100", + "x": "750", + "y": "1565", + "properties": { + "color": "2848996", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 0.3216244302676614, + "y": 2.5026931357795092 + }, + "p1": { + "x": 0.4743412204498641, + "y": -0.008947430290275333 + }, + "p2": { + "x": 133, + "y": 0 + } + } + }, + { + "ID": "3733", + "typeID": "__group__", + "zOrder": "43", + "measuredW": "225", + "measuredH": "50", + "w": "225", + "h": "50", + "x": "851", + "y": "1481", + "properties": { + "controlName": "102-build-tools:linters-formatters" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "225", + "h": "50", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "176", + "measuredH": "25", + "x": "25", + "y": "13", + "properties": { + "size": "17", + "text": "Linters and Formatters" + } + } + ] + } + } + }, + { + "ID": "3734", + "typeID": "__group__", + "zOrder": "44", + "measuredW": "155", + "measuredH": "40", + "w": "155", + "h": "40", + "x": "1124", + "y": "1448", + "properties": { + "controlName": "100-build-tools:linters-formatters:prettier" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "145", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "66", + "measuredW": "58", + "measuredH": "25", + "x": "44", + "y": "7", + "properties": { + "size": "17", + "text": "Prettier" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "131", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "131", + "y": "8", + "properties": { + "icon": { + "ID": "check-circle", + "size": "small" + }, + "color": "10066329" + } + } + ] + } + } + }, + { + "ID": "3735", + "typeID": "__group__", + "zOrder": "45", + "measuredW": "155", + "measuredH": "40", + "w": "155", + "h": "40", + "x": "1124", + "y": "1493", + "properties": { + "controlName": "101-build-tools:linters-formatters:eslint" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "145", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "53", + "measuredW": "51", + "measuredH": "25", + "x": "46", + "y": "7", + "properties": { + "size": "17", + "text": "ESLint" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "131", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "131", + "y": "8", + "properties": { + "icon": { + "ID": "check-circle", + "size": "small" + }, + "color": "10066329" + } + } + ] + } + } + }, + { + "ID": "3736", + "typeID": "Arrow", + "zOrder": "46", + "w": "94", + "h": "177", + "measuredW": "150", + "measuredH": "100", + "x": "544", + "y": "1394", + "properties": { + "color": "2848996", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "p0": { + "x": -0.342277860619447, + "y": -0.4198717504148135 + }, + "p1": { + "x": 0.5100925147182503, + "y": -0.13330529857022685 + }, + "p2": { + "x": 94.09354504051441, + "y": 176.13405802127022 + } + } + }, + { + "ID": "3737", + "typeID": "Arrow", + "zOrder": "47", + "w": "144", + "h": "47", + "measuredW": "150", + "measuredH": "100", + "x": "333", + "y": "1403", + "properties": { + "color": "2848996", + "curvature": "-1", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 143.59460152843042, + "y": -0.36895266648821234 + }, + "p1": { + "x": 0.5621049174944583, + "y": -0.05820540185534891 + }, + "p2": { + "x": -0.11208549503413678, + "y": 46.16464122682419 + } + } + }, + { + "ID": "3738", + "typeID": "Arrow", + "zOrder": "48", + "w": "131", + "h": "101", + "measuredW": "150", + "measuredH": "100", + "x": "340", + "y": "1174", + "properties": { + "color": "2848996", + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 131.85733129941207, + "y": 100.92842748572161 + }, + "p1": { + "x": 0.5179188602929944, + "y": 0.05890610549143938 + }, + "p2": { + "x": 0.46836030653014404, + "y": -0.3505709879580081 + } + } + }, + { + "ID": "3739", + "typeID": "Arrow", + "zOrder": "49", + "w": "140", + "h": "56", + "measuredW": "150", + "measuredH": "100", + "x": "334", + "y": "1228", + "properties": { + "color": "2848996", + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 139.22596641392124, + "y": 56.50887328728595 + }, + "p1": { + "x": 0.5179188602929942, + "y": 0.0589061054914393 + }, + "p2": { + "x": -0.3748152660157871, + "y": 0.3948335924094408 + } + } + }, + { + "ID": "3740", + "typeID": "Arrow", + "zOrder": "50", + "w": "167", + "h": "7", + "measuredW": "150", + "measuredH": "100", + "x": "321", + "y": "1287", + "properties": { + "color": "2848996", + "curvature": "-1", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 0, + "y": 0 + }, + "p1": { + "x": 0.44343003361676714, + "y": 0.014243775690876877 + }, + "p2": { + "x": 167.28095267352228, + "y": 7.089319088850289 + } + } + }, + { + "ID": "3741", + "typeID": "Arrow", + "zOrder": "51", + "w": "130", + "h": "1", + "measuredW": "150", + "measuredH": "100", + "x": "351", + "y": "1342", + "properties": { + "color": "2848996", + "curvature": "-1", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 129.700506871958, + "y": 0 + }, + "p1": { + "x": 0.47348089180528574, + "y": 0.0008969445600114837 + }, + "p2": { + "x": 0, + "y": 0 + } + } + }, + { + "ID": "3742", + "typeID": "Arrow", + "zOrder": "52", + "w": "105", + "h": "43", + "measuredW": "150", + "measuredH": "100", + "x": "1052", + "y": "2249", + "properties": { + "color": "10027263", + "curvature": "-1", + "direction": "bottom", + "leftArrow": "false", + "p0": { + "x": 0, + "y": 42 + }, + "p1": { + "x": 0.3246422893481717, + "y": 0.04197138314785374 + }, + "p2": { + "x": 104, + "y": 0 + }, + "rightArrow": "false", + "stroke": "dotted" + } + }, + { + "ID": "3743", + "typeID": "Arrow", + "zOrder": "53", + "w": "128", + "h": "9", + "measuredW": "150", + "measuredH": "100", + "x": "1040", + "y": "2295", + "properties": { + "color": "10027263", + "curvature": "-1", + "direction": "bottom", + "leftArrow": "false", + "p0": { + "x": 0, + "y": 8 + }, + "p1": { + "x": 0.3321152059461133, + "y": 0.04465778878909879 + }, + "p2": { + "x": 127, + "y": 4 + }, + "rightArrow": "false", + "stroke": "dotted" + } + }, + { + "ID": "3744", + "typeID": "Arrow", + "zOrder": "54", + "w": "129", + "h": "34", + "measuredW": "150", + "measuredH": "100", + "x": "1041", + "y": "2310", + "properties": { + "color": "10027263", + "curvature": "0", + "leftArrow": "false", + "p0": { + "x": 0, + "y": 0 + }, + "p1": { + "x": 0.3458601686475002, + "y": -0.005245335635083992 + }, + "p2": { + "x": 128, + "y": 33 + }, + "rightArrow": "false", + "stroke": "dotted" + } + }, + { + "ID": "3745", + "typeID": "Arrow", + "zOrder": "55", + "w": "209", + "h": "108", + "measuredW": "150", + "measuredH": "100", + "x": "663", + "y": "1624", + "properties": { + "color": "2848996", + "curvature": "-1", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "p0": { + "x": 209.13014962158525, + "y": 107.63300153335422 + }, + "p1": { + "x": 0.5705193330544435, + "y": 0.04891531703818817 + }, + "p2": { + "x": -0.2710228983202114, + "y": -0.4891725128713915 + } + } + }, + { + "ID": "3746", + "typeID": "Arrow", + "zOrder": "56", + "w": "90", + "h": "2", + "measuredW": "150", + "measuredH": "100", + "x": "1053", + "y": "1561", + "properties": { + "color": "2848996", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 0.4213496222886306, + "y": 0.18497710519682187 + }, + "p1": { + "x": 0.4310686842693701, + "y": -0.01854562577101436 + }, + "p2": { + "x": 90.75126717989497, + "y": 1.553612219705883 + } + } + }, + { + "ID": "3747", + "typeID": "Arrow", + "zOrder": "57", + "w": "160", + "h": "3", + "measuredW": "150", + "measuredH": "100", + "x": "323", + "y": "1393", + "properties": { + "color": "2848996", + "curvature": "-1", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 160.43777710097635, + "y": 0.050601531947449985 + }, + "p1": { + "x": 0.4806472503297293, + "y": -0.001432629622812211 + }, + "p2": { + "x": 0.3074687034015824, + "y": 3 + } + } + }, + { + "ID": "3748", + "typeID": "Arrow", + "zOrder": "58", + "w": "1", + "h": "123", + "measuredW": "150", + "measuredH": "100", + "x": "917", + "y": "1152", + "properties": { + "color": "2848996", + "curvature": "-1", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 0, + "y": 0 + }, + "p1": { + "x": 0.4327183610207736, + "y": 0.0030579658389972178 + }, + "p2": { + "x": 0, + "y": 122.50887328728595 + } + } + }, + { + "ID": "3749", + "typeID": "Arrow", + "zOrder": "59", + "w": "211", + "h": "128", + "measuredW": "150", + "measuredH": "100", + "x": "552", + "y": "1155", + "properties": { + "color": "2848996", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "p0": { + "x": 211, + "y": 0 + }, + "p1": { + "x": 0.5569070155556886, + "y": -0.16942743759521814 + }, + "p2": { + "x": -0.130467173564341, + "y": 127.72068397434123 + } + } + }, + { + "ID": "3750", + "typeID": "__group__", + "zOrder": "60", + "measuredW": "158", + "measuredH": "49", + "w": "158", + "h": "49", + "x": "194", + "y": "1207", + "properties": { + "controlName": "101-package-managers:yarn" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "151", + "h": "49", + "measuredW": "200", + "measuredH": "140", + "x": "7", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "33", + "measuredH": "25", + "x": "66", + "y": "12", + "properties": { + "text": "yarn", + "size": "17" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "13", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "13", + "properties": { + "icon": { + "ID": "check-circle", + "size": "small" + }, + "color": "3700253" + } + } + ] + } + } + }, + { + "ID": "3751", + "typeID": "Arrow", + "zOrder": "61", + "w": "109", + "h": "161", + "measuredW": "150", + "measuredH": "100", + "x": "788", + "y": "971", + "properties": { + "color": "2848996", + "leftArrow": "false", + "p0": { + "x": 0, + "y": 0 + }, + "p1": { + "x": 0.5674918262494162, + "y": 0.22092480149462868 + }, + "p2": { + "x": 102, + "y": 160 + }, + "rightArrow": "false" + } + }, + { + "ID": "3752", + "typeID": "Arrow", + "zOrder": "62", + "w": "1", + "h": "77", + "measuredW": "150", + "measuredH": "100", + "x": "1154", + "y": "974", + "properties": { + "color": "2848996", + "curvature": "-1", + "leftArrow": "false", + "p0": { + "x": 0, + "y": 76 + }, + "p1": { + "x": 0.487275195113675, + "y": -0.01187648456057007 + }, + "p2": { + "x": 0, + "y": 0 + }, + "rightArrow": "false", + "stroke": "dotted" + } + }, + { + "ID": "3753", + "typeID": "Arrow", + "zOrder": "63", + "w": "85", + "h": "3", + "measuredW": "150", + "measuredH": "100", + "x": "885", + "y": "958", + "properties": { + "color": "2848996", + "curvature": "-1", + "leftArrow": "false", + "p0": { + "x": 83, + "y": 1 + }, + "p1": { + "x": 0.4872751951136748, + "y": -0.01187648456057007 + }, + "p2": { + "x": 0, + "y": 1 + }, + "rightArrow": "false", + "stroke": "dotted" + } + }, + { + "ID": "3754", + "typeID": "Arrow", + "zOrder": "64", + "w": "2", + "h": "74", + "measuredW": "150", + "measuredH": "100", + "x": "662", + "y": "964", + "properties": { + "color": "2848996", + "curvature": "-1", + "leftArrow": "false", + "p0": { + "x": 1, + "y": 73 + }, + "p1": { + "x": 0.4872751951136749, + "y": -0.01187648456057007 + }, + "p2": { + "x": 0, + "y": 0 + }, + "rightArrow": "false", + "stroke": "dotted" + } + }, + { + "ID": "3755", + "typeID": "Arrow", + "zOrder": "65", + "w": "120", + "h": "3", + "measuredW": "150", + "measuredH": "100", + "x": "812", + "y": "746", + "properties": { + "color": "2848996", + "curvature": "0", + "leftArrow": "false", + "p0": { + "x": 119, + "y": 2 + }, + "p1": { + "x": 0.5436210493779461, + "y": 0.006954640290549417 + }, + "p2": { + "x": 0, + "y": 0 + }, + "rightArrow": "false", + "stroke": "dotted" + } + }, + { + "ID": "3756", + "typeID": "Arrow", + "zOrder": "66", + "w": "108", + "h": "5", + "measuredW": "150", + "measuredH": "100", + "x": "823", + "y": "693", + "properties": { + "color": "2848996", + "leftArrow": "false", + "p0": { + "x": 107, + "y": 2 + }, + "p1": { + "x": 0.589278350515464, + "y": 0.035876288659793816 + }, + "p2": { + "x": 0, + "y": 0 + }, + "rightArrow": "false", + "stroke": "dotted" + } + }, + { + "ID": "3757", + "typeID": "Arrow", + "zOrder": "67", + "w": "100", + "h": "45", + "measuredW": "150", + "measuredH": "100", + "x": "823", + "y": "647", + "properties": { + "color": "2848996", + "direction": "bottom", + "leftArrow": "false", + "p0": { + "x": 99, + "y": 0 + }, + "p1": { + "x": 0.5773195876288659, + "y": -0.06466729147141519 + }, + "p2": { + "x": 0, + "y": 44 + }, + "rightArrow": "false", + "stroke": "dotted" + } + }, + { + "ID": "3758", + "typeID": "Arrow", + "zOrder": "68", + "w": "40", + "h": "139", + "measuredW": "150", + "measuredH": "100", + "x": "696", + "y": "530", + "properties": { + "color": "2848996", + "leftArrow": "false", + "p0": { + "x": 0, + "y": 0 + }, + "p1": { + "x": 0.5674918262494162, + "y": 0.22092480149462868 + }, + "p2": { + "x": 15, + "y": 138 + }, + "rightArrow": "false" + } + }, + { + "ID": "3759", + "typeID": "Arrow", + "zOrder": "69", + "w": "151", + "h": "29", + "measuredW": "150", + "measuredH": "100", + "x": "777", + "y": "522", + "properties": { + "color": "2848996", + "leftArrow": "false", + "p0": { + "x": 150, + "y": 28 + }, + "p1": { + "x": 0.4823054457996908, + "y": 0.02336368321594228 + }, + "p2": { + "x": 0, + "y": 0 + }, + "rightArrow": "false", + "stroke": "dotted" + } + }, + { + "ID": "3760", + "typeID": "Arrow", + "zOrder": "70", + "w": "153", + "h": "13", + "measuredW": "150", + "measuredH": "100", + "x": "779", + "y": "505", + "properties": { + "color": "2848996", + "curvature": "0", + "direction": "bottom", + "leftArrow": "false", + "p0": { + "x": 152, + "y": 0 + }, + "p1": { + "x": 0.4798692360633173, + "y": -0.004989676531314521 + }, + "p2": { + "x": 0, + "y": 12 + }, + "rightArrow": "false", + "stroke": "dotted" + } + }, + { + "ID": "3761", + "typeID": "Arrow", + "zOrder": "71", + "h": "60", + "measuredW": "150", + "measuredH": "100", + "x": "777", + "y": "456", + "properties": { + "color": "2848996", + "direction": "bottom", + "leftArrow": "false", + "p0": { + "x": 149, + "y": 0 + }, + "p1": { + "x": 0.4552212800557556, + "y": -0.05494250203275647 + }, + "p2": { + "x": 0, + "y": 59 + }, + "rightArrow": "false", + "stroke": "dotted" + } + }, + { + "ID": "3762", + "typeID": "Arrow", + "zOrder": "72", + "w": "134", + "h": "36", + "measuredW": "150", + "measuredH": "100", + "x": "487", + "y": "523", + "properties": { + "color": "2848996", + "curvature": "0", + "direction": "bottom", + "leftArrow": "false", + "p0": { + "x": 132, + "y": 0 + }, + "p1": { + "x": 0.4652789342214826, + "y": -0.001332223147377271 + }, + "p2": { + "x": 0, + "y": 34 + }, + "rightArrow": "false", + "stroke": "dotted" + } + }, + { + "ID": "3763", + "typeID": "Arrow", + "zOrder": "73", + "w": "131", + "h": "9", + "measuredW": "150", + "measuredH": "100", + "x": "487", + "y": "510", + "properties": { + "color": "2848996", + "curvature": "0", + "leftArrow": "false", + "p0": { + "x": 129, + "y": 7 + }, + "p1": { + "x": 0.4652789342214826, + "y": -0.001332223147377271 + }, + "p2": { + "x": 0, + "y": 0 + }, + "rightArrow": "false", + "stroke": "dotted" + } + }, + { + "ID": "3764", + "typeID": "Arrow", + "zOrder": "74", + "w": "143", + "h": "53", + "measuredW": "150", + "measuredH": "100", + "x": "477", + "y": "463", + "properties": { + "color": "2848996", + "curvature": "-1", + "leftArrow": "false", + "p0": { + "x": 141, + "y": 51 + }, + "p1": { + "x": 0.45522128005575574, + "y": -0.054942502032756434 + }, + "p2": { + "x": 0, + "y": 0 + }, + "rightArrow": "false", + "stroke": "dotted" + } + }, + { + "ID": "3765", + "typeID": "Arrow", + "zOrder": "75", + "w": "45", + "h": "139", + "measuredW": "150", + "measuredH": "100", + "x": "674", + "y": "367", + "properties": { + "color": "2848996", + "direction": "bottom", + "leftArrow": "false", + "p0": { + "x": 44, + "y": 0 + }, + "p1": { + "x": 0.540933899332929, + "y": -0.1946634323832626 + }, + "p2": { + "x": 16, + "y": 138 + }, + "rightArrow": "false" + } + }, + { + "ID": "3766", + "typeID": "HRule", + "zOrder": "76", + "measuredW": "100", + "measuredH": "10", + "x": "1176", + "y": "794", + "properties": { + "color": "10027263", + "stroke": "dotted" + } + }, + { + "ID": "3767", + "typeID": "Arrow", + "zOrder": "77", + "w": "71", + "h": "134", + "measuredW": "150", + "measuredH": "100", + "x": "686", + "y": "805", + "properties": { + "color": "2848996", + "curvature": "-1", + "leftArrow": "false", + "p0": { + "x": 9, + "y": 0 + }, + "p1": { + "x": 0.5549276224469561, + "y": -0.26264128494943484 + }, + "p2": { + "x": 70, + "y": 133 + }, + "rightArrow": "false" + } + }, + { + "ID": "3768", + "typeID": "Arrow", + "zOrder": "78", + "w": "130", + "h": "213", + "measuredW": "150", + "measuredH": "100", + "x": "468", + "y": "816", + "properties": { + "color": "2848996", + "curvature": "-1", + "direction": "bottom", + "leftArrow": "false", + "p0": { + "x": 129, + "y": 0 + }, + "p1": { + "x": 0.5007550539904198, + "y": 0.04527076398473655 + }, + "p2": { + "x": 0, + "y": 212 + }, + "rightArrow": "false", + "stroke": "dotted" + } + }, + { + "ID": "3769", + "typeID": "Arrow", + "zOrder": "79", + "w": "110", + "h": "157", + "measuredW": "150", + "measuredH": "100", + "x": "482", + "y": "809", + "properties": { + "color": "2848996", + "curvature": "0", + "direction": "bottom", + "leftArrow": "false", + "p0": { + "x": 109, + "y": 0 + }, + "p1": { + "x": 0.46686783637115814, + "y": 0.0018494634122600195 + }, + "p2": { + "x": 0, + "y": 156 + }, + "rightArrow": "false", + "stroke": "dotted" + } + }, + { + "ID": "3770", + "typeID": "Arrow", + "zOrder": "80", + "w": "119", + "h": "120", + "measuredW": "150", + "measuredH": "100", + "x": "474", + "y": "802", + "properties": { + "color": "2848996", + "curvature": "0", + "direction": "bottom", + "leftArrow": "false", + "p0": { + "x": 118, + "y": 0 + }, + "p1": { + "x": 0.46376334167874567, + "y": -0.006127289497957557 + }, + "p2": { + "x": 0, + "y": 119 + }, + "rightArrow": "false", + "stroke": "dotted" + } + }, + { + "ID": "3771", + "typeID": "Arrow", + "zOrder": "81", + "w": "128", + "h": "82", + "measuredW": "150", + "measuredH": "100", + "x": "469", + "y": "791", + "properties": { + "color": "2848996", + "curvature": "0", + "direction": "bottom", + "leftArrow": "false", + "p0": { + "x": 127, + "y": 0 + }, + "p1": { + "x": 0.4682571775171856, + "y": 0.0018196522442377747 + }, + "p2": { + "x": 0, + "y": 81 + }, + "rightArrow": "false", + "stroke": "dotted" + } + }, + { + "ID": "3772", + "typeID": "Arrow", + "zOrder": "82", + "w": "123", + "h": "34", + "measuredW": "150", + "measuredH": "100", + "x": "469", + "y": "793", + "properties": { + "color": "2848996", + "curvature": "0", + "direction": "bottom", + "leftArrow": "false", + "p0": { + "x": 122, + "y": 0 + }, + "p1": { + "x": 0.4501850789844116, + "y": 0.009280016683176094 + }, + "p2": { + "x": 0, + "y": 33 + }, + "rightArrow": "false", + "stroke": "dotted" + } + }, + { + "ID": "3773", + "typeID": "Arrow", + "zOrder": "83", + "w": "106", + "h": "99", + "measuredW": "150", + "measuredH": "100", + "x": "824", + "y": "753", + "properties": { + "color": "2848996", + "curvature": "-1", + "leftArrow": "false", + "p0": { + "x": 105, + "y": 98 + }, + "p1": { + "x": 0.48727519511367495, + "y": -0.011876484560570073 + }, + "p2": { + "x": 0, + "y": 0 + }, + "rightArrow": "false", + "stroke": "dotted" + } + }, + { + "ID": "3774", + "typeID": "Arrow", + "zOrder": "84", + "w": "109", + "h": "54", + "measuredW": "150", + "measuredH": "100", + "x": "821", + "y": "747", + "properties": { + "color": "2848996", + "curvature": "0", + "leftArrow": "false", + "p0": { + "x": 108, + "y": 53 + }, + "p1": { + "x": 0.44795435569162256, + "y": -0.008627887559142778 + }, + "p2": { + "x": 0, + "y": 0 + }, + "rightArrow": "false", + "stroke": "dotted" + } + }, + { + "ID": "3775", + "typeID": "Arrow", + "zOrder": "85", + "w": "111", + "h": "59", + "measuredW": "150", + "measuredH": "100", + "x": "472", + "y": "619", + "properties": { + "color": "2848996", + "curvature": "-1", + "leftArrow": "false", + "p0": { + "x": 110, + "y": 58 + }, + "p1": { + "x": 0.45522128005575574, + "y": -0.054942502032756434 + }, + "p2": { + "x": 0, + "y": 0 + }, + "rightArrow": "false", + "stroke": "dotted" + } + }, + { + "ID": "3776", + "typeID": "Arrow", + "zOrder": "86", + "w": "112", + "h": "58", + "measuredW": "150", + "measuredH": "100", + "x": "470", + "y": "701", + "properties": { + "color": "2848996", + "curvature": "-1", + "direction": "bottom", + "leftArrow": "false", + "p0": { + "x": 111, + "y": 0 + }, + "p1": { + "x": 0.47938350680544434, + "y": 0.06064851881505207 + }, + "p2": { + "x": 0, + "y": 57 + }, + "rightArrow": "false", + "stroke": "dotted" + } + }, + { + "ID": "3777", + "typeID": "Arrow", + "zOrder": "87", + "w": "112", + "h": "23", + "measuredW": "150", + "measuredH": "100", + "x": "474", + "y": "691", + "properties": { + "color": "2848996", + "curvature": "-1", + "direction": "bottom", + "leftArrow": "false", + "p0": { + "x": 111, + "y": 0 + }, + "p1": { + "x": 0.4453729012104649, + "y": 0.01983600156188987 + }, + "p2": { + "x": 0, + "y": 22 + }, + "rightArrow": "false", + "stroke": "dotted" + } + }, + { + "ID": "3778", + "typeID": "Arrow", + "zOrder": "88", + "w": "120", + "h": "20", + "measuredW": "150", + "measuredH": "100", + "x": "471", + "y": "668", + "properties": { + "color": "2848996", + "curvature": "0", + "leftArrow": "false", + "p0": { + "x": 119, + "y": 19 + }, + "p1": { + "x": 0.4652789342214826, + "y": -0.001332223147377271 + }, + "p2": { + "x": 0, + "y": 0 + }, + "rightArrow": "false", + "stroke": "dotted" + } + }, + { + "ID": "3779", + "typeID": "Arrow", + "zOrder": "89", + "w": "19", + "h": "80", + "measuredW": "150", + "measuredH": "100", + "x": "761", + "y": "226", + "properties": { + "color": "2848996", + "curvature": "-1", + "direction": "bottom", + "leftArrow": "false", + "p0": { + "x": 17, + "y": 0 + }, + "p1": { + "x": 0.4835868694955965, + "y": 0.10168134507606086 + }, + "p2": { + "x": 0, + "y": 79 + }, + "rightArrow": "false", + "stroke": "dotted" + } + }, + { + "ID": "3780", + "typeID": "__group__", + "zOrder": "90", + "measuredW": "250", + "measuredH": "55", + "w": "250", + "h": "55", + "x": "583", + "y": "659", + "properties": { + "controlName": "101-html" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "250", + "h": "55", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "48", + "measuredH": "25", + "x": "101", + "y": "16", + "properties": { + "size": "17", + "text": "HTML" + } + } + ] + } + } + }, + { + "ID": "3781", + "typeID": "__group__", + "zOrder": "91", + "measuredW": "144", + "measuredH": "40", + "w": "144", + "h": "40", + "x": "664", + "y": "313", + "properties": { + "controlName": "ext_link:roadmap.sh/frontend" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Label", + "zOrder": "0", + "measuredW": "144", + "measuredH": "40", + "x": "0", + "y": "0", + "properties": { + "size": "32", + "text": "Front-end" + } + } + ] + } + } + }, + { + "ID": "3782", + "typeID": "__group__", + "zOrder": "92", + "measuredW": "304", + "measuredH": "47", + "w": "304", + "h": "47", + "x": "192", + "y": "592", + "properties": { + "controlName": "100-html:learn-the-basics" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "296", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "8", + "y": "7", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "134", + "measuredW": "128", + "measuredH": "25", + "x": "90", + "y": "15", + "properties": { + "size": "17", + "text": "Learn the basics" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3783", + "typeID": "__group__", + "zOrder": "93", + "measuredW": "304", + "measuredH": "45", + "w": "304", + "h": "45", + "x": "192", + "y": "641", + "properties": { + "controlName": "101-html:writing-semantic-html" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "296", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "8", + "y": "5", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "189", + "measuredW": "183", + "measuredH": "25", + "x": "63", + "y": "13", + "properties": { + "size": "17", + "text": "Writing Semantic HTML" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "10066329", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3784", + "typeID": "__group__", + "zOrder": "94", + "measuredW": "304", + "measuredH": "45", + "w": "304", + "h": "45", + "x": "192", + "y": "687", + "properties": { + "controlName": "102-html:forms-and-validations" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "296", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "8", + "y": "5", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "172", + "measuredW": "169", + "measuredH": "25", + "x": "71", + "y": "13", + "properties": { + "size": "17", + "text": "Forms and Validations" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3785", + "typeID": "__group__", + "zOrder": "95", + "measuredW": "304", + "measuredH": "49", + "w": "304", + "h": "49", + "x": "192", + "y": "730", + "properties": { + "controlName": "103-html:conventions-and-best-practices" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "296", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "8", + "y": "9", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "248", + "measuredW": "246", + "measuredH": "25", + "x": "33", + "y": "17", + "properties": { + "size": "17", + "text": "Conventions and Best Practices" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3786", + "typeID": "__group__", + "zOrder": "96", + "measuredW": "250", + "measuredH": "50", + "w": "250", + "h": "50", + "x": "583", + "y": "721", + "properties": { + "controlName": "102-css" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "250", + "h": "50", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "33", + "measuredH": "25", + "x": "108", + "y": "14", + "properties": { + "size": "17", + "text": "CSS" + } + } + ] + } + } + }, + { + "ID": "3787", + "typeID": "__group__", + "zOrder": "97", + "measuredW": "123", + "measuredH": "193", + "w": "123", + "h": "193", + "x": "1223", + "y": "692", + "properties": { + "controlName": "101-css:making-layouts" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "116", + "h": "185", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "8", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "47", + "measuredH": "25", + "x": "35", + "y": "21", + "properties": { + "size": "17", + "text": "Floats" + } + }, + { + "ID": "2", + "typeID": "Label", + "zOrder": "2", + "measuredW": "84", + "measuredH": "25", + "x": "16", + "y": "48", + "properties": { + "size": "17", + "text": "Positioning" + } + }, + { + "ID": "3", + "typeID": "Label", + "zOrder": "3", + "measuredW": "56", + "measuredH": "25", + "x": "30", + "y": "75", + "properties": { + "size": "17", + "text": "Display" + } + }, + { + "ID": "4", + "typeID": "Label", + "zOrder": "4", + "measuredW": "82", + "measuredH": "25", + "x": "19", + "y": "102", + "properties": { + "size": "17", + "text": "Box Model" + } + }, + { + "ID": "5", + "typeID": "Label", + "zOrder": "5", + "measuredW": "70", + "measuredH": "25", + "x": "22", + "y": "129", + "properties": { + "size": "17", + "text": "CSS Grid" + } + }, + { + "ID": "6", + "typeID": "Label", + "zOrder": "6", + "measuredW": "65", + "measuredH": "25", + "x": "26", + "y": "156", + "properties": { + "size": "17", + "text": "Flex Box" + } + }, + { + "ID": "7", + "typeID": "Icon", + "zOrder": "7", + "measuredW": "24", + "measuredH": "24", + "x": "99", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "8", + "typeID": "Icon", + "zOrder": "8", + "measuredW": "24", + "measuredH": "24", + "x": "99", + "y": "0", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3788", + "typeID": "__group__", + "zOrder": "98", + "measuredW": "289", + "measuredH": "47", + "w": "289", + "h": "47", + "x": "915", + "y": "719", + "properties": { + "controlName": "100-css:learn-the-basics" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "280", + "h": "43", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "4", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "140", + "measuredW": "128", + "measuredH": "25", + "x": "70", + "y": "13", + "properties": { + "size": "17", + "text": "Learn the basics" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "265", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "265", + "y": "0", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3789", + "typeID": "__group__", + "zOrder": "99", + "measuredW": "290", + "measuredH": "51", + "w": "290", + "h": "51", + "x": "914", + "y": "768", + "properties": { + "controlName": "101-css:making-layouts" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "281", + "h": "47", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "4", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "130", + "measuredW": "120", + "measuredH": "25", + "x": "76", + "y": "15", + "properties": { + "size": "17", + "text": "Making Layouts" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "266", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "266", + "y": "0", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3790", + "typeID": "Canvas", + "zOrder": "100", + "w": "324", + "h": "195", + "measuredW": "100", + "measuredH": "70", + "x": "993", + "y": "191" + }, + { + "ID": "3791", + "typeID": "Label", + "zOrder": "101", + "measuredW": "283", + "measuredH": "26", + "x": "1011", + "y": "210", + "properties": { + "size": "18", + "text": "For resources and other roadmaps" + } + }, + { + "ID": "3792", + "typeID": "__group__", + "zOrder": "102", + "measuredW": "172", + "measuredH": "28", + "w": "172", + "h": "28", + "x": "1011", + "y": "243", + "properties": { + "controlName": "ext_link:roadmap.sh" + }, + "children": { + "controls": { + "control": [ + { + "ID": "2", + "typeID": "Label", + "zOrder": "0", + "measuredW": "172", + "measuredH": "28", + "x": "0", + "y": "0", + "properties": { + "size": "20", + "text": "https://roadmap.sh", + "color": "10027263" + } + } + ] + } + } + }, + { + "ID": "3793", + "typeID": "__group__", + "zOrder": "103", + "measuredW": "282", + "measuredH": "47", + "w": "282", + "h": "47", + "x": "1011", + "y": "318", + "properties": { + "controlName": "json:frontend-beginner.json" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "282", + "h": "47", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "borderColor": "4273622", + "color": "4273622" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "210", + "measuredH": "26", + "x": "36", + "y": "11", + "properties": { + "color": "16777215", + "size": "18", + "text": "Visit the Beginner Version" + } + } + ] + } + } + }, + { + "ID": "3794", + "typeID": "Label", + "zOrder": "104", + "measuredW": "227", + "measuredH": "26", + "x": "1011", + "y": "283", + "properties": { + "color": "4985136", + "size": "18", + "text": "Are you just getting started?" + } + }, + { + "ID": "3795", + "typeID": "__group__", + "zOrder": "105", + "measuredW": "288", + "measuredH": "45", + "w": "288", + "h": "45", + "x": "914", + "y": "823", + "properties": { + "controlName": "102-css:responsive-design-and-media-queries" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "280", + "h": "43", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "2", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "248", + "measuredW": "246", + "measuredH": "22", + "x": "18", + "y": "12", + "properties": { + "size": "14", + "text": "Responsive design and Media Queries" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "264", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "264", + "y": "0", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3796", + "typeID": "__group__", + "zOrder": "106", + "measuredW": "250", + "measuredH": "50", + "w": "250", + "h": "50", + "x": "583", + "y": "778", + "properties": { + "controlName": "103-javascript" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "250", + "h": "50", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "81", + "measuredH": "25", + "x": "82", + "y": "13", + "properties": { + "size": "17", + "text": "JavaScript" + } + } + ] + } + } + }, + { + "ID": "3797", + "typeID": "__group__", + "zOrder": "107", + "measuredW": "304", + "measuredH": "48", + "w": "304", + "h": "48", + "x": "192", + "y": "793", + "properties": { + "controlName": "100-javascript:syntax-and-basic-constructs" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "296", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "8", + "y": "8", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "228", + "measuredW": "219", + "measuredH": "25", + "x": "43", + "y": "16", + "properties": { + "size": "17", + "text": "Syntax and Basic Constructs" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3798", + "typeID": "__group__", + "zOrder": "108", + "measuredW": "305", + "measuredH": "45", + "w": "305", + "h": "45", + "x": "192", + "y": "842", + "properties": { + "controlName": "101-javascript:learn-dom-manipulation" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "297", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "8", + "y": "5", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "197", + "measuredW": "193", + "measuredH": "25", + "x": "59", + "y": "13", + "properties": { + "size": "17", + "text": "Learn DOM Manipulation" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3799", + "typeID": "__group__", + "zOrder": "109", + "measuredW": "305", + "measuredH": "117", + "w": "305", + "h": "117", + "x": "191", + "y": "987", + "properties": { + "controlName": "104-javascript:concepts" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "296", + "h": "113", + "measuredW": "200", + "measuredH": "140", + "x": "9", + "y": "4", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "247", + "measuredW": "246", + "measuredH": "25", + "x": "34", + "y": "49", + "properties": { + "size": "17", + "text": "Hoisting, Event Bubbling, Scope," + } + }, + { + "ID": "2", + "typeID": "Label", + "zOrder": "2", + "w": "245", + "measuredW": "231", + "measuredH": "25", + "x": "36", + "y": "78", + "properties": { + "size": "17", + "text": "Prototype, Shadow DOM, strict" + } + }, + { + "ID": "3", + "typeID": "Label", + "zOrder": "3", + "w": "202", + "measuredW": "195", + "measuredH": "25", + "x": "57", + "y": "19", + "properties": { + "size": "17", + "text": "Understand the concepts" + } + }, + { + "ID": "4", + "typeID": "Icon", + "zOrder": "4", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "5", + "typeID": "Icon", + "zOrder": "5", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3800", + "typeID": "__group__", + "zOrder": "110", + "measuredW": "304", + "measuredH": "45", + "w": "304", + "h": "45", + "x": "192", + "y": "889", + "properties": { + "controlName": "102-javascript:learn-fetch-api-ajax-xhr" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "296", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "8", + "y": "5", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "234", + "measuredW": "224", + "measuredH": "25", + "x": "40", + "y": "13", + "properties": { + "size": "17", + "text": "Learn Fetch API / Ajax (XHR)" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3801", + "typeID": "__group__", + "zOrder": "111", + "measuredW": "305", + "measuredH": "47", + "w": "305", + "h": "47", + "x": "191", + "y": "935", + "properties": { + "controlName": "103-javascript:es6-and-modular-javascript" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "296", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "9", + "y": "7", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "234", + "measuredW": "228", + "measuredH": "25", + "x": "41", + "y": "15", + "properties": { + "size": "17", + "text": "ES6+ and modular JavaScript" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3802", + "typeID": "__group__", + "zOrder": "112", + "measuredW": "187", + "measuredH": "60", + "w": "187", + "h": "60", + "x": "604", + "y": "479", + "properties": { + "controlName": "100-internet" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "178", + "h": "50", + "measuredW": "200", + "measuredH": "140", + "x": "9", + "y": "10", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "62", + "measuredH": "25", + "x": "67", + "y": "23", + "properties": { + "text": "Internet", + "size": "17" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3803", + "typeID": "__group__", + "zOrder": "113", + "measuredW": "306", + "measuredH": "53", + "w": "306", + "h": "53", + "x": "193", + "y": "431", + "properties": { + "controlName": "100-internet:how-does-the-internet-work" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "299", + "h": "44", + "measuredW": "200", + "measuredH": "140", + "x": "7", + "y": "9", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "223", + "measuredW": "219", + "measuredH": "25", + "x": "45", + "y": "19", + "properties": { + "size": "17", + "text": "How does the internet work?" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3804", + "typeID": "__group__", + "zOrder": "114", + "measuredW": "307", + "measuredH": "47", + "w": "307", + "h": "47", + "x": "192", + "y": "483", + "properties": { + "controlName": "101-internet:what-is-http" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "299", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "8", + "y": "7", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "119", + "measuredW": "113", + "measuredH": "25", + "x": "98", + "y": "15", + "properties": { + "size": "17", + "text": "What is HTTP?" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3805", + "typeID": "__group__", + "zOrder": "115", + "measuredW": "307", + "measuredH": "48", + "w": "307", + "h": "48", + "x": "192", + "y": "528", + "properties": { + "controlName": "102-internet:browsers-and-how-they-work" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "299", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "8", + "y": "8", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "230", + "measuredW": "225", + "measuredH": "25", + "x": "42", + "y": "16", + "properties": { + "size": "17", + "text": "Browsers and how they work?" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3806", + "typeID": "__group__", + "zOrder": "116", + "measuredW": "289", + "measuredH": "49", + "w": "289", + "h": "49", + "x": "915", + "y": "428", + "properties": { + "controlName": "103-internet:dns-and-how-it-works" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "280", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "9", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "179", + "measuredW": "175", + "measuredH": "25", + "x": "51", + "y": "17", + "properties": { + "size": "17", + "text": "DNS and how it works?" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "265", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "265", + "y": "0", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3807", + "typeID": "__group__", + "zOrder": "117", + "measuredW": "289", + "measuredH": "45", + "w": "289", + "h": "45", + "x": "914", + "y": "478", + "properties": { + "controlName": "104-internet:what-is-domain-name" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "280", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "5", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "189", + "measuredW": "180", + "measuredH": "25", + "x": "51", + "y": "13", + "properties": { + "size": "17", + "text": "What is Domain Name?" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "265", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "265", + "y": "0", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3808", + "typeID": "__group__", + "zOrder": "118", + "measuredW": "288", + "measuredH": "46", + "w": "288", + "h": "46", + "x": "915", + "y": "523", + "properties": { + "controlName": "105-internet:what-is-hosting" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "280", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "6", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "133", + "measuredW": "126", + "measuredH": "25", + "x": "74", + "y": "14", + "properties": { + "size": "17", + "text": "What is hosting?" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "264", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "264", + "y": "0", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3809", + "typeID": "__group__", + "zOrder": "119", + "measuredW": "288", + "measuredH": "48", + "w": "288", + "h": "48", + "x": "915", + "y": "621", + "properties": { + "controlName": "104-html:accessibility" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "280", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "8", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "101", + "measuredW": "94", + "measuredH": "25", + "x": "89", + "y": "16", + "properties": { + "size": "17", + "text": "Accessibility" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "264", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "264", + "y": "0", + "properties": { + "color": "10066329", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3810", + "typeID": "__group__", + "zOrder": "120", + "measuredW": "289", + "measuredH": "46", + "w": "289", + "h": "46", + "x": "915", + "y": "670", + "properties": { + "controlName": "105-html:seo-basics" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "280", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "6", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "94", + "measuredW": "90", + "measuredH": "25", + "x": "93", + "y": "14", + "properties": { + "size": "17", + "text": "SEO Basics" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "265", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "265", + "y": "0", + "properties": { + "color": "10066329", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3811", + "typeID": "__group__", + "zOrder": "121", + "measuredW": "225", + "measuredH": "62", + "w": "225", + "h": "62", + "x": "553", + "y": "1012", + "properties": { + "controlName": "100-version-control-systems:basic-usage-of-git" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "216", + "h": "54", + "measuredW": "200", + "measuredH": "140", + "x": "9", + "y": "8", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "144", + "measuredH": "25", + "x": "45", + "y": "23", + "properties": { + "text": "Basic Usage of Git", + "size": "17" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3812", + "typeID": "__group__", + "zOrder": "122", + "measuredW": "240", + "measuredH": "58", + "w": "240", + "h": "58", + "x": "1034", + "y": "1014", + "properties": { + "controlName": "100-repo-hosting-services:github" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "230", + "h": "49", + "measuredW": "200", + "measuredH": "140", + "x": "10", + "y": "9", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "54", + "measuredH": "25", + "x": "98", + "y": "22", + "properties": { + "text": "GitHub", + "size": "17" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3813", + "typeID": "__group__", + "zOrder": "123", + "measuredW": "352", + "measuredH": "78", + "w": "352", + "h": "78", + "x": "925", + "y": "922", + "properties": { + "controlName": "105-repo-hosting-services" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "352", + "h": "78", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "172", + "measuredH": "25", + "x": "90", + "y": "15", + "properties": { + "text": "Repo hosting services", + "size": "17" + } + }, + { + "ID": "2", + "typeID": "Label", + "zOrder": "2", + "w": "279", + "measuredW": "275", + "measuredH": "23", + "x": "32", + "y": "41", + "properties": { + "size": "15", + "text": "Create account and Learn to use GitHub" + } + } + ] + } + } + }, + { + "ID": "3814", + "typeID": "__group__", + "zOrder": "124", + "measuredW": "336", + "measuredH": "77", + "w": "336", + "h": "77", + "x": "562", + "y": "922", + "properties": { + "controlName": "104-version-control-systems" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "336", + "h": "77", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "186", + "measuredH": "25", + "x": "75", + "y": "15", + "properties": { + "text": "Version Control Systems", + "size": "17" + } + }, + { + "ID": "2", + "typeID": "Label", + "zOrder": "2", + "w": "292", + "measuredW": "285", + "measuredH": "23", + "x": "19", + "y": "40", + "properties": { + "size": "15", + "text": "What are they and why you should use one" + } + } + ] + } + } + }, + { + "ID": "3815", + "typeID": "__group__", + "zOrder": "125", + "measuredW": "211", + "measuredH": "53", + "w": "211", + "h": "53", + "x": "455", + "y": "1259", + "properties": { + "controlName": "107-package-managers" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "211", + "h": "53", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "149", + "measuredH": "25", + "x": "31", + "y": "14", + "properties": { + "text": "Package Managers", + "size": "17" + } + } + ] + } + } + }, + { + "ID": "3816", + "typeID": "__group__", + "zOrder": "126", + "measuredW": "158", + "measuredH": "49", + "w": "158", + "h": "49", + "x": "194", + "y": "1154", + "properties": { + "controlName": "100-package-managers:npm" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "151", + "h": "49", + "measuredW": "200", + "measuredH": "140", + "x": "7", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "36", + "measuredW": "34", + "measuredH": "25", + "x": "65", + "y": "12", + "properties": { + "size": "17", + "text": "npm" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "11", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "11", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3817", + "typeID": "__group__", + "zOrder": "127", + "measuredW": "238", + "measuredH": "54", + "w": "238", + "h": "54", + "x": "1036", + "y": "1130", + "properties": { + "controlName": "102-repo-hosting-services:bitbucket" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "230", + "h": "49", + "measuredW": "200", + "measuredH": "140", + "x": "8", + "y": "5", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "73", + "measuredH": "25", + "x": "86", + "y": "17", + "properties": { + "color": "3355443", + "text": "Bitbucket", + "size": "17" + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "4", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "5", + "typeID": "Icon", + "zOrder": "4", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "3700253", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3818", + "typeID": "__group__", + "zOrder": "128", + "measuredW": "238", + "measuredH": "55", + "w": "238", + "h": "55", + "x": "1036", + "y": "1073", + "properties": { + "controlName": "101-repo-hosting-services:gitlab" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "230", + "h": "49", + "measuredW": "200", + "measuredH": "140", + "x": "8", + "y": "6", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "51", + "measuredH": "25", + "x": "97", + "y": "18", + "properties": { + "color": "3355443", + "size": "17", + "text": "GitLab" + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "4", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "5", + "typeID": "Icon", + "zOrder": "4", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "3700253", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3819", + "typeID": "__group__", + "zOrder": "129", + "measuredW": "381", + "measuredH": "62", + "w": "381", + "h": "62", + "x": "604", + "y": "1105", + "properties": { + "controlName": "106-web-security-knowledge" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "372", + "h": "54", + "measuredW": "200", + "measuredH": "140", + "x": "9", + "y": "8", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "189", + "measuredH": "25", + "x": "100", + "y": "23", + "properties": { + "text": "Web Security Knowledge", + "size": "17" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "10066329", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3820", + "typeID": "__group__", + "zOrder": "130", + "measuredW": "408", + "measuredH": "162", + "w": "408", + "h": "162", + "x": "192", + "y": "191", + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "408", + "h": "162", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0" + }, + { + "ID": "1", + "typeID": "Icon", + "zOrder": "1", + "measuredW": "24", + "measuredH": "24", + "x": "23", + "y": "21", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "23", + "y": "21", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Label", + "zOrder": "3", + "measuredW": "269", + "measuredH": "24", + "x": "59", + "y": "21", + "properties": { + "size": "16", + "text": "Personal Recommendation / Opinion" + } + }, + { + "ID": "4", + "typeID": "Label", + "zOrder": "4", + "measuredW": "159", + "measuredH": "24", + "x": "59", + "y": "118", + "properties": { + "size": "16", + "text": "I wouldn't recommend" + } + }, + { + "ID": "5", + "typeID": "Icon", + "zOrder": "5", + "measuredW": "24", + "measuredH": "24", + "x": "23", + "y": "118", + "properties": { + "color": "10066329", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "6", + "typeID": "Label", + "zOrder": "6", + "w": "324", + "measuredW": "315", + "measuredH": "24", + "x": "60", + "y": "86", + "properties": { + "size": "16", + "text": "Order in roadmap not strict (Learn anytime)" + } + }, + { + "ID": "7", + "typeID": "Icon", + "zOrder": "7", + "measuredW": "24", + "measuredH": "24", + "x": "23", + "y": "86", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "8", + "typeID": "Icon", + "zOrder": "8", + "measuredW": "24", + "measuredH": "24", + "x": "23", + "y": "86", + "properties": { + "color": "10066329", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + }, + { + "ID": "9", + "typeID": "Label", + "zOrder": "9", + "measuredW": "272", + "measuredH": "24", + "x": "59", + "y": "54", + "properties": { + "size": "16", + "text": "Alternative Option - Pick this or purple" + } + }, + { + "ID": "10", + "typeID": "Icon", + "zOrder": "10", + "measuredW": "24", + "measuredH": "24", + "x": "23", + "y": "53", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "11", + "typeID": "Icon", + "zOrder": "11", + "measuredW": "24", + "measuredH": "24", + "x": "23", + "y": "53", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "12", + "typeID": "Icon", + "zOrder": "12", + "measuredW": "24", + "measuredH": "24", + "x": "23", + "y": "53", + "properties": { + "color": "3700253", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3821", + "typeID": "TextArea", + "zOrder": "131", + "w": "456", + "h": "161", + "measuredW": "200", + "measuredH": "140", + "x": "816", + "y": "1204" + }, + { + "ID": "3822", + "typeID": "__group__", + "zOrder": "132", + "measuredW": "163", + "measuredH": "48", + "w": "163", + "h": "48", + "x": "831", + "y": "1303", + "properties": { + "controlName": "102-web-security-knowledge:cors" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "163", + "h": "48", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "48", + "measuredH": "25", + "x": "58", + "y": "12", + "properties": { + "text": "CORS", + "size": "17" + } + } + ] + } + } + }, + { + "ID": "3823", + "typeID": "__group__", + "zOrder": "133", + "measuredW": "166", + "measuredH": "49", + "w": "166", + "h": "49", + "x": "830", + "y": "1248", + "properties": { + "controlName": "100-web-security-knowledge:https" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "166", + "h": "49", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "54", + "measuredH": "25", + "x": "56", + "y": "12", + "properties": { + "text": "HTTPS", + "size": "17" + } + } + ] + } + } + }, + { + "ID": "3824", + "typeID": "__group__", + "zOrder": "134", + "measuredW": "257", + "measuredH": "49", + "w": "257", + "h": "49", + "x": "1001", + "y": "1248", + "properties": { + "controlName": "101-web-security-knowledge:content-security-policy" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "257", + "h": "49", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "175", + "measuredH": "25", + "x": "41", + "y": "12", + "properties": { + "text": "Content Security Policy", + "size": "17" + } + } + ] + } + } + }, + { + "ID": "3825", + "typeID": "__group__", + "zOrder": "135", + "measuredW": "257", + "measuredH": "49", + "w": "257", + "h": "49", + "x": "1001", + "y": "1302", + "properties": { + "controlName": "103-web-security-knowledge:owasp-security-risks" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "257", + "h": "49", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "169", + "measuredH": "25", + "x": "44", + "y": "12", + "properties": { + "text": "OWASP Security Risks", + "size": "17" + } + } + ] + } + } + }, + { + "ID": "3826", + "typeID": "Label", + "zOrder": "136", + "w": "372", + "measuredW": "344", + "measuredH": "25", + "x": "832", + "y": "1217", + "properties": { + "size": "17", + "text": "Get at least a basic knowledge of all of these" + } + }, + { + "ID": "3827", + "typeID": "__group__", + "zOrder": "137", + "measuredW": "24", + "measuredH": "24", + "w": "24", + "h": "24", + "x": "1258", + "y": "1195", + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Icon", + "zOrder": "0", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "1", + "typeID": "Icon", + "zOrder": "1", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "10066329", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3828", + "typeID": "Arrow", + "zOrder": "138", + "w": "117", + "h": "1", + "measuredW": "150", + "measuredH": "100", + "x": "717", + "y": "2834", + "properties": { + "color": "2848996", + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 116.89058672187377, + "y": 0.1041226124775676 + }, + "p1": { + "x": 0.4835193355826629, + "y": 0.007267064624967576 + }, + "p2": { + "x": 0.017907207522057433, + "y": 0.1041226124775676 + } + } + }, + { + "ID": "3829", + "typeID": "Arrow", + "zOrder": "139", + "w": "158", + "h": "72", + "measuredW": "150", + "measuredH": "100", + "x": "326", + "y": "2888", + "properties": { + "color": "2848996", + "curvature": "0", + "leftArrow": "false", + "p0": { + "x": 0, + "y": 0 + }, + "p1": { + "x": 0.4319942611190819, + "y": -0.006169296987087513 + }, + "p2": { + "x": 157, + "y": 71 + }, + "rightArrow": "false", + "stroke": "dotted" + } + }, + { + "ID": "3830", + "typeID": "Arrow", + "zOrder": "140", + "w": "133", + "h": "223", + "measuredW": "150", + "measuredH": "100", + "x": "1047", + "y": "2728", + "properties": { + "color": "2848996", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 133, + "y": 223 + }, + "p1": { + "x": 0.6210189562745637, + "y": 0.08206190581675968 + }, + "p2": { + "x": -0.43103046936073497, + "y": 0.31367188167814675 + } + } + }, + { + "ID": "3831", + "typeID": "Arrow", + "zOrder": "141", + "w": "112", + "h": "137", + "measuredW": "150", + "measuredH": "100", + "x": "1073", + "y": "2731", + "properties": { + "color": "2848996", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 112, + "y": 137 + }, + "p1": { + "x": 0.6177380381901717, + "y": 0.1158418847787249 + }, + "p2": { + "x": -0.28845742009775677, + "y": 0.38926871100329663 + } + } + }, + { + "ID": "3832", + "typeID": "__group__", + "zOrder": "142", + "measuredW": "216", + "measuredH": "50", + "w": "216", + "h": "50", + "x": "454", + "y": "1374", + "properties": { + "controlName": "109-css-preprocessors" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "216", + "h": "50", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "150", + "measuredH": "25", + "x": "33", + "y": "12", + "properties": { + "text": "CSS Preprocessors", + "size": "17" + } + } + ] + } + } + }, + { + "ID": "3833", + "typeID": "Arrow", + "zOrder": "143", + "w": "107", + "h": "93", + "measuredW": "150", + "measuredH": "100", + "x": "1079", + "y": "2727", + "properties": { + "color": "2848996", + "curvature": "-1", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 107, + "y": 93 + }, + "p1": { + "x": 0.6105142874821432, + "y": 0.11615602631888519 + }, + "p2": { + "x": -0.13726376144768437, + "y": -0.2241265329844282 + } + } + }, + { + "ID": "3834", + "typeID": "Arrow", + "zOrder": "144", + "w": "100", + "h": "48", + "measuredW": "150", + "measuredH": "100", + "x": "1082", + "y": "2722", + "properties": { + "color": "2848996", + "curvature": "0", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 100, + "y": 48 + }, + "p1": { + "x": 0.5421630610591022, + "y": 0.059862777204942215 + }, + "p2": { + "x": -0.061666932122761864, + "y": 0.16247822302784698 + } + } + }, + { + "ID": "3835", + "typeID": "Arrow", + "zOrder": "145", + "w": "115", + "h": "6", + "measuredW": "150", + "measuredH": "100", + "x": "1068", + "y": "2719", + "properties": { + "color": "2848996", + "curvature": "-1", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 115, + "y": 6 + }, + "p1": { + "x": 0.5359734790789354, + "y": 0.012722874294418285 + }, + "p2": { + "x": 0.4352964490888098, + "y": -0.2504109310075364 + } + } + }, + { + "ID": "3836", + "typeID": "__group__", + "zOrder": "146", + "measuredW": "213", + "measuredH": "50", + "w": "213", + "h": "50", + "x": "455", + "y": "1318", + "properties": { + "controlName": "108-css-architecture" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "213", + "h": "50", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "131", + "measuredH": "25", + "x": "41", + "y": "12", + "properties": { + "text": "CSS Architecture", + "size": "17" + } + } + ] + } + } + }, + { + "ID": "3837", + "typeID": "__group__", + "zOrder": "147", + "measuredW": "158", + "measuredH": "40", + "w": "158", + "h": "40", + "x": "193", + "y": "1323", + "properties": { + "controlName": "100-css-architecture:bem" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "151", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "7", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "45", + "measuredW": "38", + "measuredH": "25", + "x": "60", + "y": "8", + "properties": { + "size": "17", + "text": "BEM" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "10066329", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3838", + "typeID": "Arrow", + "zOrder": "148", + "w": "180", + "h": "45", + "measuredW": "150", + "measuredH": "100", + "x": "320", + "y": "2982", + "properties": { + "color": "2848996", + "curvature": "0", + "direction": "bottom", + "leftArrow": "false", + "p0": { + "x": 0, + "y": 44 + }, + "p1": { + "x": 0.4319942611190816, + "y": -0.0061692969870875015 + }, + "p2": { + "x": 179, + "y": 0 + }, + "rightArrow": "false", + "stroke": "dotted" + } + }, + { + "ID": "3839", + "typeID": "Arrow", + "zOrder": "149", + "w": "106", + "h": "1", + "measuredW": "150", + "measuredH": "100", + "x": "977", + "y": "2551", + "properties": { + "color": "2848996", + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 106, + "y": 1 + }, + "p1": { + "x": 0.4835193355826628, + "y": 0.007267064624967598 + }, + "p2": { + "x": -0.0680813086987655, + "y": 0.06188413774043511 + } + } + }, + { + "ID": "3840", + "typeID": "__group__", + "zOrder": "150", + "measuredW": "211", + "measuredH": "50", + "w": "211", + "h": "50", + "x": "556", + "y": "1540", + "properties": { + "controlName": "110-build-tools" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "211", + "h": "50", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "83", + "measuredH": "25", + "x": "64", + "y": "13", + "properties": { + "size": "17", + "text": "Build Tools" + } + } + ] + } + } + }, + { + "ID": "3841", + "typeID": "Arrow", + "zOrder": "151", + "w": "1", + "h": "86", + "measuredW": "150", + "measuredH": "100", + "x": "594", + "y": "2411", + "properties": { + "color": "2848996", + "curvature": "0", + "leftArrow": "false", + "p0": { + "x": 0, + "y": 0 + }, + "p1": { + "x": 0.4770488047048041, + "y": 0.005193614908729856 + }, + "p2": { + "x": 0, + "y": 85 + }, + "rightArrow": "false", + "stroke": "dotted" + } + }, + { + "ID": "3842", + "typeID": "Arrow", + "zOrder": "152", + "w": "177", + "h": "1", + "measuredW": "150", + "measuredH": "100", + "x": "398", + "y": "2401", + "properties": { + "color": "2848996", + "curvature": "0", + "leftArrow": "false", + "p0": { + "x": 176, + "y": 0 + }, + "p1": { + "x": 0.477048804704804, + "y": 0.005193614908729856 + }, + "p2": { + "x": 0, + "y": 0 + }, + "rightArrow": "false", + "stroke": "dotted" + } + }, + { + "ID": "3843", + "typeID": "__group__", + "zOrder": "153", + "measuredW": "225", + "measuredH": "50", + "w": "225", + "h": "50", + "x": "851", + "y": "1537", + "properties": { + "controlName": "100-build-tools:task-runners" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "225", + "h": "50", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "105", + "measuredH": "25", + "x": "60", + "y": "14", + "properties": { + "size": "17", + "text": "Task Runners" + } + } + ] + } + } + }, + { + "ID": "3844", + "typeID": "Arrow", + "zOrder": "154", + "w": "116", + "h": "1", + "measuredW": "150", + "measuredH": "100", + "x": "769", + "y": "2400", + "properties": { + "color": "2848996", + "curvature": "0", + "leftArrow": "false", + "p0": { + "x": 115, + "y": 0 + }, + "p1": { + "x": 0.477048804704804, + "y": 0.005193614908729856 + }, + "p2": { + "x": 0, + "y": 0 + }, + "rightArrow": "false" + } + }, + { + "ID": "3845", + "typeID": "__group__", + "zOrder": "155", + "measuredW": "156", + "measuredH": "45", + "w": "156", + "h": "45", + "x": "1124", + "y": "1541", + "properties": { + "controlName": "100-build-tools:task-runners:npm-scripts" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "145", + "h": "45", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "89", + "measuredH": "25", + "x": "24", + "y": "10", + "properties": { + "size": "17", + "text": "npm scripts" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "132", + "y": "11", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "132", + "y": "11", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3846", + "typeID": "Arrow", + "zOrder": "156", + "w": "239", + "h": "239", + "measuredW": "150", + "measuredH": "100", + "x": "504", + "y": "1801", + "properties": { + "color": "2848996", + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "p0": { + "x": 0.4151212280816594, + "y": -0.22081521141240046 + }, + "p1": { + "x": 0.5082158938451313, + "y": 0.2259685964231505 + }, + "p2": { + "x": 239, + "y": 239 + } + } + }, + { + "ID": "3847", + "typeID": "Arrow", + "zOrder": "157", + "w": "191", + "h": "5", + "measuredW": "150", + "measuredH": "100", + "x": "953", + "y": "2079", + "properties": { + "color": "10027263", + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 190.5, + "y": -0.5 + }, + "p1": { + "x": 0.4934109968191019, + "y": -0.001156690213574586 + }, + "p2": { + "x": 0, + "y": 4 + } + } + }, + { + "ID": "3848", + "typeID": "__group__", + "zOrder": "158", + "measuredW": "158", + "measuredH": "40", + "w": "158", + "h": "40", + "x": "1124", + "y": "1687", + "properties": { + "controlName": "100-build-tools:module-bundlers:webpack" + }, + "children": { + "controls": { + "control": [ + { + "ID": "1", + "typeID": "Label", + "zOrder": "0", + "w": "72", + "measuredW": "72", + "measuredH": "25", + "x": "52", + "y": "7", + "properties": { + "size": "17", + "text": "Webpack" + } + }, + { + "ID": "2", + "typeID": "TextArea", + "zOrder": "1", + "w": "148", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "3", + "typeID": "Label", + "zOrder": "2", + "measuredW": "72", + "measuredH": "25", + "x": "42", + "y": "7", + "properties": { + "text": "Webpack", + "size": "17" + } + }, + { + "ID": "4", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "134", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "5", + "typeID": "Icon", + "zOrder": "4", + "measuredW": "24", + "measuredH": "24", + "x": "134", + "y": "8", + "properties": { + "icon": { + "ID": "check-circle", + "size": "small" + }, + "color": "3700253" + } + } + ] + } + } + }, + { + "ID": "3849", + "typeID": "__group__", + "zOrder": "159", + "measuredW": "158", + "measuredH": "40", + "w": "158", + "h": "40", + "x": "1124", + "y": "1732", + "properties": { + "controlName": "102-build-tools:module-bundlers:rollup" + }, + "children": { + "controls": { + "control": [ + { + "ID": "1", + "typeID": "Label", + "zOrder": "0", + "w": "46", + "measuredW": "49", + "measuredH": "25", + "x": "65", + "y": "7", + "properties": { + "size": "17", + "text": "Rollup" + } + }, + { + "ID": "2", + "typeID": "TextArea", + "zOrder": "1", + "w": "147", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "3", + "typeID": "Label", + "zOrder": "2", + "w": "63", + "measuredW": "49", + "measuredH": "25", + "x": "55", + "y": "7", + "properties": { + "size": "17", + "text": "Rollup" + } + }, + { + "ID": "4", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "134", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "5", + "typeID": "Icon", + "zOrder": "4", + "measuredW": "24", + "measuredH": "24", + "x": "134", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "6", + "typeID": "Icon", + "zOrder": "5", + "measuredW": "24", + "measuredH": "24", + "x": "134", + "y": "8", + "properties": { + "color": "3700253", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3850", + "typeID": "__group__", + "zOrder": "160", + "measuredW": "158", + "measuredH": "40", + "w": "158", + "h": "40", + "x": "1124", + "y": "1778", + "properties": { + "controlName": "103-build-tools:module-bundlers:parcel" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Label", + "zOrder": "0", + "w": "46", + "measuredW": "49", + "measuredH": "25", + "x": "65", + "y": "7", + "properties": { + "size": "17", + "text": "Parcel" + } + }, + { + "ID": "1", + "typeID": "TextArea", + "zOrder": "1", + "w": "146", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "2", + "typeID": "Label", + "zOrder": "2", + "w": "63", + "measuredW": "49", + "measuredH": "25", + "x": "55", + "y": "7", + "properties": { + "size": "17", + "text": "Parcel" + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "134", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "4", + "typeID": "Icon", + "zOrder": "4", + "measuredW": "24", + "measuredH": "24", + "x": "134", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "5", + "typeID": "Icon", + "zOrder": "5", + "measuredW": "24", + "measuredH": "24", + "x": "134", + "y": "8", + "properties": { + "color": "3700253", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3851", + "typeID": "__group__", + "zOrder": "161", + "measuredW": "225", + "measuredH": "50", + "w": "225", + "h": "50", + "x": "852", + "y": "1594", + "properties": { + "controlName": "101-build-tools:module-bundlers" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "225", + "h": "50", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "131", + "measuredH": "25", + "x": "47", + "y": "13", + "properties": { + "size": "17", + "text": "Module Bundlers" + } + } + ] + } + } + }, + { + "ID": "3852", + "typeID": "Arrow", + "zOrder": "162", + "w": "119", + "h": "1", + "measuredW": "150", + "measuredH": "100", + "x": "1030", + "y": "2402", + "properties": { + "color": "2848996", + "curvature": "0", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 118.97944745965356, + "y": 0 + }, + "p1": { + "x": 0.4835193355826631, + "y": 0.007267064624967473 + }, + "p2": { + "x": 0.34217904266415644, + "y": 0 + } + } + }, + { + "ID": "3853", + "typeID": "__group__", + "zOrder": "163", + "measuredW": "213", + "measuredH": "53", + "w": "213", + "h": "53", + "x": "554", + "y": "1595", + "properties": { + "controlName": "111-pick-a-framework" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "213", + "h": "53", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "142", + "measuredW": "136", + "measuredH": "25", + "x": "36", + "y": "14", + "properties": { + "size": "17", + "text": "Pick a Framework" + } + } + ] + } + } + }, + { + "ID": "3854", + "typeID": "__group__", + "zOrder": "164", + "measuredW": "152", + "measuredH": "40", + "w": "152", + "h": "40", + "x": "194", + "y": "1509", + "properties": { + "controlName": "100-pick-a-framework:react-js" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "145", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "7", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "68", + "measuredW": "47", + "measuredH": "25", + "x": "55", + "y": "7", + "properties": { + "size": "17", + "text": "React" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3855", + "typeID": "__group__", + "zOrder": "165", + "measuredW": "153", + "measuredH": "40", + "w": "153", + "h": "40", + "x": "192", + "y": "1555", + "properties": { + "controlName": "101-pick-a-framework:angular" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "145", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "8", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "64", + "measuredW": "59", + "measuredH": "25", + "x": "49", + "y": "7", + "properties": { + "size": "17", + "text": "Angular" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "4", + "typeID": "Icon", + "zOrder": "4", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "3700253", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3856", + "typeID": "__group__", + "zOrder": "166", + "measuredW": "152", + "measuredH": "40", + "w": "152", + "h": "40", + "x": "191", + "y": "1601", + "properties": { + "controlName": "102-pick-a-framework:vue-js" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "145", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "7", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "45", + "measuredH": "25", + "x": "58", + "y": "7", + "properties": { + "text": "Vue.js", + "size": "17" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "4", + "typeID": "Icon", + "zOrder": "4", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "3700253", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3857", + "typeID": "Arrow", + "zOrder": "167", + "w": "97", + "h": "2", + "measuredW": "150", + "measuredH": "100", + "x": "1169", + "y": "2503", + "properties": { + "color": "2848996", + "curvature": "0", + "direction": "bottom", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "p0": { + "x": 96.5324984379306, + "y": 0 + }, + "p1": { + "x": 0.4835193355826628, + "y": 0.007267064624967576 + }, + "p2": { + "x": -0.0834087691514469, + "y": 1.8700832259696654 + } + } + }, + { + "ID": "3858", + "typeID": "__group__", + "zOrder": "168", + "measuredW": "203", + "measuredH": "50", + "w": "203", + "h": "50", + "x": "848", + "y": "1712", + "properties": { + "controlName": "112-modern-css" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "203", + "h": "50", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "98", + "measuredH": "25", + "x": "53", + "y": "13", + "properties": { + "size": "17", + "text": "Modern CSS" + } + } + ] + } + } + }, + { + "ID": "3859", + "typeID": "Arrow", + "zOrder": "169", + "w": "65", + "h": "4", + "measuredW": "150", + "measuredH": "100", + "x": "1175", + "y": "2550", + "properties": { + "color": "2848996", + "direction": "bottom", + "leftArrow": "false", + "p0": { + "x": 0, + "y": 3 + }, + "p1": { + "x": 0.4807692307692308, + "y": -0.01923076923076923 + }, + "p2": { + "x": 64, + "y": 0 + }, + "rightArrow": "false", + "stroke": "dotted" + } + }, + { + "ID": "3860", + "typeID": "Arrow", + "zOrder": "170", + "w": "65", + "h": "2", + "measuredW": "150", + "measuredH": "100", + "x": "1176", + "y": "2600", + "properties": { + "color": "2848996", + "curvature": "-1", + "leftArrow": "false", + "p0": { + "x": 0, + "y": 0 + }, + "p1": { + "x": 0.4807692307692308, + "y": -0.01923076923076923 + }, + "p2": { + "x": 64, + "y": 1 + }, + "rightArrow": "false", + "stroke": "dotted" + } + }, + { + "ID": "3861", + "typeID": "__group__", + "zOrder": "171", + "measuredW": "211", + "measuredH": "40", + "w": "211", + "h": "40", + "x": "849", + "y": "1804", + "properties": { + "controlName": "100-modern-css:styled-components" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "202", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "151", + "measuredW": "150", + "measuredH": "25", + "x": "25", + "y": "7", + "properties": { + "size": "17", + "text": "Styled Components" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "187", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "187", + "y": "8", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3862", + "typeID": "__group__", + "zOrder": "172", + "measuredW": "212", + "measuredH": "40", + "w": "212", + "h": "40", + "x": "849", + "y": "1849", + "properties": { + "controlName": "101-modern-css:css-modules" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "202", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "103", + "measuredW": "103", + "measuredH": "25", + "x": "49", + "y": "7", + "properties": { + "size": "17", + "text": "CSS Modules" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "188", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "188", + "y": "8", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3863", + "typeID": "Arrow", + "zOrder": "173", + "w": "179", + "h": "2", + "measuredW": "150", + "measuredH": "100", + "x": "320", + "y": "2975", + "properties": { + "color": "2848996", + "curvature": "0", + "direction": "bottom", + "leftArrow": "false", + "p0": { + "x": 0, + "y": 1 + }, + "p1": { + "x": 0.431994261119082, + "y": -0.006169296987087527 + }, + "p2": { + "x": 178, + "y": 0 + }, + "rightArrow": "false", + "stroke": "dotted" + } + }, + { + "ID": "3864", + "typeID": "Arrow", + "zOrder": "174", + "w": "161", + "h": "34", + "measuredW": "150", + "measuredH": "100", + "x": "326", + "y": "2932", + "properties": { + "color": "2848996", + "curvature": "0", + "leftArrow": "false", + "p0": { + "x": 0, + "y": 0 + }, + "p1": { + "x": 0.4319942611190819, + "y": -0.006169296987087513 + }, + "p2": { + "x": 160, + "y": 33 + }, + "rightArrow": "false", + "stroke": "dotted" + } + }, + { + "ID": "3865", + "typeID": "__group__", + "zOrder": "175", + "measuredW": "210", + "measuredH": "40", + "w": "210", + "h": "40", + "x": "849", + "y": "1939", + "properties": { + "controlName": "103-modern-css:emotion" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "201", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "64", + "measuredH": "25", + "x": "69", + "y": "7", + "properties": { + "text": "Emotion", + "size": "17" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "186", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "186", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "4", + "typeID": "Icon", + "zOrder": "4", + "measuredW": "24", + "measuredH": "24", + "x": "186", + "y": "8", + "properties": { + "color": "3700253", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3866", + "typeID": "__group__", + "zOrder": "176", + "measuredW": "175", + "measuredH": "41", + "w": "175", + "h": "41", + "x": "570", + "y": "2813", + "properties": { + "controlName": "100-graphql:apollo" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "167", + "h": "41", + "measuredW": "200", + "measuredH": "140", + "x": "8", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "49", + "measuredW": "48", + "measuredH": "25", + "x": "58", + "y": "8", + "properties": { + "size": "17", + "text": "Apollo" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "9", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "9", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3867", + "typeID": "__group__", + "zOrder": "177", + "measuredW": "285", + "measuredH": "59", + "w": "285", + "h": "59", + "x": "823", + "y": "2686", + "properties": { + "controlName": "120-static-site-generators" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "281", + "h": "50", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "9", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "169", + "measuredH": "25", + "x": "56", + "y": "22", + "properties": { + "size": "17", + "text": "Static Site Generators" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "261", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "261", + "y": "0", + "properties": { + "color": "10066329", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3868", + "typeID": "__group__", + "zOrder": "178", + "measuredW": "156", + "measuredH": "41", + "w": "156", + "h": "41", + "x": "1173", + "y": "2841", + "properties": { + "controlName": "101-static-site-generators:gatsbyjs" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "147", + "h": "41", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "78", + "measuredW": "73", + "measuredH": "25", + "x": "35", + "y": "8", + "properties": { + "size": "17", + "text": "GatsbyJS" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "132", + "y": "9", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "132", + "y": "9", + "properties": { + "icon": { + "ID": "check-circle", + "size": "small" + }, + "color": "3700253" + } + } + ] + } + } + }, + { + "ID": "3869", + "typeID": "__group__", + "zOrder": "179", + "measuredW": "157", + "measuredH": "41", + "w": "157", + "h": "41", + "x": "1173", + "y": "2795", + "properties": { + "controlName": "100-static-site-generators:next-js" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "147", + "h": "41", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "58", + "measuredW": "52", + "measuredH": "25", + "x": "45", + "y": "8", + "properties": { + "size": "17", + "text": "Next.js" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "133", + "y": "9", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "133", + "y": "9", + "properties": { + "icon": { + "ID": "check-circle", + "size": "small" + }, + "color": "3700253" + } + } + ] + } + } + }, + { + "ID": "3870", + "typeID": "__group__", + "zOrder": "180", + "measuredW": "156", + "measuredH": "41", + "w": "156", + "h": "41", + "x": "1171", + "y": "3028", + "properties": { + "controlName": "102-static-site-generators:nuxt-js" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "147", + "h": "41", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "56", + "measuredW": "52", + "measuredH": "25", + "x": "46", + "y": "8", + "properties": { + "size": "17", + "text": "Nuxt.js" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "132", + "y": "9", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "132", + "y": "9", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "4", + "typeID": "Icon", + "zOrder": "4", + "measuredW": "24", + "measuredH": "24", + "x": "132", + "y": "9", + "properties": { + "color": "3700253", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3871", + "typeID": "__group__", + "zOrder": "181", + "measuredW": "156", + "measuredH": "41", + "w": "156", + "h": "41", + "x": "1171", + "y": "2888", + "properties": { + "controlName": "103-static-site-generators:vuepress" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "147", + "h": "41", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "76", + "measuredW": "72", + "measuredH": "25", + "x": "40", + "y": "8", + "properties": { + "size": "17", + "text": "Vuepress" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "132", + "y": "9", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "132", + "y": "9", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "4", + "typeID": "Icon", + "zOrder": "4", + "measuredW": "24", + "measuredH": "24", + "x": "132", + "y": "9", + "properties": { + "color": "3700253", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3872", + "typeID": "__group__", + "zOrder": "182", + "measuredW": "157", + "measuredH": "41", + "w": "157", + "h": "41", + "x": "1171", + "y": "2934", + "properties": { + "controlName": "104-static-site-generators:jekyll" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "147", + "h": "41", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "49", + "measuredW": "43", + "measuredH": "25", + "x": "52", + "y": "8", + "properties": { + "size": "17", + "text": "Jekyll" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "133", + "y": "9", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "133", + "y": "9", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "4", + "typeID": "Icon", + "zOrder": "4", + "measuredW": "24", + "measuredH": "24", + "x": "133", + "y": "9", + "properties": { + "color": "3700253", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3873", + "typeID": "__group__", + "zOrder": "183", + "measuredW": "212", + "measuredH": "50", + "w": "212", + "h": "50", + "x": "317", + "y": "1764", + "properties": { + "controlName": "114-css-frameworks" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "212", + "h": "50", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "131", + "measuredH": "25", + "x": "40", + "y": "13", + "properties": { + "size": "17", + "text": "CSS Frameworks" + } + } + ] + } + } + }, + { + "ID": "3874", + "typeID": "__group__", + "zOrder": "184", + "measuredW": "335", + "measuredH": "137", + "w": "335", + "h": "137", + "x": "195", + "y": "2081", + "properties": { + "controlName": "114-css-frameworks:css-first" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "335", + "h": "137", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "14540253" + } + }, + { + "ID": "2", + "typeID": "Label", + "zOrder": "1", + "measuredW": "150", + "measuredH": "24", + "x": "154", + "y": "17", + "properties": { + "size": "16", + "text": "CSS first frameworks" + } + }, + { + "ID": "3", + "typeID": "Label", + "zOrder": "2", + "measuredW": "145", + "measuredH": "24", + "x": "154", + "y": "44", + "properties": { + "size": "16", + "text": "that don't come with" + } + }, + { + "ID": "4", + "typeID": "Label", + "zOrder": "3", + "measuredW": "99", + "measuredH": "24", + "x": "154", + "y": "71", + "properties": { + "size": "16", + "text": "JS framework" + } + }, + { + "ID": "5", + "typeID": "Label", + "zOrder": "4", + "measuredW": "166", + "measuredH": "24", + "x": "153", + "y": "98", + "properties": { + "size": "16", + "text": "components by default." + } + } + ] + } + } + }, + { + "ID": "3875", + "typeID": "__group__", + "zOrder": "185", + "measuredW": "127", + "measuredH": "52", + "w": "127", + "h": "52", + "x": "211", + "y": "2096", + "properties": { + "controlName": "100-css-frameworks:css-first:bootstrap" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "127", + "h": "52", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "14540253" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "81", + "measuredW": "75", + "measuredH": "25", + "x": "27", + "y": "13", + "properties": { + "size": "17", + "text": "Bootstrap" + } + } + ] + } + } + }, + { + "ID": "3876", + "typeID": "__group__", + "zOrder": "186", + "measuredW": "127", + "measuredH": "49", + "w": "127", + "h": "49", + "x": "211", + "y": "2153", + "properties": { + "controlName": "101-css-frameworks:css-first:bulma" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "127", + "h": "49", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "14540253" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "50", + "measuredW": "49", + "measuredH": "25", + "x": "39", + "y": "12", + "properties": { + "size": "17", + "text": "Bulma" + } + } + ] + } + } + }, + { + "ID": "3877", + "typeID": "__group__", + "zOrder": "187", + "measuredW": "232", + "measuredH": "276", + "w": "232", + "h": "276", + "x": "1108", + "y": "1902", + "properties": { + "controlName": "115-testing-your-apps" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "232", + "h": "276", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0" + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "185", + "measuredW": "185", + "measuredH": "24", + "x": "18", + "y": "208", + "properties": { + "text": "You can fill all your testing", + "size": "16" + } + }, + { + "ID": "2", + "typeID": "Label", + "zOrder": "2", + "w": "155", + "measuredW": "155", + "measuredH": "24", + "x": "18", + "y": "230", + "properties": { + "text": "needs with just these.", + "size": "16" + } + } + ] + } + } + }, + { + "ID": "3878", + "typeID": "__group__", + "zOrder": "188", + "measuredW": "207", + "measuredH": "40", + "w": "207", + "h": "40", + "x": "1124", + "y": "1962", + "properties": { + "controlName": "101-testing-your-apps:react-testing-library" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "195", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "152", + "measuredH": "25", + "x": "22", + "y": "7", + "properties": { + "text": "react-testing-library", + "size": "17" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "183", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "183", + "y": "8", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3879", + "typeID": "__group__", + "zOrder": "189", + "measuredW": "205", + "measuredH": "40", + "w": "205", + "h": "40", + "x": "1125", + "y": "1918", + "properties": { + "controlName": "100-testing-your-apps:jest" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "194", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "39", + "measuredW": "33", + "measuredH": "25", + "x": "77", + "y": "8", + "properties": { + "size": "17", + "text": "Jest" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "181", + "y": "7", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "181", + "y": "7", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3880", + "typeID": "__group__", + "zOrder": "190", + "measuredW": "205", + "measuredH": "39", + "w": "205", + "h": "39", + "x": "1124", + "y": "2007", + "properties": { + "controlName": "102-testing-your-apps:cypress" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "195", + "h": "39", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "63", + "measuredH": "25", + "x": "63", + "y": "7", + "properties": { + "text": "Cypress", + "size": "17" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "181", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "181", + "y": "8", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3881", + "typeID": "__group__", + "zOrder": "191", + "measuredW": "405", + "measuredH": "158", + "w": "405", + "h": "158", + "x": "649", + "y": "2020", + "properties": { + "controlName": "115-testing-your-apps" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "405", + "h": "158", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "144", + "measuredH": "26", + "x": "125", + "y": "19", + "properties": { + "size": "18", + "text": "Testing your Apps" + } + }, + { + "ID": "2", + "typeID": "Label", + "zOrder": "2", + "w": "349", + "measuredW": "328", + "measuredH": "25", + "x": "22", + "y": "86", + "properties": { + "size": "17", + "text": "and {color:blue}Functional{color} tests and learn how to write" + } + }, + { + "ID": "3", + "typeID": "Label", + "zOrder": "3", + "w": "302", + "measuredW": "286", + "measuredH": "25", + "x": "21", + "y": "115", + "properties": { + "size": "17", + "text": "them with the tools listed on the right." + } + }, + { + "ID": "4", + "typeID": "Label", + "zOrder": "4", + "w": "362", + "measuredW": "361", + "measuredH": "25", + "x": "21", + "y": "56", + "properties": { + "size": "17", + "text": "Learn the difference between {color:blue}Unit{color}, {color:blue}Integration{color}, " + } + } + ] + } + } + }, + { + "ID": "3882", + "typeID": "__group__", + "zOrder": "192", + "measuredW": "234", + "measuredH": "60", + "w": "234", + "h": "60", + "x": "824", + "y": "2368", + "properties": { + "controlName": "116-type-checkers" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "226", + "h": "50", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "10", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "115", + "measuredH": "25", + "x": "53", + "y": "23", + "properties": { + "size": "17", + "text": "Type Checkers" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "210", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "210", + "y": "0", + "properties": { + "color": "10066329", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3883", + "typeID": "__group__", + "zOrder": "193", + "measuredW": "206", + "measuredH": "48", + "w": "206", + "h": "48", + "x": "1135", + "y": "2374", + "properties": { + "controlName": "100-type-checkers:typescript" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "199", + "h": "41", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "7", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "91", + "measuredW": "81", + "measuredH": "25", + "x": "54", + "y": "15", + "properties": { + "size": "17", + "text": "TypeScript" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "182", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "182", + "y": "0", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + }, + { + "ID": "4", + "typeID": "Icon", + "zOrder": "4", + "measuredW": "24", + "measuredH": "24", + "x": "156", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "5", + "typeID": "Icon", + "zOrder": "5", + "measuredW": "24", + "measuredH": "24", + "x": "156", + "y": "0", + "properties": { + "color": "10066329", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3884", + "typeID": "__group__", + "zOrder": "194", + "measuredW": "247", + "measuredH": "61", + "w": "247", + "h": "61", + "x": "536", + "y": "2365", + "properties": { + "controlName": "117-progressive-web-apps" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "241", + "h": "50", + "measuredW": "200", + "measuredH": "140", + "x": "6", + "y": "11", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "172", + "measuredH": "25", + "x": "41", + "y": "24", + "properties": { + "size": "17", + "text": "Progressive Web Apps" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "10066329", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3885", + "typeID": "Canvas", + "zOrder": "195", + "w": "228", + "h": "428", + "measuredW": "100", + "measuredH": "70", + "x": "183", + "y": "2379" + }, + { + "ID": "3886", + "typeID": "__group__", + "zOrder": "196", + "measuredW": "192", + "measuredH": "32", + "w": "192", + "h": "32", + "x": "201", + "y": "2507", + "properties": { + "controlName": "103-progressive-web-apps:service-workers" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextInput", + "zOrder": "0", + "w": "192", + "measuredW": "147", + "measuredH": "32", + "x": "0", + "y": "0", + "properties": { + "align": "center", + "color": "16776960", + "text": "Service Workers", + "size": "18" + } + } + ] + } + } + }, + { + "ID": "3887", + "typeID": "__group__", + "zOrder": "197", + "measuredW": "192", + "measuredH": "32", + "w": "192", + "h": "32", + "x": "201", + "y": "2395", + "properties": { + "controlName": "100-progressive-web-apps:storage" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextInput", + "zOrder": "0", + "w": "192", + "measuredW": "78", + "measuredH": "32", + "x": "0", + "y": "0", + "properties": { + "align": "center", + "color": "16776960", + "text": "Storage", + "size": "18" + } + } + ] + } + } + }, + { + "ID": "3888", + "typeID": "__group__", + "zOrder": "198", + "measuredW": "192", + "measuredH": "32", + "w": "192", + "h": "32", + "x": "201", + "y": "2545", + "properties": { + "controlName": "104-progressive-web-apps:location" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextInput", + "zOrder": "0", + "w": "192", + "measuredW": "84", + "measuredH": "32", + "x": "0", + "y": "0", + "properties": { + "align": "center", + "color": "16770457", + "text": "Location", + "size": "18" + } + } + ] + } + } + }, + { + "ID": "3889", + "typeID": "__group__", + "zOrder": "199", + "measuredW": "192", + "measuredH": "32", + "w": "192", + "h": "32", + "x": "201", + "y": "2582", + "properties": { + "controlName": "105-progressive-web-apps:notifications" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextInput", + "zOrder": "0", + "w": "192", + "measuredW": "115", + "measuredH": "32", + "x": "0", + "y": "0", + "properties": { + "align": "center", + "color": "16770457", + "text": "Notifications", + "size": "18" + } + } + ] + } + } + }, + { + "ID": "3890", + "typeID": "__group__", + "zOrder": "200", + "measuredW": "192", + "measuredH": "32", + "w": "192", + "h": "32", + "x": "201", + "y": "2620", + "properties": { + "controlName": "106-progressive-web-apps:device-orientation" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextInput", + "zOrder": "0", + "w": "192", + "measuredW": "167", + "measuredH": "32", + "x": "0", + "y": "0", + "properties": { + "align": "center", + "color": "16770457", + "text": "Device Orientation", + "size": "18" + } + } + ] + } + } + }, + { + "ID": "3891", + "typeID": "__group__", + "zOrder": "201", + "measuredW": "192", + "measuredH": "32", + "w": "192", + "h": "32", + "x": "201", + "y": "2657", + "properties": { + "controlName": "107-progressive-web-apps:payments" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextInput", + "zOrder": "0", + "w": "192", + "measuredW": "94", + "measuredH": "32", + "x": "0", + "y": "0", + "properties": { + "align": "center", + "color": "16770457", + "text": "Payments", + "size": "18" + } + } + ] + } + } + }, + { + "ID": "3892", + "typeID": "__group__", + "zOrder": "202", + "measuredW": "192", + "measuredH": "32", + "w": "192", + "h": "32", + "x": "201", + "y": "2695", + "properties": { + "controlName": "108-progressive-web-apps:credentials" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextInput", + "zOrder": "0", + "w": "192", + "measuredW": "108", + "measuredH": "32", + "x": "0", + "y": "0", + "properties": { + "align": "center", + "color": "16770457", + "text": "Credentials", + "size": "18" + } + } + ] + } + } + }, + { + "ID": "3893", + "typeID": "__group__", + "zOrder": "203", + "measuredW": "192", + "measuredH": "32", + "w": "192", + "h": "32", + "x": "201", + "y": "2432", + "properties": { + "controlName": "101-progressive-web-apps:web-sockets" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextInput", + "zOrder": "0", + "w": "192", + "measuredW": "120", + "measuredH": "32", + "x": "0", + "y": "0", + "properties": { + "align": "center", + "color": "16776960", + "text": "Web Sockets", + "size": "18" + } + } + ] + } + } + }, + { + "ID": "3894", + "typeID": "Label", + "zOrder": "204", + "w": "156", + "measuredW": "151", + "measuredH": "25", + "x": "219", + "y": "2740", + "properties": { + "size": "17", + "text": "Learn different Web" + } + }, + { + "ID": "3895", + "typeID": "Label", + "zOrder": "205", + "w": "148", + "measuredW": "143", + "measuredH": "25", + "x": "223", + "y": "2766", + "properties": { + "size": "17", + "text": "APIs used in PWAs" + } + }, + { + "ID": "3896", + "typeID": "Icon", + "zOrder": "206", + "measuredW": "24", + "measuredH": "24", + "x": "174", + "y": "2368", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3897", + "typeID": "Icon", + "zOrder": "207", + "measuredW": "24", + "measuredH": "24", + "x": "174", + "y": "2368", + "properties": { + "color": "10066329", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + }, + { + "ID": "3898", + "typeID": "__group__", + "zOrder": "208", + "measuredW": "192", + "measuredH": "32", + "w": "192", + "h": "32", + "x": "201", + "y": "2470", + "properties": { + "controlName": "102-progressive-web-apps:server-sent-events" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextInput", + "zOrder": "0", + "w": "192", + "measuredW": "170", + "measuredH": "32", + "x": "0", + "y": "0", + "properties": { + "align": "center", + "color": "16776960", + "text": "Server Sent Events", + "size": "18" + } + } + ] + } + } + }, + { + "ID": "3899", + "typeID": "Canvas", + "zOrder": "209", + "w": "262", + "h": "281", + "measuredW": "100", + "measuredH": "70", + "x": "435", + "y": "2454" + }, + { + "ID": "3900", + "typeID": "__group__", + "zOrder": "210", + "measuredW": "225", + "measuredH": "32", + "w": "225", + "h": "32", + "x": "455", + "y": "2473", + "properties": { + "controlName": "109-progressive-web-apps:prpl-pattern" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextInput", + "zOrder": "0", + "w": "225", + "measuredW": "124", + "measuredH": "32", + "x": "0", + "y": "0", + "properties": { + "align": "center", + "color": "16776960", + "size": "18", + "text": "PRPL Pattern" + } + } + ] + } + } + }, + { + "ID": "3901", + "typeID": "__group__", + "zOrder": "211", + "measuredW": "225", + "measuredH": "32", + "w": "225", + "h": "32", + "x": "455", + "y": "2511", + "properties": { + "controlName": "110-progressive-web-apps:rail-model" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextInput", + "zOrder": "0", + "w": "225", + "measuredW": "110", + "measuredH": "32", + "x": "0", + "y": "0", + "properties": { + "align": "center", + "color": "16776960", + "size": "18", + "text": "RAIL Model" + } + } + ] + } + } + }, + { + "ID": "3902", + "typeID": "__group__", + "zOrder": "212", + "measuredW": "225", + "measuredH": "32", + "w": "225", + "h": "32", + "x": "455", + "y": "2549", + "properties": { + "controlName": "111-progressive-web-apps:performance-metrics" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextInput", + "zOrder": "0", + "w": "225", + "measuredW": "185", + "measuredH": "32", + "x": "0", + "y": "0", + "properties": { + "align": "center", + "color": "16776960", + "size": "18", + "text": "Performance Metrics" + } + } + ] + } + } + }, + { + "ID": "3903", + "typeID": "__group__", + "zOrder": "213", + "measuredW": "225", + "measuredH": "32", + "w": "225", + "h": "32", + "x": "455", + "y": "2586", + "properties": { + "controlName": "112-progressive-web-apps:lighthouse" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextInput", + "zOrder": "0", + "w": "225", + "measuredW": "156", + "measuredH": "32", + "x": "0", + "y": "0", + "properties": { + "align": "center", + "color": "16776960", + "size": "18", + "text": "Using Lighthouse" + } + } + ] + } + } + }, + { + "ID": "3904", + "typeID": "__group__", + "zOrder": "214", + "measuredW": "225", + "measuredH": "32", + "w": "225", + "h": "32", + "x": "455", + "y": "2624", + "properties": { + "controlName": "113-progressive-web-apps:browser-devtools" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextInput", + "zOrder": "0", + "w": "225", + "measuredW": "141", + "measuredH": "32", + "x": "0", + "y": "0", + "properties": { + "align": "center", + "color": "16776960", + "size": "18", + "text": "Using DevTools" + } + } + ] + } + } + }, + { + "ID": "3905", + "typeID": "Label", + "zOrder": "215", + "w": "185", + "measuredW": "176", + "measuredH": "25", + "x": "475", + "y": "2669", + "properties": { + "size": "17", + "text": "Calculating, Measuring" + } + }, + { + "ID": "3906", + "typeID": "Label", + "zOrder": "216", + "w": "224", + "measuredW": "212", + "measuredH": "25", + "x": "455", + "y": "2696", + "properties": { + "size": "17", + "text": "and improving performance" + } + }, + { + "ID": "3907", + "typeID": "Icon", + "zOrder": "217", + "measuredW": "24", + "measuredH": "24", + "x": "428", + "y": "2445", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3908", + "typeID": "Icon", + "zOrder": "218", + "measuredW": "24", + "measuredH": "24", + "x": "428", + "y": "2445", + "properties": { + "color": "10066329", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + }, + { + "ID": "3909", + "typeID": "__group__", + "zOrder": "219", + "measuredW": "285", + "measuredH": "59", + "w": "285", + "h": "59", + "x": "712", + "y": "2519", + "properties": { + "controlName": "118-server-side-rendering" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "278", + "h": "50", + "measuredW": "200", + "measuredH": "140", + "x": "7", + "y": "9", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "225", + "measuredH": "25", + "x": "29", + "y": "22", + "properties": { + "size": "17", + "text": "Server Side Rendering (SSR)" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "0", + "properties": { + "color": "10066329", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3910", + "typeID": "__group__", + "zOrder": "220", + "measuredW": "125", + "measuredH": "41", + "w": "125", + "h": "41", + "x": "1065", + "y": "2483", + "properties": { + "controlName": "100-server-side-rendering:react-js" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "116", + "h": "41", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "47", + "measuredH": "25", + "x": "34", + "y": "8", + "properties": { + "text": "React", + "size": "17" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "101", + "y": "9", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "101", + "y": "9", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3911", + "typeID": "__group__", + "zOrder": "221", + "measuredW": "116", + "measuredH": "41", + "w": "116", + "h": "41", + "x": "1227", + "y": "2482", + "properties": { + "controlName": "100-server-side-rendering:react-js:next-js" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "106", + "h": "41", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "52", + "measuredH": "25", + "x": "27", + "y": "8", + "properties": { + "size": "17", + "text": "Next.js" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "92", + "y": "9", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "92", + "y": "9", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3912", + "typeID": "__group__", + "zOrder": "222", + "measuredW": "127", + "measuredH": "41", + "w": "127", + "h": "41", + "x": "1065", + "y": "2532", + "properties": { + "controlName": "101-server-side-rendering:angular" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "119", + "h": "41", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "69", + "measuredW": "59", + "measuredH": "25", + "x": "35", + "y": "8", + "properties": { + "size": "17", + "text": "Angular" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "103", + "y": "9", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "103", + "y": "9", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "4", + "typeID": "Icon", + "zOrder": "4", + "measuredW": "24", + "measuredH": "24", + "x": "103", + "y": "9", + "properties": { + "color": "3700253", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3913", + "typeID": "__group__", + "zOrder": "223", + "measuredW": "121", + "measuredH": "41", + "w": "121", + "h": "41", + "x": "1224", + "y": "2532", + "properties": { + "controlName": "100-server-side-rendering:angular:universal" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "111", + "h": "41", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "73", + "measuredW": "72", + "measuredH": "25", + "x": "19", + "y": "8", + "properties": { + "size": "17", + "text": "Universal" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "97", + "y": "9", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "97", + "y": "9", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "4", + "typeID": "Icon", + "zOrder": "4", + "measuredW": "24", + "measuredH": "24", + "x": "97", + "y": "9", + "properties": { + "color": "3700253", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3914", + "typeID": "__group__", + "zOrder": "224", + "measuredW": "127", + "measuredH": "41", + "w": "127", + "h": "41", + "x": "1067", + "y": "2581", + "properties": { + "controlName": "102-server-side-rendering:vue-js" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "118", + "h": "41", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "48", + "measuredW": "45", + "measuredH": "25", + "x": "37", + "y": "8", + "properties": { + "text": "Vue.js", + "size": "17" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "103", + "y": "9", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "103", + "y": "9", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "4", + "typeID": "Icon", + "zOrder": "4", + "measuredW": "24", + "measuredH": "24", + "x": "103", + "y": "9", + "properties": { + "color": "3700253", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3915", + "typeID": "__group__", + "zOrder": "225", + "measuredW": "122", + "measuredH": "41", + "w": "122", + "h": "41", + "x": "1222", + "y": "2581", + "properties": { + "controlName": "100-server-side-rendering:vue-js:nuxt-js" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "111", + "h": "41", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "55", + "measuredW": "52", + "measuredH": "25", + "x": "28", + "y": "8", + "properties": { + "size": "17", + "text": "Nuxt.js" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "98", + "y": "9", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "98", + "y": "9", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "4", + "typeID": "Icon", + "zOrder": "4", + "measuredW": "24", + "measuredH": "24", + "x": "98", + "y": "9", + "properties": { + "color": "3700253", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3916", + "typeID": "__group__", + "zOrder": "226", + "measuredW": "220", + "measuredH": "59", + "w": "220", + "h": "59", + "x": "477", + "y": "2939", + "properties": { + "controlName": "121-mobile-applications" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "210", + "h": "50", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "9", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "169", + "measuredW": "150", + "measuredH": "25", + "x": "27", + "y": "22", + "properties": { + "size": "17", + "text": "Mobile Applications" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "196", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "196", + "y": "0", + "properties": { + "color": "10066329", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3917", + "typeID": "__group__", + "zOrder": "227", + "measuredW": "156", + "measuredH": "41", + "w": "156", + "h": "41", + "x": "177", + "y": "2864", + "properties": { + "controlName": "100-mobile-applications:react-native" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "147", + "h": "41", + "measuredW": "200", + "measuredH": "140", + "x": "9", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "101", + "measuredW": "100", + "measuredH": "25", + "x": "32", + "y": "8", + "properties": { + "size": "17", + "text": "React Native" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "7", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "7", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3918", + "typeID": "__group__", + "zOrder": "228", + "measuredW": "147", + "measuredH": "41", + "w": "147", + "h": "41", + "x": "186", + "y": "3004", + "properties": { + "controlName": "101-mobile-applications:nativescript" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "147", + "h": "41", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "94", + "measuredH": "25", + "x": "27", + "y": "8", + "properties": { + "text": "NativeScript", + "size": "17" + } + } + ] + } + } + }, + { + "ID": "3919", + "typeID": "__group__", + "zOrder": "229", + "measuredW": "157", + "measuredH": "41", + "w": "157", + "h": "41", + "x": "176", + "y": "2911", + "properties": { + "controlName": "102-mobile-applications:flutter" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "147", + "h": "41", + "measuredW": "200", + "measuredH": "140", + "x": "10", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "53", + "measuredW": "50", + "measuredH": "25", + "x": "57", + "y": "8", + "properties": { + "size": "17", + "text": "Flutter" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "7", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "7", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3920", + "typeID": "__group__", + "zOrder": "230", + "measuredW": "157", + "measuredH": "41", + "w": "157", + "h": "41", + "x": "1171", + "y": "2980", + "properties": { + "controlName": "105-static-site-generators:hugo" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "147", + "h": "41", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "43", + "measuredW": "42", + "measuredH": "25", + "x": "52", + "y": "8", + "properties": { + "size": "17", + "text": "Hugo" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "133", + "y": "9", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "133", + "y": "9", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "4", + "typeID": "Icon", + "zOrder": "4", + "measuredW": "24", + "measuredH": "24", + "x": "133", + "y": "9", + "properties": { + "color": "3700253", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3921", + "typeID": "__group__", + "zOrder": "231", + "measuredW": "147", + "measuredH": "41", + "w": "147", + "h": "41", + "x": "186", + "y": "2958", + "properties": { + "controlName": "103-mobile-applications:ionic" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "147", + "h": "41", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "40", + "measuredW": "38", + "measuredH": "25", + "x": "54", + "y": "8", + "properties": { + "size": "17", + "text": "Ionic" + } + } + ] + } + } + }, + { + "ID": "3922", + "typeID": "__group__", + "zOrder": "232", + "measuredW": "152", + "measuredH": "50", + "w": "152", + "h": "50", + "x": "822", + "y": "2813", + "properties": { + "controlName": "119-graphql" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "146", + "h": "50", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "71", + "measuredH": "25", + "x": "37", + "y": "12", + "properties": { + "size": "17", + "text": "GraphQL" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "128", + "y": "13", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "128", + "y": "13", + "properties": { + "color": "10066329", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3923", + "typeID": "__group__", + "zOrder": "233", + "measuredW": "175", + "measuredH": "41", + "w": "175", + "h": "41", + "x": "571", + "y": "2860", + "properties": { + "controlName": "101-graphql:relay-modern" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "168", + "h": "41", + "measuredW": "200", + "measuredH": "140", + "x": "7", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "115", + "measuredW": "107", + "measuredH": "25", + "x": "40", + "y": "8", + "properties": { + "size": "17", + "text": "Relay Modern" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "9", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "9", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "4", + "typeID": "Icon", + "zOrder": "4", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "9", + "properties": { + "color": "3700253", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3924", + "typeID": "__group__", + "zOrder": "234", + "measuredW": "238", + "measuredH": "60", + "w": "238", + "h": "60", + "x": "832", + "y": "2263", + "properties": { + "controlName": "113-web-components" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "230", + "h": "50", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "10", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "137", + "measuredH": "25", + "x": "44", + "y": "23", + "properties": { + "size": "17", + "text": "Web Components" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "214", + "y": "0", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "214", + "y": "0", + "properties": { + "color": "10066329", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3925", + "typeID": "__group__", + "zOrder": "235", + "measuredW": "199", + "measuredH": "40", + "w": "199", + "h": "40", + "x": "1147", + "y": "2231", + "properties": { + "controlName": "100-web-components:html-templates" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "190", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "132", + "measuredW": "131", + "measuredH": "25", + "x": "30", + "y": "7", + "properties": { + "size": "17", + "text": "HTML Templates" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "175", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "175", + "y": "8", + "properties": { + "color": "10066329", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3926", + "typeID": "__group__", + "zOrder": "236", + "measuredW": "199", + "measuredH": "40", + "w": "199", + "h": "40", + "x": "1147", + "y": "2277", + "properties": { + "controlName": "101-web-components:custom-elements" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "190", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "139", + "measuredW": "136", + "measuredH": "25", + "x": "30", + "y": "7", + "properties": { + "size": "17", + "text": "Custom Elements" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "175", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "175", + "y": "8", + "properties": { + "color": "10066329", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3927", + "typeID": "__group__", + "zOrder": "237", + "measuredW": "199", + "measuredH": "40", + "w": "199", + "h": "40", + "x": "1147", + "y": "2322", + "properties": { + "controlName": "102-web-components:shadow-dom" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "190", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "105", + "measuredW": "105", + "measuredH": "25", + "x": "38", + "y": "7", + "properties": { + "size": "17", + "text": "Shadow DOM" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "175", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "175", + "y": "8", + "properties": { + "color": "10066329", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3928", + "typeID": "__group__", + "zOrder": "238", + "measuredW": "156", + "measuredH": "43", + "w": "156", + "h": "43", + "x": "189", + "y": "1423", + "properties": { + "controlName": "101-css-preprocessors:postcss" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "146", + "h": "43", + "measuredW": "200", + "measuredH": "140", + "x": "10", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "74", + "measuredW": "66", + "measuredH": "25", + "x": "49", + "y": "9", + "properties": { + "size": "17", + "text": "PostCSS" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "10", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "10", + "properties": { + "color": "10066329", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3929", + "typeID": "__group__", + "zOrder": "239", + "measuredW": "156", + "measuredH": "41", + "w": "156", + "h": "41", + "x": "189", + "y": "1376", + "properties": { + "controlName": "100-css-preprocessors:sass" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "146", + "h": "41", + "measuredW": "200", + "measuredH": "140", + "x": "10", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "46", + "measuredW": "37", + "measuredH": "25", + "x": "60", + "y": "8", + "properties": { + "size": "17", + "text": "Sass" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "9", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "9", + "properties": { + "color": "10066329", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3930", + "typeID": "__group__", + "zOrder": "240", + "measuredW": "212", + "measuredH": "40", + "w": "212", + "h": "40", + "x": "849", + "y": "1894", + "properties": { + "controlName": "102-modern-css:styled-jsx" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "201", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "w": "90", + "measuredW": "80", + "measuredH": "25", + "x": "56", + "y": "7", + "properties": { + "size": "17", + "text": "Styled JSX" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "188", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "188", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "4", + "typeID": "Icon", + "zOrder": "4", + "measuredW": "24", + "measuredH": "24", + "x": "188", + "y": "8", + "properties": { + "color": "3700253", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3931", + "typeID": "__group__", + "zOrder": "241", + "measuredW": "159", + "measuredH": "40", + "w": "159", + "h": "40", + "x": "1123", + "y": "1642", + "properties": { + "controlName": "101-build-tools:module-bundlers:esbuild" + }, + "children": { + "controls": { + "control": [ + { + "ID": "1", + "typeID": "Label", + "zOrder": "0", + "w": "72", + "measuredW": "72", + "measuredH": "25", + "x": "52", + "y": "7", + "properties": { + "size": "17", + "text": "Webpack" + } + }, + { + "ID": "2", + "typeID": "TextArea", + "zOrder": "1", + "w": "149", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "3", + "typeID": "Label", + "zOrder": "2", + "measuredW": "55", + "measuredH": "25", + "x": "50", + "y": "7", + "properties": { + "size": "17", + "text": "esbuild" + } + }, + { + "ID": "4", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "135", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "5", + "typeID": "Icon", + "zOrder": "4", + "measuredW": "24", + "measuredH": "24", + "x": "135", + "y": "8", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3932", + "typeID": "__group__", + "zOrder": "242", + "measuredW": "159", + "measuredH": "40", + "w": "159", + "h": "40", + "x": "1123", + "y": "1597", + "properties": { + "controlName": "104-build-tools:module-bundlers:vite" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Label", + "zOrder": "0", + "w": "46", + "measuredW": "49", + "measuredH": "25", + "x": "65", + "y": "7", + "properties": { + "size": "17", + "text": "Parcel" + } + }, + { + "ID": "1", + "typeID": "TextArea", + "zOrder": "1", + "w": "151", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "2", + "typeID": "Label", + "zOrder": "2", + "measuredW": "30", + "measuredH": "25", + "x": "53", + "y": "7", + "properties": { + "size": "17", + "text": "Vite" + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "135", + "y": "7", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "4", + "typeID": "Icon", + "zOrder": "4", + "measuredW": "24", + "measuredH": "24", + "x": "135", + "y": "7", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "5", + "typeID": "Icon", + "zOrder": "5", + "measuredW": "24", + "measuredH": "24", + "x": "135", + "y": "7", + "properties": { + "icon": { + "ID": "check-circle", + "size": "small" + }, + "color": "10027263" + } + } + ] + } + } + }, + { + "ID": "3933", + "typeID": "__group__", + "zOrder": "243", + "measuredW": "157", + "measuredH": "41", + "w": "157", + "h": "41", + "x": "1172", + "y": "2705", + "properties": { + "controlName": "107-static-site-generators:eleventy" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "147", + "h": "41", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457", + "align": "center", + "size": "17" + } + }, + { + "ID": "1", + "typeID": "Icon", + "zOrder": "1", + "measuredW": "24", + "measuredH": "24", + "x": "133", + "y": "9", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "133", + "y": "9", + "properties": { + "icon": { + "ID": "check-circle", + "size": "small" + }, + "color": "10027263" + } + }, + { + "ID": "3", + "typeID": "Label", + "zOrder": "3", + "measuredW": "66", + "measuredH": "25", + "x": "41", + "y": "8", + "properties": { + "text": "Eleventy", + "size": "17" + } + } + ] + } + } + }, + { + "ID": "3934", + "typeID": "__group__", + "zOrder": "244", + "measuredW": "158", + "measuredH": "49", + "w": "158", + "h": "49", + "x": "193", + "y": "1261", + "properties": { + "controlName": "102-package-managers:pnpm" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "151", + "h": "49", + "measuredW": "200", + "measuredH": "140", + "x": "7", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "44", + "measuredH": "25", + "x": "61", + "y": "12", + "properties": { + "size": "17", + "text": "pnpm" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "13", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "13", + "properties": { + "icon": { + "ID": "check-circle", + "size": "small" + }, + "color": "3700253" + } + } + ] + } + } + }, + { + "ID": "3935", + "typeID": "__group__", + "zOrder": "245", + "measuredW": "152", + "measuredH": "40", + "w": "152", + "h": "40", + "x": "191", + "y": "1647", + "properties": { + "controlName": "103-pick-a-framework:svelte" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "145", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "7", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "48", + "measuredH": "25", + "x": "58", + "y": "7", + "properties": { + "size": "17", + "text": "Svelte" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "4", + "typeID": "Icon", + "zOrder": "4", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "3700253", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3936", + "typeID": "__group__", + "zOrder": "246", + "measuredW": "152", + "measuredH": "40", + "w": "152", + "h": "40", + "x": "191", + "y": "1693", + "properties": { + "controlName": "104-pick-a-framework:solid-js" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "145", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "7", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "61", + "measuredH": "25", + "x": "58", + "y": "7", + "properties": { + "size": "17", + "text": "Solid JS" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "4", + "typeID": "Icon", + "zOrder": "4", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "3700253", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3937", + "typeID": "__group__", + "zOrder": "247", + "measuredW": "204", + "measuredH": "39", + "w": "204", + "h": "39", + "x": "1122", + "y": "2051", + "properties": { + "controlName": "104-testing-your-apps:playwright" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "197", + "h": "39", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "78", + "measuredH": "25", + "x": "60", + "y": "7", + "properties": { + "size": "17", + "text": "Playwright" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "180", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "180", + "y": "8", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3938", + "typeID": "__group__", + "zOrder": "248", + "measuredW": "116", + "measuredH": "41", + "w": "116", + "h": "41", + "x": "1227", + "y": "2435", + "properties": { + "controlName": "101-server-side-rendering:react-js:remix" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "106", + "h": "41", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "49", + "measuredH": "25", + "x": "28", + "y": "8", + "properties": { + "size": "17", + "text": "Remix" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "92", + "y": "9", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "92", + "y": "9", + "properties": { + "color": "10027263", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3939", + "typeID": "__group__", + "zOrder": "249", + "measuredW": "159", + "measuredH": "41", + "w": "159", + "h": "41", + "x": "1171", + "y": "3074", + "properties": { + "controlName": "103-static-site-generators:remix" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "148", + "h": "41", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "49", + "measuredH": "25", + "x": "49", + "y": "8", + "properties": { + "size": "17", + "text": "Remix" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "135", + "y": "9", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "135", + "y": "9", + "properties": { + "icon": { + "ID": "check-circle", + "size": "small" + }, + "color": "3700253" + } + } + ] + } + } + }, + { + "ID": "3940", + "typeID": "__group__", + "zOrder": "250", + "measuredW": "196", + "measuredH": "41", + "w": "196", + "h": "41", + "x": "795", + "y": "3106", + "properties": { + "controlName": "102-desktop-applications:flutter" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "188", + "h": "41", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "50", + "measuredH": "25", + "x": "69", + "y": "8", + "properties": { + "size": "17", + "text": "Flutter" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "172", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "172", + "y": "8", + "properties": { + "icon": { + "ID": "check-circle", + "size": "small" + }, + "color": "40463" + } + } + ] + } + } + }, + { + "ID": "3941", + "typeID": "__group__", + "zOrder": "251", + "measuredW": "157", + "measuredH": "41", + "w": "157", + "h": "41", + "x": "1173", + "y": "2750", + "properties": { + "controlName": "106-static-site-generators:astro" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "147", + "h": "41", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "39", + "measuredH": "25", + "x": "54", + "y": "8", + "properties": { + "size": "17", + "text": "Astro" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "133", + "y": "9", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "133", + "y": "9", + "properties": { + "icon": { + "ID": "check-circle", + "size": "small" + }, + "color": "10027263" + } + } + ] + } + } + }, + { + "ID": "3942", + "typeID": "__group__", + "zOrder": "252", + "measuredW": "128", + "measuredH": "40", + "w": "128", + "h": "40", + "x": "1067", + "y": "2631", + "properties": { + "controlName": "103-server-side-rendering:svelte" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "119", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "48", + "measuredH": "25", + "x": "36", + "y": "7", + "properties": { + "size": "17", + "text": "Svelte" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "104", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "104", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "4", + "typeID": "Icon", + "zOrder": "4", + "measuredW": "24", + "measuredH": "24", + "x": "104", + "y": "8", + "properties": { + "color": "3700253", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3943", + "typeID": "__group__", + "zOrder": "253", + "measuredW": "122", + "measuredH": "41", + "w": "122", + "h": "41", + "x": "1223", + "y": "2630", + "properties": { + "controlName": "100-server-side-rendering:svelte:svelte-kit" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "111", + "h": "41", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "73", + "measuredH": "25", + "x": "17", + "y": "8", + "properties": { + "size": "17", + "text": "Svelte Kit" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "98", + "y": "9", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "98", + "y": "9", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "4", + "typeID": "Icon", + "zOrder": "4", + "measuredW": "24", + "measuredH": "24", + "x": "98", + "y": "9", + "properties": { + "color": "3700253", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3944", + "typeID": "__group__", + "zOrder": "254", + "measuredW": "411", + "measuredH": "87", + "w": "411", + "h": "87", + "x": "176", + "y": "2245", + "properties": { + "controlName": "116-auth-strategies" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "401", + "h": "87", + "measuredW": "200", + "measuredH": "140", + "x": "10", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "227", + "measuredH": "28", + "x": "97", + "y": "16", + "properties": { + "size": "20", + "text": "Authentication Strategies" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "34", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "34", + "properties": { + "icon": { + "ID": "check-circle", + "size": "small" + }, + "color": "10027263" + } + }, + { + "ID": "4", + "typeID": "Label", + "zOrder": "4", + "measuredW": "353", + "measuredH": "25", + "x": "34", + "y": "46", + "properties": { + "size": "17", + "text": "JWT, OAuth, SSO, Basic Auth, Session Auth etc" + } + } + ] + } + } + }, + { + "ID": "3945", + "typeID": "__group__", + "zOrder": "255", + "measuredW": "333", + "measuredH": "228", + "w": "333", + "h": "228", + "x": "196", + "y": "1844", + "properties": { + "controlName": "114-css-frameworks:js-first" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "333", + "h": "228", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0" + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "263", + "measuredH": "24", + "x": "19", + "y": "163", + "properties": { + "size": "16", + "text": "JS based and better to use with your" + } + }, + { + "ID": "2", + "typeID": "Label", + "zOrder": "2", + "measuredW": "247", + "measuredH": "24", + "x": "19", + "y": "189", + "properties": { + "size": "16", + "text": "framework based JavaScript apps." + } + } + ] + } + } + }, + { + "ID": "3946", + "typeID": "__group__", + "zOrder": "256", + "measuredW": "145", + "measuredH": "40", + "w": "145", + "h": "40", + "x": "372", + "y": "1860", + "properties": { + "controlName": "100-css-frameworks:js-first:tailwind-css" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "136", + "h": "40", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "61", + "measuredH": "25", + "x": "37", + "y": "7", + "properties": { + "size": "17", + "text": "Tailwind" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "121", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "121", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "4", + "typeID": "Icon", + "zOrder": "4", + "measuredW": "24", + "measuredH": "24", + "x": "121", + "y": "8", + "properties": { + "icon": { + "ID": "check-circle", + "size": "small" + }, + "color": "10027263" + } + } + ] + } + } + }, + { + "ID": "3947", + "typeID": "__group__", + "zOrder": "257", + "measuredW": "150", + "measuredH": "37", + "w": "150", + "h": "37", + "x": "372", + "y": "1907", + "properties": { + "controlName": "102-css-frameworks:js-first:material-ui" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "137", + "h": "37", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "86", + "measuredH": "25", + "x": "26", + "y": "6", + "properties": { + "size": "17", + "text": "Material UI" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "126", + "y": "7", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "126", + "y": "7", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "4", + "typeID": "Icon", + "zOrder": "4", + "measuredW": "24", + "measuredH": "24", + "x": "126", + "y": "7", + "properties": { + "color": "3700253", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3948", + "typeID": "__group__", + "zOrder": "258", + "measuredW": "157", + "measuredH": "39", + "w": "157", + "h": "39", + "x": "208", + "y": "1861", + "properties": { + "controlName": "104-css-frameworks:js-first:mantine" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "149", + "h": "39", + "measuredW": "200", + "measuredH": "140", + "x": "8", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "63", + "measuredH": "25", + "x": "51", + "y": "7", + "properties": { + "size": "17", + "text": "Mantine" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "4", + "typeID": "Icon", + "zOrder": "4", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "3700253", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3949", + "typeID": "__group__", + "zOrder": "259", + "measuredW": "149", + "measuredH": "37", + "w": "149", + "h": "37", + "x": "372", + "y": "1952", + "properties": { + "controlName": "103-css-frameworks:js-first:radix-ui" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "139", + "h": "37", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "66", + "measuredH": "25", + "x": "34", + "y": "6", + "properties": { + "size": "17", + "text": "Radix UI" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "125", + "y": "7", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "125", + "y": "7", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "4", + "typeID": "Icon", + "zOrder": "4", + "measuredW": "24", + "measuredH": "24", + "x": "125", + "y": "7", + "properties": { + "color": "3700253", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3950", + "typeID": "__group__", + "zOrder": "260", + "measuredW": "161", + "measuredH": "39", + "w": "161", + "h": "39", + "x": "204", + "y": "1906", + "properties": { + "controlName": "101-css-frameworks:js-first:chakra-ui" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "152", + "h": "39", + "measuredW": "200", + "measuredH": "140", + "x": "9", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "78", + "measuredH": "25", + "x": "44", + "y": "8", + "properties": { + "size": "17", + "text": "Chakra UI" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "4", + "typeID": "Icon", + "zOrder": "4", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "3700253", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3951", + "typeID": "__group__", + "zOrder": "261", + "measuredW": "161", + "measuredH": "39", + "w": "161", + "h": "39", + "x": "205", + "y": "1951", + "properties": { + "controlName": "105-css-frameworks:js-first:daisy-ui" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "152", + "h": "39", + "measuredW": "200", + "measuredH": "140", + "x": "9", + "y": "0", + "properties": { + "color": "16776960" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "60", + "measuredH": "25", + "x": "55", + "y": "8", + "properties": { + "size": "17", + "text": "DaisyUI" + } + }, + { + "ID": "2", + "typeID": "Icon", + "zOrder": "2", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "3", + "typeID": "Icon", + "zOrder": "3", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "16777215", + "icon": { + "ID": "circle", + "size": "small" + } + } + }, + { + "ID": "4", + "typeID": "Icon", + "zOrder": "4", + "measuredW": "24", + "measuredH": "24", + "x": "0", + "y": "8", + "properties": { + "color": "3700253", + "icon": { + "ID": "check-circle", + "size": "small" + } + } + } + ] + } + } + }, + { + "ID": "3952", + "typeID": "TextArea", + "zOrder": "262", + "w": "438", + "h": "118", + "measuredW": "200", + "measuredH": "140", + "x": "391", + "y": "3403" + }, + { + "ID": "3953", + "typeID": "Label", + "zOrder": "263", + "measuredW": "366", + "measuredH": "25", + "x": "427", + "y": "3422", + "properties": { + "size": "17", + "text": "Continue Learning with following relevant tracks" + } + }, + { + "ID": "3954", + "typeID": "__group__", + "zOrder": "264", + "measuredW": "198", + "measuredH": "44", + "w": "198", + "h": "44", + "x": "614", + "y": "3459", + "properties": { + "controlName": "ext_link:roadmap.sh/nodejs" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "198", + "h": "44", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "137", + "measuredH": "25", + "x": "30", + "y": "9", + "properties": { + "size": "17", + "text": "Node.js Roadmap" + } + } + ] + } + } + }, + { + "ID": "3955", + "typeID": "__group__", + "zOrder": "265", + "measuredW": "198", + "measuredH": "44", + "w": "198", + "h": "44", + "x": "406", + "y": "3459", + "properties": { + "controlName": "ext_link:roadmap.sh/typescript" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "TextArea", + "zOrder": "0", + "w": "198", + "h": "44", + "measuredW": "200", + "measuredH": "140", + "x": "0", + "y": "0", + "properties": { + "color": "16770457" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "160", + "measuredH": "25", + "x": "21", + "y": "9", + "properties": { + "size": "17", + "text": "TypeScript Roadmap" + } + } + ] + } + } + }, + { + "ID": "3956", + "typeID": "Arrow", + "zOrder": "266", + "w": "1", + "h": "67", + "measuredW": "150", + "measuredH": "100", + "x": "1048", + "y": "3560", + "properties": { + "curvature": "0", + "leftArrow": "false", + "rightArrow": "false", + "stroke": "dotted", + "color": "16777215", + "p0": { + "x": 1, + "y": 67.09090909090901 + }, + "p1": { + "x": 0.4072427393330943, + "y": 0.00953746862674794 + }, + "p2": { + "x": 1, + "y": 0 + } + } + }, + { + "ID": "3957", + "typeID": "__group__", + "zOrder": "267", + "measuredW": "262", + "measuredH": "47", + "w": "262", + "h": "47", + "x": "435", + "y": "2740", + "properties": { + "controlName": "ext_link:roadmap.sh/best-practices/frontend-performance" + }, + "children": { + "controls": { + "control": [ + { + "ID": "0", + "typeID": "Canvas", + "zOrder": "0", + "w": "262", + "h": "47", + "measuredW": "100", + "measuredH": "70", + "x": "0", + "y": "0", + "properties": { + "color": "4273622", + "borderColor": "4273622" + } + }, + { + "ID": "1", + "typeID": "Label", + "zOrder": "1", + "measuredW": "216", + "measuredH": "25", + "x": "23", + "y": "11", + "properties": { + "size": "17", + "text": "Performance Best Practices", + "color": "16777215" + } + } + ] + } + } + } + ] + }, + "attributes": { + "name": "New Wireframe 9 copy 7", + "order": 1000156.2209166192, + "parentID": null, + "notes": null + }, + "branchID": "Master", + "resourceID": "057DB19F-D6AC-44FC-8C5C-52D4D800A91B", + "mockupH": "3436", + "mockupW": "1172", + "measuredW": "1346", + "measuredH": "3627", + "version": "1.0" + }, + "groupOffset": { + "x": 0, + "y": 0 + }, + "dependencies": [], + "projectID": "file:///Users/kamranahmed/Desktop/AWS%20Roadmap.bmpr" +} diff --git a/public/jsons/roadmaps/full-stack.json b/src/data/roadmaps/full-stack/full-stack.json similarity index 100% rename from public/jsons/roadmaps/full-stack.json rename to src/data/roadmaps/full-stack/full-stack.json diff --git a/public/jsons/roadmaps/golang.json b/src/data/roadmaps/golang/golang.json similarity index 100% rename from public/jsons/roadmaps/golang.json rename to src/data/roadmaps/golang/golang.json diff --git a/public/jsons/roadmaps/graphql.json b/src/data/roadmaps/graphql/graphql.json similarity index 100% rename from public/jsons/roadmaps/graphql.json rename to src/data/roadmaps/graphql/graphql.json diff --git a/public/jsons/roadmaps/java.json b/src/data/roadmaps/java/java.json similarity index 100% rename from public/jsons/roadmaps/java.json rename to src/data/roadmaps/java/java.json diff --git a/public/jsons/roadmaps/javascript.json b/src/data/roadmaps/javascript/javascript.json similarity index 100% rename from public/jsons/roadmaps/javascript.json rename to src/data/roadmaps/javascript/javascript.json diff --git a/public/jsons/roadmaps/kubernetes.json b/src/data/roadmaps/kubernetes/kubernetes.json similarity index 100% rename from public/jsons/roadmaps/kubernetes.json rename to src/data/roadmaps/kubernetes/kubernetes.json diff --git a/public/jsons/roadmaps/mongodb.json b/src/data/roadmaps/mongodb/mongodb.json similarity index 100% rename from public/jsons/roadmaps/mongodb.json rename to src/data/roadmaps/mongodb/mongodb.json diff --git a/src/data/roadmaps/nodejs/content/106-nodejs-command-line-apps/102-taking-input/index.md b/src/data/roadmaps/nodejs/content/106-nodejs-command-line-apps/102-taking-input/index.md index 4289311bf..4b4216ff4 100644 --- a/src/data/roadmaps/nodejs/content/106-nodejs-command-line-apps/102-taking-input/index.md +++ b/src/data/roadmaps/nodejs/content/106-nodejs-command-line-apps/102-taking-input/index.md @@ -1,3 +1,5 @@ # Taking input Node.js provides a few ways to take inputs from user, including the built-in `process.stdin` and `readline` module. There are also several third party packages like `prompts` and `Enquirer` built on top of `readline` that provide an easy to use and intuitive interface. + +- [How to read from stdin line by line in Node](https://stackoverflow.com/questions/20086849/how-to-read-from-stdin-line-by-line-in-node) \ No newline at end of file diff --git a/public/jsons/roadmaps/nodejs.json b/src/data/roadmaps/nodejs/nodejs.json similarity index 100% rename from public/jsons/roadmaps/nodejs.json rename to src/data/roadmaps/nodejs/nodejs.json diff --git a/public/jsons/roadmaps/postgresql-dba.json b/src/data/roadmaps/postgresql-dba/postgresql-dba.json similarity index 100% rename from public/jsons/roadmaps/postgresql-dba.json rename to src/data/roadmaps/postgresql-dba/postgresql-dba.json diff --git a/public/jsons/roadmaps/prompt-engineering.json b/src/data/roadmaps/prompt-engineering/prompt-engineering.json similarity index 100% rename from public/jsons/roadmaps/prompt-engineering.json rename to src/data/roadmaps/prompt-engineering/prompt-engineering.json diff --git a/src/data/roadmaps/python/content/102-python-advanced-topics/103-lambdas.md b/src/data/roadmaps/python/content/102-python-advanced-topics/103-lambdas.md index b07464b51..775be5944 100644 --- a/src/data/roadmaps/python/content/102-python-advanced-topics/103-lambdas.md +++ b/src/data/roadmaps/python/content/102-python-advanced-topics/103-lambdas.md @@ -4,5 +4,5 @@ Python Lambda Functions are anonymous function means that the function is withou Visit the following resources to learn more: -- [Python Lambda Functions](https://www.geeksforgeeks.org/python-lambda-anonymous-functions-filter-map-reduce/) - [Lambdas in Python](https://www.w3schools.com/python/python_lambda.asp) +- [How to use Lambda functions](https://realpython.com/python-lambda/) \ No newline at end of file diff --git a/src/data/roadmaps/python/content/107-python-testing/101-pytest.md b/src/data/roadmaps/python/content/107-python-testing/101-pytest.md index 34f008a1d..fc921a932 100644 --- a/src/data/roadmaps/python/content/107-python-testing/101-pytest.md +++ b/src/data/roadmaps/python/content/107-python-testing/101-pytest.md @@ -6,3 +6,4 @@ Visit the following resources to learn more: - [Official Docs](https://docs.pytest.org/) - [Pytest Tutorial](https://www.tutorialspoint.com/pytest/index.htm) +- [Effective Python Testing With Pytest](https://realpython.com/pytest-python-testing/) \ No newline at end of file diff --git a/public/jsons/roadmaps/python.json b/src/data/roadmaps/python/python.json similarity index 100% rename from public/jsons/roadmaps/python.json rename to src/data/roadmaps/python/python.json diff --git a/public/jsons/roadmaps/qa.json b/src/data/roadmaps/qa/qa.json similarity index 100% rename from public/jsons/roadmaps/qa.json rename to src/data/roadmaps/qa/qa.json diff --git a/src/data/roadmaps/react/content/102-components/103-props-vs-state.md b/src/data/roadmaps/react/content/102-components/103-props-vs-state.md index 20aedd62a..6e43daa2c 100644 --- a/src/data/roadmaps/react/content/102-components/103-props-vs-state.md +++ b/src/data/roadmaps/react/content/102-components/103-props-vs-state.md @@ -4,8 +4,7 @@ Props (short for “properties”) and state are both plain JavaScript objects. Visit the following resources to learn more: -- [Component State](https://reactjs.org/docs/faq-state.html) +- [State: A Component's Memory](https://react.dev/learn/state-a-components-memory) - [How to use Props in React](https://www.robinwieruch.de/react-pass-props-to-component/) - [What is the difference between state and props in React?](https://stackoverflow.com/questions/27991366/what-is-the-difference-between-state-and-props-in-react) -- [How to update state from props in React](https://www.robinwieruch.de/react-derive-state-props/) -- [Putting props to useState](https://tkdodo.eu/blog/putting-props-to-use-state) +- [How to update state from props in React](https://www.robinwieruch.de/react-derive-state-props/) \ No newline at end of file diff --git a/src/data/roadmaps/react/content/102-components/104-conditional-rendering.md b/src/data/roadmaps/react/content/102-components/104-conditional-rendering.md index 0efd11995..10138a09d 100644 --- a/src/data/roadmaps/react/content/102-components/104-conditional-rendering.md +++ b/src/data/roadmaps/react/content/102-components/104-conditional-rendering.md @@ -6,5 +6,5 @@ Conditional rendering in React works the same way conditions work in JavaScript. Visit the following resources to learn more: -- [Conditional Rendering](https://reactjs.org/docs/conditional-rendering.html) -- [Different techniques for conditional rendering in React](https://www.robinwieruch.de/conditional-rendering-react/) +- [Conditional Rendering](https://react.dev/learn/conditional-rendering) +- [Different techniques for conditional rendering in React](https://www.robinwieruch.de/conditional-rendering-react/) \ No newline at end of file diff --git a/src/data/roadmaps/react/content/102-components/index.md b/src/data/roadmaps/react/content/102-components/index.md index 8e445acbc..eed6c57ba 100644 --- a/src/data/roadmaps/react/content/102-components/index.md +++ b/src/data/roadmaps/react/content/102-components/index.md @@ -4,7 +4,6 @@ Components are the building blocks of React applications. They let us split the Visit the following resources to learn more: -- [Components and Props](https://reactjs.org/docs/components-and-props.html) -- [Components in Depth](https://reactjs.org/docs/react-component.html) +- [Creating and nesting components](https://react.dev/learn#components) - [Explore the different types of components in React](https://www.robinwieruch.de/react-component-types/) -- [What is the difference between components, elements, and instances?](https://www.robinwieruch.de/react-element-component/) +- [What is the difference between components, elements, and instances?](https://www.robinwieruch.de/react-element-component/) \ No newline at end of file diff --git a/public/jsons/roadmaps/react.json b/src/data/roadmaps/react/react.json similarity index 100% rename from public/jsons/roadmaps/react.json rename to src/data/roadmaps/react/react.json diff --git a/public/jsons/roadmaps/software-architect.json b/src/data/roadmaps/software-architect/software-architect.json similarity index 100% rename from public/jsons/roadmaps/software-architect.json rename to src/data/roadmaps/software-architect/software-architect.json diff --git a/public/jsons/roadmaps/software-design-architecture.json b/src/data/roadmaps/software-design-architecture/software-design-architecture.json similarity index 100% rename from public/jsons/roadmaps/software-design-architecture.json rename to src/data/roadmaps/software-design-architecture/software-design-architecture.json diff --git a/public/jsons/roadmaps/spring-boot.json b/src/data/roadmaps/spring-boot/spring-boot.json similarity index 100% rename from public/jsons/roadmaps/spring-boot.json rename to src/data/roadmaps/spring-boot/spring-boot.json diff --git a/src/data/roadmaps/system-design/content/110-application-layer/100-microservices.md b/src/data/roadmaps/system-design/content/110-application-layer/100-microservices.md index 032b5cea0..54ddaa7c4 100644 --- a/src/data/roadmaps/system-design/content/110-application-layer/100-microservices.md +++ b/src/data/roadmaps/system-design/content/110-application-layer/100-microservices.md @@ -8,3 +8,4 @@ To learn more, visit the following links: - [Introduction to Microservices](https://aws.amazon.com/microservices/) - [Microservices - Wikipedia](https://en.wikipedia.org/wiki/Microservices) +- [Microservices](https://martinfowler.com/articles/microservices.html) \ No newline at end of file diff --git a/public/jsons/roadmaps/system-design.json b/src/data/roadmaps/system-design/system-design.json similarity index 100% rename from public/jsons/roadmaps/system-design.json rename to src/data/roadmaps/system-design/system-design.json diff --git a/public/jsons/roadmaps/typescript.json b/src/data/roadmaps/typescript/typescript.json similarity index 100% rename from public/jsons/roadmaps/typescript.json rename to src/data/roadmaps/typescript/typescript.json diff --git a/src/data/roadmaps/ux-design/content/100-human-decision-making/frameworks/100-bj-frogg-behavior-model.md b/src/data/roadmaps/ux-design/content/100-human-decision-making/frameworks/100-bj-frogg-behavior-model.md index 3792bf240..b9fd11da6 100644 --- a/src/data/roadmaps/ux-design/content/100-human-decision-making/frameworks/100-bj-frogg-behavior-model.md +++ b/src/data/roadmaps/ux-design/content/100-human-decision-making/frameworks/100-bj-frogg-behavior-model.md @@ -1,4 +1,4 @@ -# BJ Fogg’s Behavior Model +# BJ Fogg's Behavior Model B.J. Fogg, a renowned psychologist, and researcher at Stanford University, proposed the [Fogg Behavior Model (FBM)](https://www.behaviormodel.org/). This insightful model helps UX designers understand and influence user behavior by focusing on three core elements. These key factors are motivation, ability, and triggers. @@ -9,3 +9,5 @@ B.J. Fogg, a renowned psychologist, and researcher at Stanford University, propo - **Triggers**: Triggers are the cues, notifications, or prompts that signal users to take an action. For an action to occur, triggers should be presented at the right time when the user has adequate motivation and ability. UX designers should strive to find the balance between these three factors to facilitate the desired user behavior. By understanding your audience and their needs, implementing clear and concise triggers, and minimizing the effort required for action, the FBM can be an effective tool for designing user-centered products. + +- [meaning of BJ fogg's behavior model](https://behaviormodel.org/) \ No newline at end of file diff --git a/src/data/roadmaps/ux-design/content/100-human-decision-making/frameworks/101-stephen-wendell-create-action-funnel.md b/src/data/roadmaps/ux-design/content/100-human-decision-making/frameworks/101-stephen-wendell-create-action-funnel.md index bea161fd0..e32a13be6 100644 --- a/src/data/roadmaps/ux-design/content/100-human-decision-making/frameworks/101-stephen-wendell-create-action-funnel.md +++ b/src/data/roadmaps/ux-design/content/100-human-decision-making/frameworks/101-stephen-wendell-create-action-funnel.md @@ -1,4 +1,4 @@ -# Stephen Wendell’s CREATE Action Funnel +# Stephen Wendell's CREATE Action Funnel Stephen Wendell's Create Action Funnel is a UX design framework focused on converting website visitors into active customers through a systematic and engaging process. The approach emphasizes on understanding user behavior, catering to their needs, and directing them towards specific actions. The Action Funnel consists of four major steps: @@ -11,3 +11,5 @@ Stephen Wendell's Create Action Funnel is a UX design framework focused on conve - **Refine and Test the Experience:** Use wireframes and prototypes to test and iteratively refine the user experience. Employ user testing, A/B testing, and analytics to gather insight on user behavior, preferences, and engagement. Continuously use feedback to make improvements, ensuring that the design effectively leads visitors down the action funnel. By implementing Stephen Wendell's `Create Action Funnel`, you can effectively guide users through an engaging journey that motivates them to become active customers, ultimately increasing conversion rates and overall satisfaction. + +- [Behavioral Science Crash Course: Steve Wendel's CREATE Action Funnel](https://www.prodify.group/blog/behavioral-science-crash-course-steve-wendels-create-action-funnel) \ No newline at end of file diff --git a/public/jsons/roadmaps/ux-design.json b/src/data/roadmaps/ux-design/ux-design.json similarity index 100% rename from public/jsons/roadmaps/ux-design.json rename to src/data/roadmaps/ux-design/ux-design.json diff --git a/public/jsons/roadmaps/vue.json b/src/data/roadmaps/vue/vue.json similarity index 100% rename from public/jsons/roadmaps/vue.json rename to src/data/roadmaps/vue/vue.json diff --git a/src/lib/roadmap.ts b/src/lib/roadmap.ts index d15bba55e..4481b08ac 100644 --- a/src/lib/roadmap.ts +++ b/src/lib/roadmap.ts @@ -2,7 +2,6 @@ import type { PageSponsorType } from '../components/PageSponsor'; import type { MarkdownFileType } from './file'; export interface RoadmapFrontmatter { - jsonUrl: string; pdfUrl: string; order: number; briefTitle: string; diff --git a/src/pages/[roadmapId]/index.astro b/src/pages/[roadmapId]/index.astro index ef99ea899..ea5402671 100644 --- a/src/pages/[roadmapId]/index.astro +++ b/src/pages/[roadmapId]/index.astro @@ -54,8 +54,6 @@ if (roadmapData.schema) { if (roadmapFAQs.length) { jsonLdSchema.push(generateFAQSchema(roadmapFAQs)); } - -const contentContributionLink = `https://github.com/kamranahmedse/developer-roadmap/tree/master/src/data/roadmaps/${roadmapId}/content`; --- { - !roadmapData.isUpcoming && roadmapData.jsonUrl && ( + !roadmapData.isUpcoming && roadmapData.briefTitle !== 'Android' && (
@@ -108,7 +105,7 @@ const contentContributionLink = `https://github.com/kamranahmedse/developer-road } { - !roadmapData.isUpcoming && !roadmapData.jsonUrl && ( + !roadmapData.isUpcoming && roadmapData.briefTitle === 'Android' && (
diff --git a/src/pages/[roadmapId]/index.json.ts b/src/pages/[roadmapId]/index.json.ts new file mode 100644 index 000000000..ff2620f54 --- /dev/null +++ b/src/pages/[roadmapId]/index.json.ts @@ -0,0 +1,27 @@ +import type { APIRoute } from 'astro'; + +export async function getStaticPaths() { + const roadmapJsons = await import.meta.glob('/src/data/roadmaps/**/*.json', { + eager: true, + }); + + return Object.keys(roadmapJsons).map((filePath) => { + const roadmapId = filePath.split('/').pop()?.replace('.json', ''); + const roadmapJson = roadmapJsons[filePath] as Record; + + return { + params: { + roadmapId, + }, + props: { + roadmapJson: roadmapJson?.default, + }, + }; + }); +} + +export const get: APIRoute = async function ({ params, request, props }) { + return { + body: JSON.stringify(props.roadmapJson), + }; +}; diff --git a/src/pages/best-practices/[bestPracticeId]/index.json.ts b/src/pages/best-practices/[bestPracticeId]/index.json.ts new file mode 100644 index 000000000..20cab9619 --- /dev/null +++ b/src/pages/best-practices/[bestPracticeId]/index.json.ts @@ -0,0 +1,30 @@ +import type { APIRoute } from 'astro'; + +export async function getStaticPaths() { + const bestPracticeJsons = await import.meta.glob( + '/src/data/best-practices/**/*.json', + { + eager: true, + } + ); + + return Object.keys(bestPracticeJsons).map((filePath) => { + const bestPracticeId = filePath.split('/').pop()?.replace('.json', ''); + const bestPracticeJson = bestPracticeJsons[filePath] as Record; + + return { + params: { + bestPracticeId, + }, + props: { + bestPracticeJson: bestPracticeJson?.default, + }, + }; + }); +} + +export const get: APIRoute = async function ({ params, request, props }) { + return { + body: JSON.stringify(props.bestPracticeJson), + }; +};