An open API service indexing awesome lists of open source software.

https://github.com/oveldman/madworldsuite

Hobby & Learning project. Try alot of different stuff with Blazor and Azure components.
https://github.com/oveldman/madworldsuite

azure azure-ad-b2c azure-functions bicep blazor blazor-webassembly blob-storage c4-model design-patterns graph-explorer keyvault table-storage

Last synced: 8 months ago
JSON representation

Hobby & Learning project. Try alot of different stuff with Blazor and Azure components.

Awesome Lists containing this project

README

          

[![SonarCloud](https://github.com/oveldman/MadWorldSuite/actions/workflows/sonarqube.yml/badge.svg)](https://github.com/oveldman/MadWorldSuite/actions/workflows/sonarqube.yml)
[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=oveldman_MadWorldSuite&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=oveldman_MadWorldSuite)
[![Deploy_Azure_ARM](https://github.com/oveldman/MadWorldSuite/actions/workflows/azure-resources.yml/badge.svg?branch=main)](https://github.com/oveldman/MadWorldSuite/actions/workflows/azure-resources.yml)
[![Azure Suite UI CI/CD](https://github.com/oveldman/MadWorldSuite/actions/workflows/azure-frontend-suite-ui.yml/badge.svg)](https://github.com/oveldman/MadWorldSuite/actions/workflows/azure-frontend-suite-ui.yml)
[![Azure Admin UI CI/CD](https://github.com/oveldman/MadWorldSuite/actions/workflows/azure-frontend-admin-ui.yml/badge.svg)](https://github.com/oveldman/MadWorldSuite/actions/workflows/azure-frontend-admin-ui.yml)
[![Azure JobRunner CI/CD](https://github.com/oveldman/MadWorldSuite/actions/workflows/azure-jobrunner.yml/badge.svg?branch=main)](https://github.com/oveldman/MadWorldSuite/actions/workflows/azure-jobrunner.yml)
[![Azure API Anonymous CI/CD](https://github.com/oveldman/MadWorldSuite/actions/workflows/azure-api-anonymous.yml/badge.svg)](https://github.com/oveldman/MadWorldSuite/actions/workflows/azure-api-anonymous.yml)
[![Azure API Authorized CI/CD](https://github.com/oveldman/MadWorldSuite/actions/workflows/azure-api-authorized.yml/badge.svg)](https://github.com/oveldman/MadWorldSuite/actions/workflows/azure-api-authorized.yml)
# MadWorldSuite
MadWorldSuite is a captivating hobby project that serves as a powerful platform for me to delve into the realms of Azure,
Blazor, and Azure Functions. As a passionate learner, I have embarked on this exciting journey to explore and master these
cutting-edge technologies while building a collection of diverse tools, a personalized CV, and a host of other thrilling

## Table of Contents
[1. MadWorldSuite](#MadWorldSuite)\
[2. Running Environments](#Running-Environments)\
[3. Pre-requisites](#Pre-requisites)\
[4. How to Install and Run the Project](#How-to-Install-and-Run-the-Project)\
[5. How to Run the Tests](#How-to-Run-the-Tests)\
[6. Azure Resources](#Azure-Resources)\
[7. Other Readme's](#Other-Readmes)\
[8. Currently maintained by](#Currently-maintained-by)

## Running Environments
The following environments are currently running in Azure:

Frontend:
* [MadWorld.Frontend.UI.Admin -> admin.mad-world.nl](https://admin.mad-world.nl/)
* [MadWorld.Frontend.UI.Suite -> www.mad-world.nl](https://www.mad-world.nl/)

Backend:
* [MadWorld.Backend.API.Anonymous -> api.mad-world.nl/anonymous](https://api.mad-world.nl/anonymous/swagger/ui)
* [MadWorld.Backend.API.Authorized -> api.mad-world.nl/authorized](https://api.mad-world.nl/authorized/swagger/ui)

## Pre-requisites
Make sure you have installed all of the following prerequisites on your development machine:
* Rider - [Download & Install Rider](https://www.jetbrains.com/rider/download/#section=windows) or another IDE of your choice.
* Git - [Download & Install Git](https://git-scm.com/downloads). OSX and Linux machines typically have this already installed.
* Docker - [Download & Install Docker](https://www.docker.com/products/docker-desktop)
* Dotnet 7 - [Download & Install Dotnet 7](https://dotnet.microsoft.com/download/dotnet/7.0)
* Azurite - [Download & Install Azurite](https://docs.microsoft.com/en-us/azure/storage/common/storage-use-azurite?tabs=visual-studio)

## How to Install and Run the Project
First make sure that azurite is running:
``` shell
azurite -l /tmp/azurite # Use a temporary folder for storage
```

Set multiple startup projects:
* MadWorld.Backend.Api.Anonymous
* MadWorld.Backend.Api.Authorized
* MadWorld.Backend.JobRunner
* MadWorld.Frontend.Admin.UI
* MadWorld.Frontend.Suite.UI

Set functions host arguments:
* MadWorld.Backend.Api.Anonymous
* `host start --pause-on-error --cors * --port 7071`
* MadWorld.Backend.Api.Authorized
* `host start --pause-on-error --cors * --port 7072`
* MadWorld.Backend.JobRunner
* `host start --pause-on-error --cors * --port 7073`

Configure your AzureAd B2C your MadWorld.Frontend.UI.Suite configurations in `appsettings.Development.json`

Configure your AzureAd B2C your MadWorld.Frontend.UI.Admin configurations in `appsettings.Development.json`

Configure your AzureAd B2C in your MadWorld.Backend.API.Anonymous configurations by:
* Copy `local.settings.example.json` and name the file `local.settings.json`

Configure your AzureAd B2C in your MadWorld.Backend.API.Authorized configurations by:
* Copy `local.settings.example.json`, change the `` values and name the file `local.settings.json`

Run happily your project!

## How to Run the Tests
First make sure that Docker Desktop is running:
``` shell
# Windows
C:\Program Files\Docker\Docker\Docker Desktop.exe

# Linux
systemctl --user start docker-desktop

# MacOS
open -a Docker
```
Then run the following command to run all tests:
``` shell
cd MadWorld
dotnet test
```
When all unit and integration tests pass, you should observe the following output for each test project:
``` shell
Passed! - Failed: 0, Passed: 2, Skipped: 0, Total: 2,
Duration: 6 s - MadWorld.Backend.Api.Anonymous.IntegrationTests.dll (net7.0)
```

## Azure Resources
The following Azure resources are currently running in my Azure environment:
* Azure Static Web App (2x)
* Azure Functions (3x)
* Azure API Management
* Azure Storage
* Azure Key Vault
* Azure Application Insights (3x)
* Azure App Service Plan (2x)
* Azure Log Analytics Workspace
* Azure B2C

## Other Readme's
* [Use Microsoft Monaco](MadWorld/MadWorld.ExternPackages.Monaco/README.md)
* [C4 Models](Designs/C4%20Models/README.md)

## Currently maintained by
* [Oscar Veldman](https://www.github.com/oveldman)