This repository is intended to be a very basic full-stack implementation of a todo list meant to serve as a coding exercise for interview candidates.
The following technologies are currently used and will likely need to be understood to complete the exercise:
Your challenge, if you so choose to accept, shall be to implement the User Story below.
The estimated time to complete the exercise is between 4 and 8 hours, please do not spend more than 8 hours on this exercise.
As a User with Todos,
I would like to mark Todos as completed rather than deleting them,
So that I can see how many Todos I have pending and have completed.
The following criteria is the minimum that must be implemented:
- Allow Todos to be marked as complete
- Display the number of completed and pending Todos to the User
Clone this repo locally:
$ git clone https://github.com/CommercialTribe/simple-todo
$ cd simple-todo
Verify your node version:
$ node -v
If you have a version less than v14, you will need to install Node v14.
Install node dependencies:
$ yarn install
Start the project:
$ yarn start
Navigate to http://localhost:3001/
We kept this exercise smaller and unopinionated. We expect you to add at least one extra from below and refactor as you see fit.
If you're pressed on time and cannot add everything you'd like we won't hold this against you. Simply add some comments to your code to express what you would like to add if you had the time.
Some extras you may consider adding:
- Dockerize the things
- Component library (Material, Bootstrap, etc)
- Type checking (TypeScript, Flow, etc)
- Styling
- Authentication/Authorization
- State management framework (Redux, Relay, etc)
- Use more Babel features
- Style checking (JSHint, ESLint, Prettier, etc)
- Persistent store (Redis, MySQL, pSQL, etc)
- Test framework
- New React features (hooks, etc)
- etc..
Some of the items our engineering team will be looking for will be:
- Functional accuracy
- Code readability
- Component structure
- Extras you have added
To submit your work, you may email us at engineering@commercialtribe.com with either of the following:
- a link to your own Github repo with the changes made (preferred)
- a zip of your source files (excluding
node_modules
directory)
If you need help or have questions please do not hesitate to reach out to us at engineering@commercialtribe.com.