This document describes a system to predict bus arrival times at stops. The system consists of three main parts: querying users who request arrival times, bus modules that collect real-time data on buses' locations and delays, and a backend server. The server predicts arrival times using the bus modules' data and a traffic modeling technique called M/G/1 queueing. It sends predicted times to requesting users. Traffic is modeled to account for delays from other vehicles. The system aims to help users plan their schedules and increase reliance on public transit.