Thanks for taking the time to do our full-stack coding test. The challenge has two parts:
- A task to create a basic service and ui to allow users to track their spending.
- Some follow-up questions
We needs to create a service that allows users to create an 'Account' in GBP and keep track of balance in that account. The service allows for transfers to be made against an account. Those transfers can be credit, which increase available balance and debit, which decrease available balance. If at any point the available funds reach 0 or bellow the API should return an error and stop accepting debits, but keep accepting credits. The user should be able to see all their transfers sorted by date.
Use Node.js for the backend with whatever libraries you feel comfortable with. Data should be persisted in some sort of data store (of your choice). The service should have endpoints to support the following:
- Create an account
- Get account
- Create a transfer (debit and credit)
- Stop Debits if balance is <=0 List transfers Any other endpoints or functionality you see fit.
We'd like you to use React. On top of that, use whatever front-end libraries you feel comfortable with. Design the UI anyway you see fit. The UI should have and allow
- the user to create an account.
- the user to create transfers (with any value) against an account.
- show a warning when balance reached 0
- show up to date balance information. Any other endpoints or functionality you see fit.
To startup the frontend client run the following command.
npm start - This will start the application for development
npm run build - Will create a production optimised build
npm test - Will run the front end tests
- Spend as much or as little time as you like on the exercise.
- Ensure the following requirements are met:
- Complete the user story provided below.
- Your code should compile and run in one step.
- Use any frameworks, libraries, or packages you prefer.
- Include tests in your submission.
- The project must have a Dockerfile for the API. Bonus points for including a docker-compose file that integrates the API, UI, and all dependencies.
- Did you have time to complete the coding test?
- What would you add to your solution if you had more time?
- How would you optimise your solution?
- What are the security issues you can see in your solution?
- How does your solution handle concurrency in order to maintain correct ordering of transfers?
- List a few of your preferred JavaScript frameworks and specify in which situations you would choose to use or not use them.
Please create a repo and share with us.
A single markdown file with the answers to the technical questions