iskendria-pub / iskendria

Blockchain-based system for scientific publishing
BSD 3-Clause "New" or "Revised" License
0 stars 0 forks source link

Implement and test bootstrap, credits and personal data #14

Closed mhdirkse closed 4 years ago

mhdirkse commented 5 years ago

[AX-14] created by mdi

mhdirkse commented 5 years ago

by dirkse

mhdirkse commented 5 years ago

by dirkse

mhdirkse commented 5 years ago

by dirkse

mhdirkse commented 5 years ago

by dirkse

mhdirkse commented 5 years ago

by dirkse

mhdirkse commented 5 years ago

by dirkse

mhdirkse commented 5 years ago

by dirkse

mhdirkse commented 5 years ago

by dirkse

mhdirkse commented 4 years ago

This story tests the design. By implementing this story it becomes clear whether the modules can interact as planned, and whether the design really supports testing.

This issue includes requirements AX-10 - AX-80, AX-110 - AX-130, AX-3000 to AX-3020, and the bootstrapping functionality of AX-4700 - AX-4730. The requirements about the user interface of the Client and the Major tool should be taken into account. The Portal tool is not started yet with this issue. Documents are left out entirely at this stage.

mhdirkse commented 4 years ago

Today I started implementing this issue. I am giving priority to setting up the over-all architecture, while postponing detailed unit tests and making nice code.

When I can read and write some data to the blockchain, I want to focus on the details. I see a lot of repetitive code coming, so I will first refactor the code to reduce repetition. In GoLang the way to go is generating code. Then I want to unit-test the simplified code.

mhdirkse commented 4 years ago

I change my plan. Yesterday I got a lot of ideas to improve the code I wrote. I first want to make this code as good as I can.

My first goal is now to have a transaction processor and the controller module of my design. I can test it with unit tests and a test client that sends hard-coded transactions.

mhdirkse commented 4 years ago

Today I was refactoring my code.

Some code is now generated, which will simplify unit testing.

I defined new interfaces to the blockchain for my controller module. This makes the controller less bloated with irrelevant error checking. I am still reworking my controller code to the new interfaces.

NEXT STEPS:

Finish refactoring and finish writing the first version of the code for this issue.
Make unit tests.
Do integration test.
mhdirkse commented 4 years ago

The first bullet is done. I can continue to unit tests and integration tests.

mhdirkse commented 4 years ago

I completed unit testing "io.go". This part of the controller module provides classes that act as proxies to Hyperledger Sawtooth.

Using that logic, I can produce transaction payloads and execute them. I have my first working integration test.

mhdirkse commented 4 years ago

I have made progress with writing unit tests. I am done covering bootstrap and settings changes. I am also done with the creation of persons. This means that the client side and the server side do these things as expected. Both handling valid inputs and reporting the right errors for invalid inputs is done. I have good code coverage

Now I am working on updating personal information. I have a few successful happy-path tests (tests with valid inputs). I still need some more happy-path tests and I need to start with unhappy tests.

mhdirkse commented 4 years ago

The three bullets mentioned a few comments ago are done. This means I am done with the controller package as far as it concerns this issue.

I will continue with the Client and the Major Tool.

mhdirkse commented 4 years ago

Tuesday April 16 I talked to Marcel. I need a new software design. When I have that, I can start programming again.