Giter VIP home page Giter VIP logo

tinysteps-todolist's People

Contributors

pwizla avatar

Stargazers

 avatar

tinysteps-todolist's Issues

All buttons should be real <button>s

Only the Add button is semantically a button (i.e. with the < button > tag in index.html file).
Inheriting from the first design approach, other buttons ("All Done!", "Undo All", "Delete All") are just divs.

Create in-app tutorial

Maybe with tool tips or specially formatted divs.

Should show the user the following steps:

  1. enter text for some new task and click "Add" button or press enter
  2. click on an item from the "To Do" list to mark it as done
  3. done items are moved to the "Done" list
  4. try adding some more tasks
  5. you can re-order task by drag'n'drop
  6. click the "All Done!" button to mark all tasks as done
  7. click on a "Done" task to uncheck it and move it back to the "To Do" list
  8. click on "Undo All" to uncheck all done tasks
  9. click on "Delete All" to delete all done tasks

Fallback on jQuery CDN

Goal: find a way to make jQuery work offline or when there is no internet access to download the jQuery.

Possible solutions:

  • download and cache jQuery?
  • ship web app with a minified version of jQuery?

Look for the best strategy by searching over the web.

Pressing Enter after adding a task does not clear input text

More precisely, when resolving issue #1, I introduced a new bug:

While pressing the Enter key does not reload the page anymore, here's what happens:

Steps to reproduce the problem:

  • Click on the input box ("enter new task here")
  • Add some text for a new task
  • Press Enter

What happens:

The task is added to the "To Do" list and the page is not reloaded (yay!)…
…but input box remains focused and displays "enter new task here" in black.
So the user has to delete "enter new task here" before adding a new task!

Expected behavior:

I would rather:

  • either have the input box getting unfocused
  • or, better, have the input box still focused but with text cleared

Additional useful note:

When clicking on the "Add" button, task is added, input boxed is unfocused, and "enter new task here" appears in the input box (though in grey, because control has no focus)

Finding tasks in long lists is difficult

It might become difficult to find a specific item in big lists of tasks.
Tasks should be searchable (of course the user can still use the built-in "search on page" functionality of its browser, but items are not actionable)

One possible implementation could be to provide a search box.

Ideally ( = the best possible implementation) would be fuzzy search from the input box, displaying only matches when there are matches, and creating a new task if no match. Something that would match Notational Velocity's create new file / find file behavior.

Create groups of tasks (a.k.a. sub-items)

The goal is to get this kind of list:

  • Bake a cake for my friend's birthday
    • Look up some recipes over the Internet
    • Check what ingredients I already have at home
    • Go to the store and buy the missing ingredients
    • Actually bake the cake!
  • Renew my gym membership

No more than two levels 2:

  • Level 1 task
    • Level 2 task
    • Another Level 2 task
  • Another Level 1 task

Requires some parent-child model.
Should support drag'n'drop: dropping over an existing task makes it a sub-task.
(and maybe keyboard shortcuts later: Tab = indent, Shit Tab = unindent).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.