Inspiration

My partner used to come to our previous office in G-11 Islamabad on local transport from Tench Bhatta, Rawalpindi. He had to go through a lot of trouble of changing vehicles to get to G-11 since there is no single direct transport between the two places. So he came up with this idea that we should have a smart phone app which takes start and end GPS coordinates of a journey and tell you nearest bus stop from your start point. This was back in 2012. We submitted this idea to a government Apps competition in February 2013 I guess but they didn't like it I guess. So we started to work on it by ourselves and internees on the side. Currently it consists of a Web App which works properly and an Android app which is a little buggy but works. We cannot continue to work on it since we don't have funds to put on this. We are willing to make it open source and for all the cities of Pakistan. For this purpose, we are applying to different competitions and funding opportunities.

What it does

User can either select start and end points on a map or select from drop-down menus and it will tell you different local transport options between those points. It also has data of all the local transports for the cities of Islamabad and Rawalpindi. There is user registration system in it as well. The purpose of it to let users suggest new ruotes and modifications/corrections to the current routes.

How I built it

I took a free responsive theme from somewhere online (I forgot now from where but it was free) and customized it. All the coding is done in PHP. I have separated the business logic from front-end by implementing Web API in PHP. The back-end DB is in MySQL

Challenges I ran into

The algorithm to find routes and the design of the database was the main challenge. The team has worked hard on the algorithm and it does what it is supposed to do. But it needs optimization. I have limited the returned results to 1 to consume less resources on the server but the algorithm finds more than more possible routes. This is the main area where the team needs to work for optimization.

Accomplishments that I'm proud of

At start, it seemed like a straight forward and easy project but when we dived into it, the algorithm and the corresponding database design seemed like a mountain to climb. With a lot of effort and revisions, we nailed down the algorithm but database design became the next challenge. Finally, the system works. We have separated the business logic from front-end. There is a Web API which deals with all the logic of algorithm etc. so it can be connected with any front-end. It can be a desktop app, web app or a smartphone app. This means that the whole system is scale-able. We can add data related to cities in the database and it will start appearing in the front-end as well. Due to this division, the performance bottles necks are divided. If the performance issue is at the back-end side, we do not have to change anything in the front-end and vice versa.
Current front-end platforms consists of a Web App and an Android App. In short, We can increase the front-ends like apps for Android, iOS, Windows Phone, Windows desktop, Macs,Linux etc. and on the other side, we can add number of cities by just adding relevant data because of the design of algorithm and database. We are proud of this accomplishment.

What I learned

The team learned different types of graphs, Web API concepts, algorithm and database, Android development and PHP implementation.

What's next for Routes.pk

We have gathered data for the cities of Islamabad and Rawalpindi. We have developed Web and Android apps. Next are (if we get funding)

  1. Gather data of others cities, digitize and and add it to the database.
  2. Improve current apps
  3. Add more front-end apps like iOS, Windows phone, desktop etc.
  4. Create a community around the system so that it becomes a truly by the people for the people system.
  5. Open source it so that other can help in improving it and get benefit from it.
  6. Add a rating system for users and user badges so that users can become admins to oversee the routes correction/addition submissions.

Built With

Share this project:

Updates