Skip to content

Oustanding Work and Bugs

Michael edited this page Jan 30, 2021 · 1 revision

Outstanding features

  • There is no check against a correct/incorrect workplace ID. This may be handled by the Qualtrics API, but that needs further research in the Qualtrics documentation.

  • Update survey frequency upon completion of first survey. Currently the survey frequency is set in the QualtricsLocalDataSource.storeSurveyList function(). This is called in Repository.fetchAndStoreQualtricsSurvey() which is called upon user creation. in QualtricsLocalDataSource.storeSurveyList, I would pull out the funcitonality that sets the date time for begin and end dates for each survey, and implment that instead as a seperate LocalDataSource call when calling Repository.completeSession (upon completing the first survey)

  • Background Syncing. With how the survey session is stored and managed locally up until submission, there is a chance that the submission will fail due to a network time out or no network available. If that is the case, I think it would be a useful feature to implement https://pub.dev/packages/background_fetch to have the app automatically try to resend that survey. Basically you should be able to call Repository.completeSession() within the background fetch call back.

  • local notifications. This could be implemented to notify the user that a background fetch sucessfully calling Repository.completeSession() has occurred. https://pub.dev/packages/flutter_local_notifications

  • internationalization. Refactor out text strings from app. Support Desired languages. The beginning of this is already implemented

  • A more stable user identificaion process with anonymity. The current user identification (with a unique device ID) may make it difficult to submit to apple for review. Also, that unique device id will change if the user deletes and reinstalls the application, which will create old accounts

  • Microservice with user management, survey management, and push notifications. The QualtricsLocalDataSource currently manages all of the surveys for a User. Most of this functionality, along with Storing users could be managed in a MicroService remotely if desired. Not sure if this is totally needed. I believe it is dependent on how detailed of notifications are necessary, and also how user identification is ultimately implemented.