Summary:
In this paper, we present the carpooling web application CarShare. CarShare’s
goal is to
divide the travel expenses among all the occupants of a vehicle (driver and
passengers).
First, screenshots are provided, in order to describe the main functionality of
CarShare. The homepage of the application, the login functionality, the entry
of a trajectory, an example of the search of a trajectory, as well as, the
logout functionality, are included in the aforementioned screenshots.
Τhe algorithm of the Longest Common Subsequence (LCSS) is presented. LCSS
algorithm is used, in order to compute the similarity between two trajectories
and the reasons why this particular algorithm is used, are explained, compared
to previous approaches and LCSS is described in detail.
The specific format of the trajectories, in order to be stored to a non
relational (NoSQL) database, is analyzed, as well as, the reasons why a non
relation database like MongoDB is ideal for CarShare. The RouteBoxer algorithm
is presented, in order to reduce the number of “trajectory candidates” that
will be used as LCSS inputs.
Afterwards, technical details about CarShare’s implementation are demonstrated.
CarShare follows the Representational State Transfer (REST) architectural style
and for this reason, the Laravel Framework and AngularJS Framework was used for
the back- end and frontend of the application, respectively. The combination of
the aforementioned Frameworks in a specific way, was followed in order to
comply with the Model-View- Controller (MVC) architectural pattern. JSON web
tokens are introduced, as a way to implement a token-based authentication and
completely deactivate PHP sessions in the application. Moreover, Login via
Facebook functionality and the way it is combined with the above, are
demonstrated.
Finally, benchmarking tests, to examine how scalar our application is,
depending on the number of the trajectories stored in the database, are
provided.
Keywords:
trajectory similarity measures, web application, nosql databases, mongodb, json web tokens