Giter Site home page Giter Site logo

renewpass's Introduction

RenewPass

An Android app for renewing your UPass (Play Store)

RenewPass does the work of renewing your UPass for you. Enter your school credentials, and RenewPass will log in to your UPassBC account and request the latest available UPass, all with a single tap.

Your school credentials are stored locally on your phone, and your password is encrypted before being saved, so only RenewPass can see it.

Currently supported schools:

  • SFU
  • UBC
  • BCIT
  • VCC
  • NVIT
  • Kwantlen
  • Emily Carr

More schools are coming soon! If you want to speed up the process, help us test or submit a pull request (Look at app/src/main/java/ca/alexland/renewpass/schools/SimonFraserUniversity.java for an example).

Contributing

Pull requests and issues are welcome. Check out the issues for what we're working on.

License

The MIT License (MIT)

Copyright (c) 2016 Coffeeboys

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.

renewpass's People

Contributors

aarjente avatar eyqs avatar landalex avatar prayansh avatar trevrawr avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

renewpass's Issues

Test all schools

Make sure that people can actually renew their UPass from every one of the supported schools:

  • SFU
  • UBC
  • BCIT
  • Cap U
  • Langara
  • VCC
  • NVIT
  • Douglas
  • Kwantlen
  • Emily Carr

Douglas UPass renew failed

The following message is appearing inside the snack bar after trying to renew:

se.fishtank.css.selectors.scanner.ScannerException: Bad input!

Create intro logos for each school

The notifications branch has a change to the intro activity, where selecting your school is done by tapping on your school's logo rather than selecting from a spinner.

Add the logos for all supported schools to the notification branch.
Schools supported:

  1. SFU
  2. UBC
  3. BCIT
  4. Cap U
  5. Langara
  6. VCC
  7. NVIT
  8. Douglas
  9. Kwantlen
  10. Emily Carr

Auto Renew

Set UPass to automatically renew.

Renewal can be done:

  1. On a set day of the month
  2. When the next month is available (either by checking to see if its available, or using Translink's sms notification)

Clean up intro UI

The intro UI is alright, but it's cramped and not separated by anything. Add some headers/separators (assuming they look good), space things out a bit to make it look a little cleaner.

Create First Run tutorial

Make a first run tutorial to explain the basic idea, get the user to enter their school account info.

Auto-renewal gets cancelled and doesn't finish if it takes too long

On some devices (such as my beloved galaxy gio), if the auto-renewal process takes too long, the android system appears to be killing the process before it has the chance to complete. A potential solution to this is to use a background service to handle the auto-renewal process instead of doing it directly in the broadcast receiver.

Card based UI

Display each Compass Card linked as a rendering of a card (or an Android style card), with options for setting auto renewal or manually renew the UPass.

Further improvements include showing history of tap ins/tap outs and history of renewal.

What is the return value of "CalendarUtil.getNextMonthTimeInMillis()"?

I want to know what is the return value of "CalendarUtil.getNextMonthTimeInMillis()".
Example,

CalendarUtil.getNextMonthTimeInMillis(1451617200000L) // 2016/01/01 12:00:00.000
 ↓
1454295600L // 2016/02/01 12:00:00.000

In next case, what is the correct return value?

CalendarUtil.getNextMonthTimeInMillis(1454124896) // 2016/01/30 12:34:56.789
 ↓
???

Display error in auto renew notification

Give a little detail about the auto renew failure in the notification, as well as possibly add buttons to fix the issue (like the snack bar does when manual renewal fails)

Auto-Renew won't be rescheduled on play store app update

I haven't actually tested this, but I'm pretty sure that alarms that trigger auto-renewal for the app will be canceled when the user updates the app from the play store and will need to be rescheduled.

Note that this won't affect current users since the current version of the app on the play store is the first version with auto-renewal, but it SHOULD be fixed (and tested) BEFORE the next play store update.

It shouldn't be too hard to fix. Just listen for the intent action ACTION_MY_PACKAGE_REPLACED with an intent filter and register an alarm with the alarm manager at the last registered alarm time. Stack Overflow link.

Support for more schools

Add support for other schools with the UPass Compass program.

List of schools:

  • Douglas College
  • Kwantlen Polytechnic University
  • Nicola Valley Institute of Technology
  • University of British Columbia
  • British Columbia University of Technology
  • Capilano University
  • Emily Carr University of Art and Design
  • Langara College
  • Vancouver Community College

Add error codes/better error identification

Error codes are pretty simplistic right now, a code system would be helpful to specify exact issue and allow for more helpful troubleshooting. Perhaps each exception type gets a code, so an error anywhere can be tracked?

Add feedback option

Simple email intent (like Send debug log) to make it obvious for users to contact us.

App crashes on start

Trevor: My guess is that I broke preferences by changing the preference keys from hardcoded strings to string resources so you only get that crash when updating from an older version.

Try changing the preference keys back to the hardcoded values in code maybe?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.