Design of internet of things smart bus tracking system using geographical information system

Sounyo T. Emmanuel1*, Nkolika O. Nwazor2

1Centre for Information and Telecommunication Engineering, University of Port Harcourt, Port Harcourt, Rivers State, Nigeria; 2Department of Electronics and Computer Engineering, University of Port Harcourt, Port Harcourt, Rivers State, Nigeria

Address for correspondence: Dr. Sounyo T. Emmanuel, Centre for Information and Telecommunication Engineering, University of Port Harcourt, Port Harcourt, Rivers State, Nigeria. E-mail:
Submitted: 12-02-2020, Accepted: 27-02-2020, Published: 30-03-2020


This paper is on the design of an Internet of Things Smart Bus tracking system. The system will aid its user in getting information on public bus system running in their vicinity. This makes it easier for a client/user to pick up a ride and the know route which these buses take and see the traffic possibilities with the aid of the GIS (Geographical Information System) and API (Application Programming Interface). The application is structured into modules where different activities occur depending on the needs of the client. The modules include action, concurrent, data-driven, logical and event driven modules. The application was designed using software development life cycle methodology. The software application was implemented using Java (Kotlin) for the front end and Apache CoucheDB for the backend and database system.

Keywords: Application programming interface, bus rapid transit, geographical information system, internet of things, Java, tracking systems


Bus Rapid Transit (BRT) is a high-quality bus-based transit system that delivers quick, comfortable, and cost-effective services at metro-level capacities. It does this through the provision of dedicated lanes, with busways and iconic stations typically aligned to the center of the road, off-board fare collection, and fast and frequent operations. Because BRT contains features like a light rail or metro system, it is much more reliable, convenient and faster than regular bus services. With the right features, BRT can avoid the causes of delay that typically slow regular bus services, like being stuck in traffic and queuing to pay on board.[1] The Lagos state government, Nigeria introduced BRT to reduce traffic congestion in the city.[2]

Intelligent Transportation System (ITS) are increasingly being used in developing nations. The authors in[3] worked on a real time passenger information system for an open vehicle framework which comprises of vehicle-mounted units, bus stop units and a server situated at the vehicle owner’s premises. The vehicle unit reports the current position of the vehicle to a central server periodically via General Packet Radio Service (GPRS). An Estimated Time of Arrival (ETA) algorithm running on the server predicts the arrival times of buses at their stops based on real-time observations of the buses’ current Global Positioning System (GPS) coordinates. This information is displayed and announced to passengers at stops using station units, which periodically fetch the required ETA from the server via GPRS.[3]

Internet of things can be applied to public transport systems, especially buses, which are not able to adhere to predefined timetables due to traffic jams, breakdowns etc. Public transportation is unattractive to users due to increased waiting time and the uncertainty in bus arrival time. With the advent of GPS and the ubiquitous cellular network, real time vehicle tracking for better transport management has become possible.

A Smart bus tracking system uses different technologies to track the locations of buses in real time and uses this information to predict estimated bus arrival time at designated bus stops along its route. This information when disseminated to passengers through wireless media helps them to make efficient use of their time and get to the bus stop just before the bus arrives or take alternate means of transport if the bus is delayed. They can even pre-plan their journeys ahead of time. This will give public transportation a competitive edge and make their services passenger- friendly. The use of private vehicles is reduced when more people use public transit vehicles, which in turn reduces traffic and pollution.[1] The authors in[4] worked on the application of Radio Frequency Identification (RFID), Global Positioning System (GPS) and Geographical Information System (GIS) technology for ubiquitous tracking and location of construction resource (e.g. materials). The proposed system was meant to aid the site engineers in ensuring timely delivery of site materials. The authors in[5] also worked on the use of RFID for tracking. The authors in[6] applied GIS, GPS and GPRS in vehicle location tracking. The software proposed in their work can visualize the real position of vehicles on maps and use the information to take decisions in real-time


