پروژه لیست TODO با عملیات CRUD در جاوا اسکریپت


در دنیای برنامه‌نویسی، پروژه‌های مختلفی وجود دارند که هدفشان ساده‌سازی مدیریت وظایف و کارهای روزمره است. یکی از محبوب‌ترین و در عین حال ساده‌ترین این پروژه‌ها، لیست TODO است؛ یعنی برنامه‌ای که به کاربر امکان می‌دهد وظایف خود را لیست کند، آنها را ویرایش کند، حذف کند و وضعیت انجام‌شان را تغییر دهد. در این مقاله، قصد داریم به طور کامل و جامع درباره توسعه یک اسکریپت لیست TODO در جاوا اسکریپت صحبت کنیم، با تمرکز بر عملیات CRUD (ایجاد، خواندن، به‌روزرسانی، حذف) و ارائه کد منبع دقیق و قابل فهم برای توسعه‌دهندگان.

مفهوم عملیات CRUD در پروژه‌های لیست TODO




قبل از شروع، باید بدانیم عملیات CRUD چه معنایی دارد. این چهار عملیات، پایه و اساس اکثر برنامه‌های مدیریت داده هستند:
- Create (ایجاد): افزودن یک وظیفه جدید به لیست.

- Read (خواندن): نمایش وظایف موجود در لیست.

- Update (به‌روزرسانی): تغییر وضعیت یا توضیحات یک وظیفه.

- Delete (حذف): حذف کردن یک وظیفه از لیست.
در پروژه لیست TODO، این عملیات نقش کلیدی دارند و به کاربر اجازه می‌دهند تا به راحتی و با کارایی بالا، وظایف خود را مدیریت کند.

ساختار کلی پروژه و اجزای اصلی آن




پروژه شامل چند بخش است:
  1. HTML: برای ساختار صفحه و فرم ورودی وظایف.

  1. CSS: برای زیباسازی و طرح‌بندی.

  1. JavaScript: برای عملکردهای دینامیک، شامل عملیات CRUD و مدیریت دیتا.
    در این پروژه، تمرکز اصلی بر روی JavaScript است، چون وظیفه اصلی مدیریت عملیات و ارتباط با عناصر DOM را بر عهده دارد.

    کد منبع و توضیحات




در ادامه، کد کامل پروژه به همراه توضیحات هر قسمت آورده شده است:
html  

<!DOCTYPE html>

<html lang="fa">

<head>

<meta charset="UTF-8" />

<meta name="viewport" content="width=device-width, initial-scale=
  1. 0" />

<title>لیست TODO در جاوا اسکریپت</title>

<style>

body {

font-family: Tahoma, Geneva, Verdana, sans-serif;

background-color: #f4f4f4;

padding: 20px;

}

#todo-form {

display: flex;

margin-bottom: 20px;

}

#todo-input {

flex: 1;

padding: 10px;

font-size: 16px;

}

#add-btn {

padding: 10px 20px;

font-size: 16px;

margin-left: 10px;

cursor: pointer;

}

#todo-list {

list-style: none;

padding: 0;

}

.todo-item {

background-color: #fff;

margin-bottom: 10px;

padding: 15px;

display: flex;

align-items: center;

justify-content: space-between;

border-radius: 4px;

}

.todo-text {

flex: 1;

margin-left: 10px;

}

.completed {

text-decoration: line-through;

color: gray;

}

.btn-group button {

margin-left: 5px;

padding: 8px 12px;

border: none;

border-radius: 3px;

cursor: pointer;

}

.delete-btn {

background-color: #e74c3c;

color: #fff;

}

.edit-btn {

background-color: #3498db;

color: #fff;

}

.complete-btn {

background-color: #2ecc71;

color: #fff;

}

</style>

</head>

<body>
<h1>لیست وظایف (TODO List)</h1>
<form id="todo-form">

<input type="text" id="todo-input" placeholder="وظیفه جدید بنویسید..." required />

<button type="submit" id="add-btn">افزودن</button>

</form>
<ul id="todo-list"></ul>
<script>

// آرایه‌ای برای نگهداری وظایف

let todos = [];
// انتخاب عناصر DOM

const form = document.getElementById('todo-form');

const input = document.getElementById('todo-input');

const list = document.getElementById('todo-list');
// تابع برای نمایش وظایف در صفحه

function renderTodos() {

list.innerHTML = '';

todos.forEach((todo, index) => {

const li = document.createEle... ← ادامه مطلب در magicfile.ir