This is the kick off (part 0) of a week long post series where we will implement a full stack project. This first post gives an overview of what full stack means and outlines the actual project that will be built during this week.
It is time to go full stack! Let’s make a project to illustrate - a project that fully touches the whole stack.
What is the stack?
It is truly a matter of perspective and this part can be discussed at length - but instead I’m going to present the notion and understanding of full stack and what parts there is in the stack in regards to this blog and the posts on it - please take note that this perspective mainly focus on web applications and that it is not required that every project contain components in every stack layer:
The system layer is everything from the bare metal (the metal can be virtualised) through the operating system to the application you apply. This contain the constructs to get things running and keep it that way. This can be your LAMP stack, MEAN stack eg. - it actually depends on what your application is.
The backend layer is the part of your application that sits on directly on the system layer. It is limited in the other end by what your users sees and interacts with. An example of this is the backend API (the stuff you interacts with using AJAX) for your website.
The business layer is maybe the hardest to define - at least for the traditional programmer. It is all the decisions that tie the application/project to the overall goals of the business/company that does the development.
What to build: Currency converter
We’ll build an application for currency conversion. This gives us the posibility of building something real, useful and very important: something that gives a challenge for every stack element that a full stack developer master.
We are going to divide the parts of the development into chunks that make sense in regards to the stack and this serves as the perfect reason to split this project into a multi part blog post series.
Here are the parts we are going to do:
- Day 1: Defining the backend and API
- Day 2: Coding the backend server
- Day 3: Testing the backend
- Day 4: Running the backend
- Day 5: Setting up CI/CD
- Day 6: Setting up monitoring
- Day 7: Writing documentation and making libraries