1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Báo cáo bài tập lớn lập trình hướng Đối tượng báo cáo tổng hợp xây dựng Ứng dụng quản lý công việc

35 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Báo cáo tổng hợp xây dựng Ứng dụng quản lý công việc
Tác giả Lê Anh Duy-B22DCAT056, Lê Xuân Việt-B22DCAT313, Lê Đình Tú-B22DCAT261, Trần Bá Hoàng-B22DCKH044, Lưu Xuân Dũng-B22DCCN129
Người hướng dẫn Ngô Tiến Đức
Trường học Học viện Công nghệ Bưu chính Viễn thông
Chuyên ngành Công nghệ thông tin
Thể loại báo cáo
Năm xuất bản 2024
Thành phố Hà Nội
Định dạng
Số trang 35
Dung lượng 6,06 MB

Cấu trúc

  • I. Giới thiệu dự án (4)
  • II. Giới thiệu về mô hình MVC (4)
    • 1. App và AppManager (5)
    • 2. Model (Mô hình) (7)
    • 3. Views (Giao diện) (14)
    • 4. Controller (Bộ điều khiển) (16)
  • III. Kết quả đạt được (31)
  • IV. Tổng kết (35)

Nội dung

Ứng dụng cho phép người dùng thêm, xóa, và quản lý các nhiệm vụ theo từng ngày, với khả năng thiết lập thời gian thực hiện công việc, mức độ quan trọng của từng công việc kết hợp với bộ

Giới thiệu dự án

Dự án ứng dụng quản lý công việc được phát triển để hỗ trợ người dùng tổ chức và theo dõi các nhiệm vụ hàng ngày một cách hiệu quả Ứng dụng cho phép người dùng dễ dàng thêm, xóa và quản lý nhiệm vụ theo từng ngày, đồng thời thiết lập thời gian thực hiện và mức độ quan trọng của mỗi công việc Đặc biệt, ứng dụng tích hợp bộ đếm thời gian Pomodoro, giúp người dùng luân phiên giữa các phiên làm việc và nghỉ ngơi, nâng cao năng suất làm việc.

Mục tiêu chính của dự án là phát triển một công cụ hữu ích giúp người dùng tối ưu hóa thời gian và nâng cao năng suất làm việc, đồng thời giảm bớt căng thẳng trong quản lý công việc hàng ngày Ứng dụng tích hợp chức năng theo dõi tiến độ hoàn thành công việc qua thanh tiến độ, cho phép người dùng dễ dàng nhận diện trạng thái hiện tại của các nhiệm vụ và điều chỉnh kế hoạch một cách hợp lý.

Mã nguồn của dự án được viết bằng ngôn ngữ java và javafx, tuân theo mô hình MVC và sử dụng Maven quản lý.

Giới thiệu về mô hình MVC

App và AppManager

Trong mô hình MVC với JavaFX, lớp App kế thừa từ Application đóng vai trò khởi động ứng dụng Lớp này thiết lập Stage chính, tạo và hiển thị giao diện ban đầu của ứng dụng Đồng thời, nó khởi tạo đối tượng calendar mới khi mở ứng dụng và gọi phương thức trong calendar để lưu trữ các đối tượng khi đóng ứng dụng.

AppManager cho phép người dùng chuyển đổi giữa các cửa sổ làm việc của ứng dụng một cách dễ dàng Ngoài ra, nó cung cấp các biến toàn cục để quản lý tập trung instance hiện tại của model và kiểm soát việc bật tắt các dịch vụ chạy ngầm.

Model (Mô hình)

Gói này bao gồm các lớp đảm nhiệm việc xử lý tương tác của người dùng và cập nhật giao diện Trong đó, lớp Calendar đóng vai trò quan trọng trong việc quản lý và hiển thị thông tin liên quan đến thời gian.

Lớp này chịu trách nhiệm quản lý các tuần và lưu trữ chúng Lớp Calendar có các chức năng chính như:

 Khởi tạo và cập nhật tuần hiện tại: Đặt startOfCurrentWeek là đầu tuần hiện tại và cập nhật bản đồ tuần.

 Tải và lưu trữ tuần: Tải tuần từ file hoặc tạo mới nếu chưa có, và lưu trữ các tuần trong map thành các file.

 Chuyển đổi giữa các tuần: Chuyển đổi giữa tuần hiện tại, tuần trước và tuần b Lớp Day

Lớp này chịu trách nhiệm quản lý các công việc trong một ngày cụ thể Lớp Day có các chức năng chính sau:

 Quản lý công việc danh sách: Lưu trữ ngày cụ thể và các công việc liên quan.

 Thêm và xóa công việc: Cho phép thêm và xóa các công việc trong ngày.

 Sắp xếp công việc: Sắp xếp các công việc theo thời gian bắt đầu.

 Lưu trữ và khôi phục: Sử dụng ObservableList để tự động cập nhật giao diện và dung 1 list bình thường để lưu trữ khi tuần tự hóa c Lớp Music

