Welcome to April’s Development Update!

I’m not going to lie. April was a crazy month. It doesn’t matter if you measure the number of completed JIRA issues, landed pull requests or the number of times the devs got seriously frustrated - the amount of progress in April has been absolutely remarkable. The Marketplace is almost ready to launch, which is great since its unveiling at Consensus 2018 is right around the corner.

In April we took on a few more developers to help us with the extra workload. Tim Oxley, a JavaScript guru with more than 10 years or experience, joined our team to aid with the Marketplace UI. He will stay in the front-end team as an extremely valuable player to assist with upcoming progress. Welcome to Streamr, Tim! We also drafted in two externals to help us with the UI, Tommi Keskitalo and Jukka Lähetkangas, both of whom are experienced front-end developers.

Below you will find a more detailed list of what the team has done during the last month. Unsurprisingly the list is a bit longer than earlier Dev Updates, simply because the team managed to do so much more than ever before. So please take a look and if you have any questions come talk to us in our chat room for devs in Rocket or in Telegram. Shortly, you will see the result of all our hard work when Marketplace is launched in Consensus 2018, on 16th of May, 10:10 EDT. I hope you’ll join us!

Eric

Deployment of Java 8 and then Marketplace API and then AWS S3 keys to production

Make API and User Guide documentation public

Multiple API endpoints for Marketplace

Allow updating of price, owner, and beneficiary of paid, unpublished Products

Backend: permissions linked to subscriptions now actually expire at endsAt

Backend API: support “free product” flow

Modify Product Creation endpoint to support free products

Fix issue with cross-domain cookies and response headers

Add File upload AWS environment variables to streamr-docker-dev

Product JSON response body changes:

Return prices as strings

Add missing thumbnailUrl

Add isFree boolean

Fixed a GORM deserialization bug exposed by The Tram Demo

Add initial product categories to Marketplace

Figured out what was causing duplicate results in Products API listing endpoints, fix is in progress

Aapeli

Marketplace: Fixed multiple issues regarding the mapping of the Products between the API and the UI

Marketplace: Added the option to get some info from public Infura provider instead of MetaMask

Marketplace: Implemented multiple helpers for formatting the price of a Product

Marketplace: Added multiple utils to check the info from the smart contract, eg:

DATA/USD rate

Product subscription status

Marketplace: Store all prices and rates as strings in the UI and use BigNumbers for calculations

Marketplace: Fix issues with setting a gas limit

Marketplace: Start to use the latest deployments of the smart contracts

Setup the redirecting from the old blog urls to the new ones (after starting to use the Medium blog)

Implement the base for the rebranding of the landing page

Implement the new About Us page in landing page

Kare

Marketplace product image thumbnail and hero image scaling

Show owner of the Product in Marketplace

API endpoint for Streams w/share permission

Run findbugs and fix scariest bugs

Increase the maximum amount of results per one API request from 100 to 1000

Add parameter to API to return Streams without their configs

Add Stream created and updated dates

Backend for the login flow of Marketplace

Add support for removing troll user’s products

Add endpoint for getting Related Products

Juuso

Marketplace contract deployed in the mainnet, still subject to change (pending external audit)

DATA/USD price oracle deployed

Smart contract watcher for Marketplace backend deployed

Mikhael

Add basic CI for Marketplace

Add frontend tests to the engine and editor CI pipeline

Fix engine editor deployment templat

Setup staging environment

Improve engine-editor docker experience for frontend developers

Create docker image for Ethereum Watcher

Reopen and fix Java8 compatibility issues

Fix functional tests — In progress

Setup CD for Marketplace

Set up and prepare Marketplace url for launch (IP-blocked before that)

Deploy staging and production environment for Marketplace

Analyse Marketplace deployment options

Fix webpack error for dev environment

Update engine and editor to support variables in mail configuration

Fix travis caching for Marketplace

Tuomas

Marketplace: Added support for modal dialogs

Rework on how product tiles function

Add support for showing toast style notifications

Implement login flow

Pagination support for product listing view

Publishing/unpublishing status for products is now shown

Juha

Purchase dialog should wait until setting allowance is accepted from Metamask popup

Implement set allowance help dialog

Product purchase dialog doesn’t now show “approved” if the buyProduct transaction fails

Check login session from Engine and Editor, add login key to API calls

Implement publish product flow

Add free product to My Purchase

Edit / Create Product: Show a warning if no cover image is set

Refactor all modals to use the same base

Add transaction for updating paid and published product price

Matthew

Marketplace Product inline editor

Marketplace Product listing filters functionality

Transitioning Marketplace app from the Mock API to the official Streamr API

Add authorization for Marketplace Product edit page

Product publish flow refactored

My Product Tiles edit and publish shortcuts actions added

Henri

Refactor Streamr JS client to use webpack and ES6

In addition to subscribing to streams, Streamr JS client now supports creating and managing streams as well as producing data points to streams

Added more data-api instances to handle growing incoming/outgoing traffic

Tim

Verify user’s edit/publish permissions for product

Detect and display subscription status

Filter out uiChannel streams from stream selector

Fix stream + category selection when creating product

Use real data/USD conversion rate instead of constant

Prefill owner and beneficiary addresses in price dialog

Implement a Stream selector to the Product create/edit page

Add editable product category

Add stream selector for searching, selecting & add streams in product editor

Tommi

Fix various small bugs related to internal changes on how we handle price

Improving API with help of our backend developers

Fix issues with our docker image and API

Validate products in-app before submitting

Add and humanize in-app product validation messages

Add new “missing product” views for different kind of product listing pages

Refactor product lists as configurable and add new views, my purchases and products

Fix a bug with uploading product images

Fix a bug with ethereum addresses in price dialog

Add more functionalities in setting price in dialog for product

Jukkis

Prevent user from editing product price after deployment if the Product is free

Implement & style warning dialog prompt if Metamask account not detected

Fix a bug related to Set Product Price state corruption

Rework Set Product Price dialog UX

Styled and improved the behavior of Set Access Period dialog

Prevent user from attempting to use set bigger allwance than they have balance

Mariusz