The Proposed system is a BRT bus tracking system that uses Java with the Aid of RESTful API to enable the users interact with the tracking system. The massive data as stated will be stored in the system databases (MySQL and CouchDB). The Application will have login session for each client, no payment methods was implemented in this prototype. The system comprises two sessions.

Customer Session

In this session, the user Registration takes place. The user can also select desired location, the map then adjusts radar system to defined location with estimated time variant to the user. User can accept/ Deny trip depending on client’s choice. In cases where client accept trip the map points out the closest BRT corridor in the vicinity. Once the user gets into the bus and motion occurs the map system with the aid of the API sends feedback responses to the system and clients indicating the destination. Once destination is reached the application gives a finalized message of arrival and end of trip. Once trip is ended a review dialog box of the user’s fare is displayed.

Transport Proprietor Session

In this session, the transport owner’s Registration takes place. Selection of number of buses available for business, drivers’ and buses Registration takes place. The owner also defines the bus routes and tracker is engaged in cases of emergency or delayed trips.


The information generated from the vehicle include vehicle location, vehicle routes, location of BRT Corridors and expected time of arrival. This work made use of randomly generated data from a computer program based on configured parameters. The real life information is generated from vehicle activities which are detected by sensor nodes on the vehicle and fed back to REST API which in turn feeds the information to the database where appropriate matching is done and the Java program(Kotlin) relates the information from the database back to the client. The system architecture is shown in Figure 1.


Figure 1: System architecture


The real life implementation will involve the use of a Display board which will be mounted on the BRT corridor for information display and also sensor nodes for data collection. These will be synchronized on routine time interval with the server to give passenger details of Bus trips. The application can be used on a mobile device [Figures 2-4].


Figure 2: Flow Diagram for the system Design


Figure 3: The Application Dashboard


Figure 4: Estimated Time of Arrival page

The front and back end of the Smart bus tracking system was built with Java (Kotlin) and its database system is developed on (MySQL and Apache CouchDB). Kotlin is a universally useful, open source, statically composed “down to business” programming language for the JVM and Android that consolidates object-situated and practical programming highlights.[7] It is centred around interoperability, security, clearness, and tooling support.

Server Side

Server-Side feature was implemented with the use of NodeJS and VueJs these are tools used for programming JavaScript. The client logs in to the system by giving the necessary information which is stored in the server database. The application’s database was built using Apache Couche DB; reason is due to the fact that apache has a faster means of storing data in the system.


The application is run on RESTful API tool. With the use of Google Map feature it is easier for the system to get full detailed map feature because Google has a large database of the world geographical locations [Figure 5].


Figure 5: Map tracking system


An IOT-based smart bus tracking system for the Lagos BRT buses and their users was designed in this work. The system will help users get information on the buses running in their vicinity. This makes it easier for a client/user to pick up a ride and the know route which these buses take and see the traffic possibilities with the aid of the GIS (Geographical Information System) and API (Application Programming Interface).


1. Proshare A. White Paper on Intelligent Investing LAGOS BRT SERVICE:5 Things to Note;2019. Available from: [Last accessed on 2019 Nov 07].

2. Osama A, Abdulkarim A, Al-Azizi A. Automatic vehicle location tracking system based on GIS environment. Software IET 2009;3:255-63.

3. Al-Azizi A, Elbanna A, Aloquili O. Automatic vehicle location tracking system based on GIS environment. J IET Softw 2009;3:1049.

4. BRTDATA. Centre of Excellence. Macul, Santiago, CL:Vicuña Mackenna;2019. Available from: [Last accessed on 2019 Nov 07].

5. Nwamba C. Build a Location Feed App for Android with Kotlin. 2018. [Last accessed on 219 Nov 01].

6. Ganesh K, Thrivikraman M, Kuri J, Dagale H, Sudhakar G, Sanyal S. Implementation of a Real Time Passenger Information System;2012. Available from:≍0f95715e68c0d0493e0fde2891f30002d24. [Last accessed on 2019 Nov 01].

7. ITDP. What is BRT?2018. Available from: [Last accessed on 2019 Nov 03].