Challenge Overview
Challenge Objectives
- Cordova app for both iOS and Android
- This challenge will take the existing app code, clean it up, build out some README documentation, and will ensure the setup is appropriate for future work.
Project Background
- We are going to be making updates to an existing client application that’s written in Cordova, targeting both iOS and Android. The client has given us the code, and we want to clean it up and get it documented for future challenges.
- This challenge will build out the app documentation so that future challenges will work as expected and have appropriate documentation for Topcoder members to be able to easily run and debug the app.
- Future challenges will add new functionality to the app and will change up the UI a bit.
Technology Stack
- Cordova, targeting both iOS and Android
- Mac and Windows will be used as development environments. macOS will be required for iOS builds and debugging, and will be required for this challenge since we’ll be targeting both iOS and Android.
- Note: Actually logging in and testing the app may not work due to network requirements, but we should be able to at least run the app in a simulator to see it work.
Code access
A link will be provided in the forum describing how to gain code access.
Individual requirements
This challenge will involve some minor setup changes, but mostly documentation for debugging the app on both iOS and Android.
Node modules (major requirement):
Custom node modules currently contained in the Git repo will be moved to a separate repo:
https://gitlab.com/hercules-campus/node_modules
This only includes node modules with a relative path in the current package.json. Things like:
- "com.bez4pieci.cookies": "/Users/hvore001c/Desktop/Transport Release/TransportRelease/plugins/com.bez4pieci.cookies","cordova-plugin-email-composer": "file:../myESS/plugins/cordova-plugin-email-composer",
- "org.apache.cordova.plugin.ActivityIndicator": "/Users/hvore001c/Desktop/Transport Release/TransportRelease/plugins/org.apache.cordova.plugin.ActivityIndicator",
- "org.nypr.cordova.nslogger-cocoalumberjack-connector-plugin": "/Users/hvore001c/Desktop/Transport Release/TransportRelease/plugins/org.nypr.cordova.nslogger-cocoalumberjack-connector-plugin"
Please ensure your submission is updated to reference the node modules at that repo. If you would like a specific folder structure, please reference that in your README / deployment doc. For review, it’s fine to point to your own private Gitlab repo, and we’ll update the references after review ends. Note that we will ask submitters to add reviewers to their private repo during review. Please do not make your repos public - we do not want to expose client code.
Package.json:
In your submission should be the changes to the package.json that removes all local / relative paths and uses the new git repo above.
.gitignore
Please add the node_modules folder to the .gitignore. This will be removed from Git.
Documentation for building:
Your deployment guide should provide detailed documentation on how to set up the dependencies and build the app for both iOS and Android. Please ensure that you cover both iOS and Android using the latest versions of:
- Cordova
- XCode
- Android Studio
Update documentation
We would like to update the codebase to the latest version of Ionic. Please document in your submission if you see anything that might cause issues with upgrading and how hard you think that process might be.
Validation:
For validation, we want documentation to cover:
- Ensuring emulation works for iOS / XCode/ iOS Simulator
- Ensuring emulation works for Android / Android studio
- How to build a .ipa file for local testing
- How to build a .apk for local testing
Deployment guide and validation document
Make sure to require two separate documents for validation.
A README.md that covers:
- Dependency installation
- Build setup
- Information about updating to the latest version of Ionic
A Validation.md that covers:
- iOS emulation
- Android emulation
- .ipa and .apk building
Validation video / screencast
- No validation video is required
Please submit:
- README.md
- Validation.md
- Node-modules repository information
- Patch file to existing repo to apply required changes described above