The purpose of this test is to showcase your frontend development skills and your knowledge of modern frontend frameworks and best practices. Please read the full requirements before starting your assignment. We ask you to focus on implementing user stories completely and keep the implementation simple.
For this assignment you will need to create a single page application in Angular according to the provided designs and requirements.
The high level requirement is to transfer money from an account and showing past transactions in a historical list.
- To assist you with the following requirements, we provide a UI components library. You will need to use this library where specified in the user stories.
- Do not make any changes to the UI components library.
- Read all user stories carefully and implement them as per the acceptance criteria.
Good luck!
As a product owner, I should see a consistent layout where I can view the header with my bank's logo and the footer.
Acceptance criteria:
- Final layout should match with the designs provided
- Header and footer should be visible with the Peachtree Bank logo
- Use UI components (logo and footer)
As a user, I should be able to transfer money from my account using a Transfer Money Form.
Acceptance criteria:
-
Final layout should match with the designs provided
-
"From account" field should be prefilled with my account details and disabled.
-
There should not be any validations on "To account" input field except it is a mandatory field.
-
Following field validations should exist on "Amount" input field
a. It is a mandatory field
b. Negative numbers are not allowed
c. Decimals are permitted
b. It should not allow amount below the total balance of -€500
-
Submitting form should open a modal to review transfer(check User Story #3).
-
Use UI Component (submit button)
As a user, I should be able to review my transfer before submitting it.
Acceptance criteria:
- Final layout should match with the designs provided
- Modal should close when a user submits the transfer or cancels it.
- Submitting transfer should successfully make a transfer and update the transactions list
- Input fields should be reset to their original state after successfully submitting the transfer.
- Cancelling a transfer should not reset the transfer form.
As a user, I should be able to view a list of historical transactions in an ordered list.
Acceptance criteria:
- Final layout should match with the designs provided
- You should fetch the initial list of transactions from this location
- Use the attached mock JSON data as an alternative if the above location is unavailable
- Transactions list should be sorted by date in descending order
- Use UI Component (transaction-item)
As a user, I should be able to filter my transactions based on merchant name.
Acceptance criteria:
- Final layout should match with the designs provided
- Filtering should be done only by merchant name
- Creating a new transfer should not alter the state of filter i.e if I make a transfer, it should automatically reflect in the filtered list(if applicable)
- Use UI Component (filter)
As a developer, I want to have unit tests & linting in place.
Acceptance criteria:
- Use Angular's OOTB lint configuration
- Should add unit tests for custom logic(components, services or pipes) added
- Make sure all tests are running successfully