- R.1.1 Report di analisi dello stato dell’arte
- R.1.2 Report di analisi delle criticità ed esigenze delle aziende partner
- R.1.3 Documento descrittivo del piano di lavoro, delle attività di animazione e dei verbali degli incontri (aggiornato ogni 4 mesi)
- R.2.1 Report sullo stato dell’arte
- R.2.1 Report sullo stato dell’arte (aggiornamento nel mese M25)
- R.2.2 Analisi SWOT delle tecnologie
- R.2.2 Analisi SWOT delle tecnologie (aggiornamento nel mese 25)
- R.2.3 Repository tool open source (prima versione del deliverable e aggiornamento nel mese M25)
- R.4.1 Piano editoriale
Link to download our slides
The prototypes we are developing
As part of the SIMPLE project, two prototypes will be developed in the ICT (Information Communication Technology) field applied to Green Mobility. Our team has identified two main themes, which have been studied in depth and which will form the basis of the two prototypes:
Beep4Me - this prototype aims to encourage users to use public transport and easily support the distribution of revenue (clearing) between companies that provide mobility services. The experiments involve the use of Bluetooth technologies and the development of new features within applications for tablets and smartphones. The SIMPLE team is developing modules to integrate with iOS applications and Django servers.
POOLBUS - this prototype will allow users to book on demand mobility services, easily and at low cost. The objective is to support those areas of Sardinia where traditional scheduled transport is not sufficient to meet the needs of the population. The prototype will be the basis for a complete system that includes different types of integrated mobility services: sharing, pooling, public transport and hailing services. We are currently developing Android applications and Django server modules.
The programming languages we use
Python is an interpreted, high-level and generic programming language. Created by Guido van Rossum and published for the first time in 1991, Python has a design philosophy that emphasizes the readability of the code. Python supports several programming paradigms, including object-oriented, imperative, functional and procedural. This language is used on the server side to develop Web applications with Django and Django Rest Framework.
We use JetBrains' Pycharm development environment: www.jetbrains.com/pycharm
Java is a class-oriented general-purpose programming language, object-oriented, and specifically designed to have as few implementation dependencies as possible. It is a language that once compiled can be run on all platforms that support Java, without the need for recompilation. The Java language is also used to develop Android applications.
We use the Google Android Studio development environment: developer.android.com/studio
Swift is a general-purpose, multi-paradigm and compiled programming language developed by Apple Inc. This language was born from the need to simplify and make more secure the development of iOS applications, which were previously written in Objective-C language.
We use the Xcode development environment by Apple Inc.: developer.apple.com/xcode
The Open Source tools we use
Django is a high-level Python Web framework that greatly facilitates Web development, providing different packages and modules adaptable to any application. It uses the DRY (Don’t Repeat Yourself) philosophy: in this way, generic functions and behaviors are created to avoid repetitions, making the code cleaner. The code can be developed quickly and in a modular way, so that each function can be used and updated independently of the others. It also features the Django Rest Framework, which simplifies the creation of APIs ( Application Programming Interfaces ) and complex and highly customizable web services.
PostgreSQL is a powerful open source object relational database system with over 30 years of active development that has earned it a solid reputation for reliability, robustness of features and performance. PostgreSQL has many features to help developers create applications. Besides being free and open source, PostgreSQL is highly extensible. Follows the ACID philosophy (Atomicity, Consistency, Isolation, Durability) and allows multi-user access. PostgreSQL can also be combined with PostGIS libraries to manage spatial objects.
Open Trip Planner
OpenTripPlanner (OTP) is a family of open source software projects that provide analysis services for transport networks and passengers. The Java core component on the server side finds routes that combine transit, pedestrian, bicycle and car segments through open and widely available standards-based OpenStreetMap and GTFS data networks. This service can be accessed directly through its Web API or by using a wide range of client libraries. It is not compatible with many versions of Java, but it is possible to solve the problem by using an OTP container with a supported Java version.
Docker gives developers the freedom to create, manage and protect applications by avoiding most of the problems due to software incompatibility. Docker allows you to create containers that contain a specific application and all its dependencies, so that the application works quickly and reliably from one computing environment to another. A Docker container image is a lightweight, stand-alone, and executable software package that includes everything you need to run an application. There is an official repository of ready-made Docker images (Docker Hub).
Routing Google OR-Tools libraries
OR-Tools is an open source software dedicated to operational research, which includes a routing library specialized in solving vehicle routing problems, in which the goal is to find efficient routes for the transport of people or goods through a complex network.
The PoolBus prototype uses the VRPTW (Vehicle Routing problems With Time Windows) routing algorithm of this library, adding the clause that each drop-off must take place following the corresponding pick-up. The solver searches for the optimal route to satisfy all requests for passage within the time windows associated with each stop. The initial data are the destination source matrix, a list of time windows, the number of available vehicles and the reference of the deposit.
The library contains wrappers for the Python, Java and C # languages, which allow developers to use the library in a simple and intuitive way even in languages other than the native one.