Key Information

Register
Submit
The challenge is finished.

Challenge Overview

This is another challenge in the series for Cloud Hub, where we are expanding on our Plaid API that was created to pull in credit card transactions. These APIs are a series of endpoints built using swagger, nodeJS and mongodb. We have a couple of items to fix in this challenge and we want to explore how to maintain this microservice long term. Right now this project has copies of several models that are defined in our base API (waterworks). We want to see a couple options for how this should be approached. Here are some of our thoughts, but we are open to other ideas:

  1. Move this code to waterworks, since the structure and style is similar the best option would be to combine the codebases.
  2. A way to share these models, that works in a Heroku or AWS environment and doesn’t require apps to be on the same server.
  3. Keep Plaid API separate and remove the models, make any calls through the waterworks APIs. This would probably require creating company api keys. We see some value here, since giving other non-users access to parts of the database may come in the future.

 

Bug Fixes / Updates

  1. // TODO match transaction.name to possible apps._id - Here we want to try to match transaction.name to apps.appName. If we find a match we want to mark the status “A”. If we don’t find a match leave appId empty and put status “P”. Another hook we want to add here is if the status is A, we would call /waterworks/activities/spend-bill to record the event in our activity feed.
  2. // TODO Check for existing before you add another one - Right now when we save the credit account details, you can only save 1 account, this needs to support adding or updating accounts.
  3. When setting the webhook URL, I think we should add the companyId to the URL. That way when we do checkCompany on webhook service you can just look up the company by ID. Please update swagger for these changes too.
  4. The model companyCharge.js was updated to charge in waterworks, depending on which route you go with above, this needs updated.

 

In the forum I will upload both the waterworks (API) and parkplace (Plaid) projects, and the IDs for the parkplace project.



Final Submission Guidelines

  1. Any additions or modifications to the code project pass on "npm run lint" and "npm test".
  2. Deploy your solution to Heroku and make sure to include your working Heroku instance URL as part of your documentation.
  3. Provide your code and documentation in a single zip file. Make sure you include steps to deploy to Heroku.
  4. 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 your heroku link or 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.
  5. 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.

ELIGIBLE EVENTS:

2016 TopCoder(R) Open

REVIEW STYLE:

Final Review:

Community Review Board

Approval:

User Sign-Off

SHARE:

ID: 30053513