Skip to content

Latest commit

 

History

History
72 lines (49 loc) · 2.42 KB

README.md

File metadata and controls

72 lines (49 loc) · 2.42 KB

Todo Challenge

  • Deadline: submit completed pull request by 9am on Monday
  • You may use whatever level of JavaScript you feel comfortable with - pure JS, jQuery, Angular, or whatever weird and wonderful framework you want to try. Extra points for DogeScript

Steps

  1. Fork this repo, and clone to your local machine
  2. Complete the following challenge:

Challenge

Todo mockup

Build a Todo list as a mini front-end application. You don't have to use a database, the front-end is more important - you can use an appropriate data structure stored somewhere in your JavaScript (this time only!)

Here are the core user stories:

As a forgetful person
I want to store my tasks
So that I don't forget them

As a person with limited time
I want to instantly be able to update my todo list (adding and changing entries)
So that I have more time to think about other things

As a person who actually gets stuff done
I want to mark my tasks as done
So that I don't do them twice

Here are some other user stories you may choose to implement:

As a person with a lot of tasks
I want to be able to filter my tasks by "All", "Active", "Complete"
So that I only see the relevant tasks

As a person who doesn't like counting by hand
I want to see a total number of tasks
So that I don't have to count

As someone who has done lots of stuff
I want to be able to clear my completed tasks
So I never see them again

As you may imagine, implementing a To-do list is very much a solved problem. However, we are mainly interested in seeing how you approach testing and design. We are looking for:

  • well written, well structured acceptance and unit tests
  • clear and expressive JavaScript
  • good HTML5 markup

Don't worry about deployment, and make sure you read the CONTRIBUTING.md when submitting a pull request.

Extensions

  • Deploy the app
  • Create a persistance layer (e.g. MongoDB), or use LocalStorage or the filesystem through Node
  • Make it look purdy (CSS) - try a framework like Bootstrap or Foundation

CI

Read the .travis.yml if any of the steps below don't make sense!

  • Make sure you have set up npm test in your package.json so that it runs your Karma tests
  • Make sure you have your Protractor config file at e2e/conf.js
  • Make sure npm start spins up whatever serves up your app - http-server, Sinatra or Node

Good luck!