Backend integration

One of the main things that was needed to have a running app was integrating the front-end with the backend. This week we set up the connection and integrated CRUD operations, which was essential for successful completion of our milestone.

iOS frontend

The front-end has gone through a true metamorphosis. We completely changed the way we are parsing and cascading views and most of the important components of the code base have tests and documentation now.

The big refactor

JSON and Codable lacked a lot the functionality that we need. Therefore, we created a new file format to define views, sessions and other elements in our app.

  • We created a new language, which may or may not be coined “CVU” (Cascading Views). The language is a superset of json, it allows for defining executable commands, with a forgiving syntax that enables you to define your views and other objects in a compact format, including syntax highlighting.
  • We created a custom parser for this markup language in swift, which enables lazy parsing and execution, and we created classes that store the definition of the Elements in a serialisable format

Apple TestFlight

We set up Apple TestFlight for internal testing. This means we can now run the memri iOS app on our phone within our team, without downloading xcode. For the coming weeks, the fundamentals of our app will be tested by ourselves, our friends and family, after which we will start addressing a larger audience, while introducing all kinds of new features, exciting times!

Importers

Our first importers (notes for iOS and Evernote) are starting to look like mature tools. We implemented authentication for the existing Evernote importer. And it is now possible to download your notes via an API call to the pod.

Hosting and security

We made big steps on the plans for our hosting architecture. As a reminder: The biggest question is how we can scale our hosting architecture while keeping privacy and autonomy in mind. This work is super important, as it will greatly influence the price level of our product. We Investigated the minimal memory footprint of DGraph by experimenting with its settings in a docker container. We learned how we can use Kubernetes and other container formats (Kata) to achieve nested virtualization, which will still allow us to run each pod in its own virtual machine.

Also, we did some practical work to set up our first personal pods. We used a simple architecture with 3 Kubernetes containers: one for the API, one for Dgraph and one for our importers. On the last day of our milestone we connected to our pod from the iOS app running on our mobile phone.

Incorporation

We are now at a point where we know what our options are for a legal structure that suits our democratic needs. An internal presentation about these results will follow next week, and we have good hopes we can communicate our decision soon.