The Cloud Resume Challenge - DigitalOcean
|Challenge name||Cloud(s)||Challenge goal||Contributor|
|The Cloud Resume Challenge||DigitalOcean||“Create a portfolio site that shows off your cloud and DevOps skills.”||amycodes|
1. Source Control
You do not want to be updating either your back-end API or your front-end website by making calls from your laptop. You want them to update automatically whenever you make a change to the code. (This is called continuous integration and deployment, or CI/CD.) Create a GitHub repository for your backend code.
Your resume needs to be styled with CSS. No worries if you’re not a designer – neither am I. It doesn’t have to be fancy. But we need to see something other than raw HTML when we open the webpage.
4. Static Website
Your HTML resume should be deployed online using DigitalOcean AppPlatform.
Point a custom DNS domain name to the AppPlatform Application, so your resume can be accessed at something like my-c00l-resume-website.com. You can use Custom Domains on DigitalOcean or any other DNS provider for this. A domain name usually costs about ten bucks to register.
The contact form should be able to store the addresses in a database. We suggest you use MongoDB, a Managed NoSQL Database option on DigitalOcean. Here is a great tutorial on how to connect to MongoDB with Python.
You should also include some tests for your Python code. Here are some resources on writing good Python tests.
11. Infrastructure as Code
You should not be configuring your API resources – the MongoDB table, the AppPlatform Static Site, the Function – manually, by clicking around in the DigitalOcean console. Instead, define them in an AppPlatform App Specification template and deploy them using the DigitalOcean Command Line Tool. This is called “infrastructure as code” or IaC. It saves you time in the long run.
Set up GitHub Actions such that when you push an update to your App Specification template or Python code, your Python tests get run. If the tests pass, the AppPlatform application should get packaged and deployed to DigitalOcean.
13. Blog post
Finally, in the text of your resume, you should link a short blog post describing some things you learned while working on this project. Dev.to or Hashnode are great places to publish if you don’t have your own blog.
Congratulations! Through the challenge, you have managed to touch many different cloud services. There are still places where your resume project could be improved, including adding analytics, automation, and external integrations. Also consider building the function with different languages such as NodeJS, PHP, or Go or using different database types. The more services you touch, the better you understand the pros and cons of each one. Happy programming!