UBND TỈNH QUẢNG NAM TRƯỜNG ĐẠI HỌC QUẢNG NAM KHOA CÔNG NGHỆ THÔNG TIN ----- ----- KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC Tên đề tài: NGHIÊN CỨU WEBAPI, ANGULARJS VÀ ỨNG DỤNG XÂY DỰNG WEBSITE QUẢN LÝ NHÀ Ở SINH VIÊN TRƯỜNG ĐẠI HỌC QUẢNG NAM Sinh viên thực hiện: Ngô Thanh Mẫn MSSV: 2113011023 Chuyên ngành: CÔNG NGHỆ THÔNG TIN Khóa: 2013 - 2017 Giảng viên hướng dẫn: ThS ĐỖ QUANG KHÔI Qu ả ng Nam, tháng 4 n ă m 2017 - i - LỜI CẢM ƠN Lời đầu tiên cho em gửi lời cảm ơn sâu sắc đến ThS Đỗ Quang Khôi, người đã trực tiếp hướng dẫn, giúp đỡ, định hướng và đóng góp ý kiến cho em trong suốt thời gian làm bài để em có thể hoàn thành Khóa luận tốt nghiệp này Em xin chân thành cảm ơn tất cả thầy, cô giáo trường Đại học Quảng Nam, đặc biệt là các thầy, cô trong Khoa Công nghệ thông tin của trường đã tận tình dạy dỗ và truyền đạt kiến thức cho em trong suốt quá trình học tập và nghiên cứu tại trường, tạo điều kiện thuận lợi cho em trong thời gian cuối khóa để hoàn thành chương trình tốt nghiệp Em cũng gửi lời cảm ơn đến Trung tâm học liệu và Công nghệ thông tin – Trường Đại học Quảng Nam đã tạo môi trường, điều kiện giúp đỡ cho em trong suốt quá trình thực tập tốt nghiệp và những kinh nghiệm trong thực tế Đồng thời, em cũng gởi lời cảm ơn đến gia đình, bạn bè đã động viên, giúp đỡ em lúc khó khăn trong học tập và trong cuộc sống - ii - MỤC LỤC DANH MỤC BẢNG iv DANH MỤC HÌNH VẼ v Phần 1 MỞ ĐẦU 1 1 1 Lý do chọn đề tài 1 1 2 Mục tiêu của đề tài 1 1 3 Đối tượng và phạm vi nghiên cứu 2 1 4 Phương pháp nghiên cứu 2 1 5 Lịch sử nghiên cứu 2 1 6 Đóng góp của đề tài 2 1 7 Cấu trúc của khóa luận 2 Phần 2 NỘI DUNG NGHIÊN CỨU 4 Chương 1: TỔNG QUAN VỀ ANGULARJS VÀ WEB API 4 1 1 Tổng quan về AngularJS 4 1 1 1 L ị ch s ử c ủ a AngularJS 4 1 1 2 Khái ni ệ m AngularJs 4 1 1 3 Các tính n ă ng chung c ủ a AngularJS 5 1 1 4 Các tính n ă ng c ố t lõi c ủ a AngularJS 5 1 1 5 Ư u đ i ể m và nh ượ c đ i ể m c ủ a AngularJS 7 1 1 6 Các thành ph ầ n c ủ a AngularJS 7 1 2 Tổng quan về Web API 8 1 2 1 Gi ớ i thi ệ u API và Web API 8 1 2 2 Nh ữ ng l ợ i ích khi s ử d ụ ng ASP NET Web API 10 1 2 3 M ộ t s ố đặ c đ i ể m n ổ i tr ộ i c ủ a ASP NET Web API 11 1 2 4 K ế t lu ậ n ch ươ ng 1 13 Chương 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 14 2 1 Khảo sát hệ thống 14 2 1 1 Phát bi ể u bài toán 14 2 1 2 Kh ả o sát hi ệ n tr ạ ng th ự c t ế 15 2 1 3 Yêu c ầ u ch ứ c n ă ng c ủ a bài toán 24 2 1 4 Yêu c ầ u phi ch ứ c n ă ng c ủ a bài toán 24 - iii - 2 2 Mô hình hóa yêu cầu hệ thống 25 2 2 1 Xác đị nh các tác nhân 25 2 2 2 Xác đị nh các Use Case 25 2 2 3 Bi ể u đồ ca s ử d ụ ng t ổ ng th ể c ủ a h ệ th ố ng 25 2 2 4 Đặ c t ả yêu c ầ u 26 2 3 Mô hình hóa cấu trúc hệ thống 34 2 3 1 Xác đị nh các l ớ p th ự c th ể 34 2 3 2 Xác đị nh các l ớ p biên 35 2 3 3 Xác đị nh các l ớ p đ i ề u khi ể n 37 2 3 4 Bi ể u đồ l ớ p 38 2 4 Mô hình hóa hành vi của hệ thống 38 2 4 1 Bi ể u đồ ho ạ t độ ng 38 2 4 2 Bi ể u đồ tu ầ n t ự 43 2 5 Thiết kế hệ thống 46 2 5 1 Thi ế t k ế ki ế n trúc v ậ t lý h ệ th ố ng 46 2 5 2 Thi ế t k ế chi ti ế t c ơ s ở d ữ li ệ u 47 2 5 3 Thi ế t k ế giao di ệ n 51 2 6 Kết luận chương 2 54 Chương 3: CHƯƠNG TRÌNH THỬ NGHIỆM 55 3 1 Cài đặt hệ thống 55 3 2 Một số giao diện chính của chương trình 55 3 3 Kết luận chương 3 59 Phần 3 KẾT LUẬN 60 Phần 4 TÀI LIỆU THAM KHẢO 61 - iv - DANH MỤC BẢNG Bảng 2 1: Danh mục quy trình xử lý nghiệp vụ Quản lý khu nội trú 17 Bảng 2 2: Quy trình đăng ký ở nội trú (QT/07/TTHTSV) 17 Bảng 2 3: Quy trình tổ chức quản lý khu nội trú (QT/08/TTHTSV) 20 Bảng 2 4: Quy trình thu, thanh quyết toán phí điện nước (QT/17/TTHTSV) 21 Bảng 2 5: Quy trình quản lý sinh viên Lào (QT/21/TTHTSV) 22 - v - DANH MỤC HÌNH VẼ Hình 2 1: Cơ cấu tổ chức của Trung tâm hỗ trợ sinh viên 15 Hình 2 2: Sơ đồ các use case của hệ thống 25 Hình 2 3: Sơ đồ lớp 38 Hình 2 4: Biểu đồ hoạt động cho phương thức đăng nhập 39 Hình 2 5: Biểu đồ hoạt động cho phương thức đăng ký 40 Hình 2 6: Biểu đồ hoạt động cho phương thức chuyển sinh viên 41 Hình 2 7: Biểu đồ hoạt động của phương thức tính tiền điện nước 42 Hình 2 8: Kiến trúc của hệ thống 46 Hình 3 1: Giao diện trang chủ của website 55 Hình 3 2: Giao diện trang giới thiệu (1) của website 56 Hình 3 3: Giao diện trang giới thiệu (2) của website 56 Hình 3 4: Giao diện đăng nhập cho ban quản lý 57 Hình 3 5: Giao diện trang admin cho ban quản lý 57 Hình 3 6: Giao diện thống kê phòng 58 Hình 3 7: Giao diện danh sách sinh viên 58 Hình 3 8: Giao diện thêm nhân viên mới 59 - 1 - Phần 1 MỞ ĐẦU 1 1 Lý do chọn đề tài Ngày nay ứng dụng công nghệ thông tin và việc tin học hóa được xem là một trong những yếu tố mang tính quyết định trong hoạt động của các tổ chức, củng như của các hệ thống quản lý, nó đóng vai trò hết sức quan trọng, tạo ra những bước đột phá một cách mạnh mẽ Trong phát triển ứng dụng web hiện nay, các Framework thi nhau ra đời và trở nên phổ biến hơn, cùng với đó là các yêu cầu xử lý được nhanh hơn, tốc độ và mạnh mẽ AngularJS là được biết đến là một Framwork phát triển dựa trên Javascript để tạo các ứng dụng web phong phú, nó dùng để phát triển frontend (giao diện khách hàng) thông qua các API để gọi data, sử dụng mô hình MVC rất mạnh mẽ Angular là mã nguồn mở, hoàn toàn miễn phí và được phát triển bởi hàng ngàn các lập trình viên trên thế giới Trong khi đó ASP NET Web API, một nền tảng đầy hiệu quả mà rất đơn giản với giao thức HTTP và dịch vụ web theo mặc định sử dụng JSON Các model làm việc để xử lý và trả về được đóng gói qua các đối tượng đơn giản, giúp xây dựng Rest full services trên nền tảng net, nó tự động trả dữ liệu có kiều phù hợp: Json, XML Web API sẽ giúp bạn chuyển kiểu dữ liệu trả về theo thuộc tính Accept trong header của Request và bạn không cần quan tâm đến điều đó KTX của nhà trường hiện đang quản lý theo cách truyền thống Việc đăng ký và quản lý thủ công gây nên nhiều khó khăn, tốn thời gian và gây lãng phí cả về công sức và tiền bạc Chính vì những lí do trên nên em đã chọn đề tài “ Nghiên c ứ u Web API, AngularJs và ứ ng d ụ ng xây d ự ng website qu ả n lý nhà ở sinh viên tr ườ ng Đạ i h ọ c Qu ả ng Nam ” làm khóa luận tốt nghiệp 1 2 Mục tiêu của đề tài - Nắm vững những kiến thức cơ bản về AngularJS và Web API - 2 - - Áp dụng vào việc Xây dựng hệ thống quản lý nhà ở sinh viên trường Đại học Quảng Nam 1 3 Đối tượng và phạm vi nghiên cứu - Kiến thức về AngularJS và Web API - Ứng dụng AngularJS và Web API vào xây dựng 1 hệ thống 1 4 Phương pháp nghiên cứu - Đọc tài liệu - Phân tích, tổng hợp tài liệu - Thống kê, phân tích dữ liệu - Phân tích và thiết kế trong xây dựng hệ thống thông tin 1 5 Lịch sử nghiên cứu AngularJS và Web API đã được một số tác giả tìm hiểu và nghiên cứu trước đó Phần lớn các tác giả đều cho thấy một cách tổng quan về nội dung lý thuyết của AngularJS và Web API đồng thời cũng xây dựng những hệ thống phù hợp với môi trường và bản thân tác giả Với những ưu điểm của mình thì AngularJS và Web API đã được sử dụng trong nhiều hệ thống lớn tuy nhiên nó còn khá mới mẻ đối với sinh viên trường Đại học Quảng Nam 1 6 Đóng góp của đề tài Trình bày những kiến thức cơ bản và tổng quan về AngularJS và Web API Xây dựng website ứng dụng trong việc quản lý nhà ở sinh viên Trường Đại học Quảng Nam 1 7 Cấu trúc của khóa luận Lời cảm ơn Mục lục MỞ ĐẦU 1 Lý do chọn đề tài - 3 - 2 Mục đích nghiên cứu 3 Đối tượng và phạm vi nghiên cứu 4 Phương pháp nghiên cứu 5 Lịch sử nghiên cứu 6 Đóng góp của đề tài NỘI DUNG Ch ươ ng 1: T Ổ NG QUAN V Ề ANGULARJS VÀ WEB API Ch ươ ng 2: PHÂN TÍCH VÀ THI Ế T K Ế H Ệ TH Ố NG Ch ươ ng 3: CH ƯƠ NG TRÌNH TH Ử NGHI Ệ M KẾT LUẬN TÀI LIỆU THAM KHẢO - 4 - Phần 2 NỘI DUNG NGHIÊN CỨU Chương 1: TỔNG QUAN VỀ ANGULARJS VÀ WEB API 1 1 Tổng quan về AngularJS 1 1 1 Lịch sử của AngularJS Hai năm trước khi AngularJS mới ra đười người ta còn hoài nghi về việc nó có thể cạnh tranh được các Javascript Framework khác như Backbone js hay Knockout hay không Tuy nhiên với sự hỗ trợ đến từ Google và nhiều cải tiến đáng kể thì hiện nay AngularJS không những được nhiều người sử dụng mà còn đang trở thành một hiện tượng mới trong làng Javascript AngularJS là một framework Javascript mạnh mẽ, được nhúng vào HTML page bằng thẻ Script AngularJS mở rộng thêm thuộc tính của HTML với các (chỉ thị, lệnh) Directives, và liên kết dữ liệu đến HTML với các (biểu thức) Expressions nhằm giảm bớt quá trình phát triển ứng dụng web Về lịch sử hình thành, dự án AngularJS được bắt đầu từ năm 2009, do lập trình viên Misko Hevery tại Google viết ra Misko và nhóm lúc này đang tham gia vào một dự án của Google tên là Google Feedback Với AngularJS, Misko đã rút ngắn số dòng code front-end từ 17000 dòng còn chỉ khoảng 1500 Với sự thành công đó, đội ngũ của dự án Google Feedback quyết định phát triển AngularJS theo hướng mã nguồn mở 1 1 2 Khái niệm AngularJs AngularJS là một khung làm việc được viết bằng Javascript (hay còn được gọi là Javascript Framework) AngularJS không chỉ đơn giản là một thư viện mà nó còn là một framework Khác với các thư viện Javascript như jQuery, AngularJS đưa ra hướng dẫn cụ thể hơn cách cấu trúc mã lệnh HTML và Javascript Ví dụ bạn sẽ thấy khi sử dụng AngularJS, mã lệnh HTML thường được viết theo cấu trúc như sau: - 5 -
Ở ví dụ trên chúng ta thấy trong một số thẻ HTML có các thuộc tính lạ với tiền tố ng- như ng-app, ng-model và ng-name Trong AngularJS chugns được gọi là các chỉ dẫn hay directives Các chỉ dẫn này có ý nghĩa như sau: Chỉ dẫn ng-app="" được dùng để giúp AngularJS đánh dấu ứng dụng sẽ được bắt đầu từ bằng nào trong HTML Chỉ dẫn ng-model="name" được dùng để kết nối giá trị của trường với giá trị của biến name trong ứng dụng AngularJS Chỉ dẫn ng-bind="name" dùng để gắn giá trị của biến name ở trên trở thành giá trị innerHTML của thẻ1 1 3 Các tính năng chung của AngularJS - AngularJS là một Framework phát triển mạnh mẽ dựa trên JavaScript để tạo các ứng dụng RICH Internet Application (RIA) - AngularJS cung cấp cho lập trình viên những tùy chọn để viết các ứng dụng client-side trong mô hình MVC (Model View Controller) một cách rõ ràng - Các ứng dụng được viết bởi AngularJS tương thích với nhiều phiên bản trình duyệt web AngularJS tự động xử lý mã JavaScript để phù hợp với mỗi trình duyệt - AngularJS có mã nguồn mở, miễn phí hoàn toàn, được sử dụng bởi hàng ngàn lập trình viên trên thế giới Nó hoạt động dưới giấy phép Apache License version 2 0 Nhìn chung, AngularJS là một framework để tạo các ứng dụng lớn, các hiệu năng cao trong khi giữ cho chúng có thể dễ dàng duy trì 1 1 4 Các tính năng cốt lõi của AngularJS Dưới đây là các tính năng cốt lõi của AngularJS: Data - binding : Nó tự động đồng bộ hóa dữ liệu giữa thành phần model và view - 6 - Scope : Là những đối tượng hướng đến model, nó hoạt động như là cầu nối giữa controller và view Controller : Đây là những tính năng của AngularJS mà được giới hạn tới một scope cụ thể Service : AngularJS hoạt động với một vài dịch vụ (service) có sẵn, ví dụ $http để tạo XMLHttpRequests Nó là các singleton object mà được khởi tạo duy nhất một lần trong ứng dụng Filter : Nó lựa chọn (hay là lọc) các tập con từ tập item trong các mảng và trả về các mảng mới Directive : Directive là các marker trong các phần tử DOM (như các phần tử, thuộc tính, css và nhiều hơn thế) Nó có thể dùng để tạo các thẻ HTML riêng phục vụ những mục đích riêng AngularJS có những directive có sẵn như ngBind,ngModel… Template : Là các rendered view với các thông tin từ controller và model Nó có thể được sử dụng trong các file riêng rẽ (ví dụ như index jsp) hoặc nhiều view với một trang sử dụng "partials" Routing : Là khái niệm của sự chuyển dịch qua lại các view Model View Whatever : MVC là một mô hình thiết kế để phân chia các ứng dụng thành nhiều phần khác nhau (gọi là Model, View và Controller), một phần sử dụng với một nhiệm vụ nhất định AngularJS không triển khai MVC theo cách truyền thống, mà gắn liền hơn với Model-View-ViewModel Nhóm phát triển AngularJS đã đặt tên vui cho mô hình này là Model View Whatever Deep Linking : Cho phép bạn mã hóa trạng thái các ứng dụng trên địa chỉ URL để nó có thể được bookmark Các ứng dụng có thể được phục hồi lại từ các địa chỉ URL với cùng một trạng thái Dependency Injection : AngularJS có sẵn một hệ thống con dependency injection để giúp các lập trình viên tạo ra các ứng dụng dễ phát triển, dễ hiểu và kiểm tra - 7 - 1 1 5 Ưu điểm và nhược điểm của AngularJS Ư u đ i ể m: - AngularJS cung cấp khả năng tạo ra các Single Page Application một cách rất rõ ràng và dễ dàng để duy trì - AngularJS cung cấp khả năng Data binding tới HTML do đó giúp người dùng cảm giác linh hoạt, thân thiện - AngularJS code dễ dàng khi unit test - AngularJS sử dụng dependency injection - AngularJS cung cấp khả năng tái sử dụng các component (thành phần) - Với AngularJS, lập trình viên sẽ viết ít code hơn, với nhiều chức năng hơn - Với AngularJS, view là thành phần trong trang HTML thuần, trong khi controller được viết bởi JavaScript với quá trình xử lý nghiệp vụ - Và trên tất cả, ứng dụng AngularJS có thể chạy trên hết các trình duyệt web, trên các nền tảng Android và IOs Nh ượ c đ i ể m: Mặc dù AngularJS có thể kể đến rất nhiều các ưu điểm, nhưng đến thời điểm này, nó vẫn có một số điểm yếu sau: Không an toàn: Là một JavaScript framework, ứng dụng được viết bởi AngularJS không an toàn Phải có các tính năng bảo mật và xác thực phía server sẽ giúp ứng dụng trở nên an toàn hơn Nếu người sử dụng ứng dụng của bạn vô hiệu hóa JavaScript thì họ chỉ nhìn được trang cơ bản, không thấy gì thêm 1 1 6 Các thành phần của AngularJS AngularJS framework có thể được chia thành ba phần chính sau: ng-app : directive này định nghĩa và liên kết một ứng dụng AngularJS tới HTML ng-model: directive này gắn kết giá trị của dữ liệu ứng dụng AngularJS đến các điều khiển đầu vào HTML - 8 - ng-bind: directive này gắn kết dữ liệu ứng dụng AngularJS đến các thẻ HTML 1 2 Tổng quan về Web API 1 2 1 Giới thiệu API và Web API 1 2 1 1 Gi ớ i thi ệ u v ề API Đơn giản như thế này, hiện nay nhiều người dùng mạng xã hội facebook và bạn muốn viết một ứng dụng để đăng tin lên mạng xã hội này Vậy làm sao để làm một ứng dụng như vậy khi facebook là của người khác? Hiểu được nhu cầu này của các lập trình viên facebook sẽ đưa ra các thư viện chứa các hàm đăng, like, share trên trang của mình để các lập trình viên khai thác! Đó chính là API Google+, Gmail, Blogger, Youtube, các ứng dụng của windows (Windows media player, Internet Explorer, ), nhaccuatui, zingmp3, rất nhiều các trang web, ứng dụng đưa ra các API để hỗ trợ các lập trình viên - API (Application Programming Interface - Giao diện lập trình ứng dụng) Mỗi hệ điều hành, ứng dụng đều có những bộ API khác nhau Nó cung cấp cho người lập trình các hàm tương tác với CSDL, lập trình thực hiện các thao tác với hđh hay phần mềm đó Hầu hết các hàm API được chứa trong các file DLL - Ví dụ: Các hàm API của hđh windows cho phép chúng ta lập trình ứng dụng thay đổi icon màn hình, xem thông tin máy tính, hay các hàm API của google cho phép lập trình viên lấy thông tin, sửa thông tin người dùng, Các hàm API của facebook cho chúng ta đăng stt, ảnh, cmt, - Vậy API có phải một ngôn ngữ lập trình không? Câu trả lời là không các bạn ạ Các hàm API cũng như các hàm bình thường mà chúng ta hay viết và trên từng ngôn ngữ khác nhau cũng có các bộ API tương ứng khác nhau - Ví dụ: Google API có bộ cho NET, PHP, 1 2 1 2 Gi ớ i thi ệ u web api - Web API là một phiên bản kế tiếp của WCF, giúp chúng ta xây dựng lên các Service cung cấp dịch vụ cho các ứng dụng web, window,… - 9 - - Trước web API chúng ta để có các service API chúng ta phải cấu hình, xây dựng các ứng dụng wcf, web service khá phức tạp - Một ứng dụng đơn giản như là: Chúng ta có 1 Web API cung cấp các dịch vụ lưu trữ dữu liệu, cung cấp các chỉ số chứng khoán, kết quả bóng đá, xổ số,… - Các ứng dụng Client như website, ứng dụng winform, wpf có thể kết nối vào Web API để lấy các dữ liệu về xử lý, cũng như cập nhật thông tin lại Web API - Web API dùng phương thức trao đổi dữ liệu là HTTP, kiểu dữ liệu trao đổi là JSON, một chuẩn dữ liệu hướng đối tượng được dùng khá nhiều trong việc lưu chuyển thông tin trên Internet - Do dùng jSon là kiểu dữ liệu chuyển đổi nên tốc độ các trang web sử dụng web API tương tác dữ liệu có tốc độ khá cao Ngoài ra do Web API dùng giao thức HTTP nên hầu như tất cả các ứng dụng trên các công nghệ đều có thể kết nối tới để lấy cũng như tương tác với web API cụ thể như chúng ta có thể dùng các công nghệ web như: Asp net (MVC, Web Page, Web form), PHP, jsp hay các ứng dụng desktop như: winform, wpf đều có thể dễ dàng kết nối tới web API - Với Web API chúng ta có thể xây dựng và phân tách các ứng dụng web lớn Cấu hình từng thành phần riêng biệt của website Đâu là tầng data, đâu là tầng xử lý, đâu là tầng dịch vụ,… Nền tảng của các ứng dụng lớn luôn là các service để các website thành viên có thể kết nối tương tác dữ liệu - Do đó với Web API chúng ta có thể ứng dụng vào các dự án Web (cũng như window) lớn để phát triển trên nhiều tầng xử lý khác nhau - Dùng web API chúng ta dễ dàng xây dựng các ứng dụng window kiểu điện toán (dữ liệu ở server) còn client chỉ cài giao diện Hay có thể xây dựng các website Single Page Application (SPA) (tất cả web chỉ gói gọn trong 1 trang) Ứng dụng này tương tác khá cao với người dùng, tốc độ nhanh (do dùng ajax) thường được dùng làm các website tương tác với các thiết bị di động (các thiết bị di động thường có kết nối Internet chậm) - 10 - 1 2 2 Những lợi ích khi sử dụng ASP NET Web API 1 2 2 1 C ấ u hình Ngay khi bạn xây dựng một website, không cần bất kỳ cấu hình gì chúng ta đã có thể cài đặt và sử dụng dịch vụ trên nền ASP NET Web API Khái niệm điểm đầu cuối (xuất hiện trong WCF) không còn, và cũng không cần contract Và bạn sẽ thấy ngay sau đây, một dịch vụ trên nền ASP NET Web API được thiết lập lỏng lẻo nếu ta so sánh với dịch vụ WCF Theo đó bạn chỉ cần sử dụng REST (Representational State Transfer – các bạn có thể xem chú giải vắn tắt về REST ở cuối bài) URL, cùng các tham số đầu vào, và kết quả trả về là các bản tin JSON hay XML 1 2 2 2 M ặ c đị nh s ử d ụ ng REST Việc xây dựng các dịch vụ với ASP NET Web API cung cấp cho ta hầu hết những thành phần thiết yếu để xây dựng kiến trúc REST Đó là bởi vì tính năng điều hướng (Route) URL tích hợp ngay trong nền tảng, các địa chỉ dịch vụ với ASP NET Web API là các điều hướng RESTful ánh xạ với các phương thức của controller Vì thế cho phép sử dụng các đường dẫn theo phong cách REST rất thân thiện 1 2 2 3 Tr ừ u t ượ ng hóa v ớ i các Route Tương tự như các giao diện dịch vụ và sự thực thi chúng trên WCF, các route cho phép nhà phát triển ASP NET Web API tạo ra lớp trìu tương giữa bên yêu cầu nhìn thấy và sự thực thi ở lớp dưới Nói theo cách khác thì bạn có thể gắn kết bất cứ URL nào với bất cứ phương thức nào của các controller Với sự thay đổi về phiên bản dịch vụ, chỉ đơn giản bằng cách thêm một route mới (ví dụ “v2”) vào trong URL cho phép ta duy trì song song nhiều phiên bản dịch vụ trên hệ thống mà không ảnh hưởng đến các dị vụ đang có 1 2 2 4 M ở r ộ ng ch ứ c n ă ng x ử lý d ạ ng đườ ng ố ng đơ n gi ả n ASP NET Web API cung cấp khả năng mở rộng dạng đường ống thông qua các bộ lọc (filter) cho phép xử lý trước và sau khi thực thi các action của controller - 11 - Bằng việc gắn các bộ lọc cho phép ta thực hiện lọc các action (theo tham số request), lọc vai trò (authorization) và lọc ngoại lệ Để dùng có thể đơn giản bằng cách khai báo attribute, hay cấu hình toàn cục áp dụng cho tất cả các phương thức 1 2 3 Một số đặc điểm nổi trội của ASP NET Web API 1 2 3 1 Thu ậ n ti ệ n cho các hành độ ng (action) CRUD (create – read – update – delete) Các action HTTP (như GET, POST) tự động gắn kết vào các phương thức của controller (chính là các controller action) thông qua tên của chúng Ví dụ 1 2 3 2 Th ỏ a thu ậ n n ộ i dung đượ c tích h ợ p s ẵ n Với MVC, để cho phép các phương thức controller trả về dữ liệu JSON hay XML thì phải tùy biến kết quả trả về ở dạng nguyên gốc (raw) Nhưng với - 12 - ASP NET Web API, các phương thức controller chỉ cần trả về dữ liệu gốc, toàn bộ phần còn lại sẽ tự động được chuyển đổi sang JSON hay XML tùy theo yêu cầu từ gọi tới Trong đó, yêu cầu từ bên gọi tới cũng chỉ cần sử dụng tiêu đề (header) Accept hay Content-Type 1 2 3 3 Cho phép s ử d ụ ng các attribute ti ề n t ố đ i ề u h ướ ng (route prefix) và route Trong nhiều trường hợp nếu bạn không muốn các phương thức trong controller tuân theo quy tắc chung thì ta có thể sử dụng các attribute để cài đặt riêng như RouteAttribute, RoutePrefixAttribute, HttpGetAttribute, HttpPostAttribute, … 1 2 3 4 Đị nh ngh ĩ a quy t ắ c ràng bu ộ c cho route Đặc điểm này cung cấp một cơ chế cho phép bạn chỉ ra các nguyên tắc nghiệp vụ riêng trong xử lý route: 1 2 3 5 H ỗ tr ợ CORS (Cross-Origin Resource Sharing ~ Chia s ẻ gi ữ a các ngu ồ n tài nguyên g ố c) Trong ASP NET Web API ta có thể kích hoạt chức năng này bằng việc đặt một attribute EnableCorsAttribute để cho phép các yêu cầu bằng JavaScript từ các domain khác có thể truy cập domain dịch vụ của bạn - 13 - 1 2 3 6 Qu ả n lý l ỗ i toàn c ụ c Đây là một cải thiện rất lớn từ phiên bản ASP NET Web API 2 1 Theo đó, tất cả các exception không được bắt giờ có thể được ném ra và bắt thông qua một cơ chế tập trung Việc hỗ trợ nhiều các ghi log ngoại lệ được thực hiện trong chính nền tảng (framework), tại đó cho phép ta truy xuất đến chính ngoại lệ bị ném ra cùng ngữ cảnh của nó 1 2 3 7 Giao di ệ n IHttpActionResult Việc thực thi giao diện này sẽ định nghĩa một HttpResponseMessage factory có thể tái sử dụng và thuận tiện khi xây dựng unit-test 1 2 4 Kết luận chương 1 Chương 1 đã trình bày những kiến thức cơ bản và tổng quan nhất của AngularJs và WEB API Qua đó cũng cho thấy được việc ứng dụng AngulaJS và WebAPI là một vấn đề quan trọng trong quá trình xây dựng hệ thống WEB, đặc biệt là những WEB App Trong AngularJs và WEB API có nhiều mô hình kiến trúc khác nhau, mỗi loại đều có những ưu và nhược điểm riêng của nó - 14 - Chương 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 2 1 Khảo sát hệ thống 2 1 1 Phát biểu bài toán Ngày nay công nghệ thông tin có những bước phát triển về chiều rộng và chiều sâu Máy tính điện tử không còn là 1 thứ phương tiện quý hiếm mà đang ngày càng trở thành 1 công cụ làm việc Trên thị trường, có nhiều phần mềm quản lý nhưng phần mềm quản lý ký túc xá thì ít có, và chưa được cải tiến, chưa thân thiện với người sử dụng Ứng dụng phần mềm quản lý ký túc xá đang được mở rộng và ngày càng tiếp cận với nhiều thành phần sử dụng, đặc biệt là những người không thành thạo vi tính và chuyên ngành công nghệ thông tin Ký túc xá (KTX) của trường Đại học Quảng Nam về quy mô là rất lớn nên việc quản lý thông tin cán bộ quản lý thông tin cán bộ, quản lý sinh viên nội trú, quản lý các phòng, quản lý thu tiền điện nước, tìm kiếm thông tin là rất cần thiết Ngày nay việc quản lý trên máy tính mang lại hiệu quả cao về nguồn nhân lực, kinh tế Đặc biệt vào mỗi đầu năm học, số lượng sinh viên (SV) đăng ký ở KTX là rất nhiều, vì vậy nếu có 1 chương trình quản lý KTX sẽ giúp công việc nhanh hơn và tiết kiệm dc nhiều thời gian cho công tác quản lý Việc quản lý KTX nói chung hiện tại của nhà trường vẫn còn gặp nhiều khó khăn vì các công việc quản lý vẫn còn quản lý một cách thủ công, từ việc thông báo, đăng ký chỗ ở, đến việc quản lý hồ sơ sinh viên nội trú, thu chi tiền phòng, tiền điện nước…vẫn còn quản lý trên sổ sách là chính yếu Đặc biệt là vào đầu mỗi năm học mới, số lượng sinh viên đăng ký vào ở KTX là rất đông, với cách quản lý thủ công như vậy thì việc xử lý các đơn đăng ký của sinh viên rất chậm, đôi khi tạo ra những áp lực trong công việc đối với cán bộ quản lý KTX Vì vậy, việc tin học hóa công tác quản lý KTX của nhà trường là hết sức cần thiết Các dữ liệu được lưu trữ bằng sổ sách nên khi tìm kiếm hay cụ thể là thao tác với dữ liệu đã lưu thì tốn nhiều thời gian - 15 - 2 1 2 Khảo sát hiện trạng thực tế 2 1 2 1 T ổ ng qu ả n v ề t ổ ch ứ c a) Mô t ả khái quát v ề t ổ ch ứ c Trường Đại học Quảng Nam được thành lập dựa trên cơ sở nâng cấp từ Trường Cao đẳng Sư phạm Quảng Nam vào năm 2007, là trường đại học công lập duy nhất của tỉnh Quảng Nam Hiện tại có khoảng 6000 sinh viên hệ chính quy theo học tại trường Trong đó có khoảng ¾ sinh viên không có hộ khẩu tại Tp Tam Kỳ, nơi nhà trường tọa lạc Điều đó cho thấy nhu cầu chỗ ở của sinh viên nhà trường là rất lớn Kí túc xá trường Đại học Quảng Nam chia thành 5 khu, bao gồm: Hình 2 1: C ơ c ấ u t ổ ch ứ c c ủ a Trung tâm h ỗ tr ợ sinh viên Kí Túc Xá Trường ĐH Quảng Nam KTX Khu C1 -Gồm 4 tầng: +Tầng 1: NV quản lí và 1 số GV + Tầng 2,3,4: giành cho sv cử KTX Khu C2 - Gồm 4 tầng: + Từ tầng 1 đến tầng 3: cho sv nữ + Tầng 4 giành cho sv nam KTX Khu C3 - Gồm 4 tầng: Khu này giành cho sv nữ KTX Khu C4 -Gồm 3 tầng: Khu này có phòng ở kiểu mẫu (4 người 1 phòng ) KTX Khu C5 Giành cho các du học sinh Lào, gồm 36 phòng (mỗi phòng 8 SV) Bộ Phận QL Quản lí và giải quyết các nhu cầu của sv ở trong KTX Bộ Phận QL Điện Nước QL trang thiết bị của KTX và chi phí điện nước và phòng ở - 16 - Việc quản lý KTX nói chung hiện tại của nhà trường vẫn còn gặp nhiều khó khăn vì các công việc quản lý vẫn còn quản lý một cách thủ công, từ việc thông báo, đăng ký chỗ ở, đến việc quản lý hồ sơ sinh viên nội trú, thu chi tiền phòng, tiền điện nước,… vẫn còn quản lý trên sổ sách là chính yếu Đặc biệt là vào đầu mỗi năm học mới, số lượng sinh viên đăng ký vào ở KTX là rất đông, với cách quản lý thủ công như vậy thì việc xử lý các đơn đăng ký của sinh viên rất chậm, đôi khi tạo ra những áp lực trong công việc đối với cán bộ quản lý KTX Vì vậy, việc tin học hóa công tác quản lý KTX của nhà trường là hết sức cần thiết b) M ụ c tiêu t ổ ch ứ c - Nâng cao chất lượng, hiệu quả quản lý, hỗ trợ sinh viên nội trú của nhà trường - Hiện đại hóa nội dung và quá trình quản lý, hỗ trợ sinh viên của nhà trường c) C ơ c ấ u t ổ ch ứ c Cơ cấu tổ chức của Trung tâm hỗ trợ sinh viên được thể hiện ở bảng dưới đây: TT Họ và Tên Chức vụ Trình độ 1 Hồ Hữu Phước Q Giám đốc Thạc sĩ QLGD 2 Nguyễn Văn Nguyên Hải Phó Giám đốc Thạc sĩ 3 Nguyễn Danh Phương Nhân viên Cao đẳng 4 Nguyễn Thị Hiền Oanh CV 5 Lê Thanh Nguyệt Vũ Chuyên viên Trung cấp 6 Đoàn Thị Loan Nhân viên 7 Lê Chiến Thắng Chuyên viên Cử nhân 8 Lê Công Dũng Nhân viên bảo vệ 9 Nguyễn Thị Ngần Nhân viên phục vụ - 17 - 2 1 2 2 Các quy trình ho ạ t độ ng nghi ệ p v ụ Với chức năng, nhiệm vụ của mình, Trung tâm hỗ trợ sinh viên hiện có 23 quy trình hoạt động nghiệp vụ, trong đó có một số quy trình liên quan đến nghiệp vụ quản lý sinh viên nội trú theo danh mục sau: B ả ng 2 1: Danh m ụ c quy trình x ử lý nghi ệ p v ụ Qu ả n lý khu n ộ i trú TT Mã quy trình Tên quy trình 1 QT/07/TTHTSV Quy trình đăng ký ở nội trú 2 QT/08/TTHTSV Quy trình tổ chức quản lý khu nội trú 3 QT/09/TTHTSV Quy trình kiểm tra thực hiện nội qui ký túc xá 4 QT/10/TTHTSV Quy trình xử lý sinh viên vi phạm khu nội trú 5 QT/13/TTHTSV Quy trình thực hiện chế độ miễn giảm tại ký túc xá 6 QT/06/TTHTSV Đăng ký tạm trú, tạm vắng 7 QT/17/TTHTSV Quy trình thu, thanh quyết toán phí điện nước kí túc xá 8 QT/21/TTHTSV Quản lý lưu HS-SV Lào Trong đó, một số quy trình chủ yếu trong công tác quản lý sinh viên nội trú được chi tiết như sau: B ả ng 2 2: Quy trình đă ng ký ở n ộ i trú (QT/07/TTHTSV) TT Trách nhiệm Nội dung thực hiện Hồ sơ 1 CBQLKTX Nhận hồ sơ đăng ký: Cán bộ BQL KTX nhận đơn đăng ký vào ở khu nội trú (theo mẫu) của học sinh – sinh viên, kèm theo: - Giấy báo nhập học (photo) - Các loại giấy tờ khác như: Gia đình có công với cách mạng, con thương bệnh binh, gia đình liệt sỹ, diện dân tộc thiểu số, con mồ Phiếu đơn xin ở nội trú - 18 - TT Trách nhiệm Nội dung thực hiện Hồ sơ côi cả cha lẫn mẹ, nhiễm chất độc hóa học Thứ tự ưu tiên xem xét khi tiếp nhận HSSV vào ở nội trú trong trường hợp số người có nguyện vọng vào ở nội trú lớn hơn khả năng tiếp nhận của khu nội trú: - Anh hùng lực lượng vũ trang, Anh hùng lao động - Con liệt sĩ - Con thương binh và bệnh binh đã xếp hạng (xét theo thứ tự xếp hạng: 1/4, 2/4, 3/4, 4/4) - HSSV có hộ khẩu thường trú trước khi nhập học ở các địa phương thuộc khu vực 1 (vùng cao, vùng sâu, miền núi, hải đảo…), khu vực 2 - Con mồ côi cả cha lẫn mẹ - HSSV nữ - Người có hoàn cảnh khó khăn - HSSV có nhiều thành tích đóng góp trong công tác tập thể… - HSSV tham gia công tác lớp, Đoàn, Hội HS-SV Đội tự quản v v 2 CBQLKTX Ký hợp đồng ở nội trú: - Ký hợp đồng ở nội trú (theo mẫu) với sinh viên đăng ký - Biên bản nhận phòng và bàn giao tài sản trong phòng ở - Hợp đồng ở nội trú - Biên lai thu tiền ở nội trú - 19 - TT Trách nhiệm Nội dung thực hiện Hồ sơ - Sinh viên phải nắm rõ quy định ở nội trú 3 CBQLKTX Kiểm tra việc thực hiện các quy định ở nội trú: - Theo dõi việc thực hiện nội quy và các quy định ở nội trú - Theo dõi số lượng sinh viên vào ở và số sinh viên xin ra không ở nội trú trong từng tháng - Xử lý các hành vi làm hư hỏng và mất mát tài sản khu nội trú - Kiểm tra việc sử dụng điện, nước… - Biên bản - Sổ theo dõi - Biên bản 4 TBQLNT CBBQLNT HSSV Thanh lý hợp đồng: - Thanh lý hợp đồng - Biên bản giao trả phòng ở và tài sản - Sổ theo dõi - Biên bản 5 CBBQLNT Kế hạch trong tháng - Hàng tuần có kế hoạch tổ chức lao động cho HSSV trong khu nội trú - Thu tiền điện nước hàng tháng HSSV đã sử dụng - Chấm điểm phòng ở kiểu mẫu trong khu nội trú - Hàng tháng có kế hoạch họp phòng trưởng vào đầu tháng và thông qua đó giáo dục HSSV trong khu nội trú thực hiện nội quy phòng ở trong khu nội trú - Sổ theo dõi - Sổ thu tiền điện nước - Sổ chấm điểm - Sổ ghi biên bản - 20 - TT Trách nhiệm Nội dung thực hiện Hồ sơ 6 CBQLKTX HSSV Kết thúc học kỳ - Xếp điểm rèn luyện cho từng HSSV trong khu nội trú và chuyển về phòng CTSV - Trước khi nhận bàn giao phòng từ HSSV phải kiểm tra CSVC, vệ sinh trong phòng ở 7 CBQLKTX Lưu hồ sơ: - Thực hiện theo quy định của thủ tục quy trình kiểm soát hồ sơ Các hồ sơ nêu trên B ả ng 2 3: Quy trình t ổ ch ứ c qu ả n lý khu n ộ i trú (QT/08/TTHTSV) TT Trách nhiệm Nội dung thực hiện Hồ sơ 1 CBBQLNT - Có bảng hiệu tên theo thứ tự từng khu: C1, C2, C3, C4, C5 - Mỗi khu có một bảng nội qui KTX, một bảng thông báo Có hệ thống loa phát thanh - Có số phòng ở mỗi khu, có số giường ở mỗi phòng - Lập hồ sơ sinh viên ở theo phòng và khu nội trú - Lập sổ HSSV nội trú danh sách và có ảnh từng khu - Mỗi phòng bầu một phòng trưởng có biên bản - Có lịch phân công trực vệ sinh phòng hằng - Đơn xin ở nội trú - Hợp đồng ở nội trú - Sổ có ảnh sinh viên - Bảng nội qui phòng ở - 21 - TT Trách nhiệm Nội dung thực hiện Hồ sơ ngày ở mỗi phòng - Có bảng nội qui phòng ở - Mỗi sinh viên có một thẻ sinh viên nội trú 2 CBBQLNT - Thành lập 1 đội tự quản HSSV - Qui định chức năng nhiệm vụ đội tự quản - Có lịch phân công trực đội tự quản - Cán bộ quản lý khu nội trú chia lịch trực 24/24h - Quyết định thành lập đội tự quản 3 CBBQLNT - Kế hoạch HSSV các phòng làm vệ sinh khu nội trú mỗi tuần 1 lần - Xây dựng kế hoạch họp phòng trưởng mỗi tháng 1 lần - Kế hoạch kiểm tra việc thực hiện nội qui KTX định kỳ, đột xuất - Sổ theo dõi 4 LĐ TT CBBQLNT HSSV - Xử lý HSSV vi phạm nội qui khu nội trú - Khen thưởng những HSSV có thành tích trong các phong trào hoạt động nội trú - Biên bản, bảng kiểm điểm, sổ khen thưởng kỷ luật B ả ng 2 4: Quy trình thu, thanh quy ế t toán phí đ i ệ n n ướ c (QT/17/TTHTSV) TT Trách nhiệm Mô tả cách thức thực hiện Biểu mẫu/ hồ sơ 1 LĐ phòng Sau khi Tổng hợp xong bảng điện nước vào đầu tháng Ký bảng thu điện nước sau khi chuyên viên trình Ký bảng nộp tiền điện cho P KH-TC - 22 - TT Trách nhiệm Mô tả cách thức thực hiện Biểu mẫu/ hồ sơ 2 CB QL - Ghi chữ điện nước vào ngày cuối tháng - Gửi giấy báo đến các phòng sau khi CV làm xong giấy báo 3 CV - Lập bảng tỉnh điện nước sau khi CB QL ghi chữ số điện nước vào ngày cuối tháng - Xuất giấy báo điện nước - Nộp tiền điện cho nhà trường sau khi thu tiền xong - Nộp tiền nước cho nhà máy nước sau khi thu tiền xong Phiếu điện nước Bảng tính điện nước 4 Phòng Quản trị - Ghi chữ số điện tổng KTX vào ngày cuối tháng - Lập bảng thu tiền điện hàng tháng 5 Phòng KH_TC - Thu tiền điện theo bảng thu tiền điện của phòng Quản trị B ả ng 2 5: Quy trình qu ả n lý sinh viên Lào (QT/21/TTHTSV) TT Trách nhiệm Nội dung thực hiện Hồ sơ 1 CBQLKTX Nhận hồ sơ đăng ký: Có Quyết định tiếp nhận của BGH đối với Lưu HS-SV Cán bộ BQL KTX nhận đơn đăng ký vào ở khu nội trú (theo mẫu) của học sinh - sinh viên, kèm theo: Phiếu đơn xin ở nội trú 2 CBQLKTX Ký hợp đồng ở nội trú: - Ký hợp đồng ở nội trú (theo mẫu) với sinh viên đăng ký - Hợp đồng ở nội trú - 23 - TT Trách nhiệm Nội dung thực hiện Hồ sơ - Biên bản nhận phòng và bàn giao tài sản trong phòng ở - Sinh viên phải nắm rõ quy định ở nội trú 3 CBQLKTX Kiểm tra việc thực hiện các quy định ở nội trú: - Theo dõi việc thực hiện nội quy và các quy định ở nội trú - Theo dõi số lượng sinh viên vào ở và số sinh viên xin ra không ở nội trú trong từng tháng - Xử lý các hành vi làm hư hỏng và mất mát tài sản khu nội trú - Kiểm tra việc sử dụng điện, nước… 4 CBBQLNT HSSV Thanh lý hợp đồng: - Thanh lý hợp đồng hết học kỳ, hết năm học - Biên bản giao trả phòng ở và tài sản 5 CBBQLNT Kế hoạch trong tháng - Hàng tuần có kế hoạch tổ chức lao động cho HSSV trong khu nội trú - Thu tiền điện nước hàng tháng HSSV đã sử dụng - Chấm điểm phòng ở kiểu mẫu trong khu nội trú - Hàng tháng có kế hoạch họp phòng trưởng vào đầu tháng và thông qua đó giáo dục cho Lưu HSSV trong khu nội trú thực hiện nội quy phòng - 24 - TT Trách nhiệm Nội dung thực hiện Hồ sơ ở trong khu nội trú 6 CBQLKTX HSSV Kết thúc học kỳ - Xếp điểm rèn luyện cho từng HSSV trong khu nội trú và chuyển về phòng CTSV, các khoa - Trước khi nhận bàn giao phòng từ HSSV phải kiểm tra CSVC, vệ sinh trong phòng ở 7 CBQLKTX Lưu hồ sơ: - Thực hiện theo quy định của thủ tục quy trình kiểm soát hồ sơ Các hồ sơ nêu trên 2 1 3 Yêu cầu chức năng của bài toán - Nâng cao hiệu quả, giải quyết bớt áp lực cho Cán bộ quản lý trong việc quản lý sinh viên nội trú - Tối đa công tác tin học hóa việc quản lý ký túc xá, nâng cao sự tin học hóa nhà trường - Đáp ứng yêu cầu cần thiết quản lý sinh viên nội trú theo yêu cầu của Trung tâm hỗ trợ sinh viên nói riêng và của nhà trường nói chung 2 1 4 Yêu cầu phi chức năng của bài toán - Giao diện hài hòa, thẫm mỹ, dễ thao tác, thực hiện - Khi sinh viên thực hiện đăng ký vào ở KTX đảm bảo họ phải đọc kỹ nội quy của KTX - 25 - - Giải quyết được những vấn đề còn tồn tại của hệ thống cũ - Xây dựng trang web trong nguồn kinh phí cho phép 2 2 Mô hình hóa yêu cầu hệ thống 2 2 1 Xác định các tác nhân Ban quản lý KTX Sinh viên 2 2 2 Xác định các Use Case Hình 2 2: S ơ đồ các use case c ủ a h ệ th ố ng 2 2 3 Biểu đồ ca sử dụng tổng thể của hệ thống Đăng nhập hệ thống: mô tả người dùng (Ban Quản lý KTX), sinh viên đăng nhập vào hệ thống bằng tài khoản đã được tạo trước đó để thực hiện các chức năng đã được phân quyền của hệ thống Đăng ký sử dụng: mô tả việc Ban quản lý, sinh viên đăng ký tài khoản - 26 - để đăng nhập hệ thống Quản lý thông tin sinh viên: mô tả việc Ban Quản lý cập nhật thông tin của sinh viên Quản lý phòng: mô tả việc Ban Quản lý cập nhật các thông tin về phòng ở, tài sản có trong phòng ở và chuyển phòng ở cho Sinh viên Quản lý điện nước: mô tả việc Ban Quản lý cập nhật các thông tin về điện nước, thông báo phí điện nước hằng tháng cho Sinh viên Tìm kiếm: mô tả việc Ban Quản lý tìm kiếm các thông tin về sinh viên, hồ sơ đăng ký và phòng ở Thống kê báo cáo: mô tả việc Ban Quản lý thống kê về sinh viên, phòng ở, hồ sơ đăng ký; báo cáo các khoản thu 2 2 4 Đặc tả yêu cầu Tên Use-Case: Đăng nhập ID: 1 M ứ c độ quan tr ọ ng: Cao Tác nhân chính: Ban quản lý, Sinh viên Ki ể u Use-Case: Chi tiết, cần thiết Mô t ả v ắ n t ắ t: Ca sử dụng mô tả người dùng (Ban Quản lý KTX), sinh viên đăng nhập vào hệ thống bằng tài khoản đã được tạo trước đó để thực hiện các chức năng đã được phân quyền của hệ thống Kh ở i s ự : - Ban quản lý: đăng nhập vào hệ thống và thực hiện quản lý đăng ký ở KTX, quản lý thông tin sinh viên, quản lý phòng, quản lý khoản thu, tìm kiếm thông tin, thống kê báo cáo - Sinh viên: đăng nhập vào hệ thống và thực hiện chức năng đăng ký, xem chỉ số điện nước và các thông tin của KTX Các m ố i quan h ệ : Kết hợp (Association): Ban quản lý, sinh viên Bao hàm (Include): Kiểm tra tài khoản Mở rộng (Extend): - 27 - Khái quát hóa (Generalization): Các lu ồ ng s ự ki ệ n thông th ườ ng: 1 Ban quản lý, sinh viên đăng nhập vào hệ thống 2 Hệ thống kiểm tra tính hợp lệ của tài khoản (tên, mật mã và phân quyền) 3 Ban quản lý, sinh viên thoát khỏi hệ thống Các lu ồ ng s ự ki ệ n con: Các lu ồ ng s ự ki ệ n thay th ế /ngo ạ i l ệ : 3a Nếu tài khoản không hợp lệ thì hệ thống thông báo yêu cầu người dùng đăng nhập lại vào hệ thống hoặc tạo một mật khẩu mới (nếu quên mật khẩu) 3b Nếu là người dùng mới thì Ban quản lý có thể tạo một tài khoản truy cập mới 3c Thoát khỏi hệ thống - 28 - T ên Use-Case: Đăng ký sử dụng ID: 2 M ứ c độ quan tr ọ ng: Bình thường Tác nhân chính: Ban quản lý, sinh viên Ki ể u Use-Case: Chi tiết, cần thiết Mô t ả v ắ n t ắ t: Ca sử dụng mô tả người dùng tạo một tài khoản sử dụng để đăng nhập vào hệ thống Kh ở i s ự : Ban quản lý đăng ký tài khoản mới khi đăng nhập lần đầu tiên Các m ố i quan h ệ : Kết hợp (Association): Ban quản lý Bao hàm (Include): Mở rộng (Extend): Kiểm tra tài khoản Khái quát hóa (Generalization): Các lu ồ ng s ự ki ệ n thông th ườ ng: 1 Ban quản lý, sinh viên đăng ký mới tài khoản 2 Hệ thống kiểm tra tính hợp lệ về thông tin đăng ký của người dùng 3 Ban quản lý thoát khỏi hệ thống Các lu ồ ng s ự ki ệ n con: 2a Nếu thông tin đăng ký người dùng nhập vào hợp lệ thì hệ thống sẽ thông báo thành công cho người dùng Các lu ồ ng s ự ki ệ n thay th ế /ngo ạ i l ệ : 2a-1 Nếu thông tin tài khoản đăng ký không hợp lệ thì hệ thống thông báo yêu cầu người dùng đăng ký lại 2b Hủy đăng ký sử dụng - 29 - Tên Use-Case: Quản lý sinh viên ID: 3 M ứ c độ quan tr ọ ng: Bình thường Tác nhân chính: Ban quản lý Ki ể u Use-Case: Chi tiết Mô t ả v ắ n t ắ t: Ca sử dụng mô tả việc Ban Quản lý cập nhật thông tin của sinh viên Kh ở i s ự : - Ban quản lý đăng nhập vào hệ thống và cập nhật thông tin về một sinh viên Các m ố i quan h ệ : Kết hợp (Association): Ban quản lý Bao hàm (Include): Mở rộng (Extend): Khái quát hóa (Generalization): Các lu ồ ng s ự ki ệ n thông th ườ ng: 1 Ban quản lý chọn hiển thị thông tin sinh viên 2 Ban quản lý chọn cập nhật thông tin 3 Hệ thống kiểm tra tính hợp lệ của thông tin 4 Ban quản lý viên chấp nhận cập nhật 5 Hệ thống thực hiện cập nhật và gởi thông báo kết quả 6 Ban quản lý thoát khỏi hệ thống Các lu ồ ng s ự ki ệ n con: Các lu ồ ng s ự ki ệ n thay th ế /ngo ạ i l ệ : 3a Nếu thông tin không hợp lệ thì hệ thống thông báo yêu cầu người dùng cập nhật lại 3b Thoát khỏi hệ thống - 30 - Tên Use-Case: Quản lý Phòng ID: 4 M ứ c độ quan tr ọ ng: Cao Tác nhân chính: Ban quản lý Ki ể u Use-Case: Tổng quát, cần thiết Mô t ả v ắ n t ắ t: Ca sử dụng mô tả việc Ban Quản lý cập nhật các thông tin về phòng ở, tài sản có trong phòng ở và chuyển phòng ở cho Sinh viên Kh ở i s ự : BQL đăng nhập vào hệ thống và cập nhật thông tin về phòng ở trong KTX Các m ố i quan h ệ : Kết hợp (Association): Ban quản lý Bao hàm (Include): Mở rộng (Extend): Khái quát hóa (Generalization): Các lu ồ ng s ự ki ệ n thông th ườ ng: 1 Ban quản lý chọn hiển thị thông tin phòng ở 2 Ban quản lý chọn cập nhật thông tin phòng ở 3 Hệ thống kiểm tra tính hợp lệ của thông tin 4 Ban quản lý chấp nhận cập nhật 5 Hệ thống thực hiện cập nhật và gởi thông báo kết quả 6 Ban quản lý thoát khỏi hệ thống Các lu ồ ng s ự ki ệ n con: 2a Ban quản lý cập nhật thông tin riêng của phòng ở 2b Ban quản lý cập nhật tài sản của phòng ở 2c-1 Ban quản lý xem DS sinh viên của phòng ở 2c-2 Ban quản lý chuyển SV đến phòng ở mới còn trống Các lu ồ ng s ự ki ệ n thay th ế /ngo ạ i l ệ : 3a Nếu thông tin không hợp lệ thì hệ thống thông báo yêu cầu người dùng cập nhật lại 3b Hủy cập nhật - 31 - Tên Use-Case: Quản lý điện nước ID: 5 M ứ c độ quan tr ọ ng: Cao Tác nhân chính: Ban quản lý Ki ể u Use-Case: Tổng quát, cần thiết Mô t ả v ắ n t ắ t: Ca sử dụng mô tả việc Ban Quản lý cập nhật phí điện nước của phòng ở Kh ở i s ự : Ban quản lý đăng nhập vào hệ thống và cập nhật phí điện nước của sinh viên Các m ố i quan h ệ : Kết hợp (Association): Ban quản lý Bao hàm (Include): Mở rộng (Extend): Khái quát hóa (Generalization): Các lu ồ ng s ự ki ệ n thông th ườ ng: 1 Ban quản lý chọn hiển thị các khoản thu theo phòng 2 Ban quản lý chọn cập nhật phí điện nước 3 Ban quản lý chấp nhận cập nhật 4 Hệ thống thực hiện cập nhật và gởi thông báo kết quả 5 Ban quản lý thoát khỏi hệ thống Các lu ồ ng s ự ki ệ n con: 2a Ban quản lý cập nhật khoản thu phí nội trú theo sinh viên 2b Ban quản lý cập nhật khoản thu phí điện nước theo phòng Các lu ồ ng s ự ki ệ n thay th ế /ngo ạ i l ệ : - 32 - Tên Use-Case: Quản lý nhân viên ID: 6 M ứ c độ quan tr ọ ng: Cao Tác nhân chính: Ban quản lý Ki ể u Use-Case: Tổng quát, cần thiết Mô t ả v ắ n t ắ t: Ca sử dụng mô tả việc admin, giám đốc cập nhật thông tin về nhân viên trong KTX Kh ở i s ự : Ban quản lý đăng nhập vào hệ thống và cập nhật thông tin khi có thay đổi về nhân sự Các m ố i quan h ệ : Kết hợp (Association): Ban quản lý Bao hàm (Include): Mở rộng (Extend): Khái quát hóa (Generalization): Các lu ồ ng s ự ki ệ n thông th ườ ng: 1 Ban quản lý chọn yêu cầu quản lý nhân viên 2 Hệ thống thực hiện cập nhật và gởi kết quả 3 Ban quản lý thoát khỏi hệ thống Các lu ồ ng s ự ki ệ n con: 1a Ban quản lý chọn yêu cầu quản lý nhân viên 1b Ban quản lý chọn yêu cầu thêm nhân viên 1c Ban quản lý chọn yêu cầu xóa nhân viên Các lu ồ ng s ự ki ệ n thay th ế /ngo ạ i l ệ : - 33 - T ên Use-Case: Tìm kiếm ID: 2 M ứ c độ quan tr ọ ng: Bình thường Tác nhân chính: Ban quản lý, sinh viên Ki ể u Use-Case: Chi tiết, cần thiết Mô t ả v ắ n t ắ t: Ca sử dụng mô tả người đăng nhập vào hệ thống và thực hiện chức năng tìm kiếm Kh ở i s ự : Ban quản lý đăng nhập vào hệ thống và thực hiện tìm kiếm theo nhu cầu Các m ố i quan h ệ : Kết hợp (Association): Ban quản lý Bao hàm (Include): Mở rộng (Extend): Kiểm tra tài khoản Khái quát hóa (Generalization): Các lu ồ ng s ự ki ệ n thông th ườ ng: 1 Ban quản lý, sinh viên đăng nhập hệ thống 2 Hệ thống kiểm tra thông tin đầu vào người dùng nhập vào 3 Hệ thống trả lại kết quả tìm kiếm Các lu ồ ng s ự ki ệ n con: Các lu ồ ng s ự ki ệ n thay th ế /ngo ạ i l ệ : - 34 - 2 3 Mô hình hóa cấu trúc hệ thống 2 3 1 Xác định các lớp thực thể Dựa vào các quy tắc phân tích văn bản cũng như những yêu cầu của hệ thống, hệ thống bao gồm các lớp thực thể sau: - Lớp Sinh viên ( SinhVien ) gồm các thuộc tính: maSV: Mã sinh viên do nhà trường quy định tenSV: Họ tên sinh viên CMND: Chứng minh nhân dân của sinh viên ngaySinh: Ngày sinh gioiTinh: Giới tính lop: Lớp sinh viên đang học danToc: Dân tộc doiTuong: Đối tượng soDT: Số điện thoại diaChi: Địa chỉ eMail: Email khoaHoc: Khóa học ngayVao: Ngày được chấp nhận vào ở KTX - Lớp Nhân viên ( NhanVien ) gồm các thuộc tính: maSV: Mã sinh viên do nhà trường quy định tenSV: Họ tên sinh viên CMND: Chứng minh nhân dân của sinh viên ngaySinh: Ngày sinh gioiTinh: Giới tính danToc: Dân tộc doiTuong: Đối tượng soDT: Số điện thoại diaChi: Địa chỉ - 35 - eMail: Email - Lớp Phòng ( Phong ) gồm các thuộc tính: maPhong: Mã phòng khu: Phòng thuộc khu nào soGiuong: Số giường có thể dùng trong 1 phòng soSV: Số SV trong 1 phòng GioiTinh: Phòng này dành cho Nam hay Nữ - Lớp Phí hóa đơn điện nước(HoaDonDienNuoc) gồm có các thông tin sau: chiSoDienDau: Chỉ số điện đầu tháng chiSoDienCuoi: Chỉ số điện cuối tháng chiSoNuocDau: Chỉ số nước đầu tháng chiSoNuocCuoi: Chỉ số nước cuối tháng ngayThu: Ngày thu maSinhVien: sinh viên nộp phí điện nước maNhanVien: nhân viên lập hóa đơn - Lớp Tin tức(TinTuc) gồm có các thông tin sau: maTin: mã tin loaiTin: Loại tin tức noiDung: Nội dung tin maNhanVien: người đăng tin hinhAnh: hình của tin 2 3 2 Xác định các lớp biên Lớp biên là các lớp nhằm chuyển đổi thông tin giao tiếp giữa các tác nhân và hệ thống Đó chính là các giao diện để tác nhân giao tiếp với hệ thống, cho phép thu thập thông tin hay xuất các kết quả Mỗi cặp tác nhân-ca sử dụng có ít nhất 01 lớp biên - 36 - Dựa vào các ca sử dụng đã được xây dựng ở trên, hệ thống có các lớp biên như sau: Đố i v ớ i các s ử d ụ ng Đă ng nh ậ p: - I_NSD_DN: giao diện cho phép người dùng nhập vào các thông tin đăng nhập hệ thống Đố i v ớ i ca s ử d ụ ng Đă ng ký s ử d ụ ng: - Lớp I_NSD_DKTK: giao diện cho việc đăng ký một tài khoản mới của tác nhân Ban Quản lý KTX… Đố i v ớ i ca s ử d ụ ng Qu ả n lý thông tin sinh viên: - Lớp I_NSD_TTSV: giao diện chính giao tiếp giữa tác nhân Ban Quản lý KTX và hệ thống Đố i v ớ i ca s ử d ụ ng Qu ả n lý phòng: - Lớp I_QL_QLPhong: giao diện chính giao tiếp giữa tác nhân Ban Quản lý KTX và hệ thống - Lớp I_QL_Them_SuaPhong: giao diện cho phép cho phép tác nhân Ban quản lý KTX thêm/sửa một phòng - Lớp I_QL_Them_SuaTS: giao diện cho phép cho phép tác nhân Ban quản lý KTX thêm/sửa tài sản cho một phòng - Lớp I_QL_ChuyenSV: giao diện cho phép cho phép tác nhân Ban quản lý KTX xếp phòng, chuyển phòng cho sinh viên Đố i v ớ i ca s ử d ụ ng Qu ả n lý đ i ệ n n ướ c: - Lớp I_QL_QLKT: giao diện chính giao tiếp giữa tác nhân Ban Quản lý KTX và hệ thống - Lớp I_QL_PhiNT: giao diện cho phép tác nhân Ban quản lý KTX cập nhật giá điện nước - Lớp I_QL_PhiDN: giao diện cho phép tác nhân Ban quản lý KTX cập nhật lệ phí điện nước của sinh viên theo từng phòng Đố i v ớ i ca s ử d ụ ng Tìm ki ế m: - Lớp I_QL_TKBC: giao diện chính giao tiếp giữa tác nhân Sinh viên, Ban Quản lý KTX và hệ thống - 37 - - Lớp I_QL_TKSV: giao diện cho phép tác nhân Ban quản lý, sinh viên tìm kiếm sinh viên trong ký túc - Lớp I_QL_BCPDN: giao diện cho phép tác nhân Ban quản lý, sinh viên tìm phí Điện nước theo phòng 2 3 3 Xác định các lớp điều khiển Lớp điều khiển là các lớp điều hành sự diễn biến trong một ca sử dụng Các lớp điều khiển chứa các quy tắc nghiệp vụ và đứng trung gian giữa lớp biên và lớp thực thể, cho phép từ màn hình có thể truy xuất được các thông tin chứa trong các lớp thực thể Mỗi ca sử dụng có ít nhất một lớp điều khiển Các lớp điều khiển chính của hệ thống: - Lớp C_NSD_DK: lớp điều khiển cho ca sử dụng Đăng ký tài khoản - Lớp C_NSD_DN: lớp điều khiển cho ca sử dụng Đăng nhập hệ thống - Lớp C_QL_TTSV: lớp điều khiển cho ca sử dụng Quản lý thông tin sinh viên - Lớp C_QL_QLPhong: lớp điều khiển cho ca sử dụng Quản lý phòng - Lớp C_QL_QLKT: lớp điều khiển cho ca sử dụng Quản lý khoản thu - Lớp C_QL_TKBC: lớp điều khiển cho ca sử dụng Thống kê báo cáo - 38 - 2 3 4 Biểu đồ lớp Hình 2 3: S ơ đồ l ớ p 2 4 Mô hình hóa hành vi của hệ thống 2 4 1 Biểu đồ hoạt động Các biểu đồ hoạt động cho các phương thức chính của các lớp chính: a) Ph ươ ng th ứ c dangnhap() c ủ a l ớ p sinhvien, nhanvien: - 39 - Hình 2 4 : Bi ể u đồ ho ạ t độ ng cho ph ươ ng th ứ c đă ng nh ậ p - 40 - b) Ph ươ ng th ứ c dangky (SV đă ng ký ở KTX) c ủ a l ớ p SinhVien Hình 2 5 : Bi ể u đồ ho ạ t độ ng cho ph ươ ng th ứ c đă ng ký - 41 - c) Ph ươ ng th ứ c chuyenSV (chuy ể n phòng ở cho Sinh viên) c ủ a l ớ p SinhVien Hình 2 6 : Bi ể u đồ ho ạ t độ ng cho ph ươ ng th ứ c chuy ể n sinh viên - 42 - c) Ph ươ ng th ứ c tinhtiendiennuoc (tính ti ề n đ i ệ n n ướ c) c ủ a l ớ p HoaDonDienNuoc Hình 2 7 : Bi ể u đồ ho ạ t độ ng c ủ a ph ươ ng th ứ c tính ti ề n đ i ệ n n ướ c - 43 - 2 4 2 Biểu đồ tuần tự Một số biểu đồ tuần tự cho các ca sử dụng chính: a) Bi ể u đồ tu ầ n t ự cho ca s ử d ụ ng Đă ng nh ậ p: sd Dang nhap :I_NSD_DN :C_NSD_DN :TaiKhoan :NSD ycDangNhap() hienThiDangNhap() chonDangNhap(tenDN, matKhau) ycKiemTra(tenDN, matKhau) kiemTraTK(String, String) ketQua() ketQua() hienThiThongBao() - 44 - b) Bi ể u đồ tu ầ n t ự cho Ca s ử d ụ ng Qu ả n lý sinh viên sd QL thong tin SV :NSD :I_NSD_TTSV :I_NSD_SuaTT :C_NSD_TTSV :SinhVien :DSSV chonHienThiTTSV() ycHienThiTTSV() layDSSV() ketQua() ketQua() hienThiKQ() chonThem/SuaTTSV() hienThiThemSua() nhapTT() ycThem/SuaTTSV() capNhatSV(maSV) ketQua() ketQua() hienThiTB() - 45 - c) Bi ể u đồ tu ầ n t ự cho Ca s ử d ụ ng Qu ả n lý phòng sd QL Phong :I_QL_QLPhong :Ban Quan ly :I_QL_Them_SuaPhong :C_QL_QLPhong :Phong :DSPhong chonHienThiDSPhong() ycHienThiDSPhong() layDSPhong() ketQua() ketQua() hienThiDSPhong() chonThemSua() hienThiThemSua() nhapTT() ycThemSua() capNhatPhong() ketQua() ketQua() hienThiTB() - 46 - d) Đố i v ớ i ca s ử d ụ ng Qu ả n lý đ i ệ n n ướ c: sd Thu phi Dien nuoc :Ban Quan ly :I_QL_QLKT :I_QL_QLDN :C_QL_QLKT :PhiDienNuoc chonCapNhatDN() htCapNhat() chapNhan() ycCapNhat() capNhatPDN(maPhong) ketQua() ketQua() hienThiTB() 2 5 Thiết kế hệ thống 2 5 1 Thiết kế kiến trúc vật lý hệ thống Kiến trúc của ứng dụng website: Hình 2 8 : Ki ế n trúc c ủ a h ệ th ố ng - 47 - 2 5 2 Thiết kế chi tiết cơ sở dữ liệu 2 5 2 1 Mô hình quan h ệ Hình 2 9 Mô hình quan h ệ - 48 - 2 5 2 2 Chi ti ế t các b ả ng * B ả ng sinh viên: Tên Bảng : Sinh Viên Khoá Tên Trường Kiểu Dữ Liệu Độ Rộng Mô Tả Ràng buộc PK MaSV Nvachar 50 Mã sinh viên Tự động tăng FK MaNV Nvachar 50 Mã nhân viên FK MaPhong Nvachar 50 Mã phòng FK MaDTUT Nvachar 50 Mã đối tượng ưu tiên Tên Nvachar 50 Tên sinh viên Gioitinh bit Giới tính Diachi nvarchar 50 Địa chỉ Dienthoai number Số điện thoại Lop Nvachar 50 Lớp Ngaysinh Datime Ngày sinh * B ả ng Nhân Viên Tên Bảng : Nhân Viên Khoá Tên Trường Kiểu Dữ Liệu Độ Rộng Mô Tả Ràng buộc PK MaNV Nvachar 50 Mã nhân viên Tự tăng TenNV Nvachar 50 Tên nhân viên Gioitinh bit Giới tính Diachi nvarchar 50 Địa chỉ Dienthoai number Số điện thoại Chucvu Nvachar 50 Chức vụ Ngaysinh Datime Ngày sinh Taikhoan Nvachar 50 Tài khoản Password Nvachar 50 Mật khẩu - 49 - * B ả ng Hóa Đơ n: Tên Bảng : Hóa đơn Khoá Tên Trường Kiểu Dữ Liệu Độ Rộng Mô Tả Ràng buộc PK Mahoadon Int Mã hóa đơn Tự động tăng FK MaNV Nvachar 50 Mã nhân viên FK MaPhong Nvachar 50 Mã phòng Ngaylap Datetime Ngày lập Chisonuocdau Int Chỉ số nước đầu Chisonuoccuoi Int Chỉ số nước cuối Chisodiendau Int Chỉ số điện đầu Chisodiencuoi Int Chỉ số điện cuối Tinhtrang Bit Tình trạng * B ả ng Phòng: Tên Bảng : Phòng Khoá Tên Trường Kiểu Dữ Liệu Độ Rộng Mô Tả Ràng buộc PK Maphong Nvachar 50 Mã phòng FK MaNV Nvachar 50 Mã nhân viên Sogiuong Int Số giường SoSV Int Số sinh viên