MyBus is a mobile application which uses the user's location to display the nearest public transit stations and live arrival times for buses and trains at each station.
- Product Owner: Xue (Dani) Hu
- Scrum Master: Liam Gallivan
- Development Team Members: Medhir Bhargava, James Robinson
- Getting Started
- Deployment & Continuous Integration
- Testing
- Contributing
- Documentation
- Technology Stack i
First, install the following if you don't already have them installed.
npm install -g cordova ionic // installs ionic framework and cordova dependency
npm install -g bower // installs bower globally
npm install -g gulp // installs gulp globally
npm install -g jasmine // installs jasmine globally
npm install -g jasmine-node // (if using our server repo) installs jasmine-node globally
Next, run the following commands to install all the required dependencies.
npm install
bower install
For our transit data, we are relying on the nextbus api. Since nextbus only publishes this data as an XML feed, we are using the restbus library (a rest abstraction over the nextbus xml feed). Feel free to fork our api server or roll your own using the restbus library.
We've also set up a node server with a postgres database to use for user authentication and any other services you'd like to add in the future. Feel free to fork it. We used the sequelize ORM to interact with our postgres database. To easily install postgres on your local machine, take a look at the Postgres App.
For easy deployment and integration with Travis CI (see below), consider using Heroku for deployment. If you are not familiar with Heroku, check out their [Getting Started with Node.js] guide. (https://devcenter.heroku.com/articles/getting-started-with-nodejs#introduction)
Note: if you are using our server repo and would like to add a postgres database service hosted on heroku, make sure you add your postgres server as an addon in the resources page of your heroku server. If you try to add a postgres service from the databases section of your heroku dashboard, heroku will spin up a new server for this postgres service which won't be accessible from your original server.
We are using Travis Ci. For this report there is no automated deployment. However, npm test is run on Travis Ci every time a pull request is submitted and when a pull request is merged into the master branch. After you fork a copy of this repo, you will need to setup your own Travis account.
- Visit https://travis-ci.org and create an account.
- Open your Organization inside Travis Ci
- Sync your Organization
- Turn on your newly forked repository
- Verify Permissions
- Visit https://github.com/ 1. Click Organization settings 1. Click Third-party access 1. Verify Travis Ci is Approved
- Visit https://github.com///settings/hooks 1. Verify Travis Ci is an added Service
- Update the first line of this document to follow this format
[![Build Status](https://travis-ci.org/<your Organization name>/<your project name>.svg)](https://travis-ci.org/<your Organization name>/<your project name>)
While developing, try using the
ionic serve --lab
command to test the app in your browser
We've installed a number of testing suites for you to use as you wish. These include:
The unit test spec files can be found at www/spec/unit. To run these tests (as well as jshint), run the following in your terminal window from the project root directory.
npm test
The end-to-end test spec files can be found at www/spec/e2e. To run these tests, run the following the the terminal from the project root directory.
gulp protractor
See CONTRIBUTING.md for contribution guidelines.
gulp jsdoc
open docs/index.html
We used the following tools and technologies in this project
- Ionic
- Angular
- Node.js
- Express
- Postgres
- Sequelize
- Bower
- Gulp
- Jasmine
- Karma
- Protractor
- Travis CI
- Waffle.io
- jsDoc