Ngoài ra, em xin cảm ơn những người bạn đã giúp đỡvà trao đổi thêm nhiều thông tin về đề tài trong quá trình thực hiện đề tài này.Cuối cùng em vô cùng biết ơn gia đình và bạn bè, những n
TỔNG QUAN DỰ ÁN
Mục tiêu của đề tài
- Mục tiêu chung: Tạo ra một ứng dụng web đơn giản và hiệu quả, tích hợp các tính năng cơ bản và hiệu quả
- Mục tiêu cụ thế: xây dựng một phần mềm quản lý công việc cá nhân trên nền web, tập trung vào việc sử dụng phương pháp Pomodoro để tăng cường khả năng tập trung và hiệu suất làm việc của người dùng
Phần mềm sẽ được thiết kế với giao diện thân thiện, dễ sử dụng và tối ưu hóa để người dùng có thể tập trung vào công việc mà không gặp phải các rắc rối về giao diện Xây dựng các tính năng cần thiết để người dùng có thể đặt mục tiêu, theo dõi thời gian làm việc và nghỉ ngơi theo chu kỳ Pomodoro.
Phương pháp nghiên cứu đề tài
- Phương pháp nghiên cứu lý thuyết: Nghiên cứu các tài liệu về lập trình PHP, HTML, CSS, Javascript,
Nghiên cứu hệ quản trị cơ sở dữ liệu “MySQL”
Nghiên cứu các Framework: Laravel, Jquery, Bootstrap, Ajax
- Phương pháp tổng hợp: Chia thời gian thành các khoảnh khắc Pomodoro: Mỗi khoảnh khắc Pomodoro thường kéo dài khoảng 25 phút Trong thời gian này, bạn tập trung hoàn toàn vào một công việc cụ thể mà không được gián đoạn
Ngắt nghỉ sau mỗi Pomodoro: Sau mỗi khoảnh làm việc, bạn nên nghỉ ngơi trong 5-10 phút Điều này giúp làm sảng khoái tinh thần và chuẩn bị cho Pomodoro tiếp theo
Sau mỗi bốn Pomodoro, nghỉ dài hơn: Sau khi đã hoàn thành bốn Pomodoro liên tục, nghỉ ngơi lâu hơn, từ 15-30 phút
Phương pháp Pomodoro giúp cải thiện sự tập trung và hiệu suất làm việc bằng cách phân chia thời gian thành các khoảnh khắc nhỏ và tập trung hoàn toàn vào công việc trong thời gian đó Đồng thời, nó cũng giúp giảm căng thẳng và mệt mỏi thông qua các khoảng thời gian nghỉ ngơi định kỳ
Nắm vững các nguyên tắc và quy trình của phương pháp Pomodoro Hiểu rõ lợi ích và cách áp dụng Pomodoro để tăng hiệu suất làm việc, từ đó xây dựng các quy trình của hệ thống cần triển khai
- Phương pháp thực nghiệm: lập trình, chạy thử website để kiểm tra kết quả.
Công nghệ sử dụng
1.3.1 Giới thiệu phương pháp pomodoro
Phương pháp Pomodoro là một kỹ thuật quản lý thời gian được phát triển bởi Francesco Cirillo vào cuối những năm 1980 Tên gọi "Pomodoro" xuất phát từ tiếng Ý, nghĩa là "cà chua," và được đặt tên như vậy vì Cirillo đã sử dụng một chiếc đồng hồ bếp hình quả cà chua khi phát triển phương pháp này
- Phương pháp Pomodoro hoạt động như sau:
1 Chọn một công việc cụ thể: Chọn một nhiệm vụ mà bạn muốn hoàn thành
2 Đặt hẹn giờ Pomodoro: Đặt hẹn giờ trong 25 phút Đây được gọi là một
3 Làm việc trong suốt Pomodoro: Tập trung hoàn toàn vào công việc trong 25 phút đó Không được gián đoạn
4 Nghỉ ngắn: Khi hẹn giờ kêu, bạn nghỉ ngắn khoảng 5 phút
5 Lặp lại: Sau bốn lần Pomodoro (khoảng 100 phút làm việc), bạn nên nghỉ dài hơn từ 15-30 phút để thư giãn
- Lợi ích của phương pháp Pomodoro:
1 Tăng cường sự tập trung: Kỹ thuật này khuyến khích bạn tập trung hoàn toàn vào công việc mà không bị gián đoạn, giúp tăng hiệu suất làm việc.
2 Quản lý thời gian tốt hơn: Pomodoro giúp bạn nhận biết rõ ràng về thời gian bạn dành cho mỗi nhiệm vụ, từ đó có thể điều chỉnh kế hoạch công việc một cách hợp lý hơn
3 Giảm căng thẳng và mệt mỏi: Việc chia nhỏ thời gian làm việc và nghỉ ngơi định kỳ giúp ngăn ngừa mệt mỏi và giữ tinh thần luôn tỉnh táo.
4 Khuyến khích hoàn thành công việc: Việc chia nhỏ nhiệm vụ thành các Pomodoro giúp bạn cảm thấy việc hoàn thành công việc dễ dàng và đạt được những thành tựu nhỏ trong suốt quá trình làm việc
- Ứng dụng Pomodoro trong quản lý công việc cá nhân:
1 Lập kế hoạch công việc: Bạn có thể chia nhỏ các nhiệm vụ lớn thành các Pomodoro nhỏ để dễ quản lý và thực hiện
2 Ưu tiên công việc: Dựa trên số lượng Pomodoro cần thiết cho mỗi nhiệm vụ, bạn có thể xác định được mức độ ưu tiên của từng công việc
3 Theo dõi tiến độ: Ghi chép lại số lượng Pomodoro mà bạn đã hoàn thành giúp bạn theo dõi tiến độ công việc và điều chỉnh lịch trình một cách hợp lý
Phương pháp Pomodoro là một công cụ hiệu quả để cải thiện khả năng quản lý công việc cá nhân, giúp bạn tập trung và nâng cao năng suất làm việc.
Mô hình MVC (Model-View-Controller) trong Laravel là một cách tổ chức mã nguồn của ứng dụng web để tách biệt logic dữ liệu, giao diện người dùng và logic điều khiển. Đây là một trong những mô hình phổ biến nhất trong phát triển phần mềm web với các ứng dụng PHP.
-Model (Mô hình): Model là thành phần chịu trách nhiệm về xử lý dữ liệu, bao gồm các hoạt động như truy vấn cơ sở dữ liệu, xác thực dữ liệu và thực hiện các logic kinh doanh Trong Laravel, các model thường tương ứng với các bảng trong cơ sở dữ liệu và được sử dụng để tương tác với dữ liệu trong các bảng đó thông qua các truy vấn Eloquent ORM
-View (Giao diện người dùng): View là phần giao diện người dùng mà người dùng thấy và tương tác Trong Laravel, các view thường là các file blade template, chứa mã HTML và các biểu thức blade (blade expressions) để hiển thị dữ liệu từ controller hoặc model
-Controller (Bộ điều khiển): Controller là nơi chứa logic điều khiển và chịu trách nhiệm nhận các yêu cầu từ người dùng thông qua các route và sau đó quyết định cách xử lý yêu cầu đó Controller sẽ tương tác với model để lấy hoặc lưu trữ dữ liệu và trả về view tương ứng cho người dùng.
Trong Laravel, các thành phần này được tổ chức theo cấu trúc mặc định của framework, với các model được đặt trong thư mục app/Models, các view được đặt trong thư mục resources/views, và các controller được đặt trong thư mục app/Http/Controllers
Cấu trúc thư mục và các tập tin này giúp dễ dàng quản lý mã nguồn và làm cho việc phát triển ứng dụng Laravel trở nên cấu trúc hơn và dễ bảo trì hơn.
Dưới đây là một số ưu và nhược điểm của việc sử dụng mô hình MVC trong Laravel:
1 Tổ chức mã nguồn rõ ràng: Mô hình MVC tách biệt logic dữ liệu, giao diện và điều khiển, giúp tổ chức mã nguồn trở nên rõ ràng và dễ bảo trì
2 Tính tái sử dụng cao: Các thành phần của mô hình MVC có thể được tái sử dụng dễ dàng Ví dụ, một model có thể được sử dụng trong nhiều controller hoặc một view có thể được sử dụng trong nhiều controller
3 Phân chia trách nhiệm: Mô hình này phân chia các trách nhiệm của ứng dụng một cách rõ ràng, giúp làm cho mã nguồn dễ đọc và dễ hiểu hơn
Kết quả đạt được (dự kiến)
Hoàn thành báo cáo tốt nghiệp và sản phẩm phần mềm đúng thời hạn.
PHÂN TÍCH THIẾT KẾ
P HÂN TÍCH BIỂU ĐỒ USECASE TỔNG QUÁT CỦA HỆ THỐNG
Hệ thống có 2 tác nhân chính là khách vãng lai và khách hàng
-Khách vãng lai là người truy cập vào hệ thống nhưng chưa đăng nhập Sau khi đăng nhập thành công thì sẽ trở thành khách hàng.
-Khách hàng khác với khách vãng lai ở chỗ có thể thêm task, quản lý tasks theo ngày, tuần, tháng.
-Còn khách vãng lai chỉ có thể đăng ký và dùng podomoro
2.1 0 Biểu đồ tổng quát usecase tổng quát
2.1 0 biểu đồ phân rã quản lý tasks
2.1 0 biểu đồ phân rã thống kê tasks
2.1 0 biểu đồ phân rã quản lý tài khoản
2.1 0 biểu đồ phân rã quản lý danh mục tasks
Đ ẶC TẢ USECASE
Đặc tả usecase “đăng ký”
Mô tả Usecase cho phép khách hàng đăng ký tài khoản tại website
Actor Khách vãng lai Điều kiện kích hoạt Người dùng chọn chức năng đăng ký từ hệ thống
Tiền điều kiện Người dùng chưa có tài khoản trên hệ thống
Hậu điều kiện Đăng ký thành công
STT Tác nhân Hành động
1 Khách hàng Chọn chức năng đăng ký
2 Hệ thống Hiển thị form đăng ký
3 Khách hàng Nhập thông tin đăng ký
4 Khách hàng Nhấn nút đăng ký
5 Hệ thống Kiểm tra tính hợp lệ và đầy đủ của các trường khách hàng nhập
6 Hệ thống Kiểm tra email, tên đăng nhập tồn tại hay không
7 Hệ thống Chuyển đến trang chủ
Luồng sự kiện thay thế STT Tác nhân Hành động
5.1 Hệ thống Thông báo lỗi: “The email field must be a valid email address.” Sai kiểu, khác với kiểu email
5.2 Hệ thống Thông báo lỗi: “The name field must be at least 3 characters.” Nếu tên ít hơn 3 ký tự
5.3 Hệ thống Thông báo lỗi: “The name field must not be greater than 255 characters Nếu tên nhiều hơn
5.4 Hệ thống Thông báo lỗi: “The email field must be at least 3 characters.” Nếu email ít hơn 3 ký tự
5.5 Hệ thống Thông báo lỗi: “The email field must not be greater than 255 characters Nếu email nhiều hơn 255 ký tự
5.6 Hệ thống Thông báo lỗi: “The password field must be at least 8 characters.” Nếu password ít hơn 8 ký tự
5.7 Hệ thống Thông báo lỗi: “The password field must not be greater than
255 characters Nếu password nhiều hơn 255 ký tự
5.8 Hệ thống Thông báo lỗi: “The name field is required.” Nếu tên để trống
5.9 Hệ thống Thông báo lỗi: “The email field is required.” Nếu email để trống
5.10 Hệ thống Thông báo lỗi: “The password field is required.” Nếu password để trống
6a Hệ thống Thông báo lỗi: “The email has already been taken.” nếu email này đã được đăng ký tài khoản
2.2 0 đặc tả usecase đăng ký
Mô tả Usecase cho phép người dùng đăng nhập vào hệ thống để có thể quản lý tasks của khách hàng
Actor Người dùng Điều kiện kích hoạt Người dùng chọn chức năng đăng nhập từ hệ thống
Tiền điều kiện Người dùng đã đăng ký tài khoản
Hậu điều kiện Đăng nhập thành công
STT Tác nhân Hành động
1 Khách hàng Chọn chức năng đăng nhập
2 Hệ thống Hiển thị form đăng nhập
3 Khách hàng Nhập tên email và mật khẩu
4 Khách hàng Nhấn nút đăng nhập
5 Hệ thống Kiểm tra tính hợp lệ và đầy đủ của các trường khách hàng
6 Hệ thống Kiểm tra tên email và mật khẩu tồn tại và trùng nhau hay không
7 Hệ thống Chuyển đến trang chủ
Luồng sự kiện thay thế STT Tác nhân Hành động
5.1 Hệ thống Thông báo lỗi: “The email field is required.” Nếu email để trống
5.2 Hệ thống Thông báo lỗi: “The password field is required.” Nếu password để trống
5.3 Hệ thống Thông báo lỗi: “The email field must be at least 3 characters.” Nếu tên ít hơn 3 ký tự
5.4 Hệ thống Thông báo lỗi: “The email field must not be greater than 255 characters Nếu tên nhiều hơn
5.5 Hệ thống Thông báo lỗi: “The password field must be at least 8 characters.” Nếu tên ít hơn 8 ký tự
5.6 Hệ thống Thông báo lỗi: “The password field must not be greater than
255 characters Nếu tên nhiều hơn 255 ký tự
6.1 Hệ thống Thông báo lỗi “The provided credentials do not match our records.” Nếu email và mật khẩu không trùng trong dữ liệu
2.2 0 Đặc tả usecase “đăng nhập”
Mô tả Usecase cho phép người dùng thêm task
Actor Người dùng Điều kiện kích hoạt Người dùng chọn thêm task
Tiền điều kiện Người dùng phải đăng nhập và nhập tên task , số podomoro, due_date
Hậu điều kiện Người dùng tạo task thành công
STT Tác nhân Hành động
1 Người dùng nhập tên task, số podomoro, due_date.
2 Người dùng Nhấn nút icon tạo task hoặc nhấn Enter
3 Hệ thống Kiểm tra thông tin bao gồm tên task và due_date
4 Hệ thống Hiển thị tasks và thông tin task vừa thêm ra màn hình trang chủ
Luồng sự kiện thay thế
STT Tác nhân Hành động
3.1 Hệ thống Thông báo lỗi: “The select date field must be a date after or equal to today.” Nếu due date là những ngày trước ngày hôm nay
3.2 Hệ thống Thông báo lỗi: “The taskname field is required.” Nếu task name để trống
3.3 Hệ thống Thông báo lỗi: “The taskname field must not be greater than
255 characters.” Nếu task name nhiều hơn 255 ký tự
2.2 0 Đặc tả usercase “Thêm task”
Mô tả Usecase cho phép người dùng sửa task
Actor Người dùng Điều kiện kích hoạt Người dùng chọn chức năng sửa task
Tiền điều kiện Người dùng phải đăng nhập và đã có task cần sửa
Hậu điều kiện Người dùng sửa task thành công
STT Tác nhân Hành động
1 Người dùng Nhấn chức năng có icon để sửa task
2 Hệ Thống Chuyển sang from sửa task, hiển thị những thông tin của task cũ
3 Người dùng Nhập, sửa thông tin cũ bao gồm taskname, số podomoro, duedate, ấn icon nút Edit task
4 Hệ thống Kiểm tra thông tin bao gồm tên task và due_date
5 Hệ thống Quay lại trang Home và hiển thị task vừa sửa
Luồng sự kiện thay thế
STT Tác nhân Hành động
4.1 Hệ thống Thông báo lỗi: “The select date field must be a date after or equal to today.” Nếu due date là những ngày trước ngày hôm nay
4.2 Hệ thống Thông báo lỗi: “The taskname field is required.” Nếu task name để trống
4.3 Hệ thống Thông báo lỗi: “The taskname field must not be greater than
255 characters.” Nếu task name nhiều hơn 255 ký tự
2.2 0 Đặc tả usecase “sửa task”
Tên usecase Hoàn thành task
Mô tả Usecase cho phép người dùng hoàn thành task
Actor Người dùng Điều kiện kích hoạt Người dùng chọn checkbox hoàn thành task
Tiền điều kiện Người dùng phải đăng nhập và đã có task cần hoàn thành
Hậu điều kiện Người dùng hoàn thành task thành công
STT Tác nhân Hành động
1 Người dùng Nhấn chức năng có checkbox hoàn thành task
2 Hệ Thống Hiển thị task đã hoàn thành
Luồng sự kiện thay thế
2.2 0 Đặc tả usecase “Hoàn thành task”
Mô tả Usecase cho phép người dùng xóa task
Actor Người dùng Điều kiện kích hoạt Người dùng chọn icon thùng rác xóa task
Tiền điều kiện Người dùng phải đăng nhập và task đó đã hoàn thành
Hậu điều kiện Người dùng xóa task thành công
STT Tác nhân Hành động
1 Người dùng Nhấn chức năng có icon thùng rác xóa task
2 Hệ Thống Cập nhật trong hệ thống, xóa mềm mềm và hiển thị lại trang chủ
Luồng sự kiện thay thế
2.2 0 Đặc tả usecase “xóa task”
Tên usecase hiển thị thông tin thống kê
Mô tả Usecase cho phép người dùng xem thống kê trong tháng
Actor Người dùng Điều kiện kích hoạt Người dùng nhấn icon chart để xem thống kê
Tiền điều kiện Người dùng phải đăng nhập
Hậu điều kiện Người dùng thành công vào trang thống kê
STT Tác nhân Hành động
1 Người dùng Nhấn chức năng có icon xem thông tin
2 Hệ Thống Hiển thị thông tin lên màn hình
Luồng sự kiện thay thế
2.2 0 Đặc tả usecase “hiển thị thông tin thống kê”
Mô tả Usecase cho phép người dùng đăng xuất
Actor Người dùng Điều kiện kích hoạt Người dùng chọn nút logout
Tiền điều kiện Người dùng phải đăng nhập
Hậu điều kiện Người dùng đăng xuất thành công
STT Tác nhân Hành động
1 Người dùng Chọn vào thông tin người dùng
2 Hệ Thống Hiển thị thông tin người dùng và nút logout
3 Người dùng Nhấn vào nút đăng xuất
4 Hệ thống Xử lý và trở về trang cho khách vãng lai
Luồng sự kiện thay thế
2.2 0 Đặc tả usecase “Đăng xuất”
Tên usecase Đổi tên tài khoản
Mô tả Usecase cho phép người dùng đổi tên tài khoản
Actor Người dùng Điều kiện kích hoạt Người dùng chọn nút Edit
Tiền điều kiện Người dùng phải đăng nhập
Hậu điều kiện Người dùng đổi tên thành công
STT Tác nhân Hành động
1 Người dùng Chọn vào thông tin người dùng
2 Hệ Thống Hiển thị thông tin người dùng và nút Edit
3 Người dùng Nhập thông tin cần chỉnh sửa
4 Người dùng Nhấn nút Edit
5 Hệ thống Kiểm tra tính hợp lệ và đầy đủ của các trường khách hàng nhập
6 Hệ thống Hiện ra thông báo và trở về trang thông tin người dùng
Luồng sự kiện thay thế
5.1 Hệ thống Thông báo lỗi: “The name field must be at least 3 characters.” Nếu tên ít hơn 3 ký tự
5.2 Hệ thống Thông báo lỗi: “The name field must not be greater than 255 characters Nếu tên nhiều hơn
5.3 Hệ thống Thông báo lỗi: “The name field is required.” Nếu tên để trống
2.2 0 Đặc tả usecase “Đổi tên tài khoản”
Tên usecase Đổi mật khẩu
Mô tả Usecase cho phép người dùng đổi mật khẩu
Actor Người dùng Điều kiện kích hoạt Người dùng chọn nút đổi mật khẩu
Tiền điều kiện Người dùng phải đăng nhập
Hậu điều kiện Người dùng mật khẩu thành công
STT Tác nhân Hành động
1 Người dùng Chọn vào thông tin người dùng
2 Hệ Thống Hiển thị thông tin người dùng và nút changer password
3 Người dùng Chọn nút changer password
4 Hệ thống Hiển thị form đổi mật khẩu
5 Người dùng Nhập mật khẩu cũ, mật khẩu mới , xác nhận mật khẩu mới
6 Hệ thống Kiểm tra tính hợp lệ và đầy đủ của các trường khách hàng nhập
7 Hệ thống Hiện ra thông báo và trở về trang thông tin người dùng
Luồng sự kiện thay thế
6.1 Hệ thống Thông báo lỗi: “The Password field must be at least 8 characters.” Nếu password ít hơn 8 ký tự
6.2 Hệ thống Thông báo lỗi: “The Password field must not be greater than
255 characters Nếu password nhiều hơn 255 ký tự
6.3 Hệ thống Thông báo lỗi: “The Password field is required.” Nếu password để trống
2.2 0 Đặc tả usecase “Đổi Mật khẩu”
Tên usecase Hiển thị tasks ngày hôm nay
Mô tả Usecase cho phép người dùng hiển thị tất cả các tasks của ngày hôm nay
Actor Người dùng Điều kiện kích hoạt Người dùng chọn nút Today
Tiền điều kiện Người dùng phải đăng nhập
Hậu điều kiện Người dùng chuyển sang trang hiển thị task trong ngày thành công
STT Tác nhân Hành động
1 Người dùng Chọn vào chức năng today
2 Hệ Thống Hiển thị thông tin các tasks ngày hôm nay
Luồng sự kiện thay thế
2.2 0 Đặc tả usecase “Hiển thị tasks ngày hôm nay”
Tên usecase Hiển thị tasks trong ngày mai
Mô tả Usecase cho phép người dùng hiển thị tất cả các tasks trong ngày mai
Actor Người dùng Điều kiện kích hoạt Người dùng chọn nút Tomorrow
Tiền điều kiện Người dùng phải đăng nhập
Hậu điều kiện Người dùng chuyển sang trang hiển thị task trong ngày mai
STT Tác nhân Hành động
1 Người dùng Chọn vào chức năng tomorrow
2 Hệ Thống Hiển thị thông tin các tasks ngày mai
Luồng sự kiện thay thế
2.2 0 Đặc tả usecase “Hiển thị tasks trong ngày mai”
Tên usecase Hiển thị tasks trong tuần này
Mô tả Usecase cho phép người dùng hiển thị tất cả các tasks trong tuần này
Actor Người dùng Điều kiện kích hoạt Người dùng chọn nút This Week
Tiền điều kiện Người dùng phải đăng nhập
Hậu điều kiện Người dùng chuyển sang trang hiển thị task trong tuần
STT Tác nhân Hành động
1 Người dùng Chọn vào chức năng ThisWeek
2 Hệ Thống Hiển thị thông tin các tasks tuần
Luồng sự kiện thay Không có thế
2.2 0 Đặc tả usecase “Hiển thị tasks trong tuần này”
Tên usecase Hiển thị tasks trong tháng này
Mô tả Usecase cho phép người dùng hiển thị tất cả các tasks trong tháng này
Actor Người dùng Điều kiện kích hoạt Người dùng chọn nút Planned
Tiền điều kiện Người dùng phải đăng nhập
Hậu điều kiện Người dùng chuyển sang trang hiển thị task trong tháng
STT Tác nhân Hành động
1 Người dùng Chọn vào chức năng Planned
2 Hệ Thống Hiển thị thông tin các tasks tháng
Luồng sự kiện thay thế
2.2 0 Đặc tả usecase “Hiển thị tasks trong tháng”
Tên usecase Hiển thị tasks đã hoàn thành
Mô tả Usecase cho phép người dùng hiển thị tất cả các tasks đã hoàn thành
Actor Người dùng Điều kiện kích hoạt Người dùng chọn nút Completed
Tiền điều kiện Người dùng phải đăng nhập
Hậu điều kiện Người dùng chuyển sang trang hiển thị task đã hoàn thành
STT Tác nhân Hành động
1 Người dùng Chọn vào chức năng
2 Hệ Thống Hiển thị thông tin các tasks đã hoàn thành
Luồng sự kiện thay thế
2.2 0 Đặc tả usecase “Hiển thị tasks đã hoàn thành”
Tên usecase Hiển thị tasks theo folder
Mô tả Usecase cho phép người dùng hiển thị tất cả các tasks trong folder
Actor Người dùng Điều kiện kích hoạt Người dùng chọn folder
Tiền điều kiện Người dùng phải đăng nhập, có đã tạo folder
Hậu điều kiện Người dùng chuyển sang trang hiển thị folder
STT Tác nhân Hành động
1 Người dùng Chọn vào chức năng Folder
2 Hệ Thống Hiển thị thông tin các tasks trong folder
Luồng sự kiện thay thế
2.2 0 Đặc tả usecase “Hiển thị tasks theo folder”
Mô tả Usecase cho phép người tạo folder
Actor Người dùng Điều kiện kích hoạt Người dùng chọn icon thêm folder
Tiền điều kiện Người dùng phải đăng nhập
Hậu điều kiện Người dùng thêm folder thành công
STT Tác nhân Hành động
1 Người dùng Chọn vào chức năng thêm
2 Hệ Thống Hiển thị from thêm folder
3 Người dùng Điền đầy đủ thông tin folder hệ thống cung cấp
4 Hệ thống Kiểm tra request, để validate
5 Hệ thống Trả về trang chủ, hiển thị thông tin folder mới tạo
Luồng sự kiện thay thế
4.1 Hệ thống Thông báo lỗi: “The name field must be at least 3 characters.” Nếu name folder ít hơn 3 ký tự
4.2 Hệ thống Thông báo lỗi: “The name field must not be greater than 255 characters Nếu name folder nhiều hơn 255 ký tự
4.3 Hệ thống Thông báo lỗi: “The name field is required.” Nếu name folder để trống
2.2 0 Đặc tả usecase “Tạo Folder”
Mô tả Usecase cho phép người tạo thêm project
Actor Người dùng Điều kiện kích hoạt Người dùng chọn icon thêm project
Tiền điều kiện Người dùng phải đăng nhập
Hậu điều kiện Người dùng thêm project thành công
STT Tác nhân Hành động
1 Người dùng Chọn vào chức năng thêm
2 Hệ Thống Hiển thị from thêm project
3 Người dùng Điền đầy đủ thông tin project hệ thống cung cấp
4 Hệ thống Kiểm tra request
5 Hệ thống Trả về trang chủ, hiển thị thông tin project mới tạo
Luồng sự kiện thay thế
4.1 Hệ thống Thông báo lỗi: “The name field must be at least 3 characters.” Nếu name project ít hơn 3 ký tự
4.2 Hệ thống Thông báo lỗi: “The name field must not be greater than 255 characters Nếu name project nhiều hơn 255 ký tự
4.3 Hệ thống Thông báo lỗi: “The name field is required.” Nếu name project để trống
2.2 0 Đặc tả usecase “Thêm project”
Mô tả Usecase cho phép người tạo thêm tag
Actor Người dùng Điều kiện kích hoạt Người dùng chọn icon thêm tag
Tiền điều kiện Người dùng phải đăng nhập
Hậu điều kiện Người dùng thêm tag thành công
STT Tác nhân Hành động
1 Người dùng Chọn vào chức năng thêm tag
2 Hệ Thống Hiển thị from thêm tag
3 Người dùng Điền đầy đủ thông tin tag hệ thống cung cấp
4 Hệ thống Kiểm tra request
4 Hệ thống Trả về trang chủ, hiển thị thông tin tag mới tạo
Luồng sự kiện thay thế
4.1 Hệ thống Thông báo lỗi: “The name field must be at least 3 characters.” Nếu name tag ít hơn 3 ký tự
4.2 Hệ thống Thông báo lỗi: “The name field must not be greater than 255 characters Nếu name tag nhiều hơn 255 ký tự
4.3 Hệ thống Thông báo lỗi: “The name field is required.” Nếu name tag để trống
2.2 0 Đặc tả usecase “Thêm tag”
T RÌNH BÀY CHỨC NĂNG
Chuyển các dữ liệu cho người dùng và biến đổi các hành động của người dùng thành các sự kiện vào của hệ thống.
- Khách vãng lai: gồm các chức năng
- Khách hàng: gồm các chức năng
+ Đăng nhập+ Đăng xuất+ quản lý tasks+ xem thống kê+ sử dụng podomoro+ quản lý tài khoản+ quản lý danh mục tasks
C Ơ SỞ DỮ LIỆU M Y SQL
2.4 3 Cơ sở dữ liệu tổng quát
Thuộc tính Kiểu dữ liệu Độ dài Chú thích
Id BIGINT (not null) Mã task
Name VARCHAR (not null) 255 Tên task
Quantity_podomor o INT (not null) 5 Số podomoro
Due_date_at Date (not null) Thời gian dealine
Created_at TIMESTAMP Thời gian tạo task
Updated_at TIMESTAMP Thời gian sửa task
Deleted_at TIMESTAMP Thời gian xóa task
User_id BIGINT (not null) Mã người dùng
Folder_id BIGINT Mã folder
Project_id BIGINT Mã project
2.4 3 Cơ sở dữ liệu bảng tasks
Thuộc tính Kiểu dữ liệu Độ dài Chú thích
Id BIGINT (not null) Mã người dùng
Name VARCHAR (not null) 255 Tên người dùng
Password VARCHAR (not null) 255 Password người dùng
Email VARCHAR (not null) 255 Email người dùng
Created_at TIMESTAMP Thời gian tạo
Updated_at TIMESTAMP Thời gian sửa
2.4 3 Cơ sở dữ liệu bảng Users
Thuộc tính Kiểu dữ liệu Độ dài Chú thích
Id BIGINT (not null) Mã folder
Name VARCHAR (not null) 255 Tên folder
Password VARCHAR (not null) 255 Password người dùng
User_id BIGINT (not null) Mã người dùng
Created_at TIMESTAMP Thời gian tạo
Updated_at TIMESTAMP Thời gian sửa
Deleted_at TIMESTAMP Thời gian xóa
2.4 3 Cơ sở dữ liệu bảng Folders
Thuộc tính Kiểu dữ liệu Độ dài Chú thích
Id BIGINT (not null) Mã project
Name VARCHAR (not null) 255 Tên project
User_id BIGINT (not null) Mã người dùng
Folder_id BIGINT Mã folder
Created_at TIMESTAMP Thời gian tạo
Updated_at TIMESTAMP Thời gian sửa
Deleted_at TIMESTAMP Thời gian xóa
2.4 3 Cơ sở dữ liệu bảng projects
Thuộc tính Kiểu dữ liệu Độ dài Chú thích
Id BIGINT (not null) Mã tag
Name VARCHAR (not null) 255 Tên tag
User_id BIGINT (not null) Mã người dùng
Created_at TIMESTAMP Thời gian tạo
Updated_at TIMESTAMP Thời gian sửa
Deleted_at TIMESTAMP Thời gian xóa
2.4 3 Cơ sở dữ liệu bảng tags
Thuộc tính Kiểu dữ liệu Độ dài Chú thích
Id BIGINT (not null) Mã tag
Task_id BIGINT (not null) Mã task
Tag_id BIGINT (not null) Mã tag
Created_at TIMESTAMP Thời gian tạo
Updated_at TIMESTAMP Thời gian sửa
Deleted_at TIMESTAMP Thời gian xóa
2.4 3 Cơ sở dữ liệu bảng tags_tasks
XÂY DỰNG ỨNG DỤNG
G IAO DIỆN KHÁCH VÃNG LAI
Trang giao diện của khách vãng lai chưa đăng nhập thì sẽ không vào được trang Home Trang này có 2 chức năng chính đó là có 2 nút đăng ký và đăng nhập khi click vào đăng nhập, đăng kí sẽ chuyển sang trang đăng nhập và đăng ký
3.1 0 Giao diện khách vãng lai đăng nhập, đăng ký
Giao diện của trang đăng nhập, khách vãng lai phải nhập tên đăng nhập bằng gmail và password, nhấn nút đăng nhập nếu đúng sẽ truy cập được trang home, không sẽ hiển thị thông báo thông tin nhập sai yêu cầu nhập lại
3.1 0 Giao diện khách vãng lai đăng nhập
Chức năng đăng ký sẽ yêu cầu khách vãng lai nhập thông tin và đăng ký nếu thành công sẽ truy cập được trang home
3.1 0 Giao diện khách vãng lai đăng ký
G IAO DIỆN NGƯỜI DÙNG ( ĐÃ ĐĂNG NHẬP )
Khi đăng nhập, hoặc đăng ký thành công sẽ chuyển đến trang Home trang Home sẽ có những chức năng thêm task theo ngày, và hiển thị tất cả những tasks
Trang Today sẽ hiển thị những tasks trong ngày hôm nay, và thêm task vào chính ngày hôm nay và chọn task theo project
Trang Tomorrow sẽ hiển thị những tasks trong ngày mai, và thêm task vào chính ngày mai và chọn task theo project
Trang ThisWeek sẽ hiển thị những tasks trong tuần sau, và thêm task, chọn task theo project
Trang Planned sẽ hiển thị những tasks trong tháng, và thêm task vào đầu tuần sau, chọn task theo project
Trang Completed sẽ hiển thị những tasks đã hoàn thành, xóa task
Trang Folder sẽ hiển thị những tasks có trong folder, và thêm task, chọn task theo project có trong folder và dealine
Trang project sẽ hiển thị những tasks có trong project, và thêm task, chọn task theo project ,dealine.
Modal sửa task sẽ hiển thị những thông tin cũ của task, nếu chỉnh sửa thành công sẽ cập nhật request và chuyển đến trang home
Modal sửa folder sẽ hiển thị những thông tin cũ của folder, chỉnh sửa thành công sẽ cập nhật request và chuyển về trang home
Modal thêm folder yêu cầu nhập tên của folder, nếu thành công sẽ chuyển đến trang home
Modal thêm project sẽ yêu cầu những thông tin cần nhập của project, nếu có folder thì chọn folder còn không sẽ để không có folder, thành công sẽ chuyển đến trang home
Modal thêm tag sẽ hiển thị nhập tên tag, thành công sẽ chuyển đến trang home
Giao diện chỉnh sửa người dùng sẽ hiển thị những thông tin của người dùng và chỉnh sửa tên người dùng thành công sẽ cập nhật thông tin và chuyển đến trang home
3.1 0 Giao diện sửa người dùng
Giao diện podomoro sẽ hiển thị thông tin của task có bao nhiêu podomoro, nếu nhấn start đồng hồ sẽ chạy, nếu chạy hết 25p(1 podomoro) sẽ chuyển sang thời gian nghỉ, lặp lại hết số podomoro sẽ hoàn thành task
3.1 0 Giao diện chưa bắt đầu podomoro
3.1 0 Giao diện đã bắt đầu podomoro
3.1 0 Giao diện tạm dừng podomoro
Giao diện khi chạy hết 25 phút (1 podomoro) sẽ hiển thị thời gian nghỉ 5 phút
Thông báo nếu đến thời gian nghỉ
G IAO DIỆN RESPONSIVE TRÊN MOBILE
3.3.1 Giao diện trang home và today (mobile)
3.3.2 Giao diện trang planned và thisweek (mobile)
3.3.1 Giao diện trang task completed và folder (mobile)
3.3.1 Giao diện modal edit (mobile)