Public transport operators often struggle to provide a reliable and efficient transport service. A lack of comprehensive real-time operational data is often cited as a major cause for this state of things. In this paper, we report on the design, implementation and testing of an Internet of Things-based system, named Bus Seating Information Technology (BusSIT) system, which dynamically determines vehicle occupancy while the bus is in service. It uses an array of sensors for detecting events in the vehicle: infrared sensors ascertain whether passengers are entering and leaving the bus; force sensitive resistors facilitate seatoccupancy detection; a Global Positioning System shield in conjunction with a Raspberry Pi 4 microcomputer enable real-time tracking of the bus; and a USB camera connected to the same Raspberry Pi assist in cross-checking and validating the preceding information. The data collected is uploaded to an online IoT platform (thinger.io), through 3G or 4G if available, and can be visualized via an android app as well as through a desktop computer user interface. The planned functions of the system were tested in a 20-seater bus. Results showed that the system is able to track the vehicle location, as well as vehicle occupancy in realtime in most cases.