Recently, the Flemish weekly magazine Knack published a scathing article entitled "Pamphlet of an angry bus traveler: The 10 pests of De Lijn", in which it decried (among other things) the inefficiency of public bus transport. One of the main reasons for this inefficiency: buses run along fixed routes, following fixed time schedules, both of which are defined not knowing where (potential) passengers are, where they want to go, and when they would like to arrive. As a result, some buses run empty, whereas others are jam-packed with frustrated passengers. The ubiquity of mobile devices would, for the first time in human history, allow for a large-scale shift to on-demand public transport in which buses drive along routes completely determined by requests for transportation. In such a system, when a passenger wants to move from one place to another she indicates her departure and arrival locations, as well as a preferred time of arrival. Planning all of these transportation requests, however, is a daunting task, for which adequate models and algorithms have not yet been developed. This project focuses on the optimization problem that arises when bus routes in an urban environment are determined entirely based on transportation requests issued by potential passengers. We call this novel problem the On-Demand Bus Routing Problem (ODBRP) and will develop efficient algorithms for its different variants.