Skip to content

Instantly share code, notes, and snippets.

@grundyoso
Created March 13, 2019 00:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save grundyoso/0f89c6b4425015a0918caa716b9fe1ea to your computer and use it in GitHub Desktop.
Save grundyoso/0f89c6b4425015a0918caa716b9fe1ea to your computer and use it in GitHub Desktop.
Passninja
Hi, welcome to the Passninja coding challenge. This challenge is meant to give us an understanding of your capabilities using the technologies we use to build our applications. The subject matter (bitcoin) is unrelated to what we do on a daily basis, so don't worry if you don't have a deep understanding of it (you won't need it beyond this challenge).
MAKE SURE YOU READ EVERYTHING BEFORE YOU START WRITING CODE
The Challenge
We're going to be building a Node.JS API endpoint that creates a bitcoin wallet, writing tests and deploying it on AWS lambda.
We'll also have a front end portion that uses the lambda endpoint to create a wallet that will be deployed/uploaded to S3.
You will have up to 4 hours to complete this, but we do not expect it to take that long. It is OKAY if you do not complete every item. Also you should make sure to create a branch for your work.
Here is your rubric for the NodeJS portion (to be completed in order):
Create a NodeJS app with a single endpoint for creating a bitcoin wallet (any kind is OK)
Write a test against your single endpoint
Adapt the NodeJS app to AWS Lambda
Deploy the app to AWS lambda
Update README.md on your branch to have a link to the endpoint
Here is your rubric for the front end portion:
Has a button to create a wallet
Makes an AJAX request to the AWS lambda endpoint referenced above
Shows the Wallet Private Key
Shows the wallet QR code using it's public address
Displays properly on a mobile device
Deploy front end to AWS S3
Update README.md on your branch to have a link to the webpage on S3
Branching and File Structure
You must create a branch that is the same name as your GitHub username - that is where you will do all of your work. Also, put all of the files for the NodeJS portion in the folder titled lambda_files and all of the files for the front end portion in the folder titled s3_files.
Additional resources
You are not restricted to pure NodeJS, you can use express.js.
If you use express, this tutorial may be helpful for getting it on AWS.
If you don't use express here is a tutorial on deploying NodeJS apps to Lambda.
You will also need to use BitcoinJS to make wallet creation easy.
For the frontend we'd prefer if you used Angular JS, however feel free to use Vue or React if that is more your speed.
Here is a good resource for making mobile responsive web apps.
Don't hesitate to send any questions to richard@flomio.com!
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment