So one area I have been wanting to learn about is python development and hosting my code base on a lambda function to dive into server less and microservice architectures. I had this vision in my head to show off the certifications I have obtained throughout my career. Being the typical gamer I started out with some kind of vision in my head and used this as inspiration as I was struggling in the last round of Apex Legends:
I thought it maybe too ambitious to try and go with the progress indicator’s but a possible future enhancement to roll up the certificates by provider eventually. For now, I just wanted my MVP to get all my achievements to show them off in some fashion.
I looked over my LinkedIn and tried to see if I could utilize an API that was established to pull certificate data, but no luck. Then I took a closer look at my profile and noticed that most, if not all my certificates were provided by Credly.
The site was very clean and minimalistic, I then took a peak at the backend HTML code by viewing the source, and it was well structured, and noticed that the badge information was all displayed in a single div. Credly did not have a friendly REST API to grab certification data for a user, so following my DIY attitude when it comes to tech, “fine I’ll do it myself!”
So I set off to see about “web scrapping” and thought to myself… “I have really been meaning to get more knowledgeable on python…” So I looked up “web scrapping and python” and came across a great library for it…. Beautiful Soup…. was very skeptical about the name, but decided to dive into it and review the documentation.
I think broke out the Visual Studio Code and then bounced between writing a line and then googling/stack overflowing the next set of instructions I wanted to use, and then got a working prototype! I have published the code to my public Github if you are interested in taking a look at the function here.
I then planned to host this python snippet in a lambda function so that my website could utilize it.
The user would browse to my site and grab my homepage content, and after the page renders it would call the API Gateway with a parameter of “person” that would specify who’s credly account I would want to scrape. Then the lambda function would be called to get the latest from the credly site for that user, and gather the certificates and put into a JSON object and display out to the person’s info in my certificates block of my site.
The bulk of my time was actually working on the Bootstrap 5 carousel, jQuery, and ajax calls to dynamically add the JSON object information, because I am sooooo proficient at front-end development (there should really be an ASCII equivalent to inflect sarcasm over text btw). All in all, happy with the results, so I was able to accomplish a few things:
- Created a proof of concept with Python (away from my C# comfort zone)
- Deployed out the solution with what I believe is a regular architecture for future solutions
- Lambda
- API Gateway
- etc
- Worked a little on my front end experience with jQuery and Boot strap 5.
I have a few other ideas I am planning on working, but happy with the results so far. Let me know if you have any suggestions or improvements!