Lớp này chịu trách nhiệm quản lý danh sách các bài hát và trạng thái phát nhạc Lớp Music có các chức năng chính như:

 Quản lý danh sách bài hát: Tải danh sách các bài hát từ thư mục và lưu trữ chúng.

 Trạng thái phát nhạc: Quản lý trạng thái phát nhạc (đang phát hoặc dừng).

 Bắt đầu và dừng phát nhạc: Cho phép bắt đầu và dừng phát nhạc. d Lớp Task

Lớp này quản lý thông tin cơ bản liên quan đến công việc, bao gồm thời gian bắt đầu, các khoảng thời gian làm việc và nghỉ ngơi, thời gian bắt buộc, cũng như trạng thái hiện tại của công việc.

Lớp Task có các chức năng chính như:

Quản lý thông tin công việc là quá trình lưu trữ các dữ liệu cơ bản liên quan đến công việc, bao gồm tên công việc, thời gian bắt đầu, thời gian làm việc và nghỉ ngơi, mức độ quan trọng, thời gian bắt buộc, cùng với trạng thái hiện tại của công việc.

 Quản lý thời gian: Theo dõi và cập nhật tổng thời gian làm việc và thời gian trôi qua trong các quãng làm việc và nghỉ ngơi.

 Chuyển đổi trạng thái: Cho phép bắt đầu, dừng, và chuyển đổi giữa các trạng thái làm việc và nghỉ ngơi.

 Kiểm tra trạng thái và các phương thức get, set e Lớp Week

Lớp này chịu trách nhiệm quản lý các ngày trong một tuần cụ thể.

Lớp Week có các chức năng chính như:

 Quản lý tuần: Lưu trữ ngày bắt đầu của tuần và danh sách các ngày trong tuần.

 Khởi tạo tuần: Tạo mới các đối tượng Day cho mỗi ngày trong tuần, bắt đầu từ ngày khởi tạo.

Views (Giao diện)

Gói này đảm nhiệm việc thiết kế giao diện người dùng, với mục tiêu tạo ra trải nghiệm trực quan và dễ sử dụng Các thành phần chính của giao diện bao gồm cửa sổ lịch (CalendarWindow), cửa sổ ngày (DayWindow) và cửa sổ Pomodoro, giúp người dùng quản lý thời gian hiệu quả.

(PomodoroWindow). a Cửa sổ lịch (CalendarWindow)

Cửa sổ lịch là giao diện chính của ứng dụng, cho phép người dùng dễ dàng xem và quản lý công việc theo tuần Các thành phần chính của cửa sổ lịch bao gồm các mục quan trọng giúp tổ chức công việc hiệu quả.

 ListView cho mỗi ngày trong tuần: Mỗi ngày trong tuần được đại diện bởi một

ListView và Label được sử dụng để hiển thị danh sách công việc trong ngày, với sự tùy chỉnh từ lớp TaskCellCalendarWindow nhằm mang đến thông tin công việc một cách trực quan và dễ hiểu.

Người dùng có thể dễ dàng chuyển đổi giữa các tuần bằng cách sử dụng các nút “Next” và “Previous” Khi tuần hiện tại thay đổi, hệ thống sẽ tự động nạp lại các công việc vào các ListView tương ứng với tuần mới.

DatePicker cho phép người dùng chọn một ngày cụ thể để nhanh chóng chuyển đến tuần tương ứng, giúp việc điều hướng giữa các tuần trở nên dễ dàng hơn mà không cần sử dụng các nút điều hướng Cửa sổ ngày (DayWindow) cung cấp cái nhìn trực quan về các ngày trong tuần, nâng cao trải nghiệm người dùng.

Cửa sổ ngày cung cấp giao diện chi tiết hơn về các công việc trong một ngày cụ thể Các thành phần chính của cửa sổ ngày bao gồm:

Danh sách công việc trong ngày được hiển thị trong ListView, với mỗi công việc được tùy chỉnh thông qua lớp TaskCellDayWindow Lớp này cung cấp thông tin chi tiết về thời gian bắt đầu, thời gian làm việc và nghỉ ngơi, cũng như trạng thái hiện tại của từng công việc.

Mỗi ô trong ListView cung cấp thông tin chi tiết về công việc, bao gồm tên công việc, thời gian bắt đầu, thời gian làm việc và nghỉ ngơi, cùng với trạng thái hiện tại Các thông tin này được trình bày trong một bảng nhằm đảm bảo bố cục rõ ràng và dễ đọc.

Màu nền tùy chỉnh trong ListView giúp phân biệt mức độ quan trọng của các công việc, cho phép người dùng nhanh chóng nhận diện những nhiệm vụ ưu tiên hơn.

 Thanh theo dõi tiến độ hoàn thành công việc : Giúp người dùng biết được mình đã hoàn thành bao nhiêu phần trăm công việc.

 Nút exit : quay trở về cửa sổ lịch c Cửa sổ Pomodoro (PomodoroWindow)

Cửa sổ Pomodoro mang lại giao diện chi tiết để theo dõi thời gian làm việc và nghỉ ngơi cho từng nhiệm vụ cụ thể Các thành phần chính của cửa sổ Pomodoro bao gồm:

 Nút Exit : Quay trở về giao diện ngày.

 Bộ đếm thời gian : Dùng để theo dõi thời gian còn lại trong các phiên làm việc và nghỉ

 Nhãn tổng thời gian tập trung: Hiển thị ở phía dưới, hiển thị tổng thời gian người dùng đã tập trung làm việc.

 Nhãn Mode: Cho biết người dùng đang trong thời gian nghỉ hay làm việc, với n ền xanh nhạt.

 Nút Start và Stop: Dùng để bắt đầu hoặc dừng phiên hiện tại

 ComboBox chọn bài hát: Nằm gần phần trên trung tâm của cửa sổ, cho phép chọn bài hát để nghe khi làm việc.

Controller (Bộ điều khiển)

Gói này bao gồm các lớp đảm nhận việc xử lý tương tác của người dùng và cập nhật giao diện, trong đó có lớp CalendarWindowController.

Lớp này chịu trách nhiệm quản lý giao diện lịch, bao gồm việc hiển thị các công việc theo tuần và xử lý các sự kiện người dùng.

Lớp CalendarWindowController có các chức năng chính như:

 Quản lý giao diện lịch: Hiển thị các công việc theo tuần và cập nhật giao diện khi tuần hiện tại thay đổi.

 Tính toán kích thước giao diện: Điều chỉnh kích thước các list view và label để phù hợp với kích thước cửa sổ.

 Xử lý sự kiện người dùng: Chuyển đổi giữa các tuần và chuyển sang cửa sổ ngày tương ứng khi người dùng click vào các list view. b Lớp TaskCellCalendarWindow

Lớp này kế thừa ListCell chịu trách nhiệm tùy chỉnh các ô hiển thị trong danh sách công việc của cửa sổ chính c Lớp DayViewController

Lớp này chủ yếu xử lý các hoạt động liên quan đến việc hiển thị và quản lý các công việc trong một ngày cụ thể.

Lớp DayViewController có các chức năng chính sau:

Khi lớp được khởi tạo, nó lấy ngày hiện tại từ AppManager để thiết lập danh sách công việc cho ListView Đồng thời, lớp cũng cập nhật nhãn hiển thị ngày tháng và thêm biểu tượng thể hiện mức độ quan trọng của các công việc.

Cập nhật tiến độ hoàn thành là quá trình tính toán và hiển thị phần trăm hoàn thành của các công việc trong ngày Thông tin này được trình bày trên thanh tiến độ và qua nhãn phần trăm hoàn thành, giúp người dùng dễ dàng theo dõi tiến độ công việc.

Tạo mô tả về mức độ quan trọng của các công việc trong giao diện là rất cần thiết Sử dụng các màu sắc khác nhau để phân biệt các mức độ quan trọng như thấp, trung bình và cao giúp người dùng dễ dàng nhận biết và quản lý công việc hiệu quả hơn.

Tạo một hộp thoại cho phép người dùng nhập thông tin công việc mới, bao gồm tên công việc, thời gian bắt đầu, thời gian tập trung, thời gian nghỉ và mức độ quan trọng.

Nó xác minh tính hợp lệ của thông tin nhập vào, ngăn chặn việc thêm công việc nếu thời gian bắt đầu trước thời điểm hiện tại hoặc có xung đột với các công việc đã tồn tại.

Để xóa công việc, trước tiên cần kiểm tra xem có công việc nào được chọn trong ListView hay không Nếu có, hệ thống sẽ hiển thị một hộp thoại xác nhận để người dùng xác nhận trước khi tiến hành xóa công việc được chọn khỏi danh sách.

Trước khi bắt đầu công việc, hãy kiểm tra xem có công việc nào được chọn hay không Nếu có, hệ thống sẽ xác nhận với người dùng trước khi chuyển sang cửa sổ Pomodoro cho công việc đã chọn, đồng thời hiển thị thông báo nếu công việc đã hoàn thành hoặc đã quá hạn.

 Xử lý thoát: Cho phép người dùng thoát khỏi màn hình hiện tại và quay lại màn hình chính của ứng dụng. d Lớp TaskCellDayWindow

Lớp này kế thừa ListCell chịu trách nhiệm tùy chỉnh các ô hiển thị trong danh sách công việc của cửa sổ chính.

Lớp TaskCellDayWindow có các chức năng chính như:

Trong phương thức updateItem, thông tin công việc được thiết lập và hiển thị trên một GridPane, bao gồm các yếu tố quan trọng như tên công việc, thời gian bắt đầu, thời gian tối thiểu, khoảng thời gian tập trung và khoảng thời gian nghỉ.

Phân loại công việc theo mức độ quan trọng bằng cách sử dụng màu sắc giúp dễ dàng nhận diện các nhiệm vụ cần ưu tiên Gán màu nền cho các ô công việc tương ứng với mức độ quan trọng: màu xanh cho mức độ thấp (LOW), màu vàng cho mức độ trung bình (MEDIUM) và màu đỏ cho mức độ cao (HIGH) Phương pháp này không chỉ tăng cường hiệu quả quản lý thời gian mà còn giúp người dùng tập trung vào những nhiệm vụ quan trọng nhất.

 Cập nhật giao diện khi được chọn: Thay đổi màu sắc của ô công việc khi được chọn.

 Hiển thị trạng thái công việc: Gán nhãn trạng thái cho các công việc và cập nhật trạng thái theo thời gian thực. e Lớp PomodoroController

Lớp này đảm nhận việc xử lý các chức năng liên quan đến phương pháp Pomodoro, bao gồm quản lý thời gian làm việc, phát nhạc và xử lý sự kiện từ người dùng.

Lớp PomodoroController có các chức năng chính sau:

Khởi tạo biến task từ AppManager.selectedTask để xác định nhiệm vụ hiện tại Thiết lập nhãn đếm ngược (countdownLabel) với thời gian làm việc ban đầu.

Tạo một Timeline để cập nhật đồng hồ đếm ngược mỗi giây.

Tải âm thanh thông báo khi kết thúc phiên.

Thiết lập danh sách bài hát từ lớp Music vào ComboBox nếu có bài hát có sẵn Đồng thời, đăng ký xử lý sự kiện để thoát ứng dụng khi người dùng cố gắng đóng cửa sổ.

Cập nhật thời gian còn lại của nhiệm vụ bằng cách giảm thời gian từng giây Khi phiên làm việc kết thúc, hãy phát âm thanh thông báo và chuyển sang trạng thái hoàn tất.

"Break" hoặc "Focus" tùy thuộc vào trạng thái hiện tại của nhiệm vụ.

 Bắt Đầu và Dừng Phiên Pomodoro

Bắt đầu phiên làm việc nếu chưa bắt đầu Thay đổi trạng thái modeLabel thành

"Focus" và phát Timeline để bắt đầu đếm thời gian.

Dừng phiên làm việc nếu nó đang chạy Dừng Timeline và thay đổi trạng thái modeLabel thành "Stop".

 Cập Nhật Thời Gian Hiển Thị

Cập nhật nhãn đếm ngược và nhãn tổng thời gian đã làm việc Thời gian được định dạng thành chuỗi với định dạng "HH:mm" hoặc "mm".

 Xử Lý Thoát Ứng Dụng

Trước khi thoát, hãy kiểm tra xem nhiệm vụ đã hoàn thành hay chưa Nếu nhiệm vụ chưa hoàn tất, hãy hiển thị hộp thoại xác nhận để thông báo cho người dùng về thời gian còn lại nhằm hoàn thành nhiệm vụ.

Để thiết lập danh sách bài hát, bạn cần nạp danh sách vào ComboBox và chọn bài hát đầu tiên làm bài hát hiện tại Đồng thời, hãy đăng ký sự kiện để theo dõi khi người dùng thay đổi bài hát được chọn.

 Tải Bài Hát Chọn: Dừng bài hát hiện tại nếu có và tải bài hát được chọn từ danh sách để chuẩn bị phát.

Kết quả đạt được

Ứng dụng sở hữu giao diện người dùng trực quan và dễ sử dụng, giúp người dùng dễ dàng tạo, quản lý và theo dõi công việc Thiết kế giao diện lịch và danh sách công việc rõ ràng, sử dụng màu sắc và biểu tượng phân biệt mức độ quan trọng của từng nhiệm vụ.

2 Quản lý công việc hiệu quả

Người dùng có khả năng dễ dàng tạo mới, chỉnh sửa và xóa các công việc Các công việc được tổ chức theo thời gian và mức độ quan trọng, hỗ trợ người dùng trong việc quản lý thời gian và công việc một cách hiệu quả.

Ngày đăng: 13/12/2024, 23:44

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w