Go to file
Arnaud Delcasse 2f536dfb19 regular routes journeys, persistent KV to store return states, ... 2023-04-03 20:35:12 +02:00
geoutils make distance stuff greate again 2023-03-30 00:45:18 +02:00
handler regular routes journeys, persistent KV to store return states, ... 2023-04-03 20:35:12 +02:00
internal regular routes journeys, persistent KV to store return states, ... 2023-04-03 20:35:12 +02:00
interoperability regular routes journeys, persistent KV to store return states, ... 2023-04-03 20:35:12 +02:00
servers regular routes journeys, persistent KV to store return states, ... 2023-04-03 20:35:12 +02:00
storage regular routes journeys, persistent KV to store return states, ... 2023-04-03 20:35:12 +02:00
tiles regular routes journeys, persistent KV to store return states, ... 2023-04-03 20:35:12 +02:00
.gitignore initial commit 2023-03-27 20:54:56 +02:00
Dockerfile make distance stuff greate again 2023-03-30 00:45:18 +02:00
README.md Add tiles management 2023-03-29 12:50:25 +02:00
config.go initial commit 2023-03-27 20:54:56 +02:00
go.mod Booking 2023-03-30 08:44:58 +02:00
go.sum Booking 2023-03-30 08:44:58 +02:00
main.go Add tiles management 2023-03-29 12:50:25 +02:00

README.md

COOPGO Carpool Service

COOPGO Carpool Service is a carpool management microservice. It is part of the COOPGO Technical Platform and the base carpool component of COOPGO's RIDYGO application. It was redesigned from scratch to implement natively the new OCSS carpool standard and bring interoperability.

This is not a full featured carpooling application. There is no UI and it only implements basic carpooling functionalities (create and find, book journeys). The objective of this service is to be embedded in a bigger carpool or Mobility as a Service platform.

It provides a gRPC service to interact with other microservices, and an HTTP API to provide interoperability with external carpooling operators.

Technical architecture

Managing trips and journeys

Trips and journeys are managed through the provided gRPC service and stored in the database (MongoDB for the moment). They are stored in the database as GeoJSON feature collections with extra members defining the trips and journeys non-geographical parameters.

Tiles architecture and cache

To reduce dependencies on the chosen database, we decided to manage geographical calculations directly in our code instead of relying completely on MongoDB geographical features.

We use a tiles system to retrieve relevant journeys easily. Each tile is defined by :

Journeys are stored in each relevant tile (where a departure, destination or part of the polyline enters the tile)

Booking

OCSS standard

The OCSS standard is the new carpooling interoperability standard defined by the french carpooling ecosystem.

COOPGO Carpool Service implements all of this standard, except the messages endpoint which we think should be handled outside of this service, as different carpooling or MaaS applications may handle messaging differently.

Licence

COOPGP Carpool Service is released under the terms of the AGPL version 3 licence