diff --git a/content/roadmaps/108-python/content-paths.json b/content/roadmaps/108-python/content-paths.json
index d32096bd4..da1091fdc 100644
--- a/content/roadmaps/108-python/content-paths.json
+++ b/content/roadmaps/108-python/content-paths.json
@@ -35,6 +35,7 @@
"python-package-managers": "/roadmaps/108-python/content/105-python-package-managers/readme.md",
"python-package-managers:pypi": "/roadmaps/108-python/content/105-python-package-managers/100-pypi.md",
"python-package-managers:pip": "/roadmaps/108-python/content/105-python-package-managers/101-pip.md",
+ "python-package-managers:conda": "/roadmaps/108-python/content/105-python-package-managers/102-conda.md",
"python-frameworks": "/roadmaps/108-python/content/106-python-frameworks/readme.md",
"python-frameworks:fastapi": "/roadmaps/108-python/content/106-python-frameworks/102-fastapi.md",
"python-frameworks:synchronous": "/roadmaps/108-python/content/106-python-frameworks/100-synchronous/readme.md",
@@ -50,5 +51,6 @@
"python-testing:unittest-pyunit": "/roadmaps/108-python/content/107-python-testing/100-unittest-pyunit.md",
"python-testing:pytest": "/roadmaps/108-python/content/107-python-testing/101-pytest.md",
"python-testing:doctest": "/roadmaps/108-python/content/107-python-testing/102-doctest.md",
- "python-testing:nose": "/roadmaps/108-python/content/107-python-testing/102-nose.md"
+ "python-testing:nose": "/roadmaps/108-python/content/107-python-testing/102-nose.md",
+ "python-roadmap-note": "/roadmaps/108-python/content/100-roadmap-note.md"
}
diff --git a/content/roadmaps/108-python/content/100-roadmap-note.md b/content/roadmaps/108-python/content/100-roadmap-note.md
new file mode 100644
index 000000000..73bc06e31
--- /dev/null
+++ b/content/roadmaps/108-python/content/100-roadmap-note.md
@@ -0,0 +1,4 @@
+# Note
+
+This roadmap specifically covers **Python and the ecosystem** around it. You will notice that it is missing things like version control, databases, software design, architecture and other things that are not directly related to Python; this is intentional. Have a look at the [Backend Roadmap](/roadmaps/backend) for a more comprehensive overview of the frontend ecosystem.
+
diff --git a/content/roadmaps/108-python/content/105-python-package-managers/102-conda.md b/content/roadmaps/108-python/content/105-python-package-managers/102-conda.md
new file mode 100644
index 000000000..353b0167b
--- /dev/null
+++ b/content/roadmaps/108-python/content/105-python-package-managers/102-conda.md
@@ -0,0 +1,9 @@
+# Conda
+
+Conda is an open source package management system and environment management system that runs on Windows, macOS, and Linux. Conda quickly installs, runs and updates packages and their dependencies. Conda easily creates, saves, loads and switches between environments on your local computer. It was created for Python programs, but it can package and distribute software for any language.
+
+Conda as a package manager helps you find and install packages. If you need a package that requires a different version of Python, you do not need to switch to a different environment manager, because conda is also an environment manager. With just a few commands, you can set up a totally separate environment to run that different version of Python, while continuing to run your usual version of Python in your normal environment.
+
+Free Content
+Conda Docs
+
diff --git a/public/project/python.json b/public/project/python.json
index 06d924c86..4a625ef3d 100644
--- a/public/project/python.json
+++ b/public/project/python.json
@@ -3,15 +3,45 @@
"controls": {
"control": [
{
- "ID": "13446",
+ "ID": "14755",
"typeID": "Arrow",
- "zOrder": "81",
+ "zOrder": "0",
"w": "1",
- "h": "98",
+ "h": "82",
"measuredW": "150",
"measuredH": "100",
- "x": "819",
- "y": "1314",
+ "x": "1136",
+ "y": "1104",
+ "properties": {
+ "curvature": "0",
+ "leftArrow": "false",
+ "rightArrow": "false",
+ "color": "10027263",
+ "p0": {
+ "x": 0,
+ "y": -0.24280136823927023
+ },
+ "p1": {
+ "x": 0.4604452230239245,
+ "y": 0.003676653605416392
+ },
+ "p2": {
+ "x": 0,
+ "y": 82
+ },
+ "stroke": "dotted"
+ }
+ },
+ {
+ "ID": "14756",
+ "typeID": "Arrow",
+ "zOrder": "1",
+ "w": "199",
+ "h": "108",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "847",
+ "y": "1065",
"properties": {
"curvature": "0",
"leftArrow": "false",
@@ -19,76 +49,88 @@
"color": "10027263",
"p0": {
"x": -0.5,
- "y": -0.5
- },
- "p1": {
- "x": 0.5259259259259262,
"y": 0
},
- "p2": {
- "x": -0.5,
- "y": 97
+ "p1": {
+ "x": 0.3700657239593706,
+ "y": -0.20041824337781317
},
- "stroke": "dotted"
- }
- },
- {
- "ID": "13459",
- "typeID": "__group__",
- "zOrder": "85",
- "measuredW": "148",
- "measuredH": "42",
- "w": "148",
- "h": "42",
- "x": "762",
- "y": "861",
- "properties": {
- "controlName": "100-python-package-managers:pypi"
- },
- "children": {
- "controls": {
- "control": [
- {
- "ID": "0",
- "typeID": "Canvas",
- "zOrder": "0",
- "w": "148",
- "h": "42",
- "measuredW": "100",
- "measuredH": "70",
- "x": "0",
- "y": "0",
- "properties": {
- "color": "16770457"
- }
- },
- {
- "ID": "1",
- "typeID": "Label",
- "zOrder": "1",
- "measuredW": "33",
- "measuredH": "24",
- "x": "57",
- "y": "9",
- "properties": {
- "size": "16",
- "text": "PyPI"
- }
- }
- ]
+ "p2": {
+ "x": 198.5,
+ "y": 108
}
}
},
{
- "ID": "13473",
+ "ID": "14757",
"typeID": "Arrow",
- "zOrder": "71",
- "w": "1",
- "h": "77",
+ "zOrder": "2",
+ "w": "101",
+ "h": "24",
"measuredW": "150",
"measuredH": "100",
- "x": "414",
- "y": "706",
+ "x": "418",
+ "y": "1047",
+ "properties": {
+ "curvature": "0",
+ "leftArrow": "false",
+ "rightArrow": "false",
+ "color": "10027263",
+ "stroke": "dotted",
+ "p0": {
+ "x": 0,
+ "y": 24.5
+ },
+ "p1": {
+ "x": 0.4704601401249764,
+ "y": 0.0798144290854005
+ },
+ "p2": {
+ "x": 101,
+ "y": 0.5
+ }
+ }
+ },
+ {
+ "ID": "14758",
+ "typeID": "Arrow",
+ "zOrder": "3",
+ "w": "129",
+ "h": "166",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "424",
+ "y": "1110",
+ "properties": {
+ "curvature": "0",
+ "leftArrow": "false",
+ "rightArrow": "false",
+ "color": "10027263",
+ "stroke": "dotted",
+ "p0": {
+ "x": 0,
+ "y": 165.5
+ },
+ "p1": {
+ "x": 0.5753331674095528,
+ "y": 0.07360228069778492
+ },
+ "p2": {
+ "x": 129,
+ "y": -0.5
+ }
+ }
+ },
+ {
+ "ID": "14759",
+ "typeID": "Arrow",
+ "zOrder": "4",
+ "w": "86",
+ "h": "27",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "679",
+ "y": "1037",
"properties": {
"curvature": "0",
"leftArrow": "false",
@@ -96,29 +138,624 @@
"stroke": "dotted",
"color": "10027263",
"p0": {
- "x": 0,
- "y": 76.5
+ "x": 85.5,
+ "y": 27
},
"p1": {
- "x": 0.5494505494505496,
- "y": 0
+ "x": 0.5986120996441281,
+ "y": 0.12644128113878994
},
"p2": {
"x": 0,
- "y": -0.5
+ "y": 0
}
}
},
{
- "ID": "13481",
+ "ID": "14760",
+ "typeID": "Arrow",
+ "zOrder": "5",
+ "w": "87",
+ "h": "28",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "679",
+ "y": "1073",
+ "properties": {
+ "curvature": "0",
+ "leftArrow": "false",
+ "rightArrow": "false",
+ "stroke": "dotted",
+ "color": "10027263",
+ "p0": {
+ "x": 86.5,
+ "y": 0
+ },
+ "p1": {
+ "x": 0.6497109826589595,
+ "y": -0.08978805394990365
+ },
+ "p2": {
+ "x": 0,
+ "y": 28
+ }
+ }
+ },
+ {
+ "ID": "14761",
+ "typeID": "Arrow",
+ "zOrder": "6",
+ "w": "1",
+ "h": "352",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "845",
+ "y": "716",
+ "properties": {
+ "curvature": "0",
+ "leftArrow": "false",
+ "rightArrow": "false",
+ "color": "10027263",
+ "p0": {
+ "x": 0,
+ "y": -0.24280136823927023
+ },
+ "p1": {
+ "x": 0.4604452230239245,
+ "y": 0.0036766536054163917
+ },
+ "p2": {
+ "x": 0,
+ "y": 352
+ }
+ }
+ },
+ {
+ "ID": "14762",
+ "typeID": "Arrow",
+ "zOrder": "7",
+ "w": "214",
+ "h": "141",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "827",
+ "y": "1184",
+ "properties": {
+ "curvature": "0",
+ "leftArrow": "false",
+ "rightArrow": "false",
+ "color": "10027263",
+ "p0": {
+ "x": 214.5,
+ "y": 0
+ },
+ "p1": {
+ "x": 0.5712545436900968,
+ "y": -0.21227347450676648
+ },
+ "p2": {
+ "x": 0.20376246056980563,
+ "y": 141.43444344459454
+ }
+ }
+ },
+ {
+ "ID": "14763",
+ "typeID": "Arrow",
+ "zOrder": "8",
+ "w": "110",
+ "h": "112",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "422",
+ "y": "920",
+ "properties": {
+ "curvature": "0",
+ "leftArrow": "false",
+ "rightArrow": "false",
+ "color": "10027263",
+ "stroke": "dotted",
+ "p0": {
+ "x": -0.5,
+ "y": 0
+ },
+ "p1": {
+ "x": 0.49256306145204387,
+ "y": -0.1262491321818526
+ },
+ "p2": {
+ "x": 109,
+ "y": 111.5
+ }
+ }
+ },
+ {
+ "ID": "14764",
+ "typeID": "Arrow",
+ "zOrder": "9",
+ "w": "123",
+ "h": "133",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "424",
+ "y": "1107",
+ "properties": {
+ "curvature": "0",
+ "leftArrow": "false",
+ "rightArrow": "false",
+ "color": "10027263",
+ "stroke": "dotted",
+ "p0": {
+ "x": 0,
+ "y": 133
+ },
+ "p1": {
+ "x": 0.4810165153269547,
+ "y": 0.11402279237004083
+ },
+ "p2": {
+ "x": 123,
+ "y": 0
+ }
+ }
+ },
+ {
+ "ID": "14765",
+ "typeID": "Arrow",
+ "zOrder": "10",
+ "w": "106",
+ "h": "93",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "425",
+ "y": "1102",
+ "properties": {
+ "curvature": "0",
+ "leftArrow": "false",
+ "rightArrow": "false",
+ "color": "10027263",
+ "stroke": "dotted",
+ "p0": {
+ "x": 0,
+ "y": 93
+ },
+ "p1": {
+ "x": 0.40844857933115414,
+ "y": 0.13221020870002514
+ },
+ "p2": {
+ "x": 106,
+ "y": 0
+ }
+ }
+ },
+ {
+ "ID": "14766",
+ "typeID": "Arrow",
+ "zOrder": "11",
+ "w": "105",
+ "h": "45",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "419",
+ "y": "1104",
+ "properties": {
+ "curvature": "0",
+ "leftArrow": "false",
+ "rightArrow": "false",
+ "color": "10027263",
+ "stroke": "dotted",
+ "p0": {
+ "x": 0,
+ "y": 45
+ },
+ "p1": {
+ "x": 0.3839080459770115,
+ "y": 0.14022988505747125
+ },
+ "p2": {
+ "x": 105,
+ "y": 0
+ }
+ }
+ },
+ {
+ "ID": "14767",
+ "typeID": "Arrow",
+ "zOrder": "12",
+ "w": "91",
+ "h": "19",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "418",
+ "y": "1074",
+ "properties": {
+ "curvature": "0",
+ "leftArrow": "false",
+ "rightArrow": "false",
+ "color": "10027263",
+ "stroke": "dotted",
+ "p0": {
+ "x": 0,
+ "y": -0.5
+ },
+ "p1": {
+ "x": 0.4292794822430673,
+ "y": -0.0842174251423423
+ },
+ "p2": {
+ "x": 91,
+ "y": 17.5
+ }
+ }
+ },
+ {
+ "ID": "14768",
+ "typeID": "Arrow",
+ "zOrder": "13",
+ "w": "105",
+ "h": "60",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "423",
+ "y": "973",
+ "properties": {
+ "curvature": "0",
+ "leftArrow": "false",
+ "rightArrow": "false",
+ "color": "10027263",
+ "stroke": "dotted",
+ "p0": {
+ "x": -0.5,
+ "y": 0
+ },
+ "p1": {
+ "x": 0.39794612911033506,
+ "y": -0.1274852183534456
+ },
+ "p2": {
+ "x": 104,
+ "y": 59.5
+ }
+ }
+ },
+ {
+ "ID": "14769",
+ "typeID": "Arrow",
+ "zOrder": "14",
+ "w": "94",
+ "h": "24",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "420",
+ "y": "1016",
+ "properties": {
+ "curvature": "0",
+ "leftArrow": "false",
+ "rightArrow": "false",
+ "color": "10027263",
+ "stroke": "dotted",
+ "p0": {
+ "x": -0.5,
+ "y": 0
+ },
+ "p1": {
+ "x": 0.487852196079316,
+ "y": -0.041868754088745526
+ },
+ "p2": {
+ "x": 93,
+ "y": 24
+ }
+ }
+ },
+ {
+ "ID": "14770",
+ "typeID": "Arrow",
+ "zOrder": "15",
+ "w": "1",
+ "h": "220",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "663",
+ "y": "590",
+ "properties": {
+ "curvature": "0",
+ "leftArrow": "false",
+ "rightArrow": "false",
+ "color": "10027263",
+ "stroke": "dotted",
+ "p0": {
+ "x": 0,
+ "y": 0
+ },
+ "p1": {
+ "x": 0.46044522302392416,
+ "y": 0.0036766536054163913
+ },
+ "p2": {
+ "x": 0,
+ "y": 219.5
+ }
+ }
+ },
+ {
+ "ID": "14771",
+ "typeID": "Arrow",
+ "zOrder": "16",
+ "w": "129",
+ "h": "131",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "507",
+ "y": "570",
+ "properties": {
+ "curvature": "0",
+ "leftArrow": "false",
+ "rightArrow": "false",
+ "color": "10027263",
+ "stroke": "dotted",
+ "p0": {
+ "x": 0,
+ "y": 0
+ },
+ "p1": {
+ "x": 0.4613181955189419,
+ "y": -0.10434039987944232
+ },
+ "p2": {
+ "x": 129,
+ "y": 130.5
+ }
+ }
+ },
+ {
+ "ID": "14772",
+ "typeID": "Arrow",
+ "zOrder": "17",
+ "w": "128",
+ "h": "91",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "507",
+ "y": "617",
+ "properties": {
+ "curvature": "0",
+ "leftArrow": "false",
+ "rightArrow": "false",
+ "color": "10027263",
+ "stroke": "dotted",
+ "p0": {
+ "x": 0,
+ "y": 0
+ },
+ "p1": {
+ "x": 0.461318195518942,
+ "y": -0.10434039987944228
+ },
+ "p2": {
+ "x": 128,
+ "y": 90.5
+ }
+ }
+ },
+ {
+ "ID": "14773",
+ "typeID": "Arrow",
+ "zOrder": "18",
+ "w": "134",
+ "h": "50",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "505",
+ "y": "664",
+ "properties": {
+ "curvature": "0",
+ "leftArrow": "false",
+ "rightArrow": "false",
+ "color": "10027263",
+ "stroke": "dotted",
+ "p0": {
+ "x": 0,
+ "y": 0
+ },
+ "p1": {
+ "x": 0.461318195518942,
+ "y": -0.10434039987944237
+ },
+ "p2": {
+ "x": 134,
+ "y": 49.5
+ }
+ }
+ },
+ {
+ "ID": "14774",
+ "typeID": "Arrow",
+ "zOrder": "19",
+ "w": "138",
+ "h": "6",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "496",
+ "y": "717",
+ "properties": {
+ "curvature": "0",
+ "leftArrow": "false",
+ "rightArrow": "false",
+ "color": "10027263",
+ "p0": {
+ "x": 0,
+ "y": -0.5
+ },
+ "p1": {
+ "x": 0.46044522302392427,
+ "y": 0.0036766536054163978
+ },
+ "p2": {
+ "x": 138,
+ "y": 5.5
+ },
+ "stroke": "dotted"
+ }
+ },
+ {
+ "ID": "14775",
+ "typeID": "Arrow",
+ "zOrder": "20",
+ "w": "122",
+ "h": "114",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "846",
+ "y": "598",
+ "properties": {
+ "curvature": "0",
+ "leftArrow": "false",
+ "rightArrow": "false",
+ "color": "10027263",
+ "p0": {
+ "x": 122.5,
+ "y": -0.5
+ },
+ "p1": {
+ "x": 0.5299139167862267,
+ "y": -0.2574605451936872
+ },
+ "p2": {
+ "x": 0.5,
+ "y": 113.5
+ }
+ }
+ },
+ {
+ "ID": "14776",
+ "typeID": "Arrow",
+ "zOrder": "21",
+ "w": "1",
+ "h": "76",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "1094",
+ "y": "591",
+ "properties": {
+ "curvature": "0",
+ "leftArrow": "false",
+ "rightArrow": "false",
+ "color": "10027263",
+ "p0": {
+ "x": 0,
+ "y": 0
+ },
+ "p1": {
+ "x": 0.4604452230239241,
+ "y": 0.0036766536054163913
+ },
+ "p2": {
+ "x": 0,
+ "y": 76
+ },
+ "stroke": "dotted"
+ }
+ },
+ {
+ "ID": "14777",
+ "typeID": "Arrow",
+ "zOrder": "22",
+ "w": "221",
+ "h": "117",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "744",
+ "y": "469",
+ "properties": {
+ "curvature": "0",
+ "leftArrow": "false",
+ "rightArrow": "false",
+ "color": "10027263",
+ "p0": {
+ "x": 0.5,
+ "y": 0
+ },
+ "p1": {
+ "x": 0.3557172557172557,
+ "y": -0.2189189189189189
+ },
+ "p2": {
+ "x": 221.5,
+ "y": 117
+ }
+ }
+ },
+ {
+ "ID": "14778",
+ "typeID": "Arrow",
+ "zOrder": "23",
+ "w": "1",
+ "h": "95",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "744",
+ "y": "159",
+ "properties": {
+ "curvature": "0",
+ "leftArrow": "false",
+ "rightArrow": "false",
+ "color": "10027263",
+ "p0": {
+ "x": 0,
+ "y": -0.27685841682816204
+ },
+ "p1": {
+ "x": 0.46044522302392427,
+ "y": 0.003676653605416392
+ },
+ "p2": {
+ "x": 0,
+ "y": 94.59824914485046
+ },
+ "stroke": "dotted"
+ }
+ },
+ {
+ "ID": "14779",
+ "typeID": "Arrow",
+ "zOrder": "24",
+ "w": "1",
+ "h": "80",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "744",
+ "y": "262",
+ "properties": {
+ "curvature": "0",
+ "leftArrow": "false",
+ "rightArrow": "false",
+ "color": "10027263",
+ "p0": {
+ "x": 0,
+ "y": 0
+ },
+ "p1": {
+ "x": 0.46044522302392416,
+ "y": 0.003676653605416392
+ },
+ "p2": {
+ "x": 0,
+ "y": 80.06287646587509
+ }
+ }
+ },
+ {
+ "ID": "14780",
"typeID": "Arrow",
"zOrder": "25",
"w": "120",
"h": "45",
"measuredW": "150",
"measuredH": "100",
- "x": "861",
- "y": "407",
+ "x": "871",
+ "y": "417",
"properties": {
"curvature": "0",
"leftArrow": "false",
@@ -140,15 +777,15 @@
}
},
{
- "ID": "13482",
+ "ID": "14781",
"typeID": "Arrow",
"zOrder": "26",
"w": "120",
"h": "44",
"measuredW": "150",
"measuredH": "100",
- "x": "857",
- "y": "465",
+ "x": "867",
+ "y": "475",
"properties": {
"curvature": "0",
"leftArrow": "false",
@@ -170,15 +807,15 @@
}
},
{
- "ID": "13483",
+ "ID": "14782",
"typeID": "Arrow",
"zOrder": "27",
"w": "99",
"h": "50",
"measuredW": "150",
"measuredH": "100",
- "x": "545",
- "y": "406",
+ "x": "555",
+ "y": "416",
"properties": {
"curvature": "0",
"leftArrow": "false",
@@ -200,15 +837,15 @@
}
},
{
- "ID": "13484",
+ "ID": "14783",
"typeID": "Arrow",
"zOrder": "28",
"w": "99",
"h": "50",
"measuredW": "150",
"measuredH": "100",
- "x": "546",
- "y": "462",
+ "x": "556",
+ "y": "472",
"properties": {
"curvature": "0",
"leftArrow": "false",
@@ -230,15 +867,15 @@
}
},
{
- "ID": "13485",
+ "ID": "14784",
"typeID": "Arrow",
"zOrder": "29",
"w": "115",
"h": "3",
"measuredW": "150",
"measuredH": "100",
- "x": "534",
- "y": "457",
+ "x": "544",
+ "y": "467",
"properties": {
"curvature": "0",
"leftArrow": "false",
@@ -260,15 +897,15 @@
}
},
{
- "ID": "13486",
+ "ID": "14785",
"typeID": "Arrow",
"zOrder": "30",
"w": "143",
"h": "3",
"measuredW": "150",
"measuredH": "100",
- "x": "837",
- "y": "457",
+ "x": "847",
+ "y": "467",
"properties": {
"curvature": "0",
"leftArrow": "false",
@@ -290,28 +927,28 @@
}
},
{
- "ID": "13487",
+ "ID": "14786",
"typeID": "Label",
"zOrder": "31",
"measuredW": "87",
"measuredH": "36",
- "x": "691",
- "y": "338",
+ "x": "701",
+ "y": "348",
"properties": {
"text": "Python",
"size": "28"
}
},
{
- "ID": "13488",
+ "ID": "14787",
"typeID": "Arrow",
"zOrder": "32",
"w": "1",
"h": "55",
"measuredW": "150",
"measuredH": "100",
- "x": "734",
- "y": "390",
+ "x": "744",
+ "y": "400",
"properties": {
"curvature": "0",
"leftArrow": "false",
@@ -332,15 +969,15 @@
}
},
{
- "ID": "13489",
+ "ID": "14788",
"typeID": "__group__",
"zOrder": "33",
"measuredW": "262",
"measuredH": "43",
"w": "262",
"h": "43",
- "x": "614",
- "y": "437",
+ "x": "624",
+ "y": "447",
"properties": {
"controlName": "100-python-basics"
},
@@ -379,15 +1016,15 @@
}
},
{
- "ID": "13490",
+ "ID": "14789",
"typeID": "__group__",
"zOrder": "34",
"measuredW": "222",
"measuredH": "42",
"w": "222",
"h": "42",
- "x": "329",
- "y": "392",
+ "x": "339",
+ "y": "402",
"properties": {
"controlName": "100-python-basics:basic-syntax"
},
@@ -427,15 +1064,15 @@
}
},
{
- "ID": "13491",
+ "ID": "14790",
"typeID": "__group__",
"zOrder": "35",
"measuredW": "222",
"measuredH": "42",
"w": "222",
"h": "42",
- "x": "329",
- "y": "438",
+ "x": "339",
+ "y": "448",
"properties": {
"controlName": "101-python-basics:variables-and-datatypes"
},
@@ -475,15 +1112,15 @@
}
},
{
- "ID": "13492",
+ "ID": "14791",
"typeID": "__group__",
"zOrder": "36",
"measuredW": "256",
"measuredH": "42",
"w": "256",
"h": "42",
- "x": "948",
- "y": "484",
+ "x": "958",
+ "y": "494",
"properties": {
"controlName": "105-python-basics:lists-tuples-sets-dictionaries"
},
@@ -522,15 +1159,15 @@
}
},
{
- "ID": "13493",
+ "ID": "14792",
"typeID": "__group__",
"zOrder": "37",
"measuredW": "222",
"measuredH": "42",
"w": "222",
"h": "42",
- "x": "329",
- "y": "484",
+ "x": "339",
+ "y": "494",
"properties": {
"controlName": "102-python-basics:conditionals"
},
@@ -570,15 +1207,15 @@
}
},
{
- "ID": "13494",
+ "ID": "14793",
"typeID": "__group__",
"zOrder": "38",
"measuredW": "254",
"measuredH": "42",
"w": "254",
"h": "42",
- "x": "948",
- "y": "391",
+ "x": "958",
+ "y": "401",
"properties": {
"controlName": "103-python-basics:typecasting-exceptions"
},
@@ -617,15 +1254,15 @@
}
},
{
- "ID": "13495",
+ "ID": "14794",
"typeID": "__group__",
"zOrder": "39",
"measuredW": "256",
"measuredH": "42",
"w": "256",
"h": "42",
- "x": "948",
- "y": "438",
+ "x": "958",
+ "y": "448",
"properties": {
"controlName": "104-python-basics:functions"
},
@@ -665,15 +1302,15 @@
}
},
{
- "ID": "13496",
+ "ID": "14795",
"typeID": "__group__",
"zOrder": "40",
"measuredW": "262",
"measuredH": "43",
"w": "262",
"h": "43",
- "x": "943",
- "y": "561",
+ "x": "953",
+ "y": "571",
"properties": {
"controlName": "101-data-structures-and-algorithms"
},
@@ -712,15 +1349,15 @@
}
},
{
- "ID": "13497",
+ "ID": "14796",
"typeID": "__group__",
"zOrder": "41",
"measuredW": "222",
"measuredH": "42",
"w": "222",
"h": "42",
- "x": "984",
- "y": "636",
+ "x": "994",
+ "y": "646",
"properties": {
"controlName": "100-data-structures-and-algorithms:arrays-linked-lists"
},
@@ -759,15 +1396,15 @@
}
},
{
- "ID": "13498",
+ "ID": "14797",
"typeID": "__group__",
"zOrder": "42",
"measuredW": "222",
"measuredH": "42",
"w": "222",
"h": "42",
- "x": "984",
- "y": "682",
+ "x": "994",
+ "y": "692",
"properties": {
"controlName": "101-data-structures-and-algorithms:heaps-stacks-queues"
},
@@ -806,15 +1443,15 @@
}
},
{
- "ID": "13499",
+ "ID": "14798",
"typeID": "__group__",
"zOrder": "43",
"measuredW": "222",
"measuredH": "42",
"w": "222",
"h": "42",
- "x": "985",
- "y": "729",
+ "x": "995",
+ "y": "739",
"properties": {
"controlName": "102-data-structures-and-algorithms:hash-tables"
},
@@ -853,15 +1490,15 @@
}
},
{
- "ID": "13500",
+ "ID": "14799",
"typeID": "__group__",
"zOrder": "44",
"measuredW": "222",
"measuredH": "42",
"w": "222",
"h": "42",
- "x": "984",
- "y": "775",
+ "x": "994",
+ "y": "785",
"properties": {
"controlName": "103-data-structures-and-algorithms:binary-search-trees"
},
@@ -900,15 +1537,15 @@
}
},
{
- "ID": "13501",
+ "ID": "14800",
"typeID": "__group__",
"zOrder": "45",
"measuredW": "222",
"measuredH": "42",
"w": "222",
"h": "42",
- "x": "984",
- "y": "822",
+ "x": "994",
+ "y": "832",
"properties": {
"controlName": "104-data-structures-and-algorithms:recursion"
},
@@ -947,15 +1584,15 @@
}
},
{
- "ID": "13502",
+ "ID": "14801",
"typeID": "__group__",
"zOrder": "46",
"measuredW": "222",
"measuredH": "42",
"w": "222",
"h": "42",
- "x": "984",
- "y": "869",
+ "x": "994",
+ "y": "879",
"properties": {
"controlName": "105-data-structures-and-algorithms:sorting-algorithms"
},
@@ -994,15 +1631,15 @@
}
},
{
- "ID": "13503",
+ "ID": "14802",
"typeID": "__group__",
"zOrder": "47",
"measuredW": "311",
"measuredH": "43",
"w": "311",
"h": "43",
- "x": "612",
- "y": "680",
+ "x": "622",
+ "y": "690",
"properties": {
"controlName": "102-python-advanced-topics"
},
@@ -1041,343 +1678,15 @@
}
},
{
- "ID": "13504",
- "typeID": "__group__",
- "zOrder": "72",
- "measuredW": "131",
- "measuredH": "184",
- "w": "131",
- "h": "184",
- "x": "373",
- "y": "689",
- "properties": {
- "controlName": "100-python-advanced-topics:oop"
- },
- "children": {
- "controls": {
- "control": [
- {
- "ID": "0",
- "typeID": "Canvas",
- "zOrder": "0",
- "w": "131",
- "h": "184",
- "measuredW": "100",
- "measuredH": "70",
- "x": "0",
- "y": "0"
- },
- {
- "ID": "1",
- "typeID": "Label",
- "zOrder": "1",
- "measuredW": "35",
- "measuredH": "24",
- "x": "48",
- "y": "9",
- "properties": {
- "text": "OOP",
- "size": "16"
- }
- }
- ]
- }
- }
- },
- {
- "ID": "13505",
- "typeID": "__group__",
- "zOrder": "73",
- "measuredW": "169",
- "measuredH": "42",
- "w": "169",
- "h": "42",
- "x": "320",
- "y": "727",
- "properties": {
- "controlName": "102-python-advanced-topics:oop:classes"
- },
- "children": {
- "controls": {
- "control": [
- {
- "ID": "0",
- "typeID": "Canvas",
- "zOrder": "0",
- "w": "169",
- "h": "42",
- "measuredW": "100",
- "measuredH": "70",
- "x": "0",
- "y": "0",
- "properties": {
- "color": "16770457"
- }
- },
- {
- "ID": "1",
- "typeID": "Label",
- "zOrder": "1",
- "w": "60",
- "measuredW": "58",
- "measuredH": "24",
- "x": "55",
- "y": "9",
- "properties": {
- "size": "16",
- "text": "Classes"
- }
- }
- ]
- }
- }
- },
- {
- "ID": "13506",
- "typeID": "__group__",
- "zOrder": "74",
- "measuredW": "169",
- "measuredH": "42",
- "w": "169",
- "h": "42",
- "x": "320",
- "y": "773",
- "properties": {
- "controlName": "101-python-advanced-topics:oop:inheritance"
- },
- "children": {
- "controls": {
- "control": [
- {
- "ID": "0",
- "typeID": "Canvas",
- "zOrder": "0",
- "w": "169",
- "h": "42",
- "measuredW": "100",
- "measuredH": "70",
- "x": "0",
- "y": "0",
- "properties": {
- "color": "16770457"
- }
- },
- {
- "ID": "1",
- "typeID": "Label",
- "zOrder": "1",
- "w": "86",
- "measuredW": "83",
- "measuredH": "24",
- "x": "42",
- "y": "9",
- "properties": {
- "size": "16",
- "text": "Inheritance"
- }
- }
- ]
- }
- }
- },
- {
- "ID": "13507",
- "typeID": "__group__",
- "zOrder": "75",
- "measuredW": "169",
- "measuredH": "42",
- "w": "169",
- "h": "42",
- "x": "320",
- "y": "819",
- "properties": {
- "controlName": "100-python-advanced-topics:oop:methods-dunder"
- },
- "children": {
- "controls": {
- "control": [
- {
- "ID": "0",
- "typeID": "Canvas",
- "zOrder": "0",
- "w": "169",
- "h": "42",
- "measuredW": "100",
- "measuredH": "70",
- "x": "0",
- "y": "0",
- "properties": {
- "color": "16770457"
- }
- },
- {
- "ID": "1",
- "typeID": "Label",
- "zOrder": "1",
- "measuredW": "125",
- "measuredH": "24",
- "x": "20",
- "y": "9",
- "properties": {
- "text": "Methods, Dunder",
- "size": "16"
- }
- }
- ]
- }
- }
- },
- {
- "ID": "13508",
- "typeID": "__group__",
- "zOrder": "76",
- "measuredW": "172",
- "measuredH": "42",
- "w": "172",
- "h": "42",
- "x": "330",
- "y": "591",
- "properties": {
- "controlName": "102-python-advanced-topics:decorators"
- },
- "children": {
- "controls": {
- "control": [
- {
- "ID": "0",
- "typeID": "Canvas",
- "zOrder": "0",
- "w": "172",
- "h": "42",
- "measuredW": "100",
- "measuredH": "70",
- "x": "0",
- "y": "0",
- "properties": {
- "color": "16770457"
- }
- },
- {
- "ID": "1",
- "typeID": "Label",
- "zOrder": "1",
- "measuredW": "81",
- "measuredH": "24",
- "x": "45",
- "y": "9",
- "properties": {
- "size": "16",
- "text": "Decorators"
- }
- }
- ]
- }
- }
- },
- {
- "ID": "13509",
- "typeID": "__group__",
- "zOrder": "77",
- "measuredW": "171",
- "measuredH": "42",
- "w": "171",
- "h": "42",
- "x": "331",
- "y": "545",
- "properties": {
- "controlName": "101-python-advanced-topics:regular-expressions"
- },
- "children": {
- "controls": {
- "control": [
- {
- "ID": "0",
- "typeID": "Canvas",
- "zOrder": "0",
- "w": "171",
- "h": "42",
- "measuredW": "100",
- "measuredH": "70",
- "x": "0",
- "y": "0",
- "properties": {
- "color": "16770457"
- }
- },
- {
- "ID": "1",
- "typeID": "Label",
- "zOrder": "1",
- "measuredW": "49",
- "measuredH": "24",
- "x": "61",
- "y": "9",
- "properties": {
- "size": "16",
- "text": "RegEx"
- }
- }
- ]
- }
- }
- },
- {
- "ID": "13510",
- "typeID": "__group__",
- "zOrder": "78",
- "measuredW": "174",
- "measuredH": "42",
- "w": "174",
- "h": "42",
- "x": "329",
- "y": "637",
- "properties": {
- "controlName": "103-python-advanced-topics:lambdas"
- },
- "children": {
- "controls": {
- "control": [
- {
- "ID": "0",
- "typeID": "Canvas",
- "zOrder": "0",
- "w": "174",
- "h": "42",
- "measuredW": "100",
- "measuredH": "70",
- "x": "0",
- "y": "0",
- "properties": {
- "color": "16770457"
- }
- },
- {
- "ID": "1",
- "typeID": "Label",
- "zOrder": "1",
- "measuredW": "67",
- "measuredH": "24",
- "x": "53",
- "y": "9",
- "properties": {
- "text": "Lambdas",
- "size": "16"
- }
- }
- ]
- }
- }
- },
- {
- "ID": "13511",
+ "ID": "14803",
"typeID": "__group__",
"zOrder": "48",
"measuredW": "115",
"measuredH": "142",
"w": "115",
"h": "142",
- "x": "570",
- "y": "774",
+ "x": "580",
+ "y": "784",
"properties": {
"controlName": "105-python-advanced-topics:modules"
},
@@ -1413,15 +1722,15 @@
}
},
{
- "ID": "13512",
+ "ID": "14804",
"typeID": "__group__",
"zOrder": "49",
"measuredW": "90",
"measuredH": "42",
"w": "90",
"h": "42",
- "x": "582",
- "y": "815",
+ "x": "592",
+ "y": "825",
"properties": {
"controlName": "100-python-advanced-topics:modules:builtin-modules"
},
@@ -1460,15 +1769,15 @@
}
},
{
- "ID": "13513",
+ "ID": "14805",
"typeID": "__group__",
"zOrder": "50",
"measuredW": "91",
"measuredH": "42",
"w": "91",
"h": "42",
- "x": "582",
- "y": "861",
+ "x": "592",
+ "y": "871",
"properties": {
"controlName": "101-python-advanced-topics:modules:custom-modules"
},
@@ -1507,15 +1816,15 @@
}
},
{
- "ID": "13514",
+ "ID": "14806",
"typeID": "__group__",
"zOrder": "51",
"measuredW": "119",
"measuredH": "42",
"w": "119",
"h": "42",
- "x": "571",
- "y": "573",
+ "x": "581",
+ "y": "583",
"properties": {
"controlName": "104-python-advanced-topics:iterators"
},
@@ -1554,62 +1863,15 @@
}
},
{
- "ID": "13523",
- "typeID": "__group__",
- "zOrder": "86",
- "measuredW": "146",
- "measuredH": "42",
- "w": "146",
- "h": "42",
- "x": "763",
- "y": "908",
- "properties": {
- "controlName": "101-python-package-managers:pip"
- },
- "children": {
- "controls": {
- "control": [
- {
- "ID": "0",
- "typeID": "Canvas",
- "zOrder": "0",
- "w": "146",
- "h": "42",
- "measuredW": "100",
- "measuredH": "70",
- "x": "0",
- "y": "0",
- "properties": {
- "color": "16770457"
- }
- },
- {
- "ID": "1",
- "typeID": "Label",
- "zOrder": "1",
- "measuredW": "24",
- "measuredH": "24",
- "x": "61",
- "y": "9",
- "properties": {
- "size": "16",
- "text": "Pip"
- }
- }
- ]
- }
- }
- },
- {
- "ID": "13524",
+ "ID": "14807",
"typeID": "__group__",
"zOrder": "52",
"measuredW": "206",
"measuredH": "43",
"w": "206",
"h": "43",
- "x": "735",
- "y": "1037",
+ "x": "745",
+ "y": "1047",
"properties": {
"controlName": "106-python-frameworks"
},
@@ -1648,15 +1910,15 @@
}
},
{
- "ID": "13525",
+ "ID": "14808",
"typeID": "__group__",
"zOrder": "53",
"measuredW": "187",
"measuredH": "43",
"w": "187",
"h": "43",
- "x": "488",
- "y": "1009",
+ "x": "498",
+ "y": "1019",
"properties": {
"controlName": "100-python-frameworks:synchronous"
},
@@ -1695,15 +1957,15 @@
}
},
{
- "ID": "13526",
+ "ID": "14809",
"typeID": "__group__",
"zOrder": "54",
"measuredW": "87",
"measuredH": "42",
"w": "87",
"h": "42",
- "x": "329",
- "y": "895",
+ "x": "339",
+ "y": "905",
"properties": {
"controlName": "100-python-frameworks:synchronous:django"
},
@@ -1742,15 +2004,15 @@
}
},
{
- "ID": "13527",
+ "ID": "14810",
"typeID": "__group__",
"zOrder": "55",
"measuredW": "88",
"measuredH": "42",
"w": "88",
"h": "42",
- "x": "329",
- "y": "941",
+ "x": "339",
+ "y": "951",
"properties": {
"controlName": "101-python-frameworks:synchronous:flask"
},
@@ -1789,15 +2051,15 @@
}
},
{
- "ID": "13528",
+ "ID": "14811",
"typeID": "__group__",
"zOrder": "56",
"measuredW": "88",
"measuredH": "42",
"w": "88",
"h": "42",
- "x": "329",
- "y": "987",
+ "x": "339",
+ "y": "997",
"properties": {
"controlName": "102-python-frameworks:synchronous:pyramid"
},
@@ -1836,15 +2098,15 @@
}
},
{
- "ID": "13530",
+ "ID": "14812",
"typeID": "__group__",
"zOrder": "57",
"measuredW": "91",
"measuredH": "42",
"w": "91",
"h": "42",
- "x": "328",
- "y": "1103",
+ "x": "338",
+ "y": "1113",
"properties": {
"controlName": "100-python-frameworks:asynchronous:gevent"
},
@@ -1883,15 +2145,15 @@
}
},
{
- "ID": "13531",
+ "ID": "14813",
"typeID": "__group__",
"zOrder": "58",
"measuredW": "89",
"measuredH": "42",
"w": "89",
"h": "42",
- "x": "329",
- "y": "1149",
+ "x": "339",
+ "y": "1159",
"properties": {
"controlName": "101-python-frameworks:asynchronous:aiohttp"
},
@@ -1930,15 +2192,15 @@
}
},
{
- "ID": "13532",
+ "ID": "14814",
"typeID": "__group__",
"zOrder": "59",
"measuredW": "91",
"measuredH": "42",
"w": "91",
"h": "42",
- "x": "328",
- "y": "1195",
+ "x": "338",
+ "y": "1205",
"properties": {
"controlName": "102-python-frameworks:asynchronous:tornado"
},
@@ -1977,15 +2239,15 @@
}
},
{
- "ID": "13533",
+ "ID": "14815",
"typeID": "__group__",
"zOrder": "60",
"measuredW": "91",
"measuredH": "42",
"w": "91",
"h": "42",
- "x": "328",
- "y": "1241",
+ "x": "338",
+ "y": "1251",
"properties": {
"controlName": "103-python-frameworks:asynchronous:sanic"
},
@@ -2024,15 +2286,15 @@
}
},
{
- "ID": "13534",
+ "ID": "14816",
"typeID": "__group__",
"zOrder": "61",
"measuredW": "183",
"measuredH": "43",
"w": "183",
"h": "43",
- "x": "1024",
- "y": "1145",
+ "x": "1034",
+ "y": "1155",
"properties": {
"controlName": "108-python-testing"
},
@@ -2071,15 +2333,15 @@
}
},
{
- "ID": "13535",
+ "ID": "14817",
"typeID": "__group__",
"zOrder": "62",
"measuredW": "154",
"measuredH": "42",
"w": "154",
"h": "42",
- "x": "1050",
- "y": "1070",
+ "x": "1060",
+ "y": "1080",
"properties": {
"controlName": "100-python-testing:unittest-pyunit"
},
@@ -2118,15 +2380,15 @@
}
},
{
- "ID": "13536",
+ "ID": "14818",
"typeID": "__group__",
"zOrder": "63",
"measuredW": "154",
"measuredH": "42",
"w": "154",
"h": "42",
- "x": "1050",
- "y": "1023",
+ "x": "1060",
+ "y": "1033",
"properties": {
"controlName": "101-python-testing:pytest"
},
@@ -2165,15 +2427,15 @@
}
},
{
- "ID": "13537",
+ "ID": "14819",
"typeID": "__group__",
"zOrder": "64",
"measuredW": "154",
"measuredH": "42",
"w": "154",
"h": "42",
- "x": "1050",
- "y": "931",
+ "x": "1060",
+ "y": "941",
"properties": {
"controlName": "102-python-testing:doctest"
},
@@ -2212,15 +2474,15 @@
}
},
{
- "ID": "13538",
+ "ID": "14820",
"typeID": "__group__",
"zOrder": "65",
"measuredW": "154",
"measuredH": "42",
"w": "154",
"h": "42",
- "x": "1050",
- "y": "977",
+ "x": "1060",
+ "y": "987",
"properties": {
"controlName": "102-python-testing:nose"
},
@@ -2259,52 +2521,52 @@
}
},
{
- "ID": "13539",
+ "ID": "14821",
"typeID": "Canvas",
"zOrder": "66",
"w": "350",
"h": "141",
"measuredW": "100",
"measuredH": "70",
- "x": "923",
- "y": "163"
+ "x": "1028",
+ "y": "133"
},
{
- "ID": "13540",
+ "ID": "14822",
"typeID": "Label",
"zOrder": "67",
"measuredW": "314",
"measuredH": "25",
- "x": "937",
- "y": "180",
+ "x": "1042",
+ "y": "150",
"properties": {
"size": "17",
"text": "Find the detailed version of this roadmap"
}
},
{
- "ID": "13541",
+ "ID": "14823",
"typeID": "Label",
"zOrder": "68",
"measuredW": "319",
"measuredH": "25",
- "x": "937",
- "y": "208",
+ "x": "1042",
+ "y": "178",
"properties": {
"size": "17",
"text": "along with resources and other roadmaps"
}
},
{
- "ID": "13542",
+ "ID": "14824",
"typeID": "__group__",
"zOrder": "69",
"measuredW": "320",
"measuredH": "45",
"w": "320",
"h": "45",
- "x": "938",
- "y": "244",
+ "x": "1043",
+ "y": "214",
"properties": {
"controlName": "ext_link:roadmap.sh"
},
@@ -2401,15 +2663,15 @@
}
},
{
- "ID": "13543",
+ "ID": "14825",
"typeID": "__group__",
"zOrder": "70",
"measuredW": "374",
"measuredH": "50",
"w": "374",
"h": "50",
- "x": "478",
- "y": "219",
+ "x": "598",
+ "y": "229",
"properties": {
"controlName": "ext_link:roadmap.sh/backend"
},
@@ -2450,74 +2712,497 @@
}
},
{
- "ID": "13544",
+ "ID": "14826",
"typeID": "Arrow",
- "zOrder": "23",
+ "zOrder": "71",
"w": "1",
- "h": "95",
+ "h": "77",
"measuredW": "150",
"measuredH": "100",
- "x": "734",
- "y": "149",
+ "x": "424",
+ "y": "716",
+ "properties": {
+ "curvature": "0",
+ "leftArrow": "false",
+ "rightArrow": "false",
+ "stroke": "dotted",
+ "color": "10027263",
+ "p0": {
+ "x": 0,
+ "y": 76.5
+ },
+ "p1": {
+ "x": 0.5494505494505496,
+ "y": 0
+ },
+ "p2": {
+ "x": 0,
+ "y": -0.5
+ }
+ }
+ },
+ {
+ "ID": "14827",
+ "typeID": "__group__",
+ "zOrder": "72",
+ "measuredW": "131",
+ "measuredH": "184",
+ "w": "131",
+ "h": "184",
+ "x": "383",
+ "y": "699",
+ "properties": {
+ "controlName": "100-python-advanced-topics:oop"
+ },
+ "children": {
+ "controls": {
+ "control": [
+ {
+ "ID": "0",
+ "typeID": "Canvas",
+ "zOrder": "0",
+ "w": "131",
+ "h": "184",
+ "measuredW": "100",
+ "measuredH": "70",
+ "x": "0",
+ "y": "0"
+ },
+ {
+ "ID": "1",
+ "typeID": "Label",
+ "zOrder": "1",
+ "measuredW": "35",
+ "measuredH": "24",
+ "x": "48",
+ "y": "9",
+ "properties": {
+ "text": "OOP",
+ "size": "16"
+ }
+ }
+ ]
+ }
+ }
+ },
+ {
+ "ID": "14828",
+ "typeID": "__group__",
+ "zOrder": "73",
+ "measuredW": "169",
+ "measuredH": "42",
+ "w": "169",
+ "h": "42",
+ "x": "330",
+ "y": "737",
+ "properties": {
+ "controlName": "102-python-advanced-topics:oop:classes"
+ },
+ "children": {
+ "controls": {
+ "control": [
+ {
+ "ID": "0",
+ "typeID": "Canvas",
+ "zOrder": "0",
+ "w": "169",
+ "h": "42",
+ "measuredW": "100",
+ "measuredH": "70",
+ "x": "0",
+ "y": "0",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "1",
+ "typeID": "Label",
+ "zOrder": "1",
+ "w": "60",
+ "measuredW": "58",
+ "measuredH": "24",
+ "x": "55",
+ "y": "9",
+ "properties": {
+ "size": "16",
+ "text": "Classes"
+ }
+ }
+ ]
+ }
+ }
+ },
+ {
+ "ID": "14829",
+ "typeID": "__group__",
+ "zOrder": "74",
+ "measuredW": "169",
+ "measuredH": "42",
+ "w": "169",
+ "h": "42",
+ "x": "330",
+ "y": "783",
+ "properties": {
+ "controlName": "101-python-advanced-topics:oop:inheritance"
+ },
+ "children": {
+ "controls": {
+ "control": [
+ {
+ "ID": "0",
+ "typeID": "Canvas",
+ "zOrder": "0",
+ "w": "169",
+ "h": "42",
+ "measuredW": "100",
+ "measuredH": "70",
+ "x": "0",
+ "y": "0",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "1",
+ "typeID": "Label",
+ "zOrder": "1",
+ "w": "86",
+ "measuredW": "83",
+ "measuredH": "24",
+ "x": "42",
+ "y": "9",
+ "properties": {
+ "size": "16",
+ "text": "Inheritance"
+ }
+ }
+ ]
+ }
+ }
+ },
+ {
+ "ID": "14830",
+ "typeID": "__group__",
+ "zOrder": "75",
+ "measuredW": "169",
+ "measuredH": "42",
+ "w": "169",
+ "h": "42",
+ "x": "330",
+ "y": "829",
+ "properties": {
+ "controlName": "100-python-advanced-topics:oop:methods-dunder"
+ },
+ "children": {
+ "controls": {
+ "control": [
+ {
+ "ID": "0",
+ "typeID": "Canvas",
+ "zOrder": "0",
+ "w": "169",
+ "h": "42",
+ "measuredW": "100",
+ "measuredH": "70",
+ "x": "0",
+ "y": "0",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "1",
+ "typeID": "Label",
+ "zOrder": "1",
+ "measuredW": "125",
+ "measuredH": "24",
+ "x": "20",
+ "y": "9",
+ "properties": {
+ "text": "Methods, Dunder",
+ "size": "16"
+ }
+ }
+ ]
+ }
+ }
+ },
+ {
+ "ID": "14831",
+ "typeID": "__group__",
+ "zOrder": "76",
+ "measuredW": "172",
+ "measuredH": "42",
+ "w": "172",
+ "h": "42",
+ "x": "340",
+ "y": "601",
+ "properties": {
+ "controlName": "102-python-advanced-topics:decorators"
+ },
+ "children": {
+ "controls": {
+ "control": [
+ {
+ "ID": "0",
+ "typeID": "Canvas",
+ "zOrder": "0",
+ "w": "172",
+ "h": "42",
+ "measuredW": "100",
+ "measuredH": "70",
+ "x": "0",
+ "y": "0",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "1",
+ "typeID": "Label",
+ "zOrder": "1",
+ "measuredW": "81",
+ "measuredH": "24",
+ "x": "45",
+ "y": "9",
+ "properties": {
+ "size": "16",
+ "text": "Decorators"
+ }
+ }
+ ]
+ }
+ }
+ },
+ {
+ "ID": "14832",
+ "typeID": "__group__",
+ "zOrder": "77",
+ "measuredW": "171",
+ "measuredH": "42",
+ "w": "171",
+ "h": "42",
+ "x": "341",
+ "y": "555",
+ "properties": {
+ "controlName": "101-python-advanced-topics:regular-expressions"
+ },
+ "children": {
+ "controls": {
+ "control": [
+ {
+ "ID": "0",
+ "typeID": "Canvas",
+ "zOrder": "0",
+ "w": "171",
+ "h": "42",
+ "measuredW": "100",
+ "measuredH": "70",
+ "x": "0",
+ "y": "0",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "1",
+ "typeID": "Label",
+ "zOrder": "1",
+ "measuredW": "49",
+ "measuredH": "24",
+ "x": "61",
+ "y": "9",
+ "properties": {
+ "size": "16",
+ "text": "RegEx"
+ }
+ }
+ ]
+ }
+ }
+ },
+ {
+ "ID": "14833",
+ "typeID": "__group__",
+ "zOrder": "78",
+ "measuredW": "174",
+ "measuredH": "42",
+ "w": "174",
+ "h": "42",
+ "x": "339",
+ "y": "647",
+ "properties": {
+ "controlName": "103-python-advanced-topics:lambdas"
+ },
+ "children": {
+ "controls": {
+ "control": [
+ {
+ "ID": "0",
+ "typeID": "Canvas",
+ "zOrder": "0",
+ "w": "174",
+ "h": "42",
+ "measuredW": "100",
+ "measuredH": "70",
+ "x": "0",
+ "y": "0",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "1",
+ "typeID": "Label",
+ "zOrder": "1",
+ "measuredW": "67",
+ "measuredH": "24",
+ "x": "53",
+ "y": "9",
+ "properties": {
+ "text": "Lambdas",
+ "size": "16"
+ }
+ }
+ ]
+ }
+ }
+ },
+ {
+ "ID": "14834",
+ "typeID": "__group__",
+ "zOrder": "79",
+ "measuredW": "187",
+ "measuredH": "43",
+ "w": "187",
+ "h": "43",
+ "x": "498",
+ "y": "1074",
+ "properties": {
+ "controlName": "101-python-frameworks:asynchronous"
+ },
+ "children": {
+ "controls": {
+ "control": [
+ {
+ "ID": "0",
+ "typeID": "Canvas",
+ "zOrder": "0",
+ "w": "187",
+ "h": "43",
+ "measuredW": "100",
+ "measuredH": "70",
+ "x": "0",
+ "y": "0",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "1",
+ "typeID": "Label",
+ "zOrder": "1",
+ "measuredW": "101",
+ "measuredH": "24",
+ "x": "43",
+ "y": "10",
+ "properties": {
+ "size": "16",
+ "text": "Asynchronous"
+ }
+ }
+ ]
+ }
+ }
+ },
+ {
+ "ID": "14835",
+ "typeID": "__group__",
+ "zOrder": "80",
+ "measuredW": "89",
+ "measuredH": "42",
+ "w": "89",
+ "h": "42",
+ "x": "339",
+ "y": "1053",
+ "properties": {
+ "controlName": "102-python-frameworks:fastapi"
+ },
+ "children": {
+ "controls": {
+ "control": [
+ {
+ "ID": "0",
+ "typeID": "Canvas",
+ "zOrder": "0",
+ "w": "89",
+ "h": "42",
+ "measuredW": "100",
+ "measuredH": "70",
+ "x": "0",
+ "y": "0",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "1",
+ "typeID": "Label",
+ "zOrder": "1",
+ "measuredW": "56",
+ "measuredH": "24",
+ "x": "17",
+ "y": "9",
+ "properties": {
+ "size": "16",
+ "text": "FastAPI"
+ }
+ }
+ ]
+ }
+ }
+ },
+ {
+ "ID": "14836",
+ "typeID": "Arrow",
+ "zOrder": "81",
+ "w": "1",
+ "h": "98",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "829",
+ "y": "1324",
"properties": {
"curvature": "0",
"leftArrow": "false",
"rightArrow": "false",
"color": "10027263",
"p0": {
- "x": 0,
- "y": -0.27685841682816204
+ "x": -0.5,
+ "y": -0.5
},
"p1": {
- "x": 0.46044522302392427,
- "y": 0.003676653605416392
+ "x": 0.5259259259259262,
+ "y": 0
},
"p2": {
- "x": 0,
- "y": 94.59824914485046
+ "x": -0.5,
+ "y": 97
},
"stroke": "dotted"
}
},
{
- "ID": "13545",
- "typeID": "Arrow",
- "zOrder": "24",
- "w": "1",
- "h": "80",
- "measuredW": "150",
- "measuredH": "100",
- "x": "734",
- "y": "252",
- "properties": {
- "curvature": "0",
- "leftArrow": "false",
- "rightArrow": "false",
- "color": "10027263",
- "p0": {
- "x": 0,
- "y": 0
- },
- "p1": {
- "x": 0.46044522302392416,
- "y": 0.003676653605416392
- },
- "p2": {
- "x": 0,
- "y": 80.06287646587509
- }
- }
- },
- {
- "ID": "13546",
+ "ID": "14837",
"typeID": "__group__",
"zOrder": "82",
"measuredW": "374",
"measuredH": "50",
"w": "374",
"h": "50",
- "x": "612",
- "y": "1283",
+ "x": "622",
+ "y": "1293",
"properties": {
"controlName": "ext_link:roadmap.sh/backend"
},
@@ -2558,315 +3243,17 @@
}
},
{
- "ID": "13552",
- "typeID": "Arrow",
- "zOrder": "22",
- "w": "221",
- "h": "117",
- "measuredW": "150",
- "measuredH": "100",
- "x": "734",
- "y": "459",
- "properties": {
- "curvature": "0",
- "leftArrow": "false",
- "rightArrow": "false",
- "color": "10027263",
- "p0": {
- "x": 0.5,
- "y": 0
- },
- "p1": {
- "x": 0.3557172557172557,
- "y": -0.2189189189189189
- },
- "p2": {
- "x": 221.5,
- "y": 117
- }
- }
- },
- {
- "ID": "13555",
- "typeID": "Arrow",
- "zOrder": "21",
- "w": "1",
- "h": "76",
- "measuredW": "150",
- "measuredH": "100",
- "x": "1084",
- "y": "581",
- "properties": {
- "curvature": "0",
- "leftArrow": "false",
- "rightArrow": "false",
- "color": "10027263",
- "p0": {
- "x": 0,
- "y": 0
- },
- "p1": {
- "x": 0.4604452230239241,
- "y": 0.0036766536054163913
- },
- "p2": {
- "x": 0,
- "y": 76
- },
- "stroke": "dotted"
- }
- },
- {
- "ID": "13556",
- "typeID": "Arrow",
- "zOrder": "20",
- "w": "122",
- "h": "114",
- "measuredW": "150",
- "measuredH": "100",
- "x": "836",
- "y": "588",
- "properties": {
- "curvature": "0",
- "leftArrow": "false",
- "rightArrow": "false",
- "color": "10027263",
- "p0": {
- "x": 122.5,
- "y": -0.5
- },
- "p1": {
- "x": 0.5299139167862267,
- "y": -0.2574605451936872
- },
- "p2": {
- "x": 0.5,
- "y": 113.5
- }
- }
- },
- {
- "ID": "13558",
- "typeID": "Arrow",
- "zOrder": "19",
- "w": "138",
- "h": "6",
- "measuredW": "150",
- "measuredH": "100",
- "x": "486",
- "y": "707",
- "properties": {
- "curvature": "0",
- "leftArrow": "false",
- "rightArrow": "false",
- "color": "10027263",
- "p0": {
- "x": 0,
- "y": -0.5
- },
- "p1": {
- "x": 0.46044522302392427,
- "y": 0.0036766536054163978
- },
- "p2": {
- "x": 138,
- "y": 5.5
- },
- "stroke": "dotted"
- }
- },
- {
- "ID": "13559",
- "typeID": "Arrow",
- "zOrder": "18",
- "w": "134",
- "h": "50",
- "measuredW": "150",
- "measuredH": "100",
- "x": "495",
- "y": "654",
- "properties": {
- "curvature": "0",
- "leftArrow": "false",
- "rightArrow": "false",
- "color": "10027263",
- "stroke": "dotted",
- "p0": {
- "x": 0,
- "y": 0
- },
- "p1": {
- "x": 0.461318195518942,
- "y": -0.10434039987944237
- },
- "p2": {
- "x": 134,
- "y": 49.5
- }
- }
- },
- {
- "ID": "13560",
- "typeID": "Arrow",
- "zOrder": "17",
- "w": "128",
- "h": "91",
- "measuredW": "150",
- "measuredH": "100",
- "x": "497",
- "y": "607",
- "properties": {
- "curvature": "0",
- "leftArrow": "false",
- "rightArrow": "false",
- "color": "10027263",
- "stroke": "dotted",
- "p0": {
- "x": 0,
- "y": 0
- },
- "p1": {
- "x": 0.461318195518942,
- "y": -0.10434039987944228
- },
- "p2": {
- "x": 128,
- "y": 90.5
- }
- }
- },
- {
- "ID": "13561",
- "typeID": "Arrow",
- "zOrder": "16",
- "w": "129",
- "h": "131",
- "measuredW": "150",
- "measuredH": "100",
- "x": "497",
- "y": "560",
- "properties": {
- "curvature": "0",
- "leftArrow": "false",
- "rightArrow": "false",
- "color": "10027263",
- "stroke": "dotted",
- "p0": {
- "x": 0,
- "y": 0
- },
- "p1": {
- "x": 0.4613181955189419,
- "y": -0.10434039987944232
- },
- "p2": {
- "x": 129,
- "y": 130.5
- }
- }
- },
- {
- "ID": "13562",
- "typeID": "Arrow",
- "zOrder": "15",
- "w": "1",
- "h": "220",
- "measuredW": "150",
- "measuredH": "100",
- "x": "653",
- "y": "580",
- "properties": {
- "curvature": "0",
- "leftArrow": "false",
- "rightArrow": "false",
- "color": "10027263",
- "stroke": "dotted",
- "p0": {
- "x": 0,
- "y": 0
- },
- "p1": {
- "x": 0.46044522302392416,
- "y": 0.0036766536054163913
- },
- "p2": {
- "x": 0,
- "y": 219.5
- }
- }
- },
- {
- "ID": "13565",
- "typeID": "Arrow",
- "zOrder": "14",
- "w": "94",
- "h": "24",
- "measuredW": "150",
- "measuredH": "100",
- "x": "410",
- "y": "1006",
- "properties": {
- "curvature": "0",
- "leftArrow": "false",
- "rightArrow": "false",
- "color": "10027263",
- "stroke": "dotted",
- "p0": {
- "x": -0.5,
- "y": 0
- },
- "p1": {
- "x": 0.487852196079316,
- "y": -0.041868754088745526
- },
- "p2": {
- "x": 93,
- "y": 24
- }
- }
- },
- {
- "ID": "13567",
- "typeID": "Arrow",
- "zOrder": "13",
- "w": "105",
- "h": "60",
- "measuredW": "150",
- "measuredH": "100",
- "x": "413",
- "y": "963",
- "properties": {
- "curvature": "0",
- "leftArrow": "false",
- "rightArrow": "false",
- "color": "10027263",
- "stroke": "dotted",
- "p0": {
- "x": -0.5,
- "y": 0
- },
- "p1": {
- "x": 0.39794612911033506,
- "y": -0.1274852183534456
- },
- "p2": {
- "x": 104,
- "y": 59.5
- }
- }
- },
- {
- "ID": "13568",
+ "ID": "14839",
"typeID": "__group__",
- "zOrder": "79",
- "measuredW": "187",
- "measuredH": "43",
- "w": "187",
- "h": "43",
- "x": "488",
- "y": "1064",
+ "zOrder": "83",
+ "measuredW": "173",
+ "measuredH": "193",
+ "w": "173",
+ "h": "193",
+ "x": "759",
+ "y": "796",
"properties": {
- "controlName": "101-python-frameworks:asynchronous"
+ "controlName": "105-python-package-managers"
},
"children": {
"controls": {
@@ -2875,27 +3262,24 @@
"ID": "0",
"typeID": "Canvas",
"zOrder": "0",
- "w": "187",
- "h": "43",
+ "w": "173",
+ "h": "193",
"measuredW": "100",
"measuredH": "70",
"x": "0",
- "y": "0",
- "properties": {
- "color": "16770457"
- }
+ "y": "0"
},
{
"ID": "1",
"typeID": "Label",
"zOrder": "1",
- "measuredW": "101",
+ "measuredW": "141",
"measuredH": "24",
- "x": "43",
- "y": "10",
+ "x": "16",
+ "y": "13",
"properties": {
"size": "16",
- "text": "Asynchronous"
+ "text": "Package Managers"
}
}
]
@@ -2903,167 +3287,17 @@
}
},
{
- "ID": "13569",
- "typeID": "Arrow",
- "zOrder": "12",
- "w": "91",
- "h": "19",
- "measuredW": "150",
- "measuredH": "100",
- "x": "408",
- "y": "1064",
- "properties": {
- "curvature": "0",
- "leftArrow": "false",
- "rightArrow": "false",
- "color": "10027263",
- "stroke": "dotted",
- "p0": {
- "x": 0,
- "y": -0.5
- },
- "p1": {
- "x": 0.4292794822430673,
- "y": -0.0842174251423423
- },
- "p2": {
- "x": 91,
- "y": 17.5
- }
- }
- },
- {
- "ID": "13570",
- "typeID": "Arrow",
- "zOrder": "11",
- "w": "105",
- "h": "45",
- "measuredW": "150",
- "measuredH": "100",
- "x": "409",
- "y": "1094",
- "properties": {
- "curvature": "0",
- "leftArrow": "false",
- "rightArrow": "false",
- "color": "10027263",
- "stroke": "dotted",
- "p0": {
- "x": 0,
- "y": 45
- },
- "p1": {
- "x": 0.3839080459770115,
- "y": 0.14022988505747125
- },
- "p2": {
- "x": 105,
- "y": 0
- }
- }
- },
- {
- "ID": "13571",
- "typeID": "Arrow",
- "zOrder": "10",
- "w": "106",
- "h": "93",
- "measuredW": "150",
- "measuredH": "100",
- "x": "415",
- "y": "1092",
- "properties": {
- "curvature": "0",
- "leftArrow": "false",
- "rightArrow": "false",
- "color": "10027263",
- "stroke": "dotted",
- "p0": {
- "x": 0,
- "y": 93
- },
- "p1": {
- "x": 0.40844857933115414,
- "y": 0.13221020870002514
- },
- "p2": {
- "x": 106,
- "y": 0
- }
- }
- },
- {
- "ID": "13572",
- "typeID": "Arrow",
- "zOrder": "9",
- "w": "123",
- "h": "133",
- "measuredW": "150",
- "measuredH": "100",
- "x": "414",
- "y": "1097",
- "properties": {
- "curvature": "0",
- "leftArrow": "false",
- "rightArrow": "false",
- "color": "10027263",
- "stroke": "dotted",
- "p0": {
- "x": 0,
- "y": 133
- },
- "p1": {
- "x": 0.4810165153269547,
- "y": 0.11402279237004083
- },
- "p2": {
- "x": 123,
- "y": 0
- }
- }
- },
- {
- "ID": "13573",
- "typeID": "Arrow",
- "zOrder": "8",
- "w": "110",
- "h": "112",
- "measuredW": "150",
- "measuredH": "100",
- "x": "412",
- "y": "910",
- "properties": {
- "curvature": "0",
- "leftArrow": "false",
- "rightArrow": "false",
- "color": "10027263",
- "stroke": "dotted",
- "p0": {
- "x": -0.5,
- "y": 0
- },
- "p1": {
- "x": 0.49256306145204387,
- "y": -0.1262491321818526
- },
- "p2": {
- "x": 109,
- "y": 111.5
- }
- }
- },
- {
- "ID": "13577",
+ "ID": "14840",
"typeID": "__group__",
- "zOrder": "80",
- "measuredW": "89",
+ "zOrder": "84",
+ "measuredW": "148",
"measuredH": "42",
- "w": "89",
+ "w": "148",
"h": "42",
- "x": "329",
- "y": "1043",
+ "x": "772",
+ "y": "842",
"properties": {
- "controlName": "102-python-frameworks:fastapi"
+ "controlName": "100-python-package-managers:pypi"
},
"children": {
"controls": {
@@ -3072,7 +3306,7 @@
"ID": "0",
"typeID": "Canvas",
"zOrder": "0",
- "w": "89",
+ "w": "148",
"h": "42",
"measuredW": "100",
"measuredH": "70",
@@ -3086,13 +3320,13 @@
"ID": "1",
"typeID": "Label",
"zOrder": "1",
- "measuredW": "56",
+ "measuredW": "33",
"measuredH": "24",
- "x": "17",
+ "x": "57",
"y": "9",
"properties": {
"size": "16",
- "text": "FastAPI"
+ "text": "PyPI"
}
}
]
@@ -3100,76 +3334,17 @@
}
},
{
- "ID": "13581",
- "typeID": "Arrow",
- "zOrder": "7",
- "w": "214",
- "h": "141",
- "measuredW": "150",
- "measuredH": "100",
- "x": "817",
- "y": "1174",
- "properties": {
- "curvature": "0",
- "leftArrow": "false",
- "rightArrow": "false",
- "color": "10027263",
- "p0": {
- "x": 214.5,
- "y": 0
- },
- "p1": {
- "x": 0.5712545436900968,
- "y": -0.21227347450676648
- },
- "p2": {
- "x": 0.20376246056980563,
- "y": 141.43444344459454
- }
- }
- },
- {
- "ID": "13587",
- "typeID": "Arrow",
- "zOrder": "83",
- "w": "1",
- "h": "93",
- "measuredW": "150",
- "measuredH": "100",
- "x": "280",
- "y": "220",
- "properties": {
- "curvature": "0",
- "leftArrow": "false",
- "rightArrow": "false",
- "p0": {
- "x": 0,
- "y": 0
- },
- "p1": {
- "x": 0.4604452230239241,
- "y": 0.0036766536054163917
- },
- "p2": {
- "x": 0,
- "y": 93
- },
- "stroke": "dotted",
- "color": "16777215"
- }
- },
- {
- "ID": "13589",
+ "ID": "14841",
"typeID": "__group__",
- "zOrder": "84",
- "measuredW": "173",
- "measuredH": "142",
- "w": "173",
- "h": "142",
- "x": "749",
- "y": "819",
+ "zOrder": "85",
+ "measuredW": "146",
+ "measuredH": "42",
+ "w": "146",
+ "h": "42",
+ "x": "773",
+ "y": "888",
"properties": {
- "controlName": "105-python-package-managers"
+ "controlName": "101-python-package-managers:pip"
},
"children": {
"controls": {
@@ -3178,24 +3353,27 @@
"ID": "0",
"typeID": "Canvas",
"zOrder": "0",
- "w": "173",
- "h": "142",
+ "w": "146",
+ "h": "42",
"measuredW": "100",
"measuredH": "70",
"x": "0",
- "y": "0"
+ "y": "0",
+ "properties": {
+ "color": "16770457"
+ }
},
{
"ID": "1",
"typeID": "Label",
"zOrder": "1",
- "measuredW": "141",
+ "measuredW": "24",
"measuredH": "24",
- "x": "16",
- "y": "11",
+ "x": "61",
+ "y": "9",
"properties": {
"size": "16",
- "text": "Package Managers"
+ "text": "Pip"
}
}
]
@@ -3203,227 +3381,429 @@
}
},
{
- "ID": "13591",
- "typeID": "Arrow",
- "zOrder": "6",
- "w": "1",
- "h": "352",
- "measuredW": "150",
- "measuredH": "100",
- "x": "835",
- "y": "706",
+ "ID": "14842",
+ "typeID": "__group__",
+ "zOrder": "86",
+ "measuredW": "146",
+ "measuredH": "42",
+ "w": "146",
+ "h": "42",
+ "x": "773",
+ "y": "934",
"properties": {
- "curvature": "0",
- "leftArrow": "false",
- "rightArrow": "false",
- "color": "10027263",
- "p0": {
- "x": 0,
- "y": -0.24280136823927023
- },
- "p1": {
- "x": 0.4604452230239245,
- "y": 0.0036766536054163917
- },
- "p2": {
- "x": 0,
- "y": 352
+ "controlName": "102-python-package-managers:conda"
+ },
+ "children": {
+ "controls": {
+ "control": [
+ {
+ "ID": "0",
+ "typeID": "Canvas",
+ "zOrder": "0",
+ "w": "146",
+ "h": "42",
+ "measuredW": "100",
+ "measuredH": "70",
+ "x": "0",
+ "y": "0",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "1",
+ "typeID": "Label",
+ "zOrder": "1",
+ "measuredW": "48",
+ "measuredH": "24",
+ "x": "49",
+ "y": "9",
+ "properties": {
+ "size": "16",
+ "text": "Conda"
+ }
+ }
+ ]
}
}
},
{
- "ID": "13592",
- "typeID": "Arrow",
- "zOrder": "4",
- "w": "86",
+ "ID": "14843",
+ "typeID": "__group__",
+ "zOrder": "87",
+ "measuredW": "352",
+ "measuredH": "54",
+ "w": "352",
+ "h": "54",
+ "x": "1027",
+ "y": "302",
+ "properties": {
+ "controlName": "100-python-roadmap-note"
+ },
+ "children": {
+ "controls": {
+ "control": [
+ {
+ "ID": "0",
+ "typeID": "TextArea",
+ "zOrder": "0",
+ "w": "352",
+ "h": "54",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "0",
+ "y": "0"
+ },
+ {
+ "ID": "1",
+ "typeID": "Label",
+ "zOrder": "1",
+ "measuredW": "224",
+ "measuredH": "26",
+ "x": "50",
+ "y": "14",
+ "properties": {
+ "size": "18",
+ "text": "Important Note / Click here"
+ }
+ },
+ {
+ "ID": "2",
+ "typeID": "__group__",
+ "zOrder": "2",
+ "measuredW": "24",
+ "measuredH": "24",
+ "w": "24",
+ "h": "24",
+ "x": "18",
+ "y": "18",
+ "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": {
+ "icon": {
+ "ID": "check-circle",
+ "size": "small"
+ },
+ "color": "13576743"
+ }
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ {
+ "ID": "14844",
+ "typeID": "Canvas",
+ "zOrder": "88",
+ "w": "328",
+ "h": "200",
+ "measuredW": "100",
+ "measuredH": "70",
+ "x": "215",
+ "y": "133"
+ },
+ {
+ "ID": "14845",
+ "typeID": "__group__",
+ "zOrder": "89",
+ "measuredW": "189",
+ "measuredH": "27",
+ "w": "189",
"h": "27",
- "measuredW": "150",
- "measuredH": "100",
- "x": "669",
- "y": "1027",
+ "x": "243",
+ "y": "210",
"properties": {
- "curvature": "0",
- "leftArrow": "false",
- "rightArrow": "false",
- "stroke": "dotted",
- "color": "10027263",
- "p0": {
- "x": 85.5,
- "y": 27
- },
- "p1": {
- "x": 0.5986120996441281,
- "y": 0.12644128113878994
- },
- "p2": {
- "x": 0,
- "y": 0
+ "controlName": "ext_link:roadmap.sh/backend"
+ },
+ "children": {
+ "controls": {
+ "control": [
+ {
+ "ID": "0",
+ "typeID": "Label",
+ "zOrder": "0",
+ "measuredW": "156",
+ "measuredH": "26",
+ "x": "33",
+ "y": "0",
+ "properties": {
+ "size": "18",
+ "text": "Backend Roadmap"
+ }
+ },
+ {
+ "ID": "1",
+ "typeID": "__group__",
+ "zOrder": "1",
+ "measuredW": "24",
+ "measuredH": "24",
+ "w": "24",
+ "h": "24",
+ "x": "0",
+ "y": "3",
+ "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": "13593",
- "typeID": "Arrow",
- "zOrder": "5",
- "w": "87",
- "h": "28",
- "measuredW": "150",
- "measuredH": "100",
- "x": "669",
- "y": "1063",
+ "ID": "14846",
+ "typeID": "__group__",
+ "zOrder": "90",
+ "measuredW": "183",
+ "measuredH": "27",
+ "w": "183",
+ "h": "27",
+ "x": "243",
+ "y": "246",
"properties": {
- "curvature": "0",
- "leftArrow": "false",
- "rightArrow": "false",
- "stroke": "dotted",
- "color": "10027263",
- "p0": {
- "x": 86.5,
- "y": 0
- },
- "p1": {
- "x": 0.6497109826589595,
- "y": -0.08978805394990365
- },
- "p2": {
- "x": 0,
- "y": 28
+ "controlName": "ext_link:roadmap.sh/javascript"
+ },
+ "children": {
+ "controls": {
+ "control": [
+ {
+ "ID": "0",
+ "typeID": "Label",
+ "zOrder": "0",
+ "measuredW": "150",
+ "measuredH": "26",
+ "x": "33",
+ "y": "0",
+ "properties": {
+ "size": "18",
+ "text": "DevOps Roadmap"
+ }
+ },
+ {
+ "ID": "1",
+ "typeID": "__group__",
+ "zOrder": "1",
+ "measuredW": "24",
+ "measuredH": "24",
+ "w": "24",
+ "h": "24",
+ "x": "0",
+ "y": "3",
+ "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": "13595",
- "typeID": "Arrow",
- "zOrder": "3",
- "w": "129",
- "h": "166",
- "measuredW": "150",
- "measuredH": "100",
- "x": "414",
- "y": "1100",
+ "ID": "14848",
+ "typeID": "Label",
+ "zOrder": "91",
+ "measuredW": "209",
+ "measuredH": "32",
+ "x": "243",
+ "y": "162",
"properties": {
- "curvature": "0",
- "leftArrow": "false",
- "rightArrow": "false",
- "color": "10027263",
- "stroke": "dotted",
- "p0": {
- "x": 0,
- "y": 165.5
- },
- "p1": {
- "x": 0.5753331674095528,
- "y": 0.07360228069778492
- },
- "p2": {
- "x": 129,
- "y": -0.5
- }
+ "size": "24",
+ "text": "Related Roadmaps"
}
},
{
- "ID": "13596",
- "typeID": "Arrow",
- "zOrder": "2",
- "w": "101",
- "h": "24",
- "measuredW": "150",
- "measuredH": "100",
- "x": "408",
- "y": "1037",
+ "ID": "14849",
+ "typeID": "__group__",
+ "zOrder": "92",
+ "measuredW": "251",
+ "measuredH": "27",
+ "w": "251",
+ "h": "27",
+ "x": "243",
+ "y": "284",
"properties": {
- "curvature": "0",
- "leftArrow": "false",
- "rightArrow": "false",
- "color": "10027263",
- "stroke": "dotted",
- "p0": {
- "x": 0,
- "y": 24.5
- },
- "p1": {
- "x": 0.4704601401249764,
- "y": 0.0798144290854005
- },
- "p2": {
- "x": 101,
- "y": 0.5
+ "controlName": "ext_link:roadmap.sh/software-design-architecture"
+ },
+ "children": {
+ "controls": {
+ "control": [
+ {
+ "ID": "0",
+ "typeID": "Label",
+ "zOrder": "0",
+ "measuredW": "218",
+ "measuredH": "26",
+ "x": "33",
+ "y": "0",
+ "properties": {
+ "size": "18",
+ "text": "Software Design Roadmap"
+ }
+ },
+ {
+ "ID": "1",
+ "typeID": "__group__",
+ "zOrder": "1",
+ "measuredW": "24",
+ "measuredH": "24",
+ "w": "24",
+ "h": "24",
+ "x": "0",
+ "y": "3",
+ "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": "13597",
- "typeID": "Arrow",
- "zOrder": "1",
- "w": "199",
- "h": "108",
- "measuredW": "150",
- "measuredH": "100",
- "x": "837",
- "y": "1055",
- "properties": {
- "curvature": "0",
- "leftArrow": "false",
- "rightArrow": "false",
- "color": "10027263",
- "p0": {
- "x": -0.5,
- "y": 0
- },
- "p1": {
- "x": 0.3700657239593706,
- "y": -0.20041824337781317
- },
- "p2": {
- "x": 198.5,
- "y": 108
- }
- }
- },
- {
- "ID": "13599",
- "typeID": "Arrow",
- "zOrder": "0",
- "w": "1",
- "h": "82",
- "measuredW": "150",
- "measuredH": "100",
- "x": "1126",
- "y": "1094",
- "properties": {
- "curvature": "0",
- "leftArrow": "false",
- "rightArrow": "false",
- "color": "10027263",
- "p0": {
- "x": 0,
- "y": -0.24280136823927023
- },
- "p1": {
- "x": 0.4604452230239245,
- "y": 0.003676653605416392
- },
- "p2": {
- "x": 0,
- "y": 82
- },
- "stroke": "dotted"
- }
}
]
},
"attributes": {
- "name": "New Wireframe 1 copy 3",
- "order": 1000016.2408968211,
+ "name": "New Wireframe 1 copy 2",
+ "order": 1000006.8992828326,
"parentID": null,
"notes": ""
},
"branchID": "Master",
- "resourceID": "13C27694-0370-442D-AECD-EFA2B687DD15",
- "mockupH": "1263",
- "mockupW": "993",
- "measuredW": "1273",
- "measuredH": "1412",
+ "resourceID": "4BE92169-157F-4FC5-8E20-403CBCF7A6C6",
+ "mockupH": "1289",
+ "mockupW": "1164",
+ "measuredW": "1379",
+ "measuredH": "1422",
"version": "1.0"
},
"groupOffset": {