{
  "title": "Dự án 2: Danh Sách Việc Cần Làm",
  "subtitle": "Học và rèn luyện kỹ năng Bài 19 môn Web",
  "description": [
    {
      "text": "Chào mừng các em học sinh lớp 4! Trong dự án 2 này, chúng ta sẽ lập trình ứng dụng 'Danh Sách Việc Cần Làm'.",
      "bold": false
    },
    {
      "text": " Em sẽ thực hành và sử dụng các kiến thức đã học ở Bài 19 kết hợp với các kiến thức từ các bài trước để xây dựng giao diện tương tác sinh động.",
      "bold": false
    }
  ],
  "knowledge_title": "Kiến thức trọng tâm",
  "knowledge_tags": [
    "Bài học chính: Bài 19",
    "Ngôn ngữ: HTML, CSS, JavaScript",
    "Mảng dữ liệu: Array []",
    "Thêm phần tử: push()",
    "Danh sách: ul, ol, li",
    "CSS: list-style-type"
  ],
  "steps_title": "Các bước thực hiện chi tiết",
  "steps": [
    {
      "title": "Bước 1: Khởi tạo thư mục dự án",
      "body": "- Trên ổ đĩa Z, tạo thư mục dự án của em: hocsinh01/{tên của em}/bai19-2.\n- Tạo file: index.html, style.css, và tạo một thư mục con tên là assets để chứa các tệp tài nguyên hình ảnh, âm thanh."
    },
    {
      "title": "Bước 2: Xây dựng khung HTML chính",
      "body": "- Trong thẻ <head>, khai báo thẻ đường dẫn cơ sở: <base href=\"./assets/\"> và kết nối file CSS ngoài bằng đường dẫn tương đối lùi cấp: <link rel=\"stylesheet\" href=\"../style.css\">.\n- Tạo một thẻ div lớp 'container' bao bọc toàn bộ nội dung.\n- Thêm thẻ tiêu đề chính <h1> với nội dung 'DANH SÁCH VIỆC CẦN LÀM'.\n- Tạo một thẻ <input type=\"text\" id=\"o-nhap-moi\" placeholder=\"Việc cần làm...\"> để học sinh nhập dữ liệu.\n- Tạo nút bấm <button class=\"btn-them\"> với nội dung 'THÊM' và sự kiện click chuột onclick gọi tương tác."
    },
    {
      "title": "Bước 3: Lập trình tương tác JavaScript",
      "body": "- Viết mã JavaScript trong thẻ <script> đặt ở cuối body.\n  + let mangDuLieu = [];\n  + function themPhanTuList() {\n  + let val = document.getElementById('o-nhap-moi').value;\n  + if (val == '') {\n  + alert('Vui lòng gõ chữ!');\n  + return;\n  + }\n  + mangDuLieu.push(val);\n  + (các câu lệnh xử lý logic game khác)..."
    },
    {
      "title": "Bước 4: Định dạng CSS cho đẹp mắt",
      "body": "- Mở file style.css để thiết lập màu nền cho body là '#ffeaa7'.\n- Định dạng lớp '.container': chiều rộng tối đa '600px', viền '3px solid #ff9f43' và đổ bóng đẹp mắt.\n- Thiết lập cursor: pointer cho tất cả phần tử tương tác click chuột được."
    },
    {
      "title": "Bước 5: Sáng tạo thêm",
      "body": "- Hãy bổ sung ít nhất 5 loại vật phẩm khác vào danh sách của em, định dạng CSS cho chúng nổi bật và lập trình thêm nút để xóa phần tử cuối cùng khỏi danh sách sử dụng phương thức .pop().\n- Định dạng màu sắc và hình nền mang đậm phong cách cá nhân độc đáo của riêng em để hoàn thành bài tập."
    }
  ],
  "code_samples_title": "Gợi ý Code mẫu",
  "code_samples_desc": "Học sinh hãy tự hoàn thiện code dựa trên các gợi ý dưới đây (không copy paste):",
  "code_samples": [
    {
      "title": "HTML Gợi ý",
      "type": "html",
      "code": "<!-- Giao diện dự án Danh Sách Việc Cần Làm -->\n<base href=\"/* base href assets */\">\n<link rel=\"stylesheet\" href=\"/* đường dẫn lùi cấp ra style.css */\">\n<div class=\"container\">\n  <h1>DANH SÁCH VIỆC CẦN LÀM</h1>\n  <input type=\"text\" id=\"o-nhap-moi\" placeholder=\"/* placeholder */\">\n  <button class=\"btn-them\" onclick=\"/* JS code của em */\">THÊM</button>\n</div>\n<script>\n  /* Định nghĩa các hàm xử lý trong thẻ script của em */\n</script>"
    },
    {
      "title": "CSS Gợi ý",
      "type": "css",
      "code": "/* CSS Cơ bản cho dự án */\nbody {\n  background-color: /* màu nền: #ffeaa7 */;\n}\n.container {\n  max-width: /* độ rộng container: 600px */;\n  border: /* viền: 3px solid #ff9f43 */;\n  /* bo góc, đổ bóng container */\n}\n.nut-bam, .btn, .btn-nhac, .btn-mo, .btn-dong, .btn-tinh, .btn-them, .btn-play, .btn-pause, .btn-check, .btn-kick, .btn-go {\n  /* màu nền nút bấm */\n  /* con trỏ chuột: bàn tay chỉ */\n}"
    }
  ],
  "tip": {
    "title": "💡 Mẹo nhỏ:",
    "desc": "Để thêm một món đồ vào cuối mảng, ta dùng mảng.push('tên'). Để hiển thị nó dạng danh sách, hãy kết hợp thẻ ul và li trong HTML."
  }
}