This challenge is designed to allow candidates an opportunity to demonstrate your ability as a software engineer. Implementing the listed requirements is designed to be completed within 2-4 hours.
As a financial technology company, we are very concerned with accurate and enriched data content with a UI/UX for everyone. This is an opportunity to demonstrate your ability to make product decisions, produce quality, well-documented code, and problem solve.
At Vendrix, we care about our customers' experience with expense management in a highly complex industry - construction. The Vendrix team has a strong background in the construction industry. We understand the headache of enterprise-level expense management. Our application aims to make this process easier through our Vendrix app and credit card.
For more information, visit our website.
You will need to have the following packages installed on your machine. You may already have everything needed. If not, installation instructions are linked below.
To get you started, this repo was created to include two development environments - frontend & backend.
-
The "frontend" folder contains a Next.js, MUI template copied from MUI Next.js with Typescript repository.
-
The "backend" folder contains a Node, Express, Redis template.
IMPORTANT
- Ensure you have above packages installed
- Clone (do not fork) the repo:
git clone [email protected]:Vendrix-Inc/technical-challenge-2022.git
- Open the repo in VS Code
- Create your own public repo under your Github account with the name
${firstName}-${lastName}-vendrix-technical-challenge
- Add your newly created git hub repository as a remote
git remote set-url origin https://github.com/user/repo.git
- Verify new remote is added
git remote -v
origin https://github.com/user/repo.git (fetch) origin https://github.com/user/repo.git (push)
- Push the repository to the newly added remote (your github account)
git push --mirror origin
- Complete the challenge as described, committing your work often. when ready to submit
- Email the Vendrix team to notify your submission with a link to your GitHub repo.
Your challenge is split into two phases:
- In the first phase, your objective is to build a basic form to capture new user data.
- In the second phase, your objective is complete an endpoint which returns data queried from a GraphQL API.
One of the basic functions of a client-side application is user input. A good form for a frontend application should be performant, intuitive, and accurate. Ensuring accuracy with our defined schemas requires data validation during data capture.
The goal of this first phase is to implement a form as described in the frontend README
Try your best to implement everything within the time frame. If you do find yourself running short on time, you may:
- drop behaviors of your choosing. Please document the behaviors you drop and why.
- only one browser support (of your choice)
- no touch screen support
- no dark mode support
- no right-to-left support
In our Vendrix app, we handle a lot of data and events. In this stripped backend API, there is only one entrypoint implemented ('/'). This endpoint is already complete with no additional work required and serves as the data provider to the frontend as outlined below.
- getAllUsers
- createUser
The goal of the second phase is to implement the missing endpoint as described in the backend README
Thanks!