<div style="position: relative; padding-bottom: 64.90384615384616%; height: 0;"><iframe src="https://www.loom.com/embed/305c8f0ddf29477c95b6928d76028a02?sid=a150dfe4-4f59-4f08-9b26-9c94d759eadc" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;"></iframe></div> Code from Video: https://github.com/lizTheDeveloper/multiverse_todo_app Building your first ToDo app is like a rite of passage in as a programmer. It's like your first infinite loop, or your first syntax error. Most applications are usually defined as a series of **user stories**, which are a way of phrasing features of your program. Let's look at the **user stories** for the todo list application: #### User Stories As a user I should be able to add simple todos by typing something like `add "buy coffee creamer"` As a user I should be able to view my todos by typing something like `view` When I view my todos I should see something like this: ``` 1: buy coffee creamer 2: make list of todos 3: finish todo app ``` As a user I should be able to mark todos as completed by typing something like `done 1` As a user I should be able to unmark todos as completed by typing something like `undo 1` As a user I should be able to delete todos by typing something like `delete 1` As a user I should be able to add todos to a specific list by typing something like `add groceries "buy coffee creamer"` As a user I should be able to view todos within a specific list by typing something like `view groceries` As a user I should be able to view all my todos by not specifying a list `view` As a user I should be able to add due dates to my todos `add groceries "buy coffee creamer" 6/1/2024` As a user my todos should be saved in a file so they persist when the program is not running As a user I should be able to view my due dates in order by typing something like `view groceries due_date` Ok that sounds like a lot, so let's break it down into a few milestones: #### Version 0 As a user my todos should be saved in a file so they persist when the program is not running As a user I should be able to view my todos by typing something like `view` As a user I should be able to add simple todos by typing something like `add "buy coffee creamer"` As a user I should be able to mark todos as completed by typing something like `done 1` As a user I should be able to unmark todos as completed by typing something like `undo 1` As a user I should be able to delete todos by typing something like `delete 1` #### Version 1 As a user I should be able to add todos to a specific list by typing something like `add groceries "buy coffee creamer"` As a user I should be able to view todos within a specific list by typing something like `view groceries` As a user I should be able to view all my todos by not specifying a list `view` #### Version 2 As a user I should be able to add due dates to my todos `add groceries "buy coffee creamer" 6/1/2024` As a user I should be able to view my due dates in order by typing something like `view groceries due_date` And that's it for now! See how many versions you can get done with by focusing on one version at a time. Try to get at least through Version 0, but if you don't make it to Version 1, that's ok. Good luck, and happy coding!