Key Information

Register
Submit
The challenge is finished.

Challenge Overview

Cloud Hub is looking to improve our integration script, to fix a few bugs and dump the raw data to CSV for more analysis. Right now the integration has 3 job endpoints, apps, users, and events. This data is loaded via API calls to the partner and checked against existing data in our database. The endpoints have the ability to loop through the data, but that is not working correctly today. We plan to schedule this integration to run daily, but are creating a CSV export to allow us to take this data and do some manual reporting.

Project Overview
Cloud Hub is trying to help their client solve the problem of knowing what software applications they are spending the most money on over time. Cloud Hub will take in data from credit cards and other sources and attempt to show what software the client has purchased and who is using the applications the most.

Requirements
1. Fix API calls to loop through all data, not just initial endpoint call.
2. Add tests for integration and mocks to test suite for API, see plaid tests for existing examples. API endpoint tests should work with more than 1 API calls for the 4 main endpoints to show the paging capabilities.
3. Move the mailer logic to the mailer helper file.
4. Dump raw data to CSV.
    1. apps.csv => id, name, label, status, lastUpdated
    2. users.csv => id, status, profile.firstName, profile.lastName, profile.email
    3. userapps.csv => appId, id, status, profile.email
    4. events.csv => eventId, published, actors.id, targets.id (objectType == AppInstance)
5. Create config variables for number of days we pull event data and CSV export on or off. Right now it is 1 day, but since we are adding the file dump we want to be able to grab multiple days.

Final Submission Guidelines

1. Any additions or modifications to the code project pass on "npm run lint" and "npm run test". (There is 1 broken test which we are hoping to have fixed soon via F2F challenge)
2. Provide your code and documentation in a single zip file. Please include a git patch for easier integration of changes.
3. The bulk of your documentation should be in the Readme.md and you should assume that this will be open source so make sure you cover all the steps to set up,  If you have specific information that should not be included in a public readme (like links to your video) put them in a file called submission.txt and they will be omitted from the project if it is open sourced.
4. Provide a quick video of your solution in action (feel free to annotate your video if you are not comfortable with spoken English or don’t like the sound of your own voice). Video may be private on youtube or added to the submission files. Your video can skip the setup of your environment and application.

REVIEW STYLE:

Final Review:

Community Review Board

Approval:

User Sign-Off

SHARE:

ID: 30054569