Skip to content

madebygps/azure-resume

Repository files navigation

GPS's Azure Resume

This is my Cloud Resume Challenge built on Azure. It's a static website hosted on Azure Storage, with a visitor counter built on Azure Functions. The website is built with HTML, CSS, and JavaScript. The visitor counter is built with .NET and Azure Functions.

If you'd like to build your own, here is the YouTube video video

architecture

Demo

View it live here

Pre-requisites

I leverage Dev Containers for my development environment. If you'd like to use it, you'll need to install Docker and the Dev Containers for VS Code.

Once installed:

  1. Make sure Docker is running.
  2. Open the project in VS Code.
  3. Ctrl/Cmd + Shift + P to open the command palette.
  4. Type "Reopen in Container" and select:
    • .NET API container is for working with Azure Functions backend.
    • JS Frontend container is for working with the frontend.
  5. VS Code will reload and you'll be in the container.

Structure

  • frontend/: Folder contains the website.
    • main.js: Folder contains visitor counter code.
  • api/: Folder contains the dotnet API deployed on Azure Functions.
    • Counter.cs: Contains the visitor counter code.
  • .github/workflows/: Folder contains CI/CD workflow configurations.
  • .devcontainer: Folder contains the my container configuration for VS Code.

Frontend resources

The front-end is a static site with HTML, CSS, and JavaScript. It's static and has a visitor counter. The visitor counter data fetched via an API call to an Azure Function.

Backend resources

The back-end is an HTTP triggered Azure Functions with Cosmos DB input and output binding. The Function is triggered, it retrieves the CosmosDB item, adds 1 to it, and saves it and returns its value to the caller.

Testing Resources

Testing is important, though my tests are simple, they exist. I am using .NET but some of these resources will apply to any language.

CI/CD Resources

TO DO

  • Implement tests into CICD.
  • Create IaC files.
  • Improve tests and tests documentation.