Projects worked on for Antser NV
(December 2015-August 2017)
Antser.io is a project that originally was written to handle all the logistics of a large belgian shipping company ShipEx. By making the logistic flows used more generic and allow full configuration of the data, templates and flows it eventually grew out to a generic logistics application able to tackle many more businessess than ShipEx alone.
In essence the Antser project grew into a framework on its own right. Allowing the dynamic creation of new applications for a variety of B2B processes. By configuring a domain, templates and flows one can build new applications automatically and create a large variety of business oriented software applications wihtout needing to write custom code each time.
And yes the name is a wordplay on 'answer', antser is the answer to any of your logistics and b2b needs.
I was initially hired for a few months to get the frontend up and running with AngularJS. However I stayed allmost 2 years working on about every aspect of the project. We had multiple iterations of redesign and simplification to make things more user friendly and also refactored a ton of code. In the end when I left it was nice to see we had come to a point where it was an actual product now, full of nice and useful features to connect businesses together and to properly organize the data of day to day operations of logistics companies.
Antser Frontend
A large AngularJS application that communicates with json to the python backends. Form builder, communication and permission matrices, dynamic templates. Dynamic css stylesheets can be configured and loaded based on what user and or what domain is being shown. Businesses can connect with eachother, chat, create invoices, shipping orders etc. All data can be searched with nice controls and advanced search fields for filtering data are dynamically generated based on the domain specifications. Numerous controls like date time pickers, code editors and even custom controls could be added.
For end-to-end testing we used protractor. For minification and optimization of javascript and css grunt scripts were used. All javascript dependencies were organized using npm with a package.json. And upon deployment minification and compression was done using grunt scripts.
Another cool feature about this frontend was that it had dynamic stylesheets so we could quickly switch for each customer to a totally different look and feel. One large python backend and frontend basically could server applications for various companies in their custom styling. Each company in turn could generate and customize various logistic applications for their needs. By having such a system it would then in a later phase be possible to connect various shipping companies together as well. The software was mostly ready for this but I think the actual physical contracts and deals still are a work in progress. In time however this system would allow to be used by a lot of companies and it could really help them to communicate more efficiently together.
Antser backend/API
Large json api implemented with python Flask, Celery and uses Redis + Postgresql as datastores. This allows to create custom web applications based on templates, flows and permissions. It also had a scripting engine using nodejs in the backend. The user can completely design templates using a formbuilder and then add custom nodejs scripts to make functioning apps that are mostly targeted at logistics.
Antser websocket chat server
One part of storing the flow of an order within logistics is communication between the shipping companies (like ShipEx) and the clients. At any time during the flow of an order you can chat with eachother and these conversations are kept organized on each flow. To have a nice chat server that uses websockets I started with the template of Miguel Grinberg shown at a python scaling conference. We then further customized this scalable flask application to fit the needs of the Antser eco system. It was written in a few weeks but in the months that followed it was occationally polished.
Antser nodejs sandboxed dynamic code integration
Using a sandboxed NodeJS compiler we allowed adding custom hooks with snippets of javascript code to be run on various events on a flow. This was really powerful as you could not only fully dynamically create completely different data fields for your custom application but also do any specialized actions using javascript when certain events happened for this particular flow.
In August 2017 there was not enough funding to keep me on board full time. However I must mention I really enjoyed working there and wish to thank Nicolas, Philippe and Andre for the opportunity to work with them. Philippe even paid my first invoice a bit earlier before my work of the first month was done because I was in financial troubles due to the whole Rombit ordeal. Can't thank him enough for that awesome gesture!
All my invoices during the 2 years at Antser.io were paid correctly and I wish them a bright future and hope they grow and do well in 2020 and years to come.
My next customer became Airshaper.com.