Hackthons. Architecture. Code.
As 2020 nears the longest day of the year, it is important to document where the software systems we have been working on are at and our next steps for getting to an alpha version of a functioning radically sustainable logistics operation. The following is flow-chart of roughly what we envision.
To explain the numbers in the image above- consider this one sustainable logistics cycle for the use case of food and household item delivery.
- Customer Orders Items
- Supplier Prepares Order
- Courier Picks Up Order
- Courier Delivers Order
- Courier Collects Used Containers
- Used Containers Brought To Wash
- Clean Containers Brought To Supplier
However, one goal with building our software is to abstract things enough so the software can account for other flows beyond the food delivery.
An EOTL member who belongs to one of the worlds oldest computer hackerspaces, c-base, learned that c-base had agreed to host an interesting sounding hackathon called Coding Utopia der Umwelt at the end of January. Two of us from EOTL signed up to participate. The hackathon produced a range of sustainability projects in rough stages, the outcome of our multi-person effort over two days was a rough interface for ordering and a nicely defined data model and API specification for inventory.
On March 22, 2020 the world and Germany locked down to battle COVID-19, a large hackathon was organized by the German government and many people came together to work on various ideas to help the rapidly changing dynamics of society. EOTL was invited by one of our bike courier members to the project which has become Nachbarschafts Marktplatz and we fleshed out and hacked together code for our dispatching platform.
A lot of web application software is developed in way that can be described as monolithic architecture. The software prototype that was developed and shown to the Food Fairies is monolithic architecture- it handles all parts of ordering food, dispatching riders, communicating with restaurants, and reporting back to customers in one software repository- a PHP, MySQL application built on the Laravel framework. Monolithic systems have some benefits and also some drawbacks. Recently, there’s a trend towards microservice architecture which breaks things down into smaller functioning components. Our current software is being developed with the idea of thinking about things in two high level categories: inventory and dispatching.
This encompasses keeping track of what items exist in a network (of suppliers) and how much of those items are available at various locations. This information is presented to both customers, vendors, and delivery people.
Meanwhile dispatching is the activity of coordinating the moving of items from one or more locations to one or more locations as well as insuring this happens in a timely and predictable manner.
As you can see, some of the pieces of our architecture outline of the system are
used more than once, notably the
as it requires data from both inventory and dispatching to function.
Given that not all pieces of this system are even at an alpha state, things may change a bit before completion.
Thanks to multiple talented people who found the idea of sustainable logistics interesting things are starting to take shape. Some contributors have fixed a bug here or there, others have become longer term contributors to the EOTL cause and we are extremely grateful and inspired by contributions of code and pixels.
Our current software is spread between multiple codebases and consists of the following technologies:
- Go + PostGres
- PHP + MySQL
- Vue.js, React
- Bootstrap 4