You’ve already contacted us, we’ve invited you to our Slack Workspace and now we pointed you to this site right? The path might be stony and invites you to get lost in the jungle. But we want to prevent this from happening so we created this guide to keep you organized. A good workflow would be to create teams to work on the various parts shown here.
Part 1: Getting Route Data
In order to get the app to guide the app user we need of course the routes the public transportation vehicles are driving. Usually you obtain this kind of data from your public transportation authority or your city authority. Usually the data you get is in one of the following file formats (GPX, JSON, GEOJSON, …). If you can’t handle the formats yourself then kindly ask us for help. Some of us are really good in such things and can convert between file formats. If your authority does not provide this kind of data then it is probably not nice and you need to gather this data by yourself on the field. For that we recommend the Android App “GPS Essentials”. Also on this one we can provide help if necessary.
Please also ask your authority if they want to support you and your team somehow e.g. by hosting the community website, sponsoring an OTP server or if they want to work with us e.g. we also provide an app for the drivers (e.g. they can indicate if they’re full or can take additional passengers) and with data our apps generate they can improve their public transportation infrastructure.
Part 2: Importing Route Data to OpenStreetMap
OpenStreetMap is the “Wikipedia of Maps”. Like Wikipedia aims to provide free knowledge, OpenStreetMap aims to provide free Map Data (focuses on the underlying data a map is made of). We chose OSM because it makes routes easier to maintain and because we love Open Data Initiatives. In order to add data to OpenStreetMap your mapping team needs the following:
- JOSM which is freeware and looking forward to meet you. It can be downloaded from here for Linux/Mac/Windows (it requires Java to be installed).
- The configuration file for JOSM which makes mapping bus routes easier and which you can create by following this tutorial. Then Your mapping team can follow the tutorial here to activate it on their machines.
Now your team can start to add routes to OSM by following the tutorial series showing how to work with JOSM. Especially the section “how to add routes to OSM” might be worth to read. While experience in OSM is helpful, it is not required.
Part 3: Retrieving the Trip Times
App users do not just want the routes but also the times where a driver stops at a particular position. The format GTFS is common for conveying such information and we use this format.
Formal traffic means that a timetable and bus stops exist. Is this the case in your city/country then your public transportation authority has such files. Just ask them friendly to hand you in that files.
If your city’s public transportation works on demand, no bus stops and no timetable exists, then it is informal traffic. Your public transportation authority then has no GTFS files we strongly need in order to make the app work. But don’t worry! We have a solution for that. We developed a handy script that you can use to generate GTFS files out of the route data you entered into OSM (see section “Importing route data to OpenStreetMap”). Just fork the script and optionally clone it to your computer. Then follow our instructions in the README file. It is quite easy 🙂
Part 4: Customizing the App
The app is needed to make navigating in your city’s public transportation infrastructure possible and to provide a friendly, good looking user experience. Don’t worry! You don’t need to do program much. We did the most work for you and developed a core that you can tweak easily according to your needs:
- Retrieve its code from GitHub (Log in in/Create your GitHub Account, fork and optionally but recommended download it from your fork).
- An example implementation will demonstrate you how to modify it.
- Modify the code according to your needs. You have contact with our tech-team and can ask them for help.
- Think about a custom name
- Create app logo
- Custom UX/UI
- Localizing the app (adding your local language to the UI)
Part 5: Publish the App
If you are done tweaking the app and everything is working fine, then compile and publish it. Publish the app to Google Playstore and Apple Store under your custom app name.
Part 6: Community Website & Social Media
Having a website for the app with a blog which you can use to inform about your events, new app features, promote your work, show what a community can do and what human power can accomplish is nice. Let’s work also on this:
- Buy a domain e.g.
- Organize a hosting. There are free hosting services out there which do not show ads. You can also use GitHub Pages since this is your project site.
Or ask your authority to sponsor a domain and or a hosting.
Also social media channels are nice. Here are some recommendations:
- Select the social media platform which is common in your country so you reach more followers. Consider also using the second and third common one.
- Use the app logo as your channel/profile picture.
- Inform your users about new app features, community activities and more you can think of.