In this project, we developed a real-time software solution that helps users to find the optimal combination of routes in a bus-based passenger mass transportation system, TransMilenio (TM), in Bogota, Colombia. The TM users face the need to choose the best route between two points, and the information presented, in form of maps and operation hours for each route, usually is not enough to make that choice. Even if a user could have all the information about the system, the decision would not be trivial. Also, there is not a unique way to define the optimally criteria, since besides total travel time, the user might want to avoid changing buses which might involve long walks in the stations, or avoid congested routes to increase the chance of finding an available seat. This paper describes the problem faced and the proposed solution