Mở đầu 1. Bồi cảnh đề tài Trong môi trường làm việc hiện đại, quản lý công việc là một phần quan trọng để đảm bảo sự tổ chức, hiệu quả và tiến bộ của dự án. Việc theo dõi và quản lý công việc một cách hợp lý có thê giúp tăng cường sự cạnh tranh và đạt được kết quả tốt hơn. Lý do chọn đề tài Lý do chọn đề tài "Ứng dụng quản lý công việc" là để giúp cải thiện quá trình quản lý công việc trong một tô chức, nhằm tăng cường hiệu suất làm việc, giảm thiêu sự mắc lỗi và tăng tính tô chức.
Mục đích đề tài Mục đích của đề tài là xây dựng một ứng dụng phần mềm quản lý công việc, cung cấp các công cụ và tính năng giúp người dùng quản lý và theo dõi tiến độ công việc, phân công nhiệm vụ, giao tiếp và tương tác với thành viên trong dự án. Khảo sát hiện trạng Quản lý công việc là một trang web quản lý công việc trực tuyến sử dụng mô hình "board" (bảng) để tạo ra các danh sách và thẻ để quản lý các công việc và dự án. Người dùng có thé tao ra nhiều bảng và thêm thành viên vào bảng để cùng làm việc và quản lý công việc. 1|Page Chương 2: Giới thiệu về ngôn ngữ và công cụ sử dụng 1.
Ngôn ngữ JavaScript Ngôn ngữ JavaScript là một ngôn ngữ lập trình phô biến được sử dụng chủ yếu cho việc phát triển ứng dụng web và các ứng dụng đa nền tảng. JavaScript là một ngôn ngữ kịch bản (scripting language), có khả năng tương tác vả thực thi trên trình duyệt web. JavaScript có cú pháp giống với các ngôn ngữ lập trình khác như C, C++, Java, nên việc học JavaScript đễ dàng hơn đối với những người đã quen với các ngôn ngữ này. Ngôn ngữ này có khả năng thực hiện nhiều tác vụ khác nhau, từ tạo ra các trang web động và hiệu ứng trực quan bằng cách tương tác với HTML và CSS, đến phát triển các ứng dụng web phức tạp, ứng dụng di động và trò chơi.
JavaScript có lợi thế của việc có cộng đồng lập trình viên lớn và hỗ trợ mạnh mẽ. Cộng đồng này cung cấp rất nhiều tài liệu, thư viện và #amework JavaScript được phát triển và chia sẻ miễn phí. Điều này giúp giảm thời gian và công sức khi phát triển ứng dụng bằng JavaScript. Một điểm mạnh khác của JavaScript là tích hợp tốt với HTML và CSS, cho phép tương tác trực tiếp với các phần tử trên trang web và tạo ra các trang web động.
Ngoài ra, JavaScript cũng hỗ trợ xử lý trên phía máy khách, giảm tải cho máy chủ và cải thiện trải nghiệm người dùng. Đồng thời, JavaScript cũng có thể được sử dụng đề phát triển ứng dụng di động thông qua các framework nhu React Native hoặc NativeScript, giúp lập trình viên xây dựng ứng dụng cho nhiều nền tảng chỉ bằng một ngôn ngữ duy nhất. Bootstrap 5 Bootstrap 5 la mét framework front-end phé bién ding dé phat trién giao dién ngudi dùng đáp ứng và hấp dẫn trên các trang web. Nó cung cấp các thành phần UI, grid system, trình tạo biểu mẫu, biểu đồ và nhiều tính năng khác giúp xây dựng các trang web để dàng và nhanh chóng.
Bootstrap 5 hỗ trợ tạo giao diện hấp dẫn, tương thích trên nhiều thiết bị và trình duyệt khác nhau. Bootstrap 5 có nhiều ưu điểm quan trọng. Đầu tiên, nó linh hoạt và đễ tùy chỉnh, với việc sử dụng biến tùy chỉnh CSS và hỗ trợ Sass. Điều này cho phép lập trình viên điều chỉnh đễ dàng các thuộc tính giao diện như màu sắc, kích thước, độ rộng, v.
Thứ hai, Bootstrap 5 tiết kiệm thời gian, vì nó cung cấp các thành phần và mẫu đã được chuẩn bị sẵn, giúp lập trình viên tiết kiệm công sức trong việc phát triển giao diện. Thứ ba, Bootstrap 5 hỗ trợ giao diện đáp ứng, tự động thích ứng với các kích thước màn hình và thiết bị khác nhau. Cuối cùng, Bootstrap 5 được kiêm tra và hỗ trợ trên nhiều trình duyệt khác nhau, đảm bảo tính tương thích rộng rãi. Bootstrap 5 sử dụng HTML, CSS và JavaScript để xây dựng giao diện.
Nó sử dụng cầu trúc lớp (class-based) đề áp dụng các kiểu và tính năng cho các phan tử trên trang web. Cau trúc lớp này được xây dựng dựa trên các nguyên tắc CSS và có thể tùy chỉnh theo ý muốn. Bootstrap 5 cũng sử dụng grid system để xây dựng cấu trúc bố cục của trang web, cho phép tạo cột và hàng một cách linh hoạt.Js là một môi trường chạy mã JavaScript phía máy chủ, được xây dựng dựa trên JavaScript runtime V8 cua Google. Voi kha nang chay ma JavaScript 6 phia may chu, Node.js cho phép lập trình viên phát triển các ứng dụng máy chủ mạnh mẽ và hiệu quả.
Với kiến trúc non-blocking, Node.js có khả năng xử lý đồng thời nhiều yêu cầu mà không chặn các hoạt động I/O, giúp tăng cường hiệu suất và khả năng mở rộng của ứng dụng.Js có hệ sinh thái mô-đun phong phú thông qua npm, cho phép lập trình viên sử dụng các mô-đun có sẵn và quản lý dễ dàng các phụ thuộc trong dự án. Với hiệu năng cao và khả năng xử lý đa luồng, Node.js thích hợp cho việc xây dựng các ứng dụng thời gian thực và ứng dụng mạng. Đồng thời, với mã nguồn mở và cộng đồng phát triển đông đảo, Node.js tiếp tục được cải thiện và phát triển bởi một cộng đồng nhiệt huyết. React React là một thư viện JavaScript phô biến và mạnh mẽ được sử dụng để xây dựng giao diện người dùng (UI) tương tác trong các ứng dụng web.
Nó được phát triển bởi Facebook và được sử dụng rộng rãi trong cộng đồng phát triển phần mềm. Chức năng chính của React là tạo ra các thành phần UI tái sử dụng và quản lý trạng thái của chúng. React sử dụng cơ chế "virtual DOM" để cập nhật và hiển thị giao diện một cách hiệu quả, chỉ render lại các phần cần thay đối thay vì toàn bộ giao diện. Điều nảy giúp tăng hiệu suất và độ nhanh của ứng dụng.
Một trong những ưu điểm chính của React là khả năng tạo ra các ứng dụng đơn trang (single-page applications - SPA) muot ma và có trải nghiệm người dùng tương tác tốt. React cung cấp một cách tiếp cận linh hoạt trong việc quản lý trạng thái ứng dụng, giúp dễ dàng xây dựng các ứng dụng phức tạp và có khả năng mở rộng. Ngoài ra, React cũng có cộng đồng phát triển đông đảo và hệ sinh thái mô-đun phong phú, cung cấp nhiều công cụ và thư viện hỗ trợ cho việc xây dựng ứng dụng React. Express JS Express.js là một amework phát triển ứng dung web phia may chu dya trén Node.
Nó cho phép xây dựng các API và ứng dụng web theo kiến trúc MVC.js đơn giản, linh hoạt và mạnh mẽ, với cú pháp dễ học và khả năng tuỳ chỉnh cao. Nó hỗ trợ middleware, cho phép mở rộng chức năng của ứng dụng. Với hiệu suất cao và hệ sinh thái phong phú, Express.js là lựa chọn phô biến cho việc xây dựng các ứng dụng web Node. JWT Token JWT (JSON Web Token) 1a mét tiéu chuén mo (open standard) duoc str dung dé xac thực và truyền thông tin an toàn giữa các bên trong một ứng dụng web hoặc dịch vụ.
Chức năng chính của JWT là cung cấp một phương thức xác thực đơn giản và có thể được sử dụng trong các hệ thống phân tán. JWT bao gồm ba phần chính: header, payload 3|Page va signature. Header chita thong tin vé thudt toan ma hoa duge str dung. Payload chira các thông tin mà ta muốn gửi đi, ví dụ như thông tin người dùng hoặc quyên truy cập.
Signature duoc su dụng để xác minh tính toản vẹn của token. JWT được sử dụng rộng rãi trong việc xác thực người dùng và quản lý phiên làm việc (session) trên các ứng dụng web và đi động. Khi người dùng đăng nhập thành công, hệ thống sẽ tạo ra một JWT và gửi nó cho người dùng. Người dùng sẽ gửi JWT nảy trong các yêu cầu tiếp theo để xác thực và truy cập vào các tài nguyên bảo mật.
Một trong những ưu điểm chính của JWT là tính di động và không trạng thái (stateless). Do thông tin xác thực được chứa trong JWT, server không cần lưu trữ thông tin phiên làm việc của người dùng. Điều này giúp giảm tải cho server và cho phép xây đựng các hệ thống phân tán. MongoDB MongoDB là một hệ quản trị cơ sở dữ liệu phi quan hệ (NoSQL) mạnh mẽ và lĩnh hoạt.
Nó lưu trữ đữ liệu dưới dạng tài liệu JSON và cho phép lưu trữ và truy vấn dữ liệu một cách đễ dàng. MongoDB có mô hình dữ liệu linh hoạt, cho phép thay đôi cấu trúc dữ liệu theo yêu cầu. Nó cung cấp truy vấn mạnh mẽ, khả năng mở rộng dễ dàng và tích hợp tốt với ngôn ngữ lập trình. Hơn nữa, MongoDB có một hệ sinh thái phong phú với cộng đồng phát triển sôi nôi.
Tổng quan, MongoDB là một lựa chọn hàng đầu đề lưu trữ và quản lý dữ liệu trong các ứng dụng hiện đại. Stoket IO Socket.IO là một thư viện JavaScript mã nguồn mở cho phép xây dựng kết nối thời gian thực giữa máy chủ và trình duyệt. Với khả năng truyền tải đữ liệu và sự kiện trong thời gian thực, Socket.IO cho phép xây dựng các ứng dụng web thời g1an thực như trò chuyện trực tuyến, cập nhật đữ liệu trực tiếp và thông báo đến người dùng. Ưu điểm của Socket.IO bao gồm khả năng hỗ trợ thời gian thực, đa nền tảng và khả năng tự động kết nối lại, giúp tăng tính linh hoạt và đáng tin cậy trong việc xây dựng các ứng dụng web độc đáo và tương tác.
9, Sass Sass (Syntactically Awesome Style Sheets) la m6t ng6n ngit mo réng cua CSS, giup tang hiéu suất và sự tô chức trong việc viết mã CSS. Với Sass, bạn có thê sử dụng biến, hàm, mixin và nesting để tái sử dung ma CSS, giam sw lap lại và tăng tính linh hoạt. Sass cung cấp khả năng tạo ra các biến, hỗ trợ các hàm và mixin, và cho phép nhóm các quy tắc CSS con trong quy tắc cha. Tính năng này giúp bạn viết CSS dé doc, dé hiéu và tiết kiệm thời gian trong việc phát triển và bảo trì giao diện web.
Redux Redux là một thư viện quản lý trạng thải (state management) cho img dung web JavaScript. Với cách tiếp cận Flux và mô hình store-action-reducer, Redux giúp quản lý trạng thái đễ đàng và nhất quán. Thay vì thay đôi trạng thái trực tiếp, Redux sử dụng 4|Page actions dé mé ta cac su kién va reducers dé xu ly va cập nhật trạng thái. Điều này giúp tách biệt giao điện người dùng và trạng thái ứng dụng, tăng tính cô lập và kiêm thử.