Tutorial: Create an MVP

Learn how to use Uniscale from end to end by creating a sample project. This will function as a minimum viable product.

Introduction

The purpose of this article is to create a minimum viable product called "UserSolution" in Uniscale. You can follow along and replicate the steps in your Uniscale workspace.

The article will walk you through the phases of the Uniscale Method:

  1. Specification: Write the functional specification.

  2. Documentation: Link your UX flows to a service and model the service.

  3. Implementation: Generate the Uniscale SDK and implement it into your IDE.

Create a sample project

Functional Specification

Here we will describe the functional requirements.

  1. Create a solution called "UserSolution"

    1. Idea: Use the solution description template here Template: Solution description and use the generative AI in Uniscale to prefill the text.

  2. Create a module called: "UserModule"

  3. Create a page called "User Listing Page"

  4. Create a Functional use case called: "User Listing Table"

    1. Include a description: "Be able to list all users in the solution"

    2. Add a UX flow called "Should have name, email, phone, and gender"

    3. Add a Service flow called: "UserService"

We have described our solution's functional requirements and are ready to move to the next phase.

Service linking

First, we will link the Service flow to a Service. For a detailed walkthrough, please check: Tutorial: Service linking

  1. Go to the module "UserModule"

  2. Navigate to "Service linking"

  3. Click "Add service draft"

    1. Name: "UserService"

    2. Click "Create root namespace"

  4. In Overview, expand the "User Listing Table" to find the Service flow called "UserService"

  5. Drag the Service flow to the Service "UserService"

  6. Create the service by selecting "Create service"

Service modeling

Here we will describe the technical documentation to support the functional requirements.

  1. Click on "Go to" to enter the service editor

  2. Add an named "User"

  3. Add the and define them with the details below:

Property nameProperty typeData typeAdditional settings

Email

Native type

String

Gender

Native type

Terminology

Name

Native type

String

Phone

Value object

New - Product owned

  1. Complete the aggregate and value object.

  2. Create the

    1. Select "Link endpoint" from the menu

    2. Endpoint origin: "Create new endpoint"

    3. Endpoint type "Request/respond"

    4. Endpoint behavior: "Get"

    5. Endpoint action: "Users"

    6. Select "Create endpoint"

    7. Add endpoint input

      1. Create a value object

        1. Name "Empty"

        2. Property type: Value object - Structure

        3. Mark as complete

        4. Data representation: Select the value object "Empty"

        5. Cardinality: "Single"

    8. Add endpoint output

      1. Data representation: Select the aggregates "Value objects" and "UserIdentifier"

        1. Cardinality: "Multiple"

    9. Mark the endpoint as complete

Service locking and approving

You will lock and approve each service revision as you want to keep track of your changes over time.

  • Select "Ready all"

  • In the overview, select "Set all to ready"

  • Select "Approve"

    • Name it "Initial revision"

    • Select "Submit"

We have completed the technical documentation and are ready to begin the implementation.

SDK generation

Now we will generate the SDK and begin the technical implementation. For a detailed walkthrough, please check Generating the SDK

  1. Go to the SDK Portal

  2. Libraries setup:

    1. Select service the service you want to generate the SDK for

    2. Select your preferred programming languages.

  3. Click "Save changes"

Use the Uniscale SDK

With the sample project described in Uniscale, it is time to begin the technical implementation.

Congratulations! We have now fully implemented the solution "UserSolution".

Create a revision

As with any product, you will likely have several product releases with fixes and improvements. In Uniscale, this is done by creating a new revision.

You can either create a new Module revisionor Service revisions depending on what you are updating.

Note that for every new revision, you will generate a new SDK

Build your solution

You are now ready to build your solution in Uniscale:

Last updated