Categories
FreeCodeCamp

My Experience Completing FreeCodeCamp’s API’s and Microservices Certification

What are API’s and Microservices?

API stands for application programming interface. Without getting technical let’s put this in practical terms. What does this mean for you in regards to FreeCodeCamp, or you building you own websites? It just means that there is another website or server where you request information and it sends that information back to you so you can use it in your website. You could get a list of hikes, stock prices, anything really. A microservice for our purposes is just a website that does something really simple for you. It has a backend/server that processes some information and sends the data back. The first project in this section is just a really simple microservice website that sends back a timestamp.

What you need to know

FreeCodeCamp estimates that it will take you about 300 hours to get through this section and complete the 5 projects. Like the rest of FCC all you get is a user story(list of requirements). You have to write all the code and figure it all out. You do get a little boilerplate(starter code) but that’s it. In this section you will start using databases. The learning modules are for MongoDB which is a noSQL database. You do not have to use MongoDB to do the projects. I did not. I used Postgres which is a relational database. At least 85% of the industry uses relational databases. I built my server and my database on my local computer and once I got it working I used Heroku to host them. I had one dyno for the database and another dyno for the server (Not all the projects in this section needed a database). You will not need a separate front-end website. The boilerplate FCC gives you actually includes the front-end code with a simple html file. It will get served up when you access the website. The learning module section is super lean and I had to learn from other sources for how the back end works. There are a lot of little things that can stump you and hold you up such as needing a certain library to help you do certain things and the list goes on. I had to be patient, learn to use lots of things I didn’t know would be required, and go through a lot of trial and error.

What is the value?

This section will teach you the basics of sending requests and working with databases. The knowledge that the projects will give you is valuable. You can use this knowledge to start building back-ends for your own websites(I did). If you are going to use these projects to get hired I am going to be super blunt and give you my 2 cents, but I will let you be the judge. I think in regards to showing a potential employer these projects as your main projects that may not be ideal for you. I think they are good to show as side projects if you so choose, but not your main projects. Someone who is not a programmer will likely not understand what these projects do. They do not look very visually impressive. On the other hand I have had good success with showing my own websites and projects that I came up with of my own accord. You can use the knowledge that you gain from this section to build your own personal projects. Again, you be the judge.

Projects

Here we get to the projects and what they do! I will include my code and a brief description of the projects.

Timestamp Microservice. Submit a request and get a timestamp back in JSON format.

https://github.com/ColtonHibbert/timestamp-microservice-node-server

Request Header Parser Microservice. Get the IP address and other system info from the party issuing the request.

https://github.com/ColtonHibbert/request-header-parser

URL Shortener. Visiting a shortened URL will redirect you to the original link.

https://github.com/ColtonHibbert/url-shortener-node

Exercise Tracker. Create a user and record exercises, duration, and time.

https://github.com/ColtonHibbert/fcc-exercise-tracker

File Metadata Service. Submit a file and get the name and size of the file in bytes in a JSON format.

https://github.com/ColtonHibbert/fcc-file-metadata

I hope my experience has helped you in some way. Good luck out there!