|
| 1 | +# BOOTCAMP |
| 2 | + |
| 3 | +We introduced the concept of [architecture as code or code-first approach](https://rvr06.github.io/c4-bootcamp/docs/code). We took the opportunity to leverage [Structurizr tool suite](https://rvr06.github.io/c4-bootcamp/docs/code/#structurizr) to support the end-user journey. However, most of the journey focused on what one could expect to gain from a single model defined as code, without dwelling on how authoring this model for too long. It is now time to address this point. |
| 4 | + |
| 5 | +## What will you learn from this course |
| 6 | + |
| 7 | +Leveraging an hypothetical [requirement](./stage%2000/specs.md), this bootcamp will guide you over tiny stages to gradually define and refine a compelling `software model`. Alongside his journey, one will be exposed to multiple dimensions a `software model` should cover. Unfolding each stage will fuel the reader with insights regarding both the matching `structurizr` syntax and the underlying `C4` philosophy. |
| 8 | + |
| 9 | +> The course is self-directed learning. You can do it at whatever pace you wish. |
| 10 | +
|
| 11 | +## How to get started |
| 12 | + |
| 13 | +Here’s how the `C4 bootcamp` works. |
| 14 | + |
| 15 | +### Use GitHub to Make Life Easy |
| 16 | + |
| 17 | +This GitHub repository contains `workspaces` and other assets you will need to complete the bootcamp. |
| 18 | + |
| 19 | +Thus, if you want to follow the bootcamp we recommend doing the following: |
| 20 | + |
| 21 | +- Sign up for [GitHub](https://github.com), if you haven’t already. |
| 22 | +- [Clone this repository](https://github.com/rvr06/c4-bootcamp.git) to your local machine. |
| 23 | +- As you go through the project, keep a web browser tab open to the [c4 bootcamp](https://github.com/rvr06/c4-bootcamp/blob/main/README.md) so you can read all of the instructions clearly and easily. |
| 24 | + |
| 25 | +### Bootcamp structure |
| 26 | + |
| 27 | +`C4 bootcamp` consists of `17 stages`: |
| 28 | + |
| 29 | +## [Stage 01](./stage%2001/README.md) |
| 30 | + |
| 31 | + |
| 32 | + |
| 33 | + |
| 34 | + |
| 35 | + |
| 36 | + |
| 37 | + |
| 38 | +## [Stage 02](./stage%2002/README.md) |
| 39 | + |
| 40 | + |
| 41 | + |
| 42 | + |
| 43 | + |
| 44 | +## [Stage 03](./stage%2003/README.md) |
| 45 | + |
| 46 | + |
| 47 | + |
| 48 | + |
| 49 | +## [Stage 04](./stage%2004/README.md) |
| 50 | + |
| 51 | + |
| 52 | + |
| 53 | + |
| 54 | + |
| 55 | + |
| 56 | +## [Stage 05](./stage%2005/README.md) |
| 57 | + |
| 58 | + |
| 59 | + |
| 60 | + |
| 61 | + |
| 62 | +## [Stage 06](./stage%2006/README.md) |
| 63 | + |
| 64 | + |
| 65 | + |
| 66 | + |
| 67 | +## [Stage 07](./stage%2007/README.md) |
| 68 | + |
| 69 | + |
| 70 | + |
| 71 | + |
| 72 | +## [Stage 08](./stage%2008/README.md) |
| 73 | + |
| 74 | + |
| 75 | + |
| 76 | + |
| 77 | + |
| 78 | + |
| 79 | + |
| 80 | +## [Stage 09](./stage%2009/README.md) |
| 81 | + |
| 82 | + |
| 83 | + |
| 84 | + |
| 85 | + |
| 86 | +## [Stage 10](./stage%2010/README.md) |
| 87 | + |
| 88 | + |
| 89 | + |
| 90 | + |
| 91 | +## [Stage 11](./stage%2011/README.md) |
| 92 | + |
| 93 | + |
| 94 | + |
| 95 | +## [Stage 12](./stage%2012/README.md) |
| 96 | + |
| 97 | + |
| 98 | + |
| 99 | + |
| 100 | +## [Stage 13](./stage%2013/README.md) |
| 101 | + |
| 102 | + |
| 103 | + |
| 104 | + |
| 105 | +## [Stage 14](./stage%2014/README.md) |
| 106 | + |
| 107 | + |
| 108 | + |
| 109 | + |
| 110 | +## [Stage 15](./stage%2015/README.md) |
| 111 | + |
| 112 | + |
| 113 | + |
| 114 | +## [Stage 16](./stage%2016/README.md) |
| 115 | + |
| 116 | + |
| 117 | + |
| 118 | + |
| 119 | + |
| 120 | +## [Stage 17](./stage%2017/README.md) |
| 121 | + |
| 122 | + |
| 123 | + |
| 124 | + |
| 125 | +And a bunch of `bonus stages`: |
| 126 | + |
| 127 | +## [Bonus Stage 01](./bonus%20stage%2001/README.md) |
| 128 | + |
| 129 | + |
| 130 | + |
| 131 | +## [Bonus Stage 02](./bonus%20stage%2002/README.md) |
| 132 | + |
| 133 | + |
| 134 | + |
| 135 | + |
| 136 | + |
| 137 | +## [Bonus Stage 03](./bonus%20stage%2003/README.md) |
| 138 | + |
| 139 | + |
| 140 | + |
| 141 | + |
| 142 | + |
| 143 | + |
| 144 | + |
| 145 | + |
| 146 | + |
| 147 | +## [Bonus Stage 04](./bonus%20stage%2004/README.md) |
| 148 | + |
| 149 | + |
| 150 | + |
| 151 | + |
| 152 | + |
| 153 | + |
| 154 | + |
| 155 | + |
| 156 | + |
| 157 | +### Stage Layout |
| 158 | + |
| 159 | +Each stage contains the following structure: |
| 160 | + |
| 161 | +```cs |
| 162 | +╠══ Stage xx |
| 163 | +║ ╠══ README.md // step-by-step recipe |
| 164 | +║ ╠══ theme*.dslf // extra theme(s) definition (optional) |
| 165 | +║ ╚══ workspace.dsl // completed lesson workspace |
| 166 | +``` |
| 167 | + |
| 168 | +Each `C4 bootcamp` stage contains a `README` which explains the following: |
| 169 | +1. The `Structurizr` concepts (eg ) and tools you will be applying in the lesson, along with links to any relevant documentation or examples. |
| 170 | +1. Step-by-step instructions (✏️) on how to modify the `workspace` to match the expected one at the end of each lesson. Feel free to jump from ✏️ to ✏️, if you want to quickly unfold the stage. |
| 171 | +1. If you get stuck following the step-by-step instructions, each lesson contains check points (📙) and a completed `workspace.dsl` (📘) file that shows the expected output. You can compare this against your own code and see what you need to do differently. |
| 172 | + |
| 173 | +Each stage enrichs the previous one, allowing one to tailor `software model` from scratch up to completion. If you are interested on an intermediate stage and don't want to unfold the whole journey prior to it, just take the previous state (`*.dsl` files) as your starting point. Eg, if you would like to exercise `stage 07`, just copy & paste `*.dsl` from `stage 06`, and engage. |
| 174 | + |
| 175 | +### When you're doing the lessons... |
| 176 | + |
| 177 | +A few things to bear in mind when you are following the step-by-step instructions: |
| 178 | + |
| 179 | +1. **Don't just copy and paste** the code shown in the lesson's `README`. You'll retain and learn all of the built-in `Structurizr` functions if you type out the code as it's shown. |
| 180 | +1. You might be required to fill in some blanks during individual lessons. Part of helping you learn `Structurizr` involves leaving some parts of the exercise up to you - if you ever feel lost, always check the contents of the `workspace.dsl` for that lesson. |
| 181 | +1. Don't be afraid to ask questions. |
| 182 | + |
| 183 | +### Docs |
| 184 | + |
| 185 | +We will provide explanations of all key concepts throughout each lesson, but of course, you should bookmark (and feel free to use!) the [C4 documentation](https://supreme-happiness-8f0f8e3c.pages.github.io/) |
| 186 | + |
| 187 | +### Tools / prerequisites |
| 188 | + |
| 189 | +This course expects the following: |
| 190 | +- A Github account and basic knowledge of Git |
| 191 | +- An up to date installation of VS Code editor |
| 192 | +- An up to date `Cornifer` extension |
| 193 | +- An up & running docker daemon |
| 194 | + |
| 195 | +See [here](./stage%2000/prereq.md) for details. |
| 196 | + |
| 197 | +## Time to engage |
| 198 | + |
| 199 | +[Here we go](./stage%2001/README.md) |
0 commit comments