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).