IntroductionThis is a proto-badge. This will eventually be a pathway badge made up of sub badges for each of the various parts of the backend Badge List codebase. But for now it is a work in progress. By earning the badge you will be helping to craft content for the next iteration.
To earn this badge you need to explore and study the code within the '/backend/app' and '/backend/lib' folders of the git repo. You will need to experiment with the code and ask questions until you are able to understand (1) what each piece of code is for, (2) how each piece of code works at a high level and (3) how the pieces fit together to power the Badge List backend.
Please note that the actual work of earning this badge will require a dynamic, iterative learning process which will involve many conversations with Hank. You will need to reach out to him and schedule sessions to explore particular questions that arise along the way. It is not possible for you to earn this badge without Hank's help, but you will need to be proactive in asking for the help that you need.
The Legacy Backend vs the API Backend
As you explore the codebase you will see that the majority of the code is what we will call the "legacy backend". This is the original MVC rails app which still powers most of Badge List. It is important that you understand the legacy backend at a basic level because you will be working to refactor it from the ground up. But try to focus most of your attention on the new backend (which we will call the "API backend"). The API backend consists of all of the code required to power the Swagger-based API. Specifically the API backend involves the following:
- Models (these are the same in the old and the new architectures, though they will be heavily refactored in the new architecture)
- API Serializers
- API Deserializers
- API Controllers
- API Docs
How to earn this badge
You will be generating two key artifacts during your work. Both of these should be created in your personal folder in Google Drive and then linked to in your badge portfolio. These artifacts can each be a single document or multiple documents, whatever works best for you.
- First you will generate a #Code-Map. This should be a Google Doc (or multiple Google Docs) listing out all of the different parts of the backend repo and explaining what each of them do. In some cases you may want to write a simple high-level description of an entire folder and in other cases you may want to describe particular files in more detail. Use your best judgement.
- Once you've finished the code map you will generate an #Architecture-Diagram. This should be a diagram (or multiple diagrams) of some sort rather than a written document. The architecture diagram should depict visually how all of the parts of the backend codebase work together.
Once you've completed the artifacts you're ready to request feedback.