Tải bản đầy đủ (.pdf) (32 trang)

do an cuoi ki hk1 2021 2022

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.53 MB, 32 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

<b>503073 – LẬP TRÌNH WEB VÀ ỨNG DỤNGĐỒ ÁN CUỐI KÌ – HỌC K I/2021-2022 Ỳ </b>

<i><small>Chỉnh sửa lần cuối vào 11:00 ngày 20/10/2021</small></i>

<b>I. GIỚI THIỆU </b>

Sinh viên được yêu cầu v n d ng các ki n thậ ụ ế ức đã h c đọ ể xây d ng mự ột trang web phục v cho công vi c nụ ệ ội bộ của một cơng ty.

<b>Trang web có 3 đối tượng người dùng gồm: giám đốc, trưởng phòng và nhân viên bình thường. Vì đây là trang web hoạt động nội </b>

bộ nên để sử dụng bất k chức năng nào c a hỳ ủ ệ thống thì người dùng b t buắ ộc phải đăng nh p.ậ Ngoài ra nhân viên cũng không thể tự tạo tài kho n mà tài kho n ả ả ch được tỉ ạo bởi giám đốc. Khi một tài khoản vừa đư c tợ ạo ra thì mật kh u đăng nh p cũng chính là ẩ ậusername của tài khoản đó. Ngay sau khi thực hiện đăng nh p l n đ u tiên, nhân viên sậ ầ ầ ẽ được chuyển hư ng đ n màn hình nh p ớ ế ậmật khẩu mới (không c n nhập lại mậầ t khẩu cũ trong các tình hu ng này)ố . Nếu không thực hi n đổệ i m t khậ ẩu trong lần đăng nh p ậđầu tiên thì nhân viên sẽ không truy c p đưậ ợc bất kỳ chức năng nào khác ngoài việc đăng xuất.

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

Trang 1/16

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

Nhân viên không thể tự khôi phục (reset) mật khẩu khi lỡ quên, ch có giám đ c mỉ ố ới có th resetể mật khẩu của các tài kho n v giá ả ề trị mặc định (cần hi n thể ị confirm dialog trước khi th c hiự ện reset). T sau khi mậừ t kh u được reset vẩ ề mặc định thì nhân viên lại tiếp tục bị yêu cầu đổi m t khậ ẩu trong l n đ u tiên đăng nhầ ầ ập trước khi có thể truy cập vào các dịch vụ khác.

Sau khi đăng nhập vào hệ thống thì người dùng chỉ nhìn thấy được các ch c năng trongứ ph m vi quy n h n cạ ề ạ ủa mình. N u người ếdùng cố tình gõ địa chỉ url để truy cập vào chức năng khơng dành cho mình thì cũng khơng thể truy cập được.

Tồn hệ thống ch có mỉ ột ngư i duy nh t đóng vai trị làm ờ ấ giám đốc (hay có thể hiểu là qu n trả ị viên/admin), trong giao di n qu n ệ ảlý của người này sẽ có ch c năng quứ ản lý tài kho n cả ủa cácnhân viên. Các chức năng c a giám đ c liên quan đủ ố ến qu n lý tài kho n ả ảcủa nhân viên gồm có:

- Xem danh sách nhân viên của tồn cơng ty: chỉ hiển th tóm tị ắt mộ ố t s thông tin cần thiết.- Khi chọn vào m t nhân viên cộ ụ thể xem được : tồn b thơng tin chi ti t cộ ế ủa nhân viên đó.- Reset mật khẩu cho một nhân viên về lại giá trị mặc định.

- Thêm một nhân viên mới: quản tr viên sị ẽ nh p họ ậ tên đầy đủ, tên người dùng, chọn phòng ban mà nhân viên thu c về. Mỗộ i nhân viên chỉ thuộc về một phòng ban duy nh t và thông tin nàyấ sẽ không bao giờ thay đổi.

<b>1.3 Quản lý phòng ban</b>

Trong giao diện qu n lý cả ủa giám đ c có các ch c năng quố ứ ản lý phòng ban bao gồm:

