Trading physical coal can be complex due to the number of
specifications within the coal products that can impact a
deal. Additionally, large assignments of coal that are
traded via established markets can leave customers with
leftover quantities of coal where the specification and
weight make it extremely hard to sell.
We were asked to build a product into the Limpid Markets platform to provide a more effective way for traders to communicate and agree on coal specifications when trading, and to also fill the gap left by the established markets by providing a means for customers to buy and sell their odd leftover lots of coal.
In partnership with Coal Port Services, a logistics specialist for the Australian coal industry, we created a new product within the Limpid Markets trading platform to allow for the negotiation and agreement of physical coal trades for six distinct coal specifications. We also took the opportunity to make some significant improvements to the existing platform with changes to the user interface and underlying technologies.
As part of our continued development for Limpid Markets, we actively look to improve aspects of the frontend to speed up development and improve overall code quality. One of the biggest changes was the introduction of JSON schema together with AngularFormly into the frontend. These technologies allowed us to describe how a form should be displayed on the backend and should dramatically speed up the development of trade forms for future products. It also provided a much more elegant solution for form validation, using AngularFormly’s validation abstraction to validate form entries against parameters that are defined with the JSON Schema itself. Ultimately, we’ve implemented an elegant form building solution which should speed up the development of future products within the platform.
In addition to further abstractions and refactoring work necessary to facilitate the new product within the Limpid Markets platform, the Symfony application that powers the backend was expanded with a module that generates the dynamic JSON form schemas that James mentioned. Our solution extends on the validation offered by Justin Rainbow’s JSON schema validation library by actually generating the schema documents from doctrine entities. It does this through the use of a set of custom annotations. We’ve also implemented a custom form builder API, which means we can easily generate a JSON schema for a particular entity and its associations and then tweak it as necessary to suit the frontend requirements. This solution is proving to be very powerful and we hope to replace the majority of the forms in the platform with JSON schema powered ones.
As we were adding a new product to the Limpid Markets platform, I saw this as a great opportunity to create a styleguide. This allowed us to tighten up the colour palette and typography, as well as creating modular designs for common elements. Moving forward, we plan to add many more products to the platform so this will ensure we have a consistent style, and will also make the design process quicker in future.
UVD has once again delivered the quality work I have known them for ever since we started working together. Limpid Markets’ success story continues to be indissociable from UVD’s team and I hope this will always be the case.
Get in touch if you’d like our help
Whether you’re a startup or established business, we can help you to innovate, compete and grow. The first step is easy: contact us.