Setting up projects

Whenever you want to create a solution with Solution Designer you need to set up a project first. Solution Designer currently supports the following project types:

Application composition projects

This project type is used to compose applications by adding multiple components from a repository.

Create new projects

You can create new application projects by clicking on the "Create" button on the Projects overview page and providing the following information:

  • In the "Create Project" dialog choose Application Composition Project

  • Specify a unique acronym for this project

  • Give the application a name

  • Select the Git provider that should be used to store the project's source code

  • Choose a repository group at this Git provider

  • Choose one or more tags (optional)

  • Choose an icon (optional)

  • Enter a description of your application (optional)

  • Click on create

Now that you have a new application composition project you need to add at least one deployment target before you can start adding components.

  • Click on "Add deployment target"

  • Select a namespace from the drop-down (you will see all configured deployment targets)

After having added deployment targets you can start adding components by clicking on the "+" button.

Read more about managing application composition projects.

Delete projects

To delete an application composition project you just have to click on the trash icon in the right upper corner inside an application project. You will be prompted with a confirmation screen where you have to type the acronym of the application to delete it.

Note: Delete is only shown if the user has the needed privileges granted in the Git repository.

Service projects

This project type is used to create a single microservice that you decided to implement on your own. The creation of a project requires some information on the project's category, type and implementation language. You have two options to create a project:

  • Create a new project from scratch

  • Import a Project Template from the Marketplace

Note: When creating a project from scratch, you will have to provide all the information stated below. When importing a template to create a new project, some information will be set by the Project Template such as the category, type and implementation language.

Create new projects

Attention: Within Solution Designer, there is no possibility to grant permissions to a project. To make a team workable with the project you must manage the permissions in the Git repository.

Project category:

Starting with the project category, Solution Designer offers the following categories of projects:

  • Experience API: Experience APIs refer to a project that will be connected to an external channel. For example a mobile or a web-based application.

  • Domain Service: Domain services encapsulate the core business logic of a business domain.

  • System API: Refers to projects that will be integrated to other projects in order to enhance the functionality of the latter.

All options work basically as a flag expressing the overall purpose of the application.

The idea is that, while all of these could easily be incorporated in one big monolith, this would be considered a bad design as any small change would affect the entire project. In other words, by putting each project in the corresponding layer, it allows for a modular design where a small change will affect only the altered project.

Project type:

Solution Designer offers two different project types that support different approaches of development:

  • Low-Code Projects: Modelling based on Domain Driven Design principles with rich code support for all modelled elements

  • Pro-Code Projects: Full control over model and implementation with basic code support for build and deploy

Implementation language:

The third information necessary to create a new project is the implementation language of the project. Since both project types generate supporting code, you need to specify the implementation language for the project. Currently, the following languages are supported:

  • TypeScript: Available for both Low-Code and Pro-Code Projects

  • Java: Available for both Low-Code and Pro-Code Projects (you need to provide a package name for the project)

  • JavaScript: Available only for Pro-Code Projects

Project master data:

Finally, you can define the Master Data of the new project as follows:

  • Acronym: The project's acronym must be unique and must not contain more than 8 characters in capital letters and numbers without special characters (required)

  • Name: The name of the project (required)

  • Git provider: A list of all Git providers for which you have an access token (required)

  • Repository group: All repository groups in the specified Git provider for which you have at least read rights ( required)

  • Domains: Tags to group the projects on the Overview page (optional)

  • Icon: Name of the icon used on the Overview page (required)

  • Description: Description of the project. Shown on the Overview page (optional)

Confirming the entries completes the creation of a new project.

Project states:

The state of the creation process is shown in the Projects overview. It shows Processing while the project is being created. In this state you can open the project, but you cannot proceed any action. In case of an error, it is also shown on the project in the overview. In this case you can open the project in order to delete it.

If a project was created successfully it is stated as New for the first 24 hours after creation. If its state is * Error* after creation or import, it means that the creation or initialization of the project on the remote Git repository failed. In this case it cannot be guaranteed, that the project is now ready to work.

Possible reasons for this are:

  • The remote Git repository is not available at the moment

  • Invalid Git username and Git token combination defined

  • The defined Git token does not provide enough permissions to create a new repository

Recommendation:

  • Ensure that the above-mentioned points are set up correctly

  • Delete the project in Solution Designer

  • Ensure that the remote Git repository was deleted as well (if necessary, delete it by hand)

  • Try to re-create the project using Solution Designer. If it still fails, please contact your administrator

Note: The user who created a project has the possibility to read it while the project is in the state Processing or * Error*.
Tip: In order to hide your project, make sure to set your project to private in the Git repository.

Export projects

To share a project with other users or teams in the local Marketplace, open the project and navigate to the Overview page and then select the Export capability. To execute that capability, you need to have the role MP_USER. Then you are asked to enter the following information for the exported project:

  • Marketplace Name: The display name of the project at the marketplace (required)

  • Contributed By: Name or organization (required)

  • Marketplace Tags: Tags that allow other users to search for (optional)

  • Marketplace Description: Description for the project (optional)

Confirming the entries will transfer your project to the local marketplace, and it can be reused by others.

Delete projects

To delete a project, open it in Solution Designer, navigate to the Overview page and select the Delete capability. Then you are asked to confirm the deletion.

Note: Delete is only shown if the user has the needed privileges granted in the Git repository.

When deleting a project, multiple steps are done in order to clean up the project properly. The following list shows the data that is cleaned up while deleting:

  • Artifacts of the project in the database

  • Git repository with its data

  • All deployments of that projects

  • Cached data related to that project

Warning: Restore of a deleted project is not possible.