- Thêm một phịng ban mới: cần nh p các thơng tin như tên phịng ban, mơ tậ ả v ố à s phịng của phịng ban.- Chỉnh sửa thơng tin của các phịng ban đang có.

- Bổ nhiệm một nhân viên để làm trưởng phòng.

o Nếu như phịng ban đó đã có trư ng phịng thì giám đở ốc có thể đổi ngư i khác làm trườ ởng phịng.

o Một ngư i dùng khơng thờ ể đồng thời làm trưởng của hai phòng ban, giám đ c khơng thể ố làm trưởng phịng. o Nếu một nhân viên được chọn hoặc bị tước bỏ chức vụ trưởng phịng thì trong trang thơng tin chi tiết của người đó sẽ

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

Trang 2/16 hiển thị (hoặc mất đi) chức vụ trưởng phòng tương ứ . ng

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

<b>1.4 Quản lý tài kho n cá nhân ả</b>

Một nhân viên b t kấ ỳ sau khi đã đăng nhập có th vào xem đưể ợc thông tin cá nhân của mình. Trong trang cá nhân c a mình, nhân ủviên chỉ có thể thay đ i đưổ ợc ảnh đại diện và đổi mật khẩu (trong tình huống này nhân viên cần nh p mậ ật khẩu cũ và nh p mậ ật khẩu mới hai lần). Cịn các thơng tin như mã nhân viên, tên tài khoản, h và tên, lọ oại nhân viên (chức v , tên phịng ban ụ) thì chỉ có thể xem ch không tứ ự thay đ i đưổ ợc.

Chức năng này có thể được xem là chức năng trọng tâm của trang web. Trưởng phòng là ngư i tạờ o ra các nhi m vụ (task) và chọn ệnhân viên phụ trách thực hiện task. Trư ng phòng có trách nhiở ệm theo dõi tiến độ thực hiện task cũng như đánh giá mức độ hoàn thành task của các nhân viên. Nhân viên nh n task đưậ ợc giao t trưởng phòng, thừ ực hiện task rồi báo cáo k t quế ả lại cho trưởng phòng trong thời gian được chỉ định.

Trưởng phòng có thể tạo ra nhi u task khác nhau và mề ỗi task chỉ được giao cho duy nhất m t nhân viên trong ộ <b>phịng ban của mình </b>

để thực hiện task đó. S lượng task mà mố ột trưởng phịng có thể tạo là khơng giới hạn, số lượng task mà một nhân viên c a phòng ủban đó b giao cho cũng khơng giị ới hạn, một nhân viên có thể được giao nhi u tề ask cùng lúc. Khi tạo ra một task m i thì trướ ởng phịng c n nh p các thông tin như: tiêu đầ ậ ề, mô tả chi ti t của task (để ế giúp cho người đư c giao hiểợ u được mình cần phải làm gì), thời gian deadline và các tập tin đính kèm liên quan nếu c n thiầ ết.

Như vậy, khi truy c p vào chức năng qu n lý task thì đ u tiên ậ ả ầ trưởng phòng sẽ th y được d nh sách các task đã t o và các thông tin ấ a ạcơ bản liên quan như tên task, tên người được giao, trạng thái thực hiện... Khi nh n vào xem chiấ tiết thì trưởng phịng sẽ xem được thơng tin cụ thể hơn về task đó cũng q trình/tiến độ thực hiện task này.

Có thể hình dung một task như m t email conversation trong Gmail. Khi đưộ ợc giao task, nếu nhân viên làm tốt thì s được trưởng ẽ phịng duyệt ngay trong l n n p đ u tiên và task sầ ộ ầ ẽ được hiển thị l đã à hoàn thành (tương t như mự ột email được gửi đi và nhậ ại n lduy nhất m t lộ ần trả lời). Tuy nhiên cũng có thể có trường h p khi nhân viên gợ ửi k t quế ả báo cáo khiến trư ng phịng khơng hài lịng ở

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

Trang 3/16 thì trưởng phịng hồn tồn có thể trả lạ ể i đ nhân viên ti p tế ục hoàn chỉnh cơng việc. Q trình này có thể lặp đi l p lặ ại nhiề ầu l n,

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

tương tự như một email conversation được gửi đi và g i l i nhiử ạ ề ầu l n giữa hai người dùng, mỗ ần như v y có thi l ậ ể có tập tin đính kèm hoặc khơng, tùy tr ng p ịng quyưở h ết định.

Một task sẽ có th có các trạng thái như sau:ể

<b>- New: Khi task vừa đư c t</b>ợ ạo và giao cho một nhân viên cụ thể thì ở phía nhân viên sẽ nhìn th y task này trong danh sách dưấ ới dạng task mới, tương tự như một email mới chưa đ c ọ trong Gmail. Nhân viên phải xác nhận task trước khi bắt đầu làm.

<b>- In progress: Khi nhân viên thấy có task m i thì click vào xem chi ti</b>ớ ết mơ tả về task xong thì nhân viên sẽ nhấn nút ‘Start’ để xác nh n bậ ắt đầu thực hiện task này. Lúc đó trạng thái task sẽ được chuyển thành <i>in progress. Khi task đã được nhân viên </i>

xác nh n thậ ực hiệ ồi thì phía trưởn r ng phịng s khơng đi u ch nh hay h y task đưẽ ề ỉ ủ ợc nữa.

<b>- Canceled: </b>Khi trư ng phòng t o và giao task rở ạ ồi nhưng nhân viên chưa ‘Start’ task và trưởng phịng đổ , thấy khơng c n i ý ầthực hiện task này n a thì trưởng phịng có thữ ể hủy task. Nếu task bị hủy thì nó sẽ mang trạng thái <i>canceled và nhân viên sẽ </i>

khơng nhìn th y task này trong danh sách cấ ủa họ, phía trưởng phịng thì khơng thay đổi gì với task này được nữa, khi đó nó được xem như là một task đã t thkế úc.

<b>- Waiting: </b>Nhân viên sau khi đã hoàn thành cơng việc c a task thì sủ ẽ submit kết quả để báo cáo cho trư ng phòng duyở ệt. Khi ‘submit’ kết qu thì nhân viên cả ần nh p nậ ội dung tin nhắn và ch n t p tin đính kèm (tùy ch n) đọ ậ ọ ể chuyển cho trư ng phòng. ởKhái niệm ‘submit’ đây có thở ể hi u tương t như cách chúng ta vào để ự ọc một email r i trồ ả lời email đó cùng v i g i thêm ớ ửtập tin đính kèm. Sau khi submit kết qu thì task sả ẽ mang trạng thái <i>waiting </i>và không thể thay đ i tổ ừ phía nhân viên.

<b>- Rejected: Phía trưởng phịng sau đó s</b>ẽ review những nội dung mà nhân viên đã gửi và có thể đồng ý hoặc khơng đồng ý. Nếu khơng đ ng ý thì trư ng phịng sồ ở ẽ gửi trả lại task để nhân viên hoàn thi n thêm, khi đó task sệ <i>ẽ có t ng thái là rejected. </i>rạKhi reject một task, trưởng phòng c n nh p ghi chú (nh ng nh n xét đ nhân viên hi u là tầ ậ ữ ậ ể ể ại sao task chưa được duyệt) và có thể đính kèm thêm t p tin nhậ ằm b sung thêm dổ ữ liệu hỗ ợ nhân viên hồn thành cơng vitr ệc. Ngồi ra, nếu muốn thì khi reject một task, trưởng phịng cũng có th gia h n deadline ể ạ để nhân viên có thêm thời gian thực hiện.

<i>Quá trình Waiting à Rejected này có th</i>ể lặp đi l p lặ ại không giới hạn số lần n u như trư ng phòng cế ở ảm thấy chưa hài lòng

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

