Let's face it, commuting is not the best part of your day. Whether it be early in the morning or late at night, a long subway ride is your perfect chance for a nap. How many times have you ended up dozing off and missing your stop, forcing you to transfer or walk the difference? With this app, you'll never miss your stop again!
How it works
The user selects the subway station they are departing from, followed by their destination. Based on location and/or travel time, this app will wake up the user shortly before they must get off the train. The user can choose to be woken up in advance by a certain time or by a certain number of stations.
This solution depends on the fact that most subway systems are being equipped with WiFi hotspots. Because It is very difficult to receive a GPS signal or cellular service underground. WiFi is the most reliable way for the device to know its location. It is not necessary for the device to actually sign in and be connected to the internet; all that is required is that the SSID appears in the list of visible networks. For example, the WiFi network in Toronto's subway system is called TCONNECT, and is only available in the actual stations (not in the tunnels between them). This pattern can be thought of like a clock signal: the appearance of TCONNECT represents the positive edge of the clock and signifies the train's arrival at the station. By counting the number of positive edges, the device can calculate how many stations have been visited, and thus when to wake the user up.
At this time, not all stations in Toronto's subway have WiFi connections. However, a considerable amount of them are above ground or otherwise receive a strong cellular and GPS signal. By accurately updating transit status and the device's location at these stations, the app can better predict travel times and compensate for delays.
Challenges we ran into
All of us were interested in Android development, but none of us had actually created a complete application before. As this was the first time for all of us, we ran into challenges throughout the entire lifecycle, including version control, activity management, and graphics. As well, we are all C++ people; we had learned Java a while ago but didn't do any complex development in the language.
Accomplishments that we're proud of
As stated above, this is the first complete app that we have ever developed. Knowing what to expect, we are now much more knowledgeable Android Studio, the Android platform, and Java. As computer science and engineering students, we were able to apply the concepts of object-oriented programming (albeit in C++) that we learned at university in order to reach our goals.
What we learned
Developing this app has taught us the great importance of Git and version control in general. Using the system helped us keep track of everybody's contributions, while allowing us to work independently.
What's next for Wake Me Up
This app is more of a prototype for Toronto's subway; as of early 2015 only the downtown subway stations are equipped with WiFi. As the TTC continues to expand their network, this app will become more practical and useful to passengers. As well, we hope to have versions released for cities with more WiFi-extensive systems, such as New York, London, and Hong Kong.