Inspiration
There are almost five million cars in Mexico City. It would be great if that fantastic resource could be incorporated into a multimodal transport system integrating private cars and public transport.
Carpooling solutions in Mexico City are too static (itineraries, pick-up times, etc) and need to be negotiated hours or days ahead of time. They are designed for car users (travel between fixed points at appointed times), and are not designed to encourage multimodal transportation.
Othe other hand, multimodal commuters take decisions of their itinerary in the course of their commute, depending on traffic, how slow/fast the Metro is running etc.
Ideally, a car driver and somebody looking for a lift travelling in the same direction shoud be able to find about each other dynamically, that is, in real-time when they are in near proximity to each other. Advances of GPS systems and wide-spread use of smarphones make it straightforward to solve the technical problem.
Asking people in Mexico City, it is apparent that the main problem to be solved is not technical but social: how, people ask, do I know that the person(s) I want to travel with is/are trustworthy?
We propose a solution to this problem: a system where people can report how much they trust those they know, and the services they have used. From this information, the general public can check during their commute and assess who to trust and arrange for immediate carpooling.
What it does
From the point of view of a potential users (riders), the main service is a search feature to retrieve potential services from drivers, ranked according to their trustworthiness. The system also allows riders to feed back information on the service and the driver for future reference to everyone using the system.
Users of the system can also rank people they know independently of whether they have used a service.
The center of the system is constituted by two algortihms to evaluate:
- How trustworthy is a person in the system
- How trustworthy is a service offered by a person in the system
How I built it
The core evaluator is programmed in Java and runs in the server. Scores are computed dynamically.
The database MySQL was used to store information about the users of the system.
The UI was done in HTML, JS, and a bit of JQuery.
The prototype is running in the Amazon cloud (AWS).
Challenges I ran into
The main problem is to design the algorithm in such a way that it avoids infinite loops (cyclical graphs) and does not consume too many resources. For the first problem, a depth-first graph gets build following the "known to" up to a predefined depth, checking that a node is not incorporated twice. For the second issue, we calculate the score of a node with a recursive procedure in main memory now up to a maximum number of nodes. This should limit the search even if the net grows very large.
A second problem is to design a scoring algorithm that is easy to understand and transparent for the users. We have found, for example, some complicated algortihms are more precise but not easy to understand. We do not want that.
Accomplishments that I'm proud of
To provide a simple solution to a fundamental problem of combining carpooling with public transport in Mexico City.
An intuitive system to socialize (i.e. crowd-source )information about the members of a network of users.
An extensible system that can be used for other applications in which opinions, judgments, or publicly-sourced information are integral to them.
What I learned
The system made me aware of the range and diversity of Internet services that depend on recommendations, and the extent to which they are or are not trustworthy.
I also had to consider the differences between services to design a system flexible enough to account for variations:
- public (e.g. TripAdivisor) vs subscriber-only (e.g. Airbnb) recommendation networks
- small (hundreds) vs large (tens of thousands and up) networks
- "tight" (people that know each other) vs "open" networks (few people know others)
What's next for Trust
The prototype is stable now, and can be used through the web page URL.
The next step is to implement REST services for the system's functions. This system can be used as a module of bigger multimodal public-transport systems, as well as in other applications that depend on judgements or recommendations from the public.
Our next goal is to incorporate this system into an app where people can report locations in Mexico City where harassment of women takes place (and the credibility of an alert is ranked according to the score of the person raising the alert).
Log in or sign up for Devpost to join the conversation.