Giter Site home page Giter Site logo

todo's Introduction

todo

a javascript todo web application

Requirements:

  1. The app must be written using HTML, CSS and JavaScript
  2. The app will be client-side only and will not connect to any mid-tier or server
  3. The app does not need to be cross browser compatible
  4. The app does not need to be responsive
  5. When the user enters a task in the "To-do" textbox and clicks the ADD button, it will get added to the list
  6. If they type a task and hit the enter key, it will also get added to the list
  7. If the user checks the checkbox next to a task, the system will cross-out the task to mark it as completed
  8. If the user un-checks the checkbox next to a task, the system will remove the cross-out to mark the task as incomplete
  9. If the user clicks the delete link next to a task, that task will be removed from the list
  10. If the user clicks the edit link next to a task, the task will become editable
  11. The user will be able to save their edit by hitting the enter key
  12. If the user refreshes the page, the task list will be cleared

Screenshots:

Empty todo list

Todo with tasks

Known behaviour

  1. Clicking on delete when the task is in edit mode is possible
  2. Confirmation is not implemented when delete is clicked
  3. Other tasks cannot be edited when one task is being edited
  4. other tasks can be deleted when one task is being edited
  5. A task that is being edited can be deleted
  6. A task that is striked can be deleted/ edited
  7. A task that is not checked can be noth edited/ deleted
  8. If the task text is very long, it is displayed in multiple lines, "edit | delete" buttons are moved to the next line

Test scenarios:

S.No. Summary Test steps Expected behaviour status
1. New row for a task should not be added if the task input is empty
  1. press enter with out entering text in the task input box
  2. or click on add without entering input in the input task box
Nothing should happen as the input is empty Passed
2. Nothing should happen if the user clicks on edit when the task is already in edit mode
  1. click on edit, edit input box apperas
  2. click on edit again
Nothing should happen Passed
3. Height of the task display area varies accordingly when a new task is added/ deleted
  1. Add lot of new tasks, task display area increases with each task when the number of tasks exceed 3
  2. Delete works similarly
Height of the display area increases with adding more tasks, and decreases till minimum height when the tasks are deleted Passed
4. New row should be added when users enters the input and clicks "add" or presses "enter"
  1. Enter text in input box
  2. press "enter" or click "add"
New row should be added at the end of the list Passed
5. Every task is editable
  1. Click edit adjacent to the task, which is to be edited
  2. Input box appears with curent text of the task
  3. Edit the text and press "enter"
Task is updated with edited text Passed
6. Every task should be deletable
  1. Click on delete buttons of any of the tasks
  2. Task will be deleted
Task is deleted Passed
7. A task should be striked off when the check box is checked
  1. Cteh checkbox of any of the tasks
  2. Task will be striked off
Task is striked off Passed

Possible Enhancements:

  1. Common message can be displayed on the UI for any erros
  2. input can be lighlighted with red or an error message can be displayed when the text input is empty, nothing happens in current implementation
  3. Can be connected to server and user registration/ saving user's data can be implemented by extending the paplication

Code quality:

  1. Used jslint with the below options Jalint options

todo's People

Contributors

gudibandisruthi avatar

Watchers

 avatar

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.