Code Monkey home page Code Monkey logo

azuredesignstudio's Introduction

Azure Design Studio

License: GPL v3 build

Azure Design Studio is a web application designed to simplify and streamline the process of creating solution architectures for Azure. With a focus on ease of use, efficiency, and consistency, it offers several key features:

  • Visual design: Create solution architecture for Azure using a visually appealing and consistent styling.
  • Validation: Ensure your design adheres to the rules and constraints of Azure resources to reduce errors.
  • Export: Export your design as images for easy integration into your documents and presentations.
  • Cloud storage: Save your design in the cloud for convenient access from any location.
  • Infrastructure as Code (IaC) generation: Automatically generate IaC for your design, with support for both ARM templates and Bicep.

The primary goal of Azure Design Studio is to help users create high-quality solution architectures for Azure while reducing the learning curve associated with ARM and Bicep. By improving the overall user experience, Azure Design Studio enables more efficient design and deployment of solutions on Azure.

As an award winning project, Azure Design Studio won the 3rd Place Winner award of Microsoft Global Hackathon 2022.

screenshot

Contribution

All feedback and suggestions are welcome. Please feel free to create an issue if you have any.

If you want to build and debug the code locally, please follow the instruction below. All PRs are welcome too.

Build it locally

To build and test the code locally, you will need the following tools:

  • Visual Studio 2022 (latest version)
  • (Optional) Azure CLI, if you want to debug and test the code locally.
  • (Optional) Docker Desktop, if you want to build the docker image locally.

To build the code, clone the repo:

git clone --recursive https://github.com/chunliu/AzureDesignStudio.git

And then open the solution in Visual Studio 2022.

To launch and debug the code locally, set AzureDesignStudio.Server as the startup project in Visual Studio 2022.

Frameworks and Libraries

Azure Design Studio is built on top of the following frameworks and libraries:

Disclaimer

Azure Design Studio is a personal project without any warranty. It is neither an official product from Microsoft nor supported by Microsoft. Use it at your own risk.

azuredesignstudio's People

Contributors

chunliu avatar lukemurraynz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

azuredesignstudio's Issues

App does not load because of CORS

Current Deployment does not load for me because of an cors error with the stencils:
image

Also affects local debugging, as cors does not work there either.

Looking for a new logo

The current logo is a quick draft that I created several months ago. It's not a perfect one as I am not good at the visual design of icons and logos. I am looking for a better one to replace it.

Can't build docker image

When i run the script "DockerBuild.ps1" to build the image, i get the following error:

Get Nerdbank Git Version.
Directory.Build.target has been generated. Nerdbank Version: 0.4.33-g4dbcccdd5c
[+] Building 11.1s (20/24) docker:default
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 1.64kB 0.0s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 382B 0.0s
=> [internal] load metadata for mcr.microsoft.com/dotnet/sdk:7.0 0.4s
=> [internal] load metadata for mcr.microsoft.com/dotnet/aspnet:7.0 0.4s
=> [base 1/2] FROM mcr.microsoft.com/dotnet/aspnet:7.0@sha256:567be43cf97d21523845af3cadf576517bc541cbf18d4a5d11b36873d2b025c4 0.0s
=> [build 1/14] FROM mcr.microsoft.com/dotnet/sdk:7.0@sha256:e882cf3bbeadd42cbe42ed5a76b06379564b285cc16ad2f1ee5e45ebe64b8cb1 0.0s
=> [internal] load build context 0.2s
=> => transferring context: 351.65kB 0.2s
=> CACHED [build 2/14] WORKDIR /src 0.0s
=> CACHED [build 3/14] COPY [AzureDesignStudio.Server/AzureDesignStudio.Server.csproj, AzureDesignStudio.Server/] 0.0s
=> CACHED [build 4/14] COPY [AzureDesignStudio.SharedModels/AzureDesignStudio.SharedModels.csproj, AzureDesignStudio.SharedModels/] 0.0s
=> CACHED [build 5/14] COPY [AzureDesignStudio/AzureDesignStudio.csproj, AzureDesignStudio/] 0.0s
=> CACHED [build 6/14] COPY [AzureDesignStudio.Core/AzureDesignStudio.Core.csproj, AzureDesignStudio.Core/] 0.0s
=> CACHED [build 7/14] COPY [AzureDesignStudio.AzureResources/AzureDesignStudio.AzureResources.csproj, AzureDesignStudio.AzureResources/] 0.0s
=> CACHED [build 8/14] COPY [Blazor.Diagrams/src/Blazor.Diagrams.Core/Blazor.Diagrams.Core.csproj, Blazor.Diagrams/src/Blazor.Diagrams.Core/] 0.0s
=> CACHED [build 9/14] COPY [Blazor.Diagrams/src/Blazor.Diagrams/Blazor.Diagrams.csproj, Blazor.Diagrams/src/Blazor.Diagrams/] 0.0s
=> CACHED [build 10/14] COPY [AzureDesignStudio.SourceGeneration/AzureDesignStudio.SourceGeneration.csproj, AzureDesignStudio.SourceGeneration/] 0.0s
=> CACHED [build 11/14] RUN dotnet restore "AzureDesignStudio.Server/AzureDesignStudio.Server.csproj" 0.0s
=> CACHED [build 12/14] COPY . . 0.0s
=> CACHED [build 13/14] WORKDIR /src/AzureDesignStudio.Server 0.0s
=> ERROR [build 14/14] RUN dotnet build "AzureDesignStudio.Server.csproj" -c Release -o /app/build 10.5s

