Những năm gần đây, với sự phát triển của khoa học và công nghệ thì việc quản lý công việc tự động trong môi trường doanh nghiệp trở lên rất cấp thiết. Để giải quyết vấn đề trên, em quyết định thực hiện đồ án “Hệ thống quản lý công việc trên nền tảng web”. Nội dung đồ án cuả em gồm 3 chương: Chương 1 Cơ sở lý thuyết: Chương này trình bày sơ lược về các kiến thức, công nghệ sử dụng trong đồ án. Chương 2 Phân tích thiết kế hệ thống: Chương này gồm các mô tả, yêu cầu phi chức năng, biểu đồ usecase và biểu đồ hoạt động của hệ thống. Chương 3 Kết quả đạt được: Trình bày kết quả thu được từ đồ án.
CƠ SỞ LÝ THUYẾT
Tổng quan về HTML
HTML (Hyper Text Markup Language) là ngôn ngữ đánh dấu siêu văn bản được thiết kế để tạo ra các trang web trên World Wide Web Tài liệu HTML được tạo thành từ các thẻ (tag) và các phần tử (element) của HTML, cho phép mô tả cấu trúc và nội dung của trang web một cách rõ ràng Các file HTML được lưu với phần mở rộng htm hoặc html, giúp trình duyệt nhận diện và hiển thị đúng nội dung HTML cho phép nhúng các đối tượng như âm thanh, hình ảnh và video, đồng thời hỗ trợ tích hợp CSS và JavaScript để nâng cao giao diện và khả năng tương tác của trang web.
HTML 5 là phiên bản mới nhất của HTML, mang theo nhiều tính năng mới từ cú pháp đến hỗ trợ mạnh mẽ các phần tử multimedia Phiên bản này cải thiện tốc độ và khả năng tương thích trình duyệt so với các phiên bản trước, đồng thời tối ưu hoá khả năng làm việc với DOM (Document Object Model) cho các ứng dụng web động Nhờ các cải tiến về cấu trúc và chức năng, HTML5 trở thành nền tảng phát triển web hiện đại, cho phép tích hợp dễ dàng các nội dung multimedia và mang lại trải nghiệm người dùng mượt mà hơn.
Tổng quan về CSS
CSS (Cascading Style Sheets) được sử dụng để định dạng bố cục, trang trí cho các tài liệu HTML, XML, XHTML, SVG
CSS có cấu trúc đơn giản và dùng các từ tiếng Anh để đặt tên cho các thuộc tính, có thể được nhúng trực tiếp vào tập tin HTML Tuy nhiên, thông dụng là tách CSS thành các file riêng có phần mở rộng css và nhúng vào tài liệu HTML bằng thẻ link, giúp mã HTML gọn gàng và dễ bảo trì đồng thời cho phép tái sử dụng stylesheet cho các dự án sau này.
Tổng quan về Javascript
JavaScript là một ngôn ngữ lập trình kịch bản đa nền tảng và hướng đối tượng, được sử dụng để làm cho các trang web trở nên tương tác hơn Các ví dụ điển hình bao gồm animation phức tạp và cửa sổ pop-up giúp tăng trải nghiệm người dùng Ngoài việc chạy trong trình duyệt, JavaScript còn có các phiên bản chạy trên server như Node.js, cho phép bổ sung nhiều chức năng cho website ngoài việc chỉ tải xuống tệp, ví dụ hỗ trợ cộng tác thời gian thực giữa nhiều máy tính.
Tổng quan về Node.js
Node.js là môi trường thực thi JavaScript theo hướng bất đồng bộ và mô hình sự kiện, cho phép chạy ứng dụng trên máy chủ mà không cần trình duyệt Nó dựa trên Javascript engine, cụ thể là V8 của Chrome, một trình thông dịch mã nguồn mở biến JavaScript thành mã máy và được Google liên tục cập nhật để tối ưu cho Chrome; Node.js điều chỉnh engine này để cung cấp môi trường chạy code server-side JavaScript hiện không bị giới hạn cho trình duyệt; bạn có thể dùng nó để xây dựng toàn bộ ứng dụng trên máy chủ Khi một ứng dụng JavaScript được khởi động, toàn bộ mã nguồn được nạp vào bộ nhớ và mọi biến, hàm và khối mã đều có sẵn cho chương trình, cho dù mã có được thực thi ngay hay không Một số dòng mã có thể không chạy ngay vì chúng có dạng trình nghe sự kiện (event listeners); các hàm tương ứng sẽ được gọi khi sự kiện có tên trùng khớp phát ra Các đối tượng nghe sự kiện được giữ trong bộ nhớ cho đến khi sự kiện kích hoạt và trình lắng nghe sự kiện kích hoạt các callback để thực thi công việc.
Nhờ kiến trúc hướng sự kiện, Node.js cho phép chạy các ứng dụng một cách nhanh chóng và hiệu quả Trong khi các nền tảng khác có thể yêu cầu biên dịch lại hoặc chạy toàn bộ mã nguồn mỗi khi một lệnh được thực thi, Node.js chỉ tải mã JavaScript một lần và chỉ kích hoạt các hàm và callback tương ứng khi các sự kiện xảy ra JavaScript là ngôn ngữ phát triển theo hướng sự kiện nhưng không bắt buộc phải tuân theo nó Node.js tận dụng lợi thế này bằng cách đẩy mạnh sử dụng các sự kiện để máy chủ thực thi hầu hết các tác vụ của ứng dụng, nhờ vào event loop của Node.js.
Tổng quan về React JS
Reactjs là một thư viện Javascript mã nguồn mở hỗ trợ xây dựng các thành phần giao diện nhanh gọn và tiện lợi Bình thường các lập trình viên sẽ nhúng javascript vào code HTML thông qua các attribute như AngularJS nhưng với Reactjs làm việc như một thư viện cho phép nhúng HTML vào javascript thông qua JSX Qua đó bạn có thể dễ dàng lồng các đoạn HTML vào trong JSX làm cho các component dễ hiểu và dễ sử dụng hơn.
Trong Reactjs thường dùng javascript để thiết kế bố cục cho trang web, nhưng nhược điểm là cấu trúc khá là khó Thay vào đó sử dụng JSX và nhúng các đoạn HTML vào javascript, ta thấy cú pháp dễ hiểu hơn và JSX cũng có thể tối ưu code khi biên soạn.Vừa dễ cho người lập trình mà vừa tiện cho việc biên dịch.
Tổng quan về Express JS
Expressjs là một framework được xây dựng trên nền tảng của Nodejs Nó cung cấp các tính năng mạnh mẽ để phát triển web hoặc mobile Expressjs hỗ trợ các method HTTP và midleware tạo ra API vô cùng mạnh mẽ và dễ sử dụng.
Tổng hợp một số chức năng chính của Expressjs như sau:
Thiết lập các lớp trung gian để trả về các HTTP request.
Define router cho phép sử dụng với các hành động khác nhau dựa trên phương thức HTTP và URL.
Cho phép trả về các trang HTML dựa vào các tham số.
Tổng quan về MongoDB
MongoDB (chữ mongo được lấy từ từ humongous trong tiếng Anh) là một NoSQL database Khác với MySQL và các loại SQL database khác chạy theo mô hình database – table – row – column với schema phức tạp và phải sử dụng nhiều join khi truy vấn, MongoDB hoạt động theo mô hình database – collection – document, thay thế mô hình cơ sở dữ liệu dựa trên bảng bằng các document có định dạng JSON với cấu trúc linh hoạt hơn (MongoDB gọi là BSON).
Một số khái niệm cơ bản trong MongoDB:
Database trong MongoDB là tập hợp các collection chứa dữ liệu Mỗi database có một tập tin và thư mục riêng trên hệ thống tập tin của máy chủ, được MongoDB quản lý để lưu trữ dữ liệu và cấu trúc của các collection Thông thường một MongoDB server sẽ chứa nhiều database khác nhau để phục vụ cho nhiều ứng dụng hoặc phạm vi dữ liệu khác nhau.
Collection trong MongoDB là tập hợp các Documents, tương đương với một bảng trong MySQL Điểm khác so với hệ quản trị cơ sở dữ liệu quan hệ là Collection không bắt buộc có một schema cố định; các document trong cùng một collection có thể có nhiều trường (field) khác nhau Tuy nhiên, thường các document trong một collection sẽ chia sẻ một số trường chính tương đồng và có liên quan với nhau, giúp dữ liệu được tổ chức linh hoạt và dễ quản lý, đồng thời vẫn đảm bảo sự nhất quán về mục đích sử dụng.
Document là một tập dữ liệu theo dạng key-value, mỗi key tương ứng với một value, tương tự như JSON Các document có schema linh hoạt: trong cùng một collection, các document không nhất thiết phải có cùng trường hoặc cấu trúc và một trường có thể chứa nhiều kiểu dữ liệu khác nhau Ưu điểm nổi bật là dữ liệu được lưu với ít ràng buộc, giúp hiệu suất và khả năng mở rộng cao Dữ liệu được ghi đệm lên RAM nên tốc độ truy vấn rất nhanh.
Nhược điểm chính là thiếu ràng buộc và tính toàn vẹn dữ liệu, nên không được sử dụng trong các ứng dụng đòi hỏi tính toàn vẹn và bảo mật cao như ngân hàng Dữ liệu được caching trên RAM, do đó cần dung lượng RAM lớn hơn để duy trì hiệu suất và đáp ứng truy cập.
PHÂN TÍCH THIẾT KẾ HỆ THỐNG
Mô tả tổng quan hệ thống
2.1.1 Các chức năng của hệ thống
Bảng 2.1 Chức năng hệ thống
STT Tên chức năng Ý nghĩa
1 Đăng nhập Cho phép người dùng đăng nhập vào hệ thống để thực hiện các chức năng riêng.
2 Đăng xuất Cho phép người dùng thoát khỏi hệ thống.
3 Đổi mật khẩu Cho phép người dùng đổi mật khẩu.
4 Quản lý công việc Admin có thể thêm, sửa các công việc , thêm sửa các module trong công việc
5 Quản lý nhân viên Admin có thể thêm, sửa, dừng hoạt động các nhân viên.
7 Tìm kiếm Admin có thể tìm kiếm công việc, module, nhân viên và các thông tin liên quan
9 Xem chi tiết công việc Người dùng có thể xem chi tiết công việc.
10 Quản lý công việc nhân viên
Nhân viên có thể nhận các job
11 Quản lý module Nhân viên có thể nhận các module
12 Báo cáo theo file doc Nhân viên có thể báo cáo file upload lên hệ thống
13 Đọc báo cáo Giảng viên có thể thêm, sửa, xóa tài liệu.
Các yêu cầu phi chức năng
Quản trị viên (admin) là nhóm người có quyền hạn cao nhất trong hệ thống Họ có thể quản trị hệ thống và quản lý các nhóm người dùng khác, như nhân viên kỹ thuật và HR (nhân sự), để cấp phát hoặc thu hồi quyền truy cập và đảm bảo an toàn dữ liệu cho tổ chức.
Manager: Là các quản của hệ thống Có thể tạo và quản lý chi tiết các job và module của các job.
Nhân viên và HR: Là các người dùng của hệ thống Có thể nhận các job, module, xem tình hình công việc
2.2 Các yêu cầu phi chức năng
2.2.1 Giao diện người dùng
Giao diện đẹp mắt, đơn giản, quen thuộc và dễ sử dụng.
Giao diện sử dụng ngôn ngữ tiếng Việt.
Tên các trường thông tin, chức năng phải nhất quán.
2.2.2 Yêu cầu về phần cứng
Bảng 2.2: Yêu cầu phần cứng
Yêu cầu hệ thống Yêu cầu tối thiểu Yêu cầu khuyến nghị
Hệ điều hành Windows 7, Ubuntu
Trình duyệt Google Chorme, Firefox,
Phiên bản mới nhất của các trình duyệt hiện đại
CPU CPU Intel 4 th , CPU AMD CPU Intel 8 th , CPU AMD
GPU GPU onbroad Nvida RTX 3080
Biểu đồ usecase
Tốc độ tải trang nhanh.
Ứng dụng nhẹ tốn ít tài nguyên hệ thống như RAM, CPU, GPU.
Đáp ứng được lượng truy cập đồng thời lớn.
Các tài nguyên như hình ảnh, âm thanh, video, các file css, javascript, các thư viện hỗ trợ phải được tối ưu để giảm dung lượng.
2.2.4 Yêu cầu về độ tin cậy:
Đảm bảo đáp ứng được các yêu cầu của người sử dụng.
Ứng dụng nhanh, chính xác.
Kiểm soát được các ngoại lệ.
Giảm lỗi logic tới mức tối thiểu.
2.2.5 Yêu cầu về tính bảo mật
Mật khẩu phải được mã hóa.
Các thông tin cá nhân phải được bảo mật.
Phân quyền cho các nhóm người dùng rõ ràng.
Chống được các phương thức tấn công cơ bản như DDoS, XSS và có thể khôi phục về trạng thái trước khi bị tấn công.
Kịch bản usecase
Bảng 2.3: Usecase đăng nhập
Tên use case Đăng nhập
Tác nhân chính Tất cả các nhóm người dùng của hệ thống
Tiền điều kiện Đã có tài khoản
Nội dung Cho phép các nhóm người dùng đăng nhập vào hệ thống Luồng sự kiện:
1 Người dùng chọn chức năng đăng nhập.
2 Hệ thống hiển thì form đăng nhập.
3 Người dùng nhập username và password và click button đăng nhập.
4 Hệ thống kiểm tra các thông tin trên.
5 Chuyển về trang cá nhân.
4.a Người dùng nhập sai thông tin username và password hệ thống sẽ redirect lại trang đăng nhập.
Bảng 2.4: Usecase đăng xuất
Tên use case Đăng xuất
Tác nhân chính Tất cả các nhóm người dùng trong hệ thống
Tiền điều kiện Đã đăng nhập vào hệ thống
Nội dung Người dùng thoát khỏi hệ thống
1 Người dùng chọn chức năng đăng xuất.
2 Hệ thống hiện thị popup xác nhận đăng xuất.
3 Người dùng chọn đăng xuất thì hệ thống sẽ được đăng xuất và chuyển hướng về trang chủ.
4 Người dùng chọn không hệ thống sẽ ẩn đi popup xác nhận đăng xuấtNgoại lệ:
2.4.4 Usecase thay đổi thông tin cá nhân
Bảng 2.5: Usecase đổi mật khẩu
Tên use case Đổi mật khẩu
Tác nhân chính Tất cả nhóm thành phần trong hệ thống.
Tiền điều kiện Đã đăng nhập
1 Người dùng chọn chức năng đổi mật khẩu.
2 Hệ thống hiển thị form đổi mật khẩu.
3 Người dùng nhập các thông tin cần thiết và click vào button Lưu
4 Hệ thống kiểm tra các thông tin vừa nhận.
5 Thông báo đổi mật khẩu thành công
4.a Người dùng nhập mật khẩu mới và xác nhận mật khẩu mới không khớp. Hệ thống hiển thị thông báo nhập lại mật khẩu.
4.b Người dùng nhập sai mật khẩu cũ.
Hệ thống thông báo đổi mật khẩu thất bại.
Bảng 2.6: Usecase thay đổi thông tin cá nhân
Tên use case Thay đổi thông tin cá nhân
Tác nhân chính Tất cả nhóm thành phần trong hệ thống.
Tiền điều kiện Đã đăng nhập
1 Người dùng chọn chức năng thay đổi thông tin cá nhân.
2 Hệ thống hiển thị form thông tin cá nhân.
3 Người dùng nhập các thông tin cần sửa đổi và click vào button Lưu
4 Hệ thống thông báo thay đổi thông tin thành công
4.a Người dùng nhập sai mật khẩu cũ hệ thống thông báo đổi mật khẩu thất bại.
Bảng 2.7: Usecase thêm nhân viên
Tên use case Thêm nhân viên
Tiền điều kiện Đã đăng nhập
1 Admin chọn chức năng thêm nhân viên.
2 Hệ thống hiển thị form thêm nhân viên.
3 Admin nhập các thông tin cần thiết và click button Thêm nhân viên.
4 Hệ thống thêm kiểm tra các thông tin đã nhập.
5 Lưu dữ liệu lên database và reload lại trang.
4.a Người dùng nhập thiếu các thông tin: Hệ thống yêu cầu nhập đủ.
Bảng 2.8: Usecase sửa nhân viên
Tên use case Sửa nhân viên
Tiền điều kiện Đã đăng nhập
1 Admin chọn khóa học cần chỉnh sửa rồi click vào button sửa.
2 Hệ thống hiển thị form chỉnh sửa.
3 Admin nhập các thông tin cần sửa và click vào button Lưu.
4 Hệ thống lưu thông tin chỉnh sửa và reload lại trang.
2.4.7 Usecase dừng hoạt động nhân viên
Bảng 2.9: Usecase dừng hoạt động nhân viên
Tên use case Dừng hoạt đông nhân viên
Tiền điều kiện Đã đăng nhập
1 Admin chọn nhân viên muốn dừng và click vào button dừng hoạt động.
2 Hệ thống hiển thị popup xác nhận
3 a Admin chọn xác nhận. b Admin chọn không.
4 a Hệ thống cho nhân viên cập nhật trạng thái reactive và reload lại trang. b Ẩn popup xác nhận xóa.
Bảng 2.10: Usecase thêm công việc
Tên use case Thêm công việc
Tiền điều kiện Đã đăng nhập
1 Admin chọn chức năng thêm công việc.
2 Hệ thống hiển thị form thêm công việc.
3 Admin nhập các thông tin cần thiết và click button Thêm
4 Hệ thống thêm kiểm tra các thông tin đã nhập.
5 Lưu dữ liệu lên database và reload lại trang.
4.a Admin nhập thiếu các thông tin: Hệ thống yêu cầu nhập đủ.
Bảng 2.11: Usecase sửa công việc
Tên use case Sửa giảng viên
Tiền điều kiện Đã đăng nhập
1 Admin chọn giảng viên cần chỉnh sửa rồi click vào button sửa.
2 Hệ thống hiển thị form chỉnh sửa.
3 Admin nhập các thông tin cần sửa và click vào button Lưu.
4 Hệ thống lưu thông tin chỉnh sửa và reload lại trang.
Bảng 2.12: dừng công việc
Tên use case Dừng công việc
Tiền điều kiện Đã đăng nhập
1 Admin chọn công việc muốn dừng và click dừng
2 Hệ thống hiển thị popup xác nhận dừng.
3 a Admin chọn dừng. b Admin chọn không.
4 a Hệ thống dừng công việc và reload lại trang. b Ẩn popup xác nhận và reload lại trang.
Bảng 2.13: Usecase thêm module
Tên use case Thêm module
Tiền điều kiện Đã đăng nhập
1 Admin chọn chức năng thêm module.
2 Hệ thống hiển thị form thêm module.
3 Admin nhập các thông tin cần thiết và click button Thêm.
4 Hệ thống thêm kiểm tra các thông tin đã nhập.
5 Lưu dữ liệu lên database và reload lại trang.
4.a Admin nhập thiếu các thông tin: Hệ thống yêu cầu nhập đủ.
Bảng 2.14: Usecase sửa module
Tên use case Sửa module
Tiền điều kiện Đã đăng nhập
1 Admin chọn module cần chỉnh sửa rồi click vào button sửa.
2 Hệ thống hiển thị form chỉnh sửa.
3 Admin nhập các thông tin cần sửa và click vào button Lưu.
4 Hệ thống lưu thông tin chỉnh sửa và reload lại trang.
Bảng 2.15: Usecase xóa học viên
Tên use case Xóa module
Tiền điều kiện Đã đăng nhập
1 Admin chọn module muốn xóa và click vào button xóa.
2 Hệ thống hiển thị popup xác nhận xóa.
3 a Admin chọn xóa. b Admin chọn không.
4 a Hệ thống xóa module khỏi hệ thống và reload lại trang. b Ẩn popup xác nhận xóa.
Bảng 2.16: Usecase nhận công việc
Tên use case Nhận công việc
Tác nhân chính Nhân viên
Tiền điều kiện Đã đăng nhập
1 Nhân viên chọn công việc cần nhận và ấn “Nhận job”.
2 Hệ thống lưu thông tin nhân viên đã nhận và reload lại trang. Ngoại lệ:
Bảng 2.17: Usecase nhận module
Tên use case Thêm bài tập
Tác nhân chính Nhân viên
Tiền điều kiện Đã đăng nhập
1 Nhân viên chọn công việc cần nhận và ấn “Nhận module”.
2 Hệ thống lưu thông tin nhân viên đã nhận và reload lại trang Ngoại lệ:
2.4.16 Usecase báo cáo tiến độ công việc
Bảng 2.18: Usecase báo cáo tiến độ công việc
Tên use case Báo cáo tiến độ công việc
Tác nhân chính Nhân viên
Tiền điều kiện Đã đăng nhập
1 Giảng viên chọn file cần upload rồi ấn upload.
2 Hệ thống lưu thông tin nhân viên đã nhận và reload lại trang Ngoại lệ:
2.4.17 Usecase xem báo cáo công việc
Bảng 2.19: Usecase xem báo cáo công việc
Tên use case Xem báo cáo công việc
Tiền điều kiện Đã đăng nhập
1 Admin vào phần quản lý công việc để xem báo cáo nhân viên.
2 Hệ thống hiển thị giao diện rồi ấn vào download để xem báo cáoNgoại lệ:
2.5 Biểu đồ hoạt động của một số chức năng
2.5.1 Biểu đồ hoạt động đăng nhập
Hình 2.1: Biểu đồ hoạt động đăng nhập
2.5.2 Biểu đồ hoạt động thêm công việc
Hình 2.2: Biểu đồ hoạt động thêm công việc
2.5.3 Biểu đồ hoạt động sửa công việc
2.5.4 Biểu đồ hoạt động dừng công việc Hình 2.3: Biểu đồ hoạt động sửa công việc
Hình 2.4: Biểu đồ hoạt động dừng công việc
2.6 Thiết kế cơ sở dữ liệu
STT Thuộc tính Kiểu Ràng buộc Ý nghĩa
1 _id String Primary key Id job
2 name String Not null Tên job
3 status String Trạng thái
4 progress String Mức độ hoàn thành
5 deadline String Thời hạn công việc
6 ctime Timestamp Thời gian tạo
7 mtime Timestamp Thời gian cập nhật
8 dtime Timestamp Thời gian xóa
1 _id String Primary key Id module
2 Job_id String Not null Id job
3 name String Not null Tên module
4 status String Trạng thái
5 progress String Mức độ hoàn thành
7 ctime Timestamp Thời gian tạo
8 mtime Timestamp Thời gian cập nhật
9 dtime Timestamp Thời gian xóa
STT Thuộc tính Kiểu Ràng buộc Ý nghĩa
1 _id String Primary key Id user
2 username String Unique Tên đăng nhập
4 phone String Số điện thoại
5 full_name String Not null Tên dầy đủ
7 ctime Timestamp Thời gian tạo
8 mtime Timestamp Thời gian cập nhật
9 dtime Timestamp Thời gian xóa
STT Thuộc tính Kiểu Ràng buộc Ý nghĩa
1 _id ObjectId Primary key Id admin
2 user_id String Not null Id user
STT Thuộc tính Kiểu Ràng buộc Ý nghĩa
1 _id String Primary key token
2 user_id String Not null Id user
STT Thuộc tính Kiểu Ràng buộc Ý nghĩa
1 _id String Primary key Id
2 user_id String Not null Id user
3 job_id String Not null Id job
4 status String Trạng thái
5 ctime Timestamp Thời gian tạo
6 mtime Timestamp Thời gian cập nhật
Bảng 2.26: User module file
STT Thuộc tính Kiểu Ràng buộc Ý nghĩa
1 _id String Primary key Id
2 user_id String Not null Id user
3 job_id String Not null Id job
4 module_id String Not null Id module
5 status String Trạng thái
6 ctime Timestamp Thời gian tạo
Bảng 2.37: User module file
STT Thuộc tính Kiểu Ràng buộc Ý nghĩa
1 _id ObjectId Primary key Id
2 user_id String Not null Id user
3 job_id String Not null Id job
4 module_id String Not null Id module
5 file_name String Tên file đã upload
6 ctime Timestamp Thời gian tạo
Thiết kế cơ sở dữ liệu
STT Thuộc tính Kiểu Ràng buộc Ý nghĩa
1 _id String Primary key Id job
2 name String Not null Tên job
3 status String Trạng thái
4 progress String Mức độ hoàn thành
5 deadline String Thời hạn công việc
6 ctime Timestamp Thời gian tạo
7 mtime Timestamp Thời gian cập nhật
8 dtime Timestamp Thời gian xóa
1 _id String Primary key Id module
2 Job_id String Not null Id job
3 name String Not null Tên module
4 status String Trạng thái
5 progress String Mức độ hoàn thành
7 ctime Timestamp Thời gian tạo
8 mtime Timestamp Thời gian cập nhật
9 dtime Timestamp Thời gian xóa
STT Thuộc tính Kiểu Ràng buộc Ý nghĩa
1 _id String Primary key Id user
2 username String Unique Tên đăng nhập
4 phone String Số điện thoại
5 full_name String Not null Tên dầy đủ
7 ctime Timestamp Thời gian tạo
8 mtime Timestamp Thời gian cập nhật
9 dtime Timestamp Thời gian xóa
STT Thuộc tính Kiểu Ràng buộc Ý nghĩa
1 _id ObjectId Primary key Id admin
2 user_id String Not null Id user
STT Thuộc tính Kiểu Ràng buộc Ý nghĩa
1 _id String Primary key token
2 user_id String Not null Id user
STT Thuộc tính Kiểu Ràng buộc Ý nghĩa
1 _id String Primary key Id
2 user_id String Not null Id user
3 job_id String Not null Id job
4 status String Trạng thái
5 ctime Timestamp Thời gian tạo
6 mtime Timestamp Thời gian cập nhật
Bảng 2.26: User module file
STT Thuộc tính Kiểu Ràng buộc Ý nghĩa
1 _id String Primary key Id
2 user_id String Not null Id user
3 job_id String Not null Id job
4 module_id String Not null Id module
5 status String Trạng thái
6 ctime Timestamp Thời gian tạo
Bảng 2.37: User module file
STT Thuộc tính Kiểu Ràng buộc Ý nghĩa
1 _id ObjectId Primary key Id
2 user_id String Not null Id user
3 job_id String Not null Id job
4 module_id String Not null Id module
5 file_name String Tên file đã upload
6 ctime Timestamp Thời gian tạo
KẾT QUẢ ĐẠT ĐƯỢC
Giao diện đăng nhập
Hình 3.1.2: Giao diện sau khi login của admin Hình 3.5.1: Giao diện đăng nhập
Hình 3.1.3: Giao diện sau khi login của staff
Giao diện Quản lý nhân viên
Hình 3.2.2: Giao diện lọc vai trò nhân viên trong quản lý nhân viên
Hình 3.2.3: Giao diện sửa thông tin nhân viên trong quản lý nhân viên
Hình 3.6.1: Giao diện quản lý nhân viên
Hình 3.2.4: Giao diện thêm thông tin nhân viên trong quản lý nhân viên
Hình 3.2.5: Pop Up khi thêm thành công nhân viên
Giao diện đổi mật khẩu
Hình 3.3: Giao diện đổi mật khẩu
Giao diện quản lý công việc
Hình 3.4.1: Giao diện quản lý công việc
Hình 3.4.2: Giao diện thêm công việc
Hình 3.4.3: Giao diện sửa công việc
3.5 : Giao diện thêm module cho từng job
Hìn h 3.5.2: Giao diện lọc module
Hình 3.5.3: Giao diện sửa module
Hình 3.5.1: Giao diện thêm module
Hình 3.5.4: Pop up khi xóa module
3.6 Giao diện chi tiết một công việc
3.7 Giao diện danh sách công việc
Hình 3.6: Giao diện chi tiết job
Hình 3.7: Giao diện danh sách công việc
3.8 Giao diện công việc của tôi
Hình 3.8: Giao diện công việc của tôi
3.9 Giao diện module của tôi
Hình 3.9: Giao diện module của tôi
Hình 3.70: Giao diện báo cáo
Giao diện danh sách công việc
Hình 3.6: Giao diện chi tiết job
Hình 3.7: Giao diện danh sách công việc
Giao diện công việc của tôi
Hình 3.8: Giao diện công việc của tôi
3.9 Giao diện module của tôi
Hình 3.9: Giao diện module của tôi
Hình 3.70: Giao diện báo cáo
Giao diện báo cáo
Hình 3.9: Giao diện module của tôi
Hình 3.70: Giao diện báo cáo
Source code
https://github.com/ntDung-dev/workcontrol