How To Make The All-in-One Platform For Connected Vehicles and People On The Move Vol. 2. “Visibility”
We decided to regularly and step-by-step describe how BaseRide platform works. We want to share some technical details that will let you get the process in general and see the architecture. This part is about our so called “visibility” system.
To begin with, BaseRide platform is Django based, but we, actually, customized and modified the “basic line”. Because our developers are highly creative and love challenges. Due to that, actually, we made our platform a true transformer - a flexible and very “customizable” system.
First of all we built Visibility System. It is a really good, reasonable thing to do if you have a multiuser B2B service. It means you have (many) different companies whom you give access to your web-service, but each of these companies has several officials at different levels.
Django is great. You can divide objects into types and you can delimit access to each of these types for users. “But what about objects within a type?”, we thought. Ok, we set a type - a fleet of a company X. But this fleet includes cars of a division in city X and city Z. Only top managers can have access to data in both cities, but divisional managers are also connected to BaseRide, because they monitor and analyze the company fleet activity in their cities.
So we made and added some modules. And now each user of BaseRide has a definite set of tools and data access parameters. It is easily and quickly tuned.
You create a company profile, each of company managers who will work with BaseRide system creates a personal profile. And then you just delimit control.
It is important, that only data access is delimited, but all objects included into company fleet are visible for all users tied to the company profile.
You also make a manual drag-and-drop setting and choose which exactly rights this very user will have. Will he act as a dispatcher or a scheduler or as a map admin and so on. There can be several “roles” assigned to one user.
Our server API works just according to the same system. Our API is based on Tastypie package. So each user can work with a server via both - interface and API.