[build 14/14] RUN dotnet build "AzureDesignStudio.Server.csproj" -c Release -o /app/build:
0.472 MSBuild version 17.7.4+3ebbd7c49 for .NET
1.238 Determining projects to restore...
2.793 All projects are up-to-date for restore.
5.802 /src/Blazor.Diagrams/src/Blazor.Diagrams.Core/Extensions/BaseLinkModelExtensions.cs(59,61): warning CS8602: Dereference of a possibly null reference. [/src/Blazor.Diagrams/src/Blazor.Diagrams.Core/Blazor.Diagrams.Core.csproj]
5.802 /src/Blazor.Diagrams/src/Blazor.Diagrams.Core/Models/NodeModel.cs(18,16): warning CS8618: Non-nullable property 'Title' must contain a non-null value when exiting constructor. Consider declaring the property as nullable. [/src/Blazor.Diagrams/src/Blazor.Diagrams.Core/Blazor.Diagrams.Core.csproj]
5.802 /src/Blazor.Diagrams/src/Blazor.Diagrams.Core/Models/NodeModel.cs(25,16): warning CS8618: Non-nullable property 'Title' must contain a non-null value when exiting constructor. Consider declaring the property as nullable. [/src/Blazor.Diagrams/src/Blazor.Diagrams.Core/Blazor.Diagrams.Core.csproj]
5.802 /src/Blazor.Diagrams/src/Blazor.Diagrams.Core/Extensions/BaseLinkModelExtensions.cs(103,16): warning CS8602: Dereference of a possibly null reference. [/src/Blazor.Diagrams/src/Blazor.Diagrams.Core/Blazor.Diagrams.Core.csproj]
5.802 /src/Blazor.Diagrams/src/Blazor.Diagrams.Core/Extensions/BaseLinkModelExtensions.cs(106,16): warning CS8602: Dereference of a possibly null reference. [/src/Blazor.Diagrams/src/Blazor.Diagrams.Core/Blazor.Diagrams.Core.csproj]
5.849 Blazor.Diagrams.Core -> /app/build/Blazor.Diagrams.Core.dll
5.850 AzureDesignStudio.SharedModels -> /app/build/AzureDesignStudio.SharedModels.dll
5.960 AzureDesignStudio.AzureResources -> /app/build/AzureDesignStudio.AzureResources.dll
6.136 The package Z.Blazor.Diagrams.Core.2.1.6 is missing a readme. Go to https://aka.ms/nuget/authoring-best-practices/readme to learn why package readmes are important.
6.136 Successfully created package '/app/build/Z.Blazor.Diagrams.Core.2.1.6.nupkg'.
7.214 Blazor.Diagrams -> /app/build/Blazor.Diagrams.dll
7.523 The package Z.Blazor.Diagrams.2.1.6 is missing a readme. Go to https://aka.ms/nuget/authoring-best-practices/readme to learn why package readmes are important.
7.523 Successfully created package '/app/build/Z.Blazor.Diagrams.2.1.6.nupkg'.
8.463 AzureDesignStudio.SourceGeneration -> /app/build/AzureDesignStudio.SourceGeneration.dll
10.36 /src/AzureDesignStudio.Core/DataModelFactory.cs(76,17): error CS0117: 'LinkModel' does not contain a definition for 'StrokeStyle' [/src/AzureDesignStudio.Core/AzureDesignStudio.Core.csproj]
10.36 /src/AzureDesignStudio.Core/Network/AppGatewayModel.cs(16,18): error CS1061: 'PortModel' does not contain a definition for 'OnLinkAdded' and no accessible extension method 'OnLinkAdded' accepting a first argument of type 'PortModel' could be found (are you missing a using directive or an assembly reference?) [/src/AzureDesignStudio.Core/AzureDesignStudio.Core.csproj]
10.36 /src/AzureDesignStudio.Core/Network/AppGatewayModel.cs(17,18): error CS1061: 'PortModel' does not contain a definition for 'OnLinkRemoved' and no accessible extension method 'OnLinkRemoved' accepting a first argument of type 'PortModel' could be found (are you missing a using directive or an assembly reference?) [/src/AzureDesignStudio.Core/AzureDesignStudio.Core.csproj]
10.36 /src/AzureDesignStudio.Core/Network/AppGatewayModel.cs(20,17): error CS1061: 'PortModel' does not contain a definition for 'OnLinkAdded' and no accessible extension method 'OnLinkAdded' accepting a first argument of type 'PortModel' could be found (are you missing a using directive or an assembly reference?) [/src/AzureDesignStudio.Core/AzureDesignStudio.Core.csproj]
10.36 /src/AzureDesignStudio.Core/Network/AppGatewayModel.cs(21,17): error CS1061: 'PortModel' does not contain a definition for 'OnLinkRemoved' and no accessible extension method 'OnLinkRemoved' accepting a first argument of type 'PortModel' could be found (are you missing a using directive or an assembly reference?) [/src/AzureDesignStudio.Core/AzureDesignStudio.Core.csproj]
10.36 /src/AzureDesignStudio.Core/Network/AppGatewayModel.cs(24,19): error CS1061: 'PortModel' does not contain a definition for 'OnLinkAdded' and no accessible extension method 'OnLinkAdded' accepting a first argument of type 'PortModel' could be found (are you missing a using directive or an assembly reference?) [/src/AzureDesignStudio.Core/AzureDesignStudio.Core.csproj]
10.36 /src/AzureDesignStudio.Core/Network/AppGatewayModel.cs(25,19): error CS1061: 'PortModel' does not contain a definition for 'OnLinkRemoved' and no accessible extension method 'OnLinkRemoved' accepting a first argument of type 'PortModel' could be found (are you missing a using directive or an assembly reference?) [/src/AzureDesignStudio.Core/AzureDesignStudio.Core.csproj]
10.36 /src/AzureDesignStudio.Core/Network/AppGatewayModel.cs(28,20): error CS1061: 'PortModel' does not contain a definition for 'OnLinkAdded' and no accessible extension method 'OnLinkAdded' accepting a first argument of type 'PortModel' could be found (are you missing a using directive or an assembly reference?) [/src/AzureDesignStudio.Core/AzureDesignStudio.Core.csproj]
10.36 /src/AzureDesignStudio.Core/Network/AppGatewayModel.cs(29,20): error CS1061: 'PortModel' does not contain a definition for 'OnLinkRemoved' and no accessible extension method 'OnLinkRemoved' accepting a first argument of type 'PortModel' could be found (are you missing a using directive or an assembly reference?) [/src/AzureDesignStudio.Core/AzureDesignStudio.Core.csproj]
10.36 /src/AzureDesignStudio.Core/DTO/AzureNodeProfile.cs(15,37): error CS0200: Property or indexer 'NodeModel.Group' cannot be assigned to -- it is read only [/src/AzureDesignStudio.Core/AzureDesignStudio.Core.csproj]
10.40
10.40 Build FAILED.
10.40
10.40 /src/Blazor.Diagrams/src/Blazor.Diagrams.Core/Extensions/BaseLinkModelExtensions.cs(59,61): warning CS8602: Dereference of a possibly null reference. [/src/Blazor.Diagrams/src/Blazor.Diagrams.Core/Blazor.Diagrams.Core.csproj]
10.40 /src/Blazor.Diagrams/src/Blazor.Diagrams.Core/Models/NodeModel.cs(18,16): warning CS8618: Non-nullable property 'Title' must contain a non-null value when exiting constructor. Consider declaring the property as nullable. [/src/Blazor.Diagrams/src/Blazor.Diagrams.Core/Blazor.Diagrams.Core.csproj]
10.40 /src/Blazor.Diagrams/src/Blazor.Diagrams.Core/Models/NodeModel.cs(25,16): warning CS8618: Non-nullable property 'Title' must contain a non-null value when exiting constructor. Consider declaring the property as nullable. [/src/Blazor.Diagrams/src/Blazor.Diagrams.Core/Blazor.Diagrams.Core.csproj]
10.40 /src/Blazor.Diagrams/src/Blazor.Diagrams.Core/Extensions/BaseLinkModelExtensions.cs(103,16): warning CS8602: Dereference of a possibly null reference. [/src/Blazor.Diagrams/src/Blazor.Diagrams.Core/Blazor.Diagrams.Core.csproj]
10.40 /src/Blazor.Diagrams/src/Blazor.Diagrams.Core/Extensions/BaseLinkModelExtensions.cs(106,16): warning CS8602: Dereference of a possibly null reference. [/src/Blazor.Diagrams/src/Blazor.Diagrams.Core/Blazor.Diagrams.Core.csproj]
10.40 /src/AzureDesignStudio.Core/DataModelFactory.cs(76,17): error CS0117: 'LinkModel' does not contain a definition for 'StrokeStyle' [/src/AzureDesignStudio.Core/AzureDesignStudio.Core.csproj]
10.40 /src/AzureDesignStudio.Core/Network/AppGatewayModel.cs(16,18): error CS1061: 'PortModel' does not contain a definition for 'OnLinkAdded' and no accessible extension method 'OnLinkAdded' accepting a first argument of type 'PortModel' could be found (are you missing a using directive or an assembly reference?) [/src/AzureDesignStudio.Core/AzureDesignStudio.Core.csproj]
10.40 /src/AzureDesignStudio.Core/Network/AppGatewayModel.cs(17,18): error CS1061: 'PortModel' does not contain a definition for 'OnLinkRemoved' and no accessible extension method 'OnLinkRemoved' accepting a first argument of type 'PortModel' could be found (are you missing a using directive or an assembly reference?) [/src/AzureDesignStudio.Core/AzureDesignStudio.Core.csproj]
10.40 /src/AzureDesignStudio.Core/Network/AppGatewayModel.cs(20,17): error CS1061: 'PortModel' does not contain a definition for 'OnLinkAdded' and no accessible extension method 'OnLinkAdded' accepting a first argument of type 'PortModel' could be found (are you missing a using directive or an assembly reference?) [/src/AzureDesignStudio.Core/AzureDesignStudio.Core.csproj]
10.40 /src/AzureDesignStudio.Core/Network/AppGatewayModel.cs(21,17): error CS1061: 'PortModel' does not contain a definition for 'OnLinkRemoved' and no accessible extension method 'OnLinkRemoved' accepting a first argument of type 'PortModel' could be found (are you missing a using directive or an assembly reference?) [/src/AzureDesignStudio.Core/AzureDesignStudio.Core.csproj]
10.40 /src/AzureDesignStudio.Core/Network/AppGatewayModel.cs(24,19): error CS1061: 'PortModel' does not contain a definition for 'OnLinkAdded' and no accessible extension method 'OnLinkAdded' accepting a first argument of type 'PortModel' could be found (are you missing a using directive or an assembly reference?) [/src/AzureDesignStudio.Core/AzureDesignStudio.Core.csproj]
10.40 /src/AzureDesignStudio.Core/Network/AppGatewayModel.cs(25,19): error CS1061: 'PortModel' does not contain a definition for 'OnLinkRemoved' and no accessible extension method 'OnLinkRemoved' accepting a first argument of type 'PortModel' could be found (are you missing a using directive or an assembly reference?) [/src/AzureDesignStudio.Core/AzureDesignStudio.Core.csproj]
10.40 /src/AzureDesignStudio.Core/Network/AppGatewayModel.cs(28,20): error CS1061: 'PortModel' does not contain a definition for 'OnLinkAdded' and no accessible extension method 'OnLinkAdded' accepting a first argument of type 'PortModel' could be found (are you missing a using directive or an assembly reference?) [/src/AzureDesignStudio.Core/AzureDesignStudio.Core.csproj]
10.40 /src/AzureDesignStudio.Core/Network/AppGatewayModel.cs(29,20): error CS1061: 'PortModel' does not contain a definition for 'OnLinkRemoved' and no accessible extension method 'OnLinkRemoved' accepting a first argument of type 'PortModel' could be found (are you missing a using directive or an assembly reference?) [/src/AzureDesignStudio.Core/AzureDesignStudio.Core.csproj]
10.40 /src/AzureDesignStudio.Core/DTO/AzureNodeProfile.cs(15,37): error CS0200: Property or indexer 'NodeModel.Group' cannot be assigned to -- it is read only [/src/AzureDesignStudio.Core/AzureDesignStudio.Core.csproj]
10.40 5 Warning(s)
10.40 10 Error(s)
10.40
10.40 Time Elapsed 00:00:09.73


Dockerfile:21

19 | COPY . .
20 | WORKDIR "/src/AzureDesignStudio.Server"
21 | >>> RUN dotnet build "AzureDesignStudio.Server.csproj" -c Release -o /app/build
22 |
23 | FROM build AS publish

ERROR: failed to solve: process "/bin/sh -c dotnet build "AzureDesignStudio.Server.csproj" -c Release -o /app/build" did not complete successfully: exit code: 1
Build completed.

Azure Design Studio Load Error

DesignStudioLoadError

On first load the design studio does not load.

Steps to reproduce:

  1. Clone repo in VS2022
  2. Build project
  3. Set AzureDesignStudio.Server as the startup project in Visual Studio 2022.
  4. Run the project

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.