DEV Community

Cover image for Building a "Wevo" - Modeling a Real world promise.
h1d3mun3
h1d3mun3

Posted on

Building a "Wevo" - Modeling a Real world promise.

Hi guys :p 👯‍♂

Welcome to Wevo series.

As I introduced in my previous post, I built Wevo.
https://dev.to/h1d3mun3/introducing-wevo-building-a-trust-history-app-with-swift-vapor-340g

In this series, I'll describe how Wevo is built.

Let's Dive in.

Motivation

First, let me explain why I built Wevo.

As I posted before, I believe our trust history and related information should belong with us.

Trust is built from many properties.
History, Details, reactions, date... and so on.

So, I believe these information should be in our hands.

But in reality, this isn't the case.

Our trust history is locked inside platforms.

There are many options to create trust in each other.
(for example, Slack, linkedin, gmail, X(formerly Twitter), facebook..)

If you made a promise on a Slack, and if you want to move promise history to gmail?

that's not. you can't move your trust history to other services.

This is why I built Wevo.

I also had a personal problem: I couldn't remember all the appointments properly.

Make a "Real world" promise model

Organize the flow of the agreement

Next, let's talk about how I made a promise model.

In the real world, many promises follow this sequence.

  1. One person proposes to another.
  2. The counterparty accepts the proposal.
  3. Both parties fulfill their duties.
  4. The promise is fulfilled.

So, I need to create a model that can at least represent this much.

But, not every promise is fulfilled.
Some promises are not fulfilled due to some reason.

If a promise is not fulfilled, it follows this sequence instead:

  1. One person proposes to another.
  2. The counterparty accepts the proposal.
  3. One of them didn't fulfill their duty.
  4. The promise is not fulfilled.

In addition, this can also happen.

  1. One person proposes to another.
  2. The counterparty doesn't accept the proposal.

I also need to create models that can represent these aspects.

Naming

After organizing the promise sequences, I needed to name each state.

I named each action as follows.

Action Description
proposed One person proposes to another
signed The counterparty accepts the proposal
parted One of them rejects the proposal
honored Mark promise as fulfilled

And named each state as follows.

State Description
proposed Created after proposal. Counterparty has not yet signed.
signed Counterparty has signed.
dissolved Counterparty rejected the proposal, or one party withdrew after signing.
completed Both parties marked the promise as honored.

Next Post

In next post, I will explain how to express agreement in a promise and how to verify its status.

Cheers! 🤙
Happy coding~ 💻😙💻

Top comments (0)