In order to be selected to the next round of the interview process, the candidate needs to complete this project with the following requirements.
Follow this tutorial to create a shopping list application: https://www.freecodecamp.org/news/how-to-build-a-shopping-list-using-react-hooks-w-starter-code-and-video-walkthrough/ with three additional requirements:
- Completed item quantities should not be counted in total.
- Prevent the end-user from entering duplicate item name.
- Store the todos using a NodeJS backend and a database of your choice
Show off your design skills to make it easy and intuitive for user to use your app
- Fork this project to your account in Github, for example (https://github.com/your-username/202104-candidate-screening-project) and use it as your submission
- Add [email protected] as a collaborator of the new project (so that I can read your code)
- Use https://github.com/facebook/create-react-app to create a new project in Javascript
- Integrate https://mui.com/ to this project and use it as the UI framework
- Using jest (according to this tutorial: https://jestjs.io/docs/tutorial-react) to write unit tests (only snapshot testing is required) for your application and ensure 100% code coverage
- Integrate Testcafe from https://testcafe.io/ and write the automation test cases to test your application. Make sure that you write all test cases to cover the entire functionalities.
- Complete the project on or before the assigned deadline. Once completed, send an email to [email protected] with the subject "I completed my project". In the body of the email provide your name, the URL to the forked project on github.
The most importance judging factors is on top.
- All requirements as described above are satisfied
- Fully understood your code, you will need to present it if got selected
- Free of ESLint errors and Google Chrome (or Firefox) Devtool errors / warnings
- Clean code, proper naming conventions, show off your skills in writing a readable code
- Use of react hooks as described in this page: https://reactjs.org/docs/hooks-overview.html
- All scenarios are covered by your unit test cases and your automation.