- Create a ToDo List Application.
- The primary list page should display:
- all list items in the ToDo List. Each list item should have:
- a checkbox that indicates if the item is done
- when checked, then update the list item in the database to be is_done = true
- when unchecked, then update the list item in the database to be is_done = false
- the title of the list item
- when clicked, route the edit item form page
- a delete button for the list item
- a checkbox that indicates if the item is done
- a New Item button that links to the new item form page
- counters that display:
- the number of items that are complete
- the number of items that are incomplete
- all list items in the ToDo List. Each list item should have:
- The new item form page should display:
- input field for list item title
- textarea field for list item description
- save button that submits the form to be saved in database
- The edit item form page should display:
- input field for list item title
- value should be prefilled with current value
- textarea field for list item description
- value should be prefilled with current value
- save button that submits the form to be updated in database
- input field for list item title
- Understand the Scope - Define User Stories
- Map out all pages and layouts
- Map out all Routes / Endpoints - Create a routing table
- Define DBs and Schemas
- Define user interactions
- Which actions trigger http requests?
- Which events get data?
- Which events post data?
- Create a new github repo named
Todo-CRUD
and clone it to your DevLeague directory. - Set up the project to use the Express framework
- Set up the project to use Mongodb to store data
- Use the ExpressJS method override for DELETE and PUT methods.
- Use jade node module for templating.
- Use body-parser node module for parsing POST requests.
- Use express.static for serving static assets.
- Use mongoose for object relational mapping to your mongo database.
Consider this layout for the primary list page. Your layout may vary:
Create an html structure that will meet your needs in order to reproduce a similar layout.