Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added a new Project idea in 1-Beginner as todo_list_project #894

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 49 additions & 0 deletions Projects/1-Beginner/todo_list_project.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@

# To-Do List Project File

## Project Title: To-Do List Application

### Short Description
A basic to-do list application where users can add, remove, and check off tasks.

### Tier: 1-Beginner

### Project Overview
The To-Do List application allows users to manage their tasks efficiently. Users can add new tasks, remove completed tasks, and mark tasks as completed. The application aims to provide a simple yet effective way for users to organize their daily activities.

### User Stories
- View Tasks: User can see a list of all tasks currently on their to-do list.
- Add Tasks: User can add a new task by entering text into an input field and clicking an 'Add' button.
- Remove Tasks: User can remove a task from the list by clicking a 'Delete' button next to the task.
- Mark Tasks as Completed: User can click a checkbox next to a task to mark it as completed, visually indicating the task is done.
- Clear All Tasks: User can clear all tasks with a 'Clear All' button.
- Save Tasks: User’s tasks are saved in local storage, so they remain available even after the page is refreshed.

### Features
- Input Field: A text input field for users to enter their tasks.
- Add Button: A button that adds the entered task to the list.
- Task List: An unordered list that displays all tasks.
- Delete Button: A button next to each task to remove it from the list.
- Checkbox: A black checkbox to mark tasks as completed.
- Clear All Button: A button to remove all tasks from the list.
- Local Storage: Use local storage to save tasks, allowing persistence between sessions.

### Constraints
- Tasks should not exceed 100 characters.
- Ensure the input field does not accept empty tasks.
- Use clear, user-friendly messages for any errors (e.g., when attempting to add an empty task).

### Bonus Features
- Edit Tasks: Allow users to edit existing tasks by clicking on them.
- Due Dates: Users can set due dates for tasks and sort tasks based on these dates.
- Priority Levels: Users can assign priority levels (e.g., low, medium, high) to tasks.

### Useful Links and Resources
- [MDN Web Docs - Web Storage API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API)
- [JavaScript Array Methods](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)
- [CSS Flexbox Guide](https://css-tricks.com/snippets/css/a-guide-to-flexbox/)

### Example Projects
- Simple To-Do List
- Task Manager App
- JavaScript To-Do List