Your task is simply to build a sortable list of items. The following are the requirements:
Each item in the list consists of a textual description up to 25 chars.
The user must be able to Add, Remove, and Edit items in the list.
The list must be sortable via drag and drop.
No back end. No server deployment.
Build tools are allowed. E.g. webpack, gulp, grunt.
The list must be persisted to IndexedDB or WebSQL.
No Save button. All actions must persist automatically - Add, Delete, Edit, Move.
Include a Clear button that wipes out all the data, for testing purposes.
Use good coding practices
Structure your folders and files consistently
No inline styles
Format your code properly (using spaces, not tabs)
Include comments where they will be helpful
You do not have to write this from scratch. Use any freely available libraries or code snippets you wish (include citations where necessary).
While an elaborate graphical design is not necessary, you should still make your app look nice.
Add at least one additional feature that you think would be useful to the user. A few ideas:
Include nestable folders in the list
Add paging for long lists
Be creative! Make something flashy in the UI.
This will be tested in Chrome so it's possible to use ES6/ES2015 without transpiling (Typescript or Babel are allowed too). Support of other browsers is optional.
You have 72 hours to complete this task.
If you cannot complete all the requirements, include an explanation of how you would go about completing them if given more time.
The source code submitted to a shared Github repository.
The challenge won't be evaluated if the repository is not uploaded in github.