/marguerite-ios

An iPhone app for riders of the Stanford Marguerite shuttle bus system.

Primary LanguageObjective-C

NOTE: This version of the app is no longer available in the iOS App Store, and this repository is no longer being maintained. The source code of the new version of the app can be found at https://github.com/Marguerite-iOS/Marguerite

Marguerite for iOS Build Status

Marguerite is an iPhone app that makes it easier for riders to use the free Stanford Marguerite shuttle bus system.

Features

  • See what buses are arriving next at the Marguerite stop closest to your current location.*
  • View the real-time locations of all shuttles on a Google map.

*No Internet connection required!

Screenshots

Next Shuttle Stop Live Map

Contributing

Getting started

Prerequisites

  1. Download and install Xcode 4.6.3 from the Mac App Store.
  2. Install the command line tools by opening Xcode, clicking the Xcode menu -> Preferences, then click the Downloads tab, then click the Components tab below, then click "Install" next to "Command Line Tools."

Viewing the Code

  1. Clone the git repository.
  2. Open the Xcode workspace (not the project!) by double clicking on the "marguerite.xcworkspace" file.
  3. If all of the project files appear red, completely exit Xcode and try opening the workspace file again.
  4. At this point you should be able to run the project in the iPhone simulator by selecting "marguerite -> iPhone 6.1 simulator" in the dropdown menu at the top left and clicking the "Run" button. However, certain features of the app will not function until you update the secrets.h file.

Configure the secrets.h file

First, run the following command on the command line to prevent git from recognizing any changes to the secrets.h file:

git update-index --assume-unchanged secrets.h

Then, before the app will fully function, you must complete the "secrets.h" file in the root directory of the project by filling in the following strings:

  • MARGUERITE_REALTIME_XML_FEED: This is the URL of the real-time Marguerite shuttle bus location XML feed. Email Kevin Conley at kcon AT stanford DOT edu to ask for this value.
  • MARGUERITE_VEHICLE_IDS_URL: This is the URL that the app sends POST requests to in order to query the mappings between Marguerite "vehicle IDs" (the numbers on the sides of the buses) and the "farebox IDs" that help identify which route a particular bus is driving on. Email Kevin Conley at kcon AT stanford DOT edu to ask for this value.
  • GOOGLE_MAPS_API_KEY: This is the API key for the Google Maps iPhone SDK. Follow the instructions here (https://developers.google.com/maps/documentation/ios/start#obtaining_an_api_key) for "Obtaining an API Key" and then update this value.

Attributions

This app would not have been possible without the following open-source libraries:

License

The MIT License (MIT)

Copyright (c) 2013 Cardinal Devs

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

A different license may apply to other software included in this package, including the libraries mentioned under "Attributions" above. Please consult their respective headers/websites for the terms of their individual licenses.