Last week we completed the last functional component of our system, started working on the UI code, and clarified our roadmap.
This week we aim to start reimplementing some of our components to be compatible with a browser environment, complete a basic react UI, and create the architecture that ties all elements together.
<aside> 🎯 **What are we looking to achieve?
2. Basic React Implementation We shouldn't spend our lives studying without an output, so we aim to produce the first draft of a react UI alongside learning how to use it.
3. Putting Things Together The high-level system architecture is simple and clear. But we need to clear out HOW exactly do we connect these components together. That means, define common data structures, functional interfaces, and other requirements.
Usually and traditionally, we would not go through the hassle of making some admin logic "browser compatible". Particularly given that the natural place for this is in a backend. However, in our case, we do not need to be storing any data anywhere. We just have a data pipeline that loads some things, does some operations, and uploads some other things. No state. Therefore it seems unnecessary to write a backend if all we're doing with it is data formatting.
So we set on to do that, and given that we already have one implementation of all logic, we have made some stable progress.
To create this browser-compatible code, it was important to have no part of the script to interact with the file system as well as create a robust API that we and any other developer can interact with Twilio bots on the front-end.
Our frontend developers have worked hard to incorporate the new knowledge of React into some actual application screens. So far we have implemented nearly every screen as part of the MVP (documented here). However, functional components (such as buttons and forms) are not implemented yet.
Given that we have decided that all components should reside in a client application, we have enough clarity to plan how exactly will these components coexist, communicate, and coordinate.