The CO3 modular platform

The CO3 modular platform

The platform developed in the CO3 project comes from previous developments by each of the partners that have been deeply modified to adapt to the project, providing the new functionality required and a high modular capacity; Each partner can update with some autonomy its characteristics.

The basics technologies of the project

For this reason, it has been decided that the combination of the interfaces is carried out through web technologies, that is, through iframes and web-views that share information through an element at a higher level called “LandingPage” that allows managing the information with which the user is interacting.

Technically, the CO3 platform is made up of a total of 9 modules. Of these 9 modules, 4 modules are visible to the end-user, and the other 6 are sub-modules that can be integrated by parameterizing the calls or utilizing APIs on different servers.

data_flows_arquitecture
The architecture of the data flow between the different components of CO3.

The four user-visible modules

LiquidFeedback

The liquid democracy interface, Liquid Feedback, a frontend made in LUA, renders the view on the server using the Web MCP component of Liquid Feedback.

Mobile view of the Liquid Feedback web interface.

LiquidFeedback is downloadable from its final repository in the form of two parts, the server in charge of providing the frontend and serving the requests. On the other hand, some binaries in charge of working with the PostgreSQL database with its corresponding tables called Core. The installation instructions must be followed carefully as it involves a script with many different parameters that can lead to installation errors. Before installing LiquidFeedback core or frontend, it is necessary to install 4 components on which they depend to function previously; PostgreSQL, pgLatLon, Moonbridge, and finally WebMCP. If any of these components are missing or don’t even have an LUA interpreter installed, the server run that provides the interface will not work.

FirstLife

The interface of geolocated social networks, FirstLife, a frontend made in Angular, renders the client’s views, that is, in the browser / webview. The code required to run a private FirstLife instance can be found at this link. The installation instructions are easy for people to build scripts with angular tools like ng build and YAML.

firstlife
FirstLife has an Angular-based interface where the user can add tasks.
Digital wallet

The interface of the digital portfolio (wallet) of the CO3 platform developed by Apeunit is developed on React, a framework that is rendered on the client. The source code is currently provided in the official project repository. A script for YARN is provided, which generates the web interface in React. For this reason, before compiling the wallet, it is necessary to install a Node.JS server and the YARN manager. A manual is not provided, but a self-installing script.

digital wallet
The wallet interface is integrated into the AR APP since there was no interface to integrate before starting the project.
digital_wallet_data_flow
Representation of the data flow carried out in the webview can be integrated into the wallet with the rest of the CO3 components.
AR app

The APP developed on the Unity platform, which is compiled and not executable for each mobile platform. Currently, the source code is not provided and is under development.

ar app
The sequence that the user follows within the AR APP to locate a bookmark and add content.
AreaViewer

This module provides us with a map interface based on Angular, integrable in other web platforms or web views in APPS through the CO3 APP. The AreaViewer consumes data from the OnToMap through different parameters that are specified when including the interface. The source code is downloadable from the repository. And the instructions for use and integration are provided through iframes.

areaviewer
AreaViewer is responsible for displaying an interactive map that is redrawn based on user actions.
InputMap

It is the mechanism by which layers of information are added to the AreaViewer. Using latitude, longitude, and zoom level, it shows the different items available. To achieve this goal, InputMap uses Openlayers, which is a library written in javascript. The source code is provided through the official UNITO repository and the installation and use instructions.

InputMap requires the coordinates in the form of a triplet, for each of the elements to be displayed.
The following image shows elements superimposed by the InputMap library on the AreaViewer, being able to add cards referenced to a POI.
OnToMap

The central point of intercom for the entire CO3 platform. OnToMap, is a web service that provides data interoperability with a semantic structuring. The OnToMap service is not only limited to interoperability, but also includes a module in charge of calculating the metrics necessary for the gamification of the CO3 platform to facilitate a centralized way of evolving the profile of each user. The source code can be downloaded from the repository. Installation instructions to follow to get a functional instance like the project are also provided.

ontomap_submodules
Example of different possible interactions between the 3 sub-modules of OnToMap and an application.

The OnToMap API establishes some required fields to save the information, although it allows its extension, as long as the anthology is respected. Currently you can view the official API documentation through the following link. Although currently no access tokens are provided to institutions outside the project.

ontomap_personas
Format with predefined fields when saving / retrieving information from OnToMap.
FirstLife Tile Server

Server in charge of providing cartographic information with graphic elements such as vectorized images in SVG or static images in png, of the different areas of the map as the user is moving with the AreaViewer component. This server is based on openmaptiles which already contains maps compiled from free sources. The server provides each zoom level requested by the user, the level of detail, area and scale in a graphical format that is then manipulated and connectable by defined segments. After providing source code, in this case a complete script is provided to run an instance from a Docker specification. The Docker script can be obtained from the following link and as well as the instructions to run it.

openmaptiles
Depending on the level of detail requested by the user, the server provides a level of granularity of the map images, connectable by references to their vertices.
FirstLife Resource server

This component is responsible for providing storage for the different events or points of interest created in the FirstLife interface, it provides a link through which the content can be downloaded. Both from the AreaViewer itself and from external interfaces through the permanent link, as used in the CO3 APP. The resource server is based on Multer an express-based middleware to manage the traffic of multipart downloads and on mongoDb as a database to store data (even binary files) in the form of BLOBs. To obtain a working copy of the FirstLife Resource Server, it can be downloaded from the link below. Such a working copy does not incorporate data, so the instance of the FirstLife interface that is run should be a new instance for the integrity of the permalinks to be maintained. Installation instructions can be viewed at the URL.

resource
Saving a binary object that represents an image in mongoDB, the format used is JSON.
Closing words

As we have seen, the CO3 platform is made up of modules that apparently may have little relationship, it is that they apparently have little coupling, except for sub-modules of larger projects such as FirstLife. This benefits that project partners can make internal changes to their modules without seriously affecting another partner. This type of design for integration entails a handicap which is the cohesion between the different modules, for which the partners have had to make a great effort to standardize the formats and fields used in their information exchange platforms to adapt them to work with OnToMap. On the other hand, the AR interface is in early development and the source code will be made available to the public soon.

Recent posts

CO3 Final Event: Agenda for Invitations
Co3Project Final Event
NOOC: Disruptive Technologies to Co-create, Co-produce and Co-manage Open Public Services
    CO3 Partners m1.1 What is CO3 project Co-Creation Workshop co3project Discover Aumented Reality within Pilot Cities Plenary Meeting m1.3 What is CO3 project (Athens) Divulgative events on disruptive technologies and strategies: Blockchain CO3 project Model of interaction between PA and the citizens co3project def II Blockchain, AR and volunteer activities What is Gamification? Divulgative events on disruptive technologies and strategies: Blockchain What is Augmented Reality? Module1 What is CO3 project Module7 Co Design m1.5 What is CO3 project (Turin) m1.6 What is CO3 project (ending) What is Blockchain? Module6 Gamification m1.2 What is CO3 project (Cities) Module4 Interactive Democracy What is Interactive Democracy? co3project Discover the activities m1.4 What is CO3 project (Paris) Module3 Augmented Reality co3project Download the App to discover the cities Module2 FirstLife CO3 Partners Divulgative events on disruptive technologies and strategies: Augmented reality and Gamification Module5 Blockchain CO3 project kick-off meeting #H2020 CO3 Partners What is FirstLife? Divulgative events on disruptive technologies and strategies: Augmented reality and Gamification
The CO3 project has received funding from the European Union's Horizon 2020 research and innovation programme 2019-2021 under grant agreement No 822615. The content of this website does not represent the opinion of the European Union, and the European Union is not responsible for any use that might be made of such content.
X