Trang 4/16 với các kết qu mà nhân viên đã nộp và mu n nhân viên phả ố ải điều ch nh đỉ ể kết quả tốt hơn.

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

<b>- Completed: Sau khi trư</b>ởng phòng đã xem kết quả và cảm thấy rằng mọi thứ đã ổn thì trư ng phịng sở ẽ nhấn nút duyệt task, lúc đó task sẽ được chuyển sang tr ng thái ạ <i>completed. Một task khi đã mang trạng thái completed </i>thì xem như đã hồn thành, hai bên s khơng c n làm gì thêm nẽ ầ ữa. Trư c khi nhớ ấn nút duyệt task thì trưởng phịng c n ch n mầ ọ ột trong ba mức độ hoàn thành: <b>Bad, OK hoặc Good</b>. Ngoài ra hệ thống cũng c n tầ ự động ghi nh n thêm thơng tin cho biậ ết nhân viên có hồn thành task trước deadline hay không, nếu nhân viên submit task khi đã tr deadline thì hễ ệ thống chỉ cho phép trư ng phòng đánh ởgiá ở mức Bad hoặc mức OK.

Ở phía nhân viên bình thư ng, sau khi đăng nh p vào thì giao di n task sờ ậ ệ ẽ là giao diện đ u tiên đưầ ợc hiển thị (giống như khi đang nh p ậvào Gmail thì danh sách inbox sẽ hiể hị đần t u tiên). Tại đây, nhân viên cũng xem được danh sách tóm t t thơng tin của từắ ng task và trạng thái của chúng, những task mới nh n hoặc mới được c p nhật ạậ ậ tr ng thái sẽ được hi n thị ể trên cùng theo thứ tự thời gian.

- Đối v i nhớ ững task v a đư c giaoừ ợ <i> (có trạng thái là new), nhân viên sẽ vào xem mô tả về task rồi nhấn nút ‘Start’ đ xác nh n </i>ể ậđã nắm được thông tin và b t đầắ u đ u thầ ực hiện nhiệm vụ. Khi đó trạng thái của task sẽ chuyển thành<i> in progress. Nế</i>u nhân viên chưa nh n ‘start’ đấ ể nhận task thì khơng thể submit để nộp kết quả cho task đó.

- Với những task đang thực hiện, nhân viên có th báo cáo kể ết quả bằng cách vào chi tiế ủa task đó và submit kết c t quả thực hiện. Khi submit kết qu thì nhân viên cả ần đi n nề ội dung tin nhắn (mô tả) và gửi các tập tin đính kèm (tương t như cách ự chúng ta trả lời m t email cùng v i tộ ớ ập tin đính kèm). Sau khi đã submit kết quả thì task s mang trạng thái ẽ <i>waiting </i>và nhân viên sẽ chờ trưởng phòng nh n xétậ . Với những task đang có tr ng thái ạ <i>waiting thì nhân viên chỉ có th</i>ể vào xem thông tin chứ không thể điều ch nh hay thỉ ực hiện bất cứ điều gì khác.

- Nếu task được trưởng phịng duyệt thì task sẽ chuyển sang tr ng thái ạ <i>completed và </i>khi đó nhân viên cũng chỉ có thể xem được thơng tin chứ khơng thể điều ch nh hay thỉ ực hiện bất cứ ều gì khác (gi ng vđi ố <i>ới waiting). Tuy nhiên khi đó nhân viên </i>

có thể xem được m c đánh giá c a trưứ ủ ởng phòng về task của mình (Bad, Ok ho c Good) và trặ ạng thái hoàn thành về mặt th i ờgian (đúng deadline hay trễ deadline).

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

Trang 5/16

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

- Trong trường h p task bợ <i>ị trả về bởi trưởng phịng thì nó sẽ mang trạng thái rejected. Nhân viên có thể xem được các feedback, </i>

các tập tin đính kèm hoặc thời gian gia hạn (n u có) t phía trư ng phịng. ế ừ ở Khi đó nhân viên tiếp tục hồn thiện cơng việc để gửi l i bạ ản báo cáo khác hoàn ch nh hơn. ỉ Task của nhân viên có thể bị trưởng phịng reject nhi u l n và phề ầ ả ử ại g i l i báo cáo nhiều l n cho đ n khi báo cáo đưầ ế ợc duyệt b i trưở ởng phịng. Q trình này c n đưầ ợc ghi nhậ ại và được hiển l n thị theo trình tự trong phần chi tiế ủt c a một task, tương tự như một conversation trong chat hoặc trong email v cách b trí giao diới ố ện sao cho dễ nhìn và ph n ánh đưả ợc trình tự.

Chức năng tạo đơn xin ngh phép áp d ng cho nhân viên bình thư ng và trư ng phòngỉ ụ ờ ở (gọi là ngư i lao đờ ộng), không áp d ng cho ụngười có vai trị là giám đốc. Đơn xin nghỉ phép của nhân viên phòng ban nào s do trư ng cẽ ở ủa phịng ban đó duyệt, còn đơn xin nghỉ phép của các trưởng phòng sẽ do giám đốc duyệt. Nhân viên bình thường có 12 ngày nghỉ phép trong năm, cịn trư ng phịng ởthì có 15 ngày nghỉ phép trong năm.

(dù là đồng ý hay khơng đ ng ý) thì ít nhồ ất 7 ngày sau m i có thớ ể tạo thêm yêu c u khác.ầ

- Cũng trong chức năng này, người lao động có th xem đưể ợc danh sách các yêu cầu ngh phép đã t ng tỉ ừ ạo và tr ng thái cạ ủa từng yêu c u (<b>ầ approved hoặc refused).</b>

<b>Người duyệt yêu cầu </b>

- Phía giao di n cệ ủa người phê duy t yêu cệ ầu ngh phép sỉ ẽ hiển th danh sách các yêu c u ngh phép theo thị ầ ỉ ời gian, yêu cầu mới nh t xu t hiấ ấ ện trước.

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

Trang 6/16

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

- Khi nhấn vào t ng yêu c u cừ ầ ụ thể thì ngư i phê duy t sờ ệ ẽ xem được các thông tin chi tiết (mô t chi tiết, tập tin đính kèm) và ả có ch c năng đứ ể thực hiện một trong hai lựa chọn là ng ý hođồ ặc không đồng ý.

- Cần áp d ng cơ ch validation ụ ế ở cả hai phía client l n server đẫ ể đảm bảo không ti p nh n nh ng dế ậ ữ ữ liệu không mong mu n ốtừ phía người dùng. Ví d khi t o mụ ạ ột tài khoản mới thì cần đảm bảo là giám đốc nhập một username chưa tồn tại và nếu lỡ nhập username đã t n tồ ại thì ph i ển thả hi ị thông báo phù hợp và chi tiết cho từng trư ng hờ ợ Hoặc ở trường h p khác, khi p. ợngười dùng upload tập tin thì c n giớ ạn ki u t p tin trong mầ i h ể ậ ột danh sách nh t đấ ịnh (ví d khơng cho phép upload các t p ụ ậtin *.exe, *.sh… những t p tin có kh năng thậ ả ực thi) và giớ ạn kích thưi h ớc tập tin tối đa đồng thời ph i thông báo rõ ràng ảchi tiết khi ngư i dùng upload các tờ ập tin không đúng quy định. Với m i chỗ ức năng cần phải thực hiện toàn di n như v y thì ệ ậmới được trọn điểm, nếu khơng chỉ nh n được ½ số điểm. ậ

- Không được lưu mật khẩu người dùng dưới dạng clear text mà phải lưu dư i dớ ạng hash (sử dụng giải thu t bcrypt)ậ . - Người dùng chỉ được phép truy cập vào các chức năng trong quyền h n cạ ủa họ, chức năng khơng có trong quyền h n thì sạ ẽ

khơng hi n thể ị trên giao diện qu n lý cả ủa họ mà th m chí nậ ếu người dùng c tình truy cố ập thì v n khơng đưẫ ợc.

<b>- Thư mục source: </b>đây là thư mục g c cố ủa project chứa toàn b, ộ mã nguồn, hình nh, và các tài nguyên khác cả ủa trang web.-<b> Tập tin database (database.sql : file script dùng đ</b>) ể tạo database, tables và các d liệu ban đữ ầu (sinh viên cần import thử trên

máy của mình trư c đớ ể đảm bảo là t p tin này khơng có lỗi). ậ

<b>- Readme.txt chứa các mô tả cần thiết để người chấm có thể setup </b>project của sinh viên và chạy được website trên máy c a ủ người chấm. Nếu sinh viên không ịu ch mô t hoặc mô t không ả ả rõ ràng khiến cho người chấm không thể chạy được trang web theo cách thông thường dẫn đ n không thế ể chấm được bài (hoặc có thể chấm được nhưng trang web chạy gặp thì nh ngữ lỗi mà sinh viên cho r ng ‘ằ <i>trên máy em đâu bị lỗi này đâu thầy’) thì bài làm sẽ bị </i>0 điểm hoặc bị điểm thấ à p sau đó sinh viên nhận được

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

Trang 7/16 điểm thấp hơn mình dự ến sẽ ảng lo n và gki ho ạ ửi email khiếu nại rồi quay màn hình đ minh chứể ng r ng ‘ằ <i>thầy ơi website ch y ạ</i>

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

<i>trên máy em r t ấ ổn mà sao điểm thấp vậy, th y có nhầầm khơng th y’ ầ</i> à đó gi ng viên chả ứng minh cho sinh viên thấy là do sinh code không đúng theo yêu cầu + không ghi chú cụ ể th khi n gi ng viên không deploy đưế ả ợc trên máy giảng viên à sau đó sinh viên đã nh n ra đưậ ợc lỗi ở phía mình à dù sa đi no ữa thì giảng viên vẫn phải chấm lại bài cho sinh viên à sau khi chấm lại xong thì gi ng viên sả ẽ ừ tr bài làm <b>2 điểm </b>vì lý do sinh viên khơng đọc rõ yêu cầu và không thực hiện theo hư ng d n ngay tớ ẫ ừ đầu để cho vi c chệ ấm diễn ra không suôn sẽ, mất th i gianờ .

- Bài đồ <b>án cuối k không yêu c</b>ỳ ầu viết báo cáo như bài tiểu luận.

<small>STT </small> <sup>NỘI DUNG </sup><sub>TIÊU CHÍ </sub>

<small>THANG ĐÁNH </small>

<small>tiên vào hệ thống </small> <sup>0.25 </sup> <sup>Khơng có chức năng này </sup>

<small>Có chức năng này nhưng khơng hoạt động được hoặc còn lỗi đáng kể </small>

<small>Thực hiện được chức năng đúng như u cầu của đề bài, khơng cịn lỗi hoặc chỉ có những lỗi nhỏ khơng đáng kể. </small>

<small>3 </small>

<small>Buộc nhập mật khẩu mới sau khi mật khẩu được reset bởi quản trị viên </small>

<small>0.25 Khơng có chức năng này </small> <sup>Có chức năng này nhưng khơng hoạt động </sup><sub>được hoặc còn lỗi đáng kể </sub>

<small>Thực hiện được chức năng đúng như u cầu của đề bài, khơng cịn lỗi hoặc chỉ có những lỗi nhỏ khơng đáng kể. </small>

<small>4 </small> <sup>Xem thông tin cá nhân, </sup><sub>ảnh đại diện </sub> <small>0.25 Khơng có chức năng này </small>

<small>Có thể xem được thông tin cá nhân nhưng chưa hiển thị đầy đủ thông tin cần thiết hoặc còn lỗi đáng kể </small>

<small>Thực hiện được chức năng đúng như u cầu của đề bài, khơng cịn lỗi hoặc chỉ có những lỗi nhỏ khơng đáng kể. </small>

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

Trang 8/16

</div>

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×