Hiện nay các trường đại học phân bố trên cả nước không đồng đều chủ yếu được tập trung ở các thành phố lớn như Hà Nội, Hồ Chí Minh dẫn đến việc các bạn sinh viên phải đi học xa nhà có nhu cầu thuê các nhà/phòng trọ là rất lớn. Tuy nhiên chưa có một ứng dụng/ hệ thống nào để quản lý nhà trọ cũng như phục vụ nhu cầu tìm kiếm nhà trọ cho các bạn sinh viên/ người đi làm dẫn đến tình trạng đẩy giá thậm chí là lừa đảo trong lĩnh vực này. Cũng có một số công ty/ doanh nghiệp quan tâm nhưng còn chưa sát với thực trạng hiện nay cũng như còn thu phí cao khiến bản thân ứng dụng còn chưa sát với người dùn
TỔNG QUAN VỀ ĐỀ TÀI
Đặt vấn đề
Hiện nay, các trường đại học chủ yếu tập trung ở các thành phố lớn như Hà Nội và Hồ Chí Minh, dẫn đến nhu cầu thuê nhà trọ của sinh viên và người đi làm tăng cao Tuy nhiên, chưa có ứng dụng hay hệ thống nào hiệu quả để quản lý và tìm kiếm nhà trọ, gây ra tình trạng tăng giá và lừa đảo trong lĩnh vực này Mặc dù một số công ty đã quan tâm, nhưng họ vẫn chưa đáp ứng đúng nhu cầu thực tế và thường thu phí cao, khiến ứng dụng chưa thực sự phù hợp với người dùng.
Lý do chọn đề tài
Sau 5 năm học tập tại Đại học Mỏ - Địa Chất, tôi đã gặp không ít khó khăn trong việc tìm kiếm nhà trọ phù hợp Vì vậy, tôi tin rằng một ứng dụng giúp kết nối người tìm nhà trọ với người cho thuê sẽ rất hữu ích Chính lý do này đã thúc đẩy tôi chọn đề tài “Ứng dụng tìm kiếm, quản lý nhà trọ” cho đồ án tốt nghiệp của mình.
Mục tiêu của đề tài
Xây dựng một website hữu ích cho việc tìm kiếm và quản lý nhà trọ, mang tên “Hỗ trợ quản lý, tìm kiếm phòng trọ”, giúp người dùng tiết kiệm thời gian và lưu trữ thông tin một cách chính xác và cụ thể nhất.
Nội dung nghiên cứu
Để hoàn thiện được như mục tiêu đặt ra của đề tài, em sẽ tập trung nghiên cứu các nội dung sau:
- Nghiên cứu tổng quan về phát triển ứng dụng Web nói chung, Công nghệ ASP.NET CORE MVC
- Nghiên cứu cơ sở dữ liệu Microsoft SQL Server trong lưu trữ và quản lý dữ liệu
- Nghiên cứu ưng dụng và tích hợp bản đồ Google Maps trên nền Web
- Nghiên cứu quy trình, nghiệp vụ cho bài toán quản lý và tìm kiếm phòng trọ Đồ án tốt nghiệp ngành CNTT
Doãn Tường 11 Lớp Khoa học máy tính ƯD K61B
Phạm vi đề tài
Phạm vi không gian: Hà Nội và có thể là các tỉnh thành khác
Phạm vi nội dung: Người cho thuê trọ, người có nhu cầu thuê
Đối tượng sử dụng
Web của chúng tôi được thiết kế đặc biệt cho sinh viên và những người có thu nhập thấp, giúp họ dễ dàng kết nối với các chủ nhà cho thuê Nền tảng này mang lại giải pháp tiết kiệm thời gian và hiệu quả trong việc tìm kiếm chỗ ở phù hợp.
Các chức năng cần đạt được
Người quản trị trang admin thực hiện quản lý thông tin về danh sách các phòng trọ, danh sách người dùng và nhận xét về các phòng trọ
Thực hiện chỉnh sửa các thông tin về phòng trọ, người dùng, đánh giá của dùng về phòng trọ
Người quản trị quản lý , thống kê tình trạng người dùng
Người có nhu cầu thuê nhà trọ xem tin về các bài đã được đăng
Thực hiện tìm kiếm nhà trọ theo khu vực, khoảng giá và các loại phòng
Xem chi tiết về các nhà trọ để có cái nhìn tổng quan về nhà trọ mà người dùng đang quan tâm
Quản lý các bài đăng mà người dùng đã đăng tin
Người có nhu cầu cho thuê nhà trọ xem tin về các bài đã được đăng
Thực hiện tìm kiếm nhà trọ theo khu vực, khoảng giá và các loại phòng
Xem chi tiết về các nhà trọ để có cái nhìn tổng quan về nhà trọ mà người dùng đang quan tâm
Quản lý các bài đăng mà bản thân đã đăng tin
Thống kê thu nhập, tình trạng phòng trọ Đồ án tốt nghiệp ngành CNTT
Doãn Tường 12 Lớp Khoa học máy tính ƯD K61B
PHÂN TÍCH THIẾT KẾ HỆ THỐNG
Biểu đồ Use case ( Tổng quát )
Hình 2.1 Biểu đồ Use case chính
Quản trị viên có quyền quản lý thông tin người dùng, bao gồm dữ liệu cá nhân, thống kê số lượng nhà trọ, số lượng người sử dụng, doanh thu và các bài đăng của người dùng.
Chủ trọ có quyền đăng ký tài khoản và khôi phục mật khẩu nếu quên Họ có thể cho thuê nhà, quản lý danh sách phòng trọ, tính toán số tiền thu được và xem thống kê tiền phòng theo từng tháng.
Người thuê có quyền truy cập các bài đăng và để lại thông tin liên lạc cho những nhà trọ mà họ quan tâm.
Doãn Tường 13 Lớp Khoa học máy tính ƯD K61B
Quan hệ giữa các Use case
Hình 2.2 Use case quản lý người dùng
Use case này cho phép admin quản lý tất cả người dùng
Trong trường hợp sử dụng này, admin sẽ đăng nhập vào hệ thống để quản lý người dùng, bao gồm các chức năng thêm, sửa, và xóa Điều kiện tiên quyết là chỉ có admin mới có quyền thực hiện các thao tác này Đây là một phần quan trọng trong đồ án tốt nghiệp ngành Công nghệ Thông tin.
Doãn Tường 14 Lớp Khoa học máy tính ƯD K61B
Hình 2.3 Use case quản lý bài đăng
Use case này dùng để cho admin quản lý được thông tin các bài đăng một cách chính xác nhất
Quy trình sử dụng bắt đầu khi người dùng đăng tin, sau đó admin sẽ kiểm tra thông tin để xác định có vi phạm quy định của website hay không Nếu không có vi phạm, tin sẽ được duyệt và công khai.
Nếu người dùng đăng bài vi phạm nội quy, bài viết sẽ bị admin xóa Việc này chỉ thực hiện khi có sự cho phép của admin Đây là một phần quan trọng trong đồ án tốt nghiệp ngành CNTT.
Doãn Tường 15 Lớp Khoa học máy tính ƯD K61B
Hình 2.4 Use case quản lý thống kê
Use case có quyền quản lý danh sách tất cả các nhà trọ , chủ trọ , khách hàng và thống kê doanh thu
Use case này bắt đầu sau khi người dùng đăng nhập thành công vào hệ thống Hệ thống sẽ hiển thị trang chủ của web
Sau khi đăng nhập vào hệ thống, admin cần chọn mốc thời gian và nhấn nút tìm kiếm Hệ thống sẽ hiển thị danh sách các bảng thống kê tương ứng với khoảng thời gian đã chọn.
Người dùng bắt buộc phải chọn mốc thời gian thì hệ thống mới hiển thị danh sách thống kê Đồ án tốt nghiệp ngành CNTT
Doãn Tường 16 Lớp Khoa học máy tính ƯD K61B
Hình 2.5 Use case quản lý phòng trọ
Use case có quyền quản lý danh sách nhà trọ của bản thân
Use case này bắt đầu sau khi người dùng đăng nhập thành công vào hệ thống Hệ thống sẽ hiển thị trang chủ của web
Chủ trọ có quyền quản lý thông tin liên quan đến nhà trọ của mình, bao gồm việc thêm, cập nhật, tính tiền và xóa thông tin Điều kiện để thực hiện các quyền này là phải được cấp quyền chủ trọ.
Doãn Tường 17 Lớp Khoa học máy tính ƯD K61B
Hình 2.6 Use case tính tiền của chủ trọ
Use case này cho phép chủ trọ tính toán được giá tiền phòng trọ và quản lý được doanh thu của mình trên hệ thống
Chủ trọ chỉ cần nhấp chuột vào ô tính tiền, sau đó nhập số điện, số nước đã sử dụng và thêm các khoản phụ thu hàng tháng (nếu có) Khi nhấn vào tính tiền, hệ thống sẽ hiển thị số tiền chính xác nhất.
Luồng rẽ nhánh: Khi người dùng nhấn nút thoát hoặc trang chủ thì Use case kết thúc Đồ án tốt nghiệp ngành CNTT
Doãn Tường 18 Lớp Khoa học máy tính ƯD K61B
Hình 2.7 Use case người thuê
Use case này cho người dùng tìm kiếm nhanh chóng nhà trọ mình mong muốn
Khi người dùng nhấp chuột vào ô tìm kiếm, họ sẽ nhập từ khóa liên quan đến phòng trọ mong muốn Sau khi nhấn nút tìm kiếm, hệ thống sẽ hiển thị danh sách các phòng trọ phù hợp với từ khóa đã nhập.
Luồng rẽ nhánh: Khi người dùng nhấn nút thoát hoặc trang chủ thì Use case kết thúc Đồ án tốt nghiệp ngành CNTT
Doãn Tường 19 Lớp Khoa học máy tính ƯD K61B
Hình 2.8 Use case tìm kiếm
Use case này cho người dùng tìm kiếm nhanh chóng nhà trọ mình mong muốn
Khi người dùng nhấp chuột vào ô tìm kiếm và nhập từ khóa liên quan đến phòng trọ mong muốn, hệ thống sẽ hiển thị danh sách các phòng trọ phù hợp khi người dùng nhấn nút tìm kiếm.
Luồng rẽ nhánh: Khi người dùng nhấn nút thoát hoặc trang chủ thì Use case kết thúc Đồ án tốt nghiệp ngành CNTT
Doãn Tường 20 Lớp Khoa học máy tính ƯD K61B
Hình 2.9 Use case thông tin cá nhân
Use case này cho người dùng có thể thay đổi được thông tin cá nhân của bản thân khi mong muốn
Khi người dùng nhấp chuột vào mục cá nhân, hệ thống sẽ hiển thị thông tin của họ, cho phép người dùng thay đổi tất cả các thông tin liên quan đến bản thân.
Luồng rẽ nhánh: Khi người dùng nhấn nút thoát hoặc trang chủ thì Use case kết thúc Đồ án tốt nghiệp ngành CNTT
Doãn Tường 21 Lớp Khoa học máy tính ƯD K61B
Biểu đồ tuần tự
Hình 2.10 Biểu đồ đăng nhập Đồ án tốt nghiệp ngành CNTT
Doãn Tường 22 Lớp Khoa học máy tính ƯD K61B Đăng ký
Hình 2.11 Biểu đồ đăng ký Đồ án tốt nghiệp ngành CNTT
Doãn Tường 23 Lớp Khoa học máy tính ƯD K61B
Hình 2.12 Quên mật khẩu Đồ án tốt nghiệp ngành CNTT
Doãn Tường 24 Lớp Khoa học máy tính ƯD K61B
Hình 2.13 Biểu đồ tìm kiếm Đồ án tốt nghiệp ngành CNTT
Doãn Tường 25 Lớp Khoa học máy tính ƯD K61B
Hình 2.14 Biểu đồ báo cáo thống kê Đồ án tốt nghiệp ngành CNTT
Doãn Tường 26 Lớp Khoa học máy tính ƯD K61B
Hình 2.15 Biểu đồ thêm người dùng Đồ án tốt nghiệp ngành CNTT
Doãn Tường 27 Lớp Khoa học máy tính ƯD K61B
Hình 2.16 Biểu đồ sửa người dùng Đồ án tốt nghiệp ngành CNTT
Doãn Tường 28 Lớp Khoa học máy tính ƯD K61B
Hình 2.17 Biểu đồ xóa người dùng Đồ án tốt nghiệp ngành CNTT
Doãn Tường 29 Lớp Khoa học máy tính ƯD K61B
Hình 2.18 Biểu đồ thêm bài đăng Đồ án tốt nghiệp ngành CNTT
Doãn Tường 30 Lớp Khoa học máy tính ƯD K61B
Hình 2.19 Biểu đồ xóa bài đăng Đồ án tốt nghiệp ngành CNTT
Doãn Tường 31 Lớp Khoa học máy tính ƯD K61B
Thiết kế các bảng cơ sở dữ liệu cho hệ thống
Bảng Amounts: có chức năng tính toán được số tiền phòng trọ hàng tháng một cách chính xác đồng thời lưu trữ lại số liệu các tháng
STT Tên thực thể Kiểu dữ liệu Ràng buộc Mô tả
1 id uniqueidentifier Khóa chính Khóa chính của bảng
2 Motelld uniqueidentifier Not Null Nhà trọ
3 Power int Not Null Điện
4 Water int Not Null Nước
5 createdAt datetime2(7) Not Null Ngày tạo
6 updateAt datetime2(7) Not Null Ngày cập nhật
7 Surchage real Not Null Phụ thu
Bảng UserTokens: Có chức năng lưu token được sinh ra của user trong các phiên đăng nhập
STT Tên thực thể Kiểu dữ liệu Ràng buộc Mô tả
1 Userld nvarchar(450) Khóa chính Tên
2 Loginprovider nvarchar(450) Null Tài khoản đăng nhập
4 Value nvarchar(MAX) Not Null Giá trị
Bảng Customers: Có chức năng lưu danh sách khách hàng đã sử dụng hệ thống để đăng ký nhà trọ Đồ án tốt nghiệp ngành CNTT
Doãn Tường 32 Lớp Khoa học máy tính ƯD K61B
STT Tên thực thể Kiểu dữ liệu Ràng buộc Mô tả
1 id uniqueidentifier Khóa chính Khóa chính của bảng
2 Name nvarchar(MAX) Null Tên
3 Phonenumber nvarchar(MAX) Null Số điện thoại
4 Mail nvarchar(MAX) Null Mail
5 Dayofbirth datetime2(7) Null Ngày tháng năm sinh
6 identityNumber nvarchar(MAX) Null Liên hệ
7 Gender bit Null Giới tính
8 Address nvarchar(MAX) Null Địa chỉ
9 Provinceld uniqueidentifier Null Tỉnh / Thành phố
10 Districtld uniqueidentifier Null Huyện / Quận
11 Villageld uniqueidentifier Null Xã / Phường
12 Motelld uniqueidentifier Null Nhà trọ
13 Isactive bit Khóa ngoại Trạng thái
14 createdAt datetime2(7) Not Null Ngày tạo
15 updateAt datetime2(7) Not Null Ngày cập nhật
Bảng CustomerVehicles: Có chức năng lưu các phương tiện mà khách hàng sử dụng, để tiện quản lý tài sản của khách ở trọ
STT Tên thực thể Kiểu dữ liệu Ràng buộc Mô tả
1 id uniqueidentifier Khóa chính Khóa chính của bảng
2 customerld uniqueidentifier Null Khách hàng
3 vehicle nvarchar(MAX) Nott Null Phương tiện
4 createdAt datetime2(7) Null Ngày tạo
5 updatedAt datetime2(7) Null Ngày cập nhật Đồ án tốt nghiệp ngành CNTT
Doãn Tường 33 Lớp Khoa học máy tính ƯD K61B
Bảng Districts: Có chức năng lưu địa danh các quận/ huyện
STT Tên thực thể Kiểu dữ liệu Ràng buộc Mô tả
1 id uniqueidentifier Khóa chính Khóa chính của bảng
2 name nvarchar(MAX) Not Null Tên
3 mapcoordinate nvarchar(MAX) Not Null Map
4 Provinceld uniqueidentifier Null Khu vực
5 createdAt datetime2(7) Null Ngày tạo
6 UpdateAt datetime2(7) Null Ngày cập nhật
Bảng Files: Có chức năng lưu trữ đường dẫn các file như ảnh đại diện, ảnh nhà trọ
STT Tên thực thể Kiểu dữ liệu Ràng buộc Mô tả
1 id uniqueidentifier Khóa chính Khóa chính của bảng
2 fileName nvarchar(MAX) Not Null File tên
3 fileBath nvarchar(MAX) Not Null File
5 fileUrl nvarchar(MAX) Not Null File
6 Motelld uniqueidentifier Not Null Nhà trọ
7 Userld nvarchar(450) Not Null Tài khoản
8 Customerld uniqueidentifier Not Null Khách hàng
9 CreatedAt datetime2(7) Null Ngày tạo
10 updatedAt datetime2(7) Null Ngày cập nhật Đồ án tốt nghiệp ngành CNTT
Doãn Tường 34 Lớp Khoa học máy tính ƯD K61B
Bảng Motel: Có chức năng lưu thông tin nhà trọ
STT Tên thực thể Kiểu dữ liệu Ràng buộc Mô tả
1 id uniqueidentifier Khóa chính Khóa chính của bảng
2 Name nvarchar(MAX) Null Tên
3 Provinceid uniqueidentifier Not Null Tỉnh / Thành phố
4 Districtid uniqueidentifier Not Null Huyện / Quận
5 Villageid uniqueidentifier Not Null Xã / Phường
6 PriceMonth float Not Null Tiền phụ thu
7 PricePower float Null Tiền điện
8 PriceWater float Null Tiền nước
9 PriceDeposit float Null Tiền cọc
10 CarPark bit Not Null Chỗ để xe
11 TimeClosed nvarchar(MAX) Not Null Thời gian đóng cửa
12 TimeOpened nvarchar(MAX) Not Null Thời gian mở cửa
13 IsHome bit Not Null Nơi ở
14 IsActive bit Null Trạng thái
15 Description nvarchar(MAX) Not Null Mô tả nhà
16 MapCoordinate nvarchar(MAX) Not Null Map
17 IsSelfContained bit Not Null Trạng tái
16 UserId nvarchar(450) Not Null Tài khoản
19 CreatedAt datetime2(7) Null Ngày tạo
29 UpdatedAt datetime2(7) Null Ngày câp nhật Đồ án tốt nghiệp ngành CNTT
Doãn Tường 35 Lớp Khoa học máy tính ƯD K61B
Bảng Provinces: Có chức năng lưu địa danh thành phố
STT Tên thực thể Kiểu dữ liệu Ràng buộc Mô tả
1 id uniqueidentifier Khóa chính Khóa chính của bảng
2 name nvarchar(MAX) Not Null Tên
3 MapCoordinate nvarchar(MAX) Not Null Map
4 CreatedAt datetime2(7) Null Ngày tạo
5 UpdatedAt datetime2(7) Null Ngày cập nhật
Bảng RoleClaims: Có chức năng lưu trữ các thông tin được nén trong Payload của JWT Token
STT Tên thực thể Kiểu dữ liệu Ràng buộc Mô tả
1 id int Khóa chính Khóa chính của bảng
2 Roleld nvarchar(450) Null Vai trò
3 claimType nvarchar(MAX) Not Null Kiểu
4 claimValue nvarchar(MAX) Not Null Giá trị
Bảng Roles: Có chức năng lưu các vai trò của user như Onwers, Admin, Customer
STT Tên thực thể Kiểu dữ liệu Ràng buộc Mô tả
1 id nvarchar(450) Khóa chính Khóa chính của bảng
2 name nvarchar(256) Not Null Tên
3 normalzedName nvarchar(256) Not Null Tên
4 concurrencyStamp nvarchar(MAX) Not Null Tự sinh Đồ án tốt nghiệp ngành CNTT
Doãn Tường 36 Lớp Khoa học máy tính ƯD K61B
Bảng UserRoles: Bảng quan hệ giữa User và Role thể hiện Các user nằm trong Role và ngược lại
STT Tên thực thể Kiểu dữ liệu Ràng buộc Mô tả
1 Userld nvarchar(450) Khóa chính Tài khoản
2 Roleld nvarchar(450) Khóa phụ Vai trò
Bảng UserClaims: Lưu Claim của User
STT Tên thực thể Kiểu dữ liệu Ràng buộc Mô tả
1 id int Khóa chính Khóa chính của bảng
2 Userld nvarchar(450) Null Tài khoản
3 claimType nvarchar(MAX) Not Null Kiểu
4 claimValue nvarchar(MAX) Not Null Giá trị
Bảng UserLogin: Có chức năng lưu trữ thông tin về các phiên đăng nhập của Users
STT Tên thực thể Kiểu dữ liệu Ràng buộc Mô tả
1 LoginProvider nvarchar(450) Khóa chính Đăng nhập
2 ProviderKey nvarchar(450) Not Null Quên mật khẩu
3 ProviderDisplayName nvarchar(MAX) Not Null Tên đăng nhập
4 UserId nvarchar(450) Null Tài khoản Đồ án tốt nghiệp ngành CNTT
Doãn Tường 37 Lớp Khoa học máy tính ƯD K61B
Bảng Villages: Lưu địa danh xã phường
STT Tên thực thể Kiểu dữ liệu Ràng buộc Mô tả
1 id uniqueidentifier Khóa chính Khóa chính của bảng
2 Name nvarchar(MAX) Not Null Tên
3 MapCoordinate nvarchar(MAX) Not Null Map
4 Districtld uniqueidentifier Null Địa chỉ
5 CreatedAt datetime2(7) Null Ngày tạo
6 updatedAt datetime2(7) Null Ngày cập nhật Đồ án tốt nghiệp ngành CNTT
Doãn Tường 38 Lớp Khoa học máy tính ƯD K61B
Bảng User: Thông tin người dùng hệ thống
STT Tên thực thể Kiểu dữ liệu Ràng buộc Mô tả
1 id nvarchar(450) Khóa chính Khóa chính
2 name nvarchar(MAX) Not Null Tên
3 address nvarchar(MAX) Not Null Địa chỉ
4 role nvarchar(MAX) Not Null Vai trò
5 Provinceld uniqueidentifier Not Null Tỉnh / Thành phố
6 Districtld uniqueidentifier Not Null Huyện / Quận
7 Villageld uniqueidentifier Not Null Xã / Phường
8 createAt datetime2(7) Null Ngày tạo
9 userName nvarchar(256) Not Null Tên tài khoản
10 NormalizeduserName nvarchar(256) Not Null Tên
11 Email nvarchar(256) Not Null Email
12 NormalizedEmail nvarchar(256) Not Null Email
14 PasswordHash nvarchar(MAX) Not Null Mật khẩu
15 SecurityStamp nvarchar(MAX) Not Null Khóa
16 ConcurrencyStamp nvarchar(MAX) Not Null Khóa
17 PhoneNumber nvarchar(MAX) Not Null Số điện thoại
18 PhoneNumberConfirmed bit Null Tự sinh
19 TwoFactorEnabled bit Null Tự sinh
20 LockoutEnd datetimeoffset(7) Not Null Tự sinh
21 LockoutEnabled bit Null Tự sinh
22 AccessFailedCount int Null Đăng nhập thất bại Đồ án tốt nghiệp ngành CNTT
Doãn Tường 39 Lớp Khoa học máy tính ƯD K61B
Hình 2.20 Biểu đồ diagram Đồ án tốt nghiệp ngành CNTT
Doãn Tường 40 Lớp Khoa học máy tính ƯD K61B
MÔI TRƯỜNG PHÁT TRIỂN HỆ THỐNG
Ngôn ngữ C#
Tổng quan về ASP.NET MVC
Kể từ cuối thập niên 90, ASP (Active Server Page) đã trở thành lựa chọn phổ biến cho lập trình viên trong việc phát triển ứng dụng web động trên hệ điều hành Windows nhờ vào mô hình lập trình thủ tục đơn giản và khả năng sử dụng hiệu quả các đối tượng COM như ADO và FSO ASP hỗ trợ nhiều ngôn ngữ lập trình như VBScript và JavaScript, giúp tăng cường tính linh hoạt Tuy nhiên, ASP vẫn gặp một số khó khăn, bao gồm việc mã ASP và HTML thường lẫn lộn, gây khó khăn trong việc viết và trình bày code, đồng thời hạn chế khả năng tái sử dụng mã Thêm vào đó, việc không được biên dịch trước cũng khiến cho việc triển khai dễ bị mất source code.
ASP không hỗ trợ cache và không được biên dịch trước, dẫn đến hạn chế về tốc độ thực hiện và khó khăn trong quá trình xử lý Postback Vào đầu năm 2002, Microsoft đã giới thiệu ASP.Net, một kỹ thuật lập trình web mới, cho phép lập trình viên không cần phải biết các tag HTML hay thiết kế web, đồng thời hỗ trợ mạnh mẽ lập trình hướng đối tượng ASP.Net là công nghệ phát triển ứng dụng web phía Server, dựa trên nền tảng Net Framework của Microsoft Những người mới bắt đầu thường tìm hiểu các kỹ thuật Client-side như HTML, JavaScript, và CSS Khi một trình duyệt yêu cầu một trang web, web server sẽ tìm và gửi trang đó đến Client Ngược lại, ASP.Net thực hiện mã lệnh tại web server, biên dịch và thi hành mã lệnh trước khi gửi kết quả về dưới dạng HTML/JavaScript/CSS cho Client Tất cả các xử lý trong ASP.Net đều diễn ra tại server, xác định rõ ràng đây là kỹ thuật lập trình phía server.
Doãn Tường 41 Lớp Khoa học máy tính ƯD K61B
Những ưu điểm của ASP NET
ASP.Net cho phép bạn lựa chọn một trong các ngôn ngữ lập trình mà bạn yêu thích: Visual Basic.Net, J#, C#,…
Trang ASP.Net được biên dịch trước, cho phép chuyển đổi các trang web động thành tập tin DLL, giúp máy chủ thực thi nhanh chóng và hiệu quả Đây là một cải tiến lớn so với kỹ thuật thông dịch của ASP.
ASP.NET cung cấp một bộ thư viện phong phú và đa dạng từ NET Framework, hỗ trợ mạnh mẽ trong việc làm việc với XML, Web Service và truy cập cơ sở dữ liệu thông qua ADO.NET.
ASPX và ASP có thể cùng hoạt động trong 1 ứng dụng
ASP.Net sử dụng phong cách lập trình mới: Code behide Tách code riêng, giao diện riờng ẻ Dễ đọc, dễ quản lý và bảo trỡ
Kiến trúc lập trình giống ứng dụng trên Windows
Hỗ trợ quản lý trạng thái của các control
Tự động phát sinh mã HTML cho các Server control tương ứng với từng loại Browser
Hỗ trợ nhiều cơ chế cache
1 Không cần lock, không cần đăng ký DLL
2 Cho phép nhiều hình thức cấu hình ứng dụng
Hỗ trợ quản lý ứng dụng ở mức toàn cục Đồ án tốt nghiệp ngành CNTT
Doãn Tường 42 Lớp Khoa học máy tính ƯD K61B
1 Global.aspx có nhiều sự kiện hơn
2 Quản lý session trên nhiều Server, không cần Cookies
Quá trình xử lý tệp tin ASPX
Khi web server nhận yêu cầu từ client, nó tìm kiếm tập tin theo chuỗi URL được gửi và tiến hành xử lý yêu cầu.
Hình 3.2 Quá trình xử lý tập tin ASPX
Entity framework
Entity Framework được phát hành lần đầu tiên vào năm 2008, nó là phương tiện tương tác chính giữa NET và cơ sở dữ liệu quan hệ
Entity Framework là một công cụ ORM (Object-Relational Mapping) giúp đơn giản hóa việc ánh xạ giữa các đối tượng trong ứng dụng và các bảng, cột của cơ sở dữ liệu quan hệ.
Entity Framework (EF) là một framework ORM mã nguồn mở độc lập với .NET Framework Đồ án tốt nghiệp ngành CNTT
Doãn Tường 43 Lớp Khoa học máy tính ƯD K61B
Entity Framework chịu trách nhiệm thiết lập kết nối với cơ sở dữ liệu, thực thi các lệnh và truy vấn, đồng thời tự động ánh xạ kết quả truy vấn thành các đối tượng trong ứng dụng của bạn.
Entity Framework giúp theo dõi các thay đổi của đối tượng và cập nhật các thay đổi trở lại cơ sở dữ liệu cho bạn
Hình 3.3 Entity Framework Các tính năng
Entity Framework có nhiều tính năng cơ bản quan trọng, bao gồm khả năng quản lý dữ liệu một cách hiệu quả, hỗ trợ truy vấn LINQ, và tự động hóa việc tạo cơ sở dữ liệu từ mô hình Danh sách này được tổng hợp từ những tính năng nổi bật nhất và các câu hỏi thường gặp liên quan đến Entity Framework.
Entity Framework là một công cụ của Microsoft
Entity Framework đang được phát triển như một sản phẩm mã nguồn mở
Entity Framework không còn bị ràng buộc hoặc phụ thuộc vào chu kỳ phát hành của NET Framework
Làm việc với bất kỳ cơ sở dữ liệu quan hệ nào có hợp lệ nào có Entity Framework provider hợp lệ
Tạo truy vấn SQL từ LIQN to Entities
Entity Framework sẽ tạo các truy vấn có tham số
Theo dõi các thay đổi của các đối tượng trong bộ nhó Đồ án tốt nghiệp ngành CNTT
Doãn Tường 44 Lớp Khoa học máy tính ƯD K61B
Cho phép tạo thêm câu lệnh, nâng cấp và xóa
Entity Framework hỗ trợ stored procedure
Kiến trúc của Entity Framework có hình như sau:
Hình 3.4 Kiến trúc Entity Framework
The application layer serves as the user interface, which can be either a web application or a Windows Forms application This layer typically employs the Repository pattern to interact with the database using Entity Framework.
Object Services là lớp trung gian giữa ứng dụng và cơ sở dữ liệu, đảm nhiệm việc truy cập và trả kết quả dữ liệu về giao diện Nó cung cấp các công cụ hữu ích để theo dõi và cập nhật các thay đổi trong cơ sở dữ liệu.
Doãn Tường 45 Lớp Khoa học máy tính ƯD K61B
The EntityClient Data Provider serves as a layer that facilitates connections and translates entity queries into data source queries, returning data rendered for Entity Framework (EF) to convert entities into objects This component connects with the ADO.NET Data Provider to send or retrieve data from the database.
The Entity Data Model consists of three main components: the Conceptual Schema Definition Language (CSDL), the Mapping Specification Language (MSL), and the Store Schema Definition Language (SSDL) Unlike the EntityClient Data Provider, the Entity Data Model utilizes LINQ as an interactive query language for database interactions.
Mô hình khái niệm (CSDL)
Mô hình khái niệm chứa các lớp mô hình vmối quan hệ giữa các lớp này Nó độc lập với mô hình quan hệ các bảng trong database
Mô hình lưu trữ (SSDL)
Mô hình lưu trữ là một thiết kế cơ sở dữ liệu bao gồm các bảng, view, stored procedure và các mối quan hệ giữa chúng cùng với khóa Mô hình này tương tự như mô hình quan hệ của các bảng trong cơ sở dữ liệu.
Mô hình ánh xạ ( MSL)
Mô hình ánh xạ gồm thông tin về các mô hình khái niệm được ánh xạ đến mô hình lưu trữ.
Visual Studio 2019
Visual Studio IDE, developed by Microsoft, is a comprehensive software development toolset utilized by programmers for building applications.
Visual Studio, phiên bản đầu tiên được phát hành vào năm 1997, bao gồm hai phiên bản là Professional và Enterprise Từ đó đến nay, Visual Studio đã trải qua nhiều giai đoạn phát triển với các phiên bản nổi bật như Visual Studio 2005, VS2008, VS2010, VS2012, VS2013, VS2017 và VS2019 Mỗi phiên bản đều mang đến nhiều công nghệ và tính năng mới, phục vụ cho nhu cầu phát triển phần mềm ngày càng cao của ngành Công nghệ Thông tin.
Doãn Tường 46 Lớp Khoa học máy tính ƯD K61B
Người dùng có thể tải phiên bản Visual Studio Community miễn phí cho mục đích nghiên cứu và giáo dục, vì phiên bản này cung cấp đầy đủ các tính năng cần thiết để hỗ trợ quá trình học tập.
Trang chủ của Visual Studio: https://www.visualstudio.com
Hình 3.5 Visual studio Các chức năng của Visual Studio
Hình 3.6 Chức năng Visual Studio Đồ án tốt nghiệp ngành CNTT
Doãn Tường 47 Lớp Khoa học máy tính ƯD K61B
Hình trên là giao diện làm việc của 1 project WPF không gian làm việc tương tự đối với những project khác:
Vùng 1: Toolbox - đây là vùng chứa tất cả các control có thể sử dụng cho project, có thể kéo thả những control này sang vùng 2 và vùng 3
Vùng 2: Design - vùng hiển thị kết quả (giao diện) từ mã giao diện, có những loại project không có vùng làm việc này như Console App
Vùng 3: vùng viết mã nguồn (coding)
Vùng 4: nơi xuất ra những thông báo trong quá trình biên dịch, các lỗi cú pháp phát sinh trong quá trình viết mã
Vùng 5: Solution Explorer - vùng quản lý các file trong project đang làm việc
Các vùng làm việc này có thể kéo thả để thay đổi vị trí, khá là linh hoạt, tùy theo sở thích hay thói quen của người dùng
Những tiện ích mà Visual Studio cung cấp
Hỗ trợ viết mã nhanh chóng
Việc viết mã trên Notepad hoặc Notepad++ có thể gây khó khăn cho lập trình viên, như việc quên tên hàm, chức năng của hàm và các tham số của hàm Trong khi đó, Visual Studio cung cấp tính năng IntelliSense, giúp gợi ý ngay lập tức khi gõ tên biến và hàm, mang lại hiệu suất cao và trải nghiệm trực quan hơn.
Hay sử dụng các phím tắt để phát sinh code, ví gõ cw sau đó nhấn TAB TAB, Visual Studio tự phát sinh code là: System.Console.WriteLine()
Ngoài ra để tạo 1 thuộc tính trong class, chỉ cần gõ là prop TAB TAB, Visual Studio cũng tự phát sinh code Đồ án tốt nghiệp ngành CNTT
Doãn Tường 48 Lớp Khoa học máy tính ƯD K61B
Code sau khi phát sinh: public int MyProperty { get; set; }
Ngoài ra có thể cài thêm 1 số extension hỗ trợ quản lý và viết mã tốt hơn như:
Visual Assist: extension hỗ trợ với ngôn ngữ C++
ReSharper: extension hỗ trợ các ngôn ngữ thuộc NET
Công cụ Debug mạnh mẽ
Visual Studio IDE là công cụ hỗ trợ Debug mạnh mẽ nhất, cho phép kiểm tra giá trị của biến không chỉ qua các hàm như printf, cout, Console.WriteLine, và Debug.WriteLine, mà còn qua từng câu lệnh nhờ vào tính năng breakpoints Để đặt breakpoint, người dùng có thể thực hiện theo hai cách đơn giản.
Cách 1: nhấn chuột vào ngay bên mép trái dòng muốn debug
Để debug trong đồ án tốt nghiệp ngành CNTT, bạn có thể di chuyển chuột đến dòng mã cần kiểm tra và nhấn phím tắt F9 Sau đó, để xem kết quả, hãy nhấn phím F5 để chạy chương trình ở chế độ debug.
Doãn Tường 49 Lớp Khoa học máy tính ƯD K61B
Khi chương trình khởi chạy thì chương trình sẽ dừng lại ở dòng số 26, có thể sử dụng phím F10 để chạy từng dòng lệnh
Go To Definition to class và function
Khi lập trình, việc tìm kiếm các class và phương thức để sửa mã khi phát sinh lỗi là điều cần thiết Tuy nhiên, quá trình này có thể mất nhiều thời gian, đặc biệt khi dự án có nhiều file Để khắc phục vấn đề này, Visual Studio cung cấp tính năng Go To Definition, giúp lập trình viên dễ dàng truy cập vào định nghĩa của các thành phần trong mã nguồn.
Tính năng này được sử dụng rất nhiều trong khi viết mã, giả sử cần khảo sát class StreamWriter từ khai báo sau:
You can place the mouse cursor over the class name StreamWriter and press F12 for Visual Studio to navigate directly to the StreamWriter class, or you can right-click and select "Go To Definition."
Ngoài tính năng Go To Definition đến class thì Visual Studio còn hỗ trợ Go
Để định nghĩa các phương thức và cách thực hiện tương tự như đối với lớp, bạn có thể nhấn F12 khi đặt con trỏ chuột vào vị trí gọi phương thức, hoặc nhấn chuột phải vào tên phương thức và chọn "Đi đến định nghĩa".
SQL Sever
SQL Server là hệ thống quản lý cơ sở dữ liệu quan hệ (RDBMS) nổi bật, hỗ trợ nhiều quy trình giao dịch, ứng dụng doanh nghiệp và phân tích dữ liệu trong các công ty công nghệ thông tin Đây là một trong ba công nghệ dữ liệu hàng đầu hiện nay, bên cạnh Oracle Database và IBM’s DB2.
Doãn Tường 50 Lớp Khoa học máy tính ƯD K61B
Microsoft SQL Server, giống như các phần mềm RDBMS khác, được xây dựng trên ngôn ngữ SQL - tiêu chuẩn lập trình cho quản trị viên cơ sở dữ liệu (DBAs) và chuyên gia CNTT để quản lý và truy vấn dữ liệu SQL Server thường được liên kết với Transact-SQL (T-SQL), một phiên bản mở rộng của SQL do Microsoft phát triển, cung cấp thêm các chức năng lập trình nâng cao.
SQL Server được phát triển từ ngôn ngữ SEQUEL2 bởi IBM vào những năm 70, theo mô hình Codd tại trung tâm nghiên cứu ở California, nhằm phục vụ cho hệ thống quản lý cơ sở dữ liệu lớn Ban đầu, SQL Server chỉ được sử dụng trên các máy đơn lẻ, nhưng với sự gia tăng nhu cầu xây dựng cơ sở dữ liệu lớn theo mô hình khách-chủ, tất cả dữ liệu được tập trung trên máy chủ, và các thao tác xử lý dữ liệu được thực hiện thông qua các lệnh SQL Ngày nay, SQL đóng vai trò quan trọng trong các ngôn ngữ lập trình bậc cao, đặc biệt trong lĩnh vực phát triển Internet, nơi nó được sử dụng để nhanh chóng tạo ra các trang web động.
SQL đã được ANSI và ISO công nhận là ngôn ngữ chuẩn cho cơ sở dữ liệu quan hệ, tuy nhiên, tiêu chuẩn này vẫn chưa hoàn thiện 100% Do đó, việc sử dụng SQL trong các ngôn ngữ lập trình vẫn còn nhiều thách thức, đặc biệt trong các đồ án tốt nghiệp ngành CNTT.
Doãn Tường 51, lớp Khoa học máy tính ƯD K61B, đã mở rộng và bổ sung các chuẩn SQL để phù hợp với ứng dụng của mình Điều này dẫn đến sự khác biệt rõ rệt giữa các loại SQL.
SQL Server cơ bản sử dụng cấu trúc bảng biểu, kết nối các dòng dữ liệu liên quan từ nhiều bảng khác nhau, giúp giảm thiểu việc lưu trữ dữ liệu ở nhiều vị trí trong cơ sở dữ liệu Mô hình quan hệ cung cấp các tham chiếu và ràng buộc toàn vẹn, duy trì độ chính xác của dữ liệu và thúc đẩy tuân thủ các nguyên tắc về tính nhất quán, tính độc lập và độ tin cậy Những yếu tố này, được gọi chung là thuộc tính ACID, đảm bảo rằng các giao dịch cơ sở dữ liệu được xử lý một cách ổn thỏa.
Hình 3.8 Cấu trúc SQL Đặc điểm và các phiên bản của SQL Sever Đặc điểm
Hình 3.9 Giao diện SQL Đồ án tốt nghiệp ngành CNTT
Doãn Tường 52 Lớp Khoa học máy tính ƯD K61B
SQL là ngôn ngữ tựa tiếng Anh
SQL là một ngôn ngữ phi thủ tục, không yêu cầu người dùng phải xác định cách thức truy cập cơ sở dữ liệu Các câu lệnh SQL rất dễ sử dụng và có khả năng mắc lỗi thấp.
SQL cung cấp tập lệnh phong phú cho các công việc hỏi đáp DL
Chèn, cập nhật, xoá các hàng trong một quan hệ
Tạo, sửa đổi, thêm và xoá các đối tượng trong của CSDL
Điều khiển việc truy nhập tới cơ sở dữ liệu và các đối tượng của CSDL để đảm bảo tính bảo mật của cơ sở DL
Đảm bảo tính nhất quán và sự ràng buộc của CSDL
Yêu cầu duy nhất để sử dụng cho các hỏi đáp là phải nắm vững được các cấu trúc CSDL của mình
Phiên bản Enterprise của SQL Server tích hợp đầy đủ các tính năng nổi bật, bao gồm nhân bộ máy cơ sở dữ liệu, các dịch vụ đi kèm và công cụ quản lý phân cụm Nó có khả năng quản lý cơ sở dữ liệu lớn lên đến 524 petabytes, hỗ trợ 12 terabytes bộ nhớ và tối đa 640 bộ vi xử lý, mang lại hiệu suất cao cho các ứng dụng doanh nghiệp.
The Standard Edition is an ideal choice for small to medium-sized businesses due to its lower cost compared to the Enterprise Edition However, it does have limitations in terms of advanced features This edition is capable of operating efficiently on systems with up to 4 CPUs and 2 GB of RAM.
Phiên bản Developer cung cấp đầy đủ các tính năng của Enterprise Edition nhưng được thiết kế đặc biệt với giới hạn số lượng người kết nối vào Server cùng một lúc Đây là phiên bản lý tưởng cho việc phát triển và kiểm tra ứng dụng, phù hợp cho cá nhân và tổ chức trong quá trình xây dựng và thử nghiệm sản phẩm Đặc biệt, phiên bản này hoàn toàn MIỄN PHÍ.
Phiên bản SQL Server Workgroup cung cấp các chức năng cơ bản của cơ sở dữ liệu nhưng không bao gồm các dịch vụ bổ sung Lưu ý rằng phiên bản này đã không còn tồn tại kể từ SQL Server 2012.
Doãn Tường 53 Lớp Khoa học máy tính ƯD K61B
SQL Server Express là một công cụ quản trị cơ sở dữ liệu dễ sử dụng, phù hợp cho việc phát triển ứng dụng dữ liệu nhờ vào sự tích hợp với Microsoft Visual Studio Nó đảm bảo an toàn trong việc lưu trữ dữ liệu và cho phép triển khai nhanh chóng, là lựa chọn lý tưởng cho đồ án tốt nghiệp ngành CNTT.
Doãn Tường 54 Lớp Khoa học máy tính ƯD K61B
XÂY DỰNG HỆ THỐNG WEBSITE
Xây dựng chức năng và giao diện
Nguyên tắc thiết kế giao diện
Sử dụng từ ngữ mang tính đại chúng
Tất cả từ ngữ trên một trang web chuyên nghiệp cần phải rõ ràng, chính xác về chính tả và ngữ pháp Nên tránh sử dụng ẩn dụ và các thuật ngữ phức tạp, đồng thời hạn chế từ ngữ địa phương để đảm bảo tính phổ quát.
Sử dụng từ ngữ phổ biến một cách hợp lý giúp trang web thu hút người truy cập và giữ chân họ lâu hơn, từ đó tăng doanh thu và lượng khách hàng.
Khách hàng khi truy cập website chưa biết về thương hiệu và sản phẩm của bạn, vì vậy cần sử dụng ngôn từ súc tích, rõ ràng và dễ hiểu để thu hút sự chú ý của họ.
Phân bổ bố cục nội dung hợp lý
Người truy cập có thể truy cập trang web từ nhiều thiết bị khác nhau như điện thoại, laptop, máy tính bàn và smart TV Do đó, việc phân bổ nội dung kỹ thuật trên các thiết bị là rất quan trọng Trình bày quá nhiều nội dung trên một trang sẽ gây rối và không hợp lý, trong khi để lại quá nhiều khoảng trống cũng làm người dùng cảm thấy khó chịu Những vấn đề này có thể dẫn đến việc giảm lượt tương tác của khách hàng.
Nên tìm hiểu các ý kiến chuyên gia từ các đơn vị thiết kế giao diện website chuyên nghiệp để biết thêm và nhờ họ tư vấn giúp đỡ
Tránh lạm dụng hiệu ứng hình ảnh
Hiện nay, nhiều website lạm dụng hiệu ứng hình ảnh động, JavaScript hoặc Flash để tạo ra những hiệu ứng bắt mắt Tuy nhiên, cần phải biết tiết chế để tránh làm cho trang web trở nên rối mắt và mất tập trung, giống như một trang PowerPoint vụng về.
Tùy thuộc vào đối tượng mà trang web phục vụ, hãy lựa chọn hình ảnh và hiệu ứng phù hợp Nên làm nổi bật những nội dung quan trọng để khách hàng dễ dàng tập trung vào thông điệp và sản phẩm mà doanh nghiệp muốn truyền tải.
Doãn Tường 55 Lớp Khoa học máy tính ƯD K61B
Luôn luôn theo dõi quá trình web vận hành
Luôn theo dõi và khắc phục các lỗ hổng trên trang web ngay khi phát hiện Đồng thời, cần kiểm tra thường xuyên các thông số của trang web để đảm bảo hoạt động hiệu quả và đúng cách.
Tương thích mọi loại thiết bị
Nhiều trang web hiện nay được thiết kế kém, chỉ hoạt động tốt trên laptop nhưng gặp lỗi giao diện khi truy cập từ điện thoại, hoặc không tương thích với các trình duyệt web khác nhau.
Yếu tố độ phân giải màn hình và sự tương thích với các trình duyệt ảnh hưởng lớn đến website của bạn, có thể làm hỏng bố cục Vì vậy, lập trình viên cần chú ý đến vấn đề này để đảm bảo website được thiết kế chuẩn, tương thích với nhiều độ phân giải màn hình khác nhau.
Một trang web chuyên nghiệp cần phải chuẩn SEO để đứng đầu trong các công cụ tìm kiếm như Google, Yahoo hay Bing Để được xếp hạng cao, các bộ máy tìm kiếm sẽ xem xét nội dung của website và xác định xem nó có phù hợp với đối tượng khách hàng mục tiêu hay không Do đó, trang web cần đáp ứng các tiêu chí đánh giá của các công cụ tìm kiếm, bao gồm việc lặp lại các từ khóa tìm kiếm trong nội dung bài viết và đảm bảo hình ảnh rõ ràng, thống nhất.
Tối ưu thời gian tải trang
Để tối ưu hóa trải nghiệm người dùng, thiết kế giao diện website cần chú trọng đến thời gian tải trang Tránh việc chèn quá nhiều GIF, video hay audio; thay vào đó, hãy lựa chọn hình ảnh và nội dung đa phương tiện một cách hợp lý Việc này không chỉ giúp trang web tải nhanh hơn mà còn nâng cao chất lượng bài viết.
Có thể cài đặt các công cụ hỗ trợ để điều chỉnh dung lượng file media, giúp tối ưu hóa không gian lưu trữ của website.
Doãn Tường 56 Lớp Khoa học máy tính ƯD K61B
Thiết kế giao diện
Trang chủ của website cho phép người dùng/người cho thuê tìm kiếm thông tin các phòng trọ
- Tìm kiếm theo địa chỉ (phường, quận)
- Tìm kiếm theo khoảng giá cho thuê
- Tìm kiếm theo loại phòng trọ
Kết quả trả về khi tìm kiếm sẽ hiển thị trên bản đồ để người dùng/ người cho thuê dễ dàng thấy được
Hình 4.1 Giao diện Trang chủ Đồ án tốt nghiệp ngành CNTT
Doãn Tường 57 Lớp Khoa học máy tính ƯD K61B
Chủ trọ cần nhập thông tin đăng nhập vào hệ thống Sau khi điền đầy đủ thông tin, hệ thống sẽ kiểm tra tính chính xác; nếu đúng, tài khoản sẽ đăng nhập thành công, ngược lại, nếu sai, hệ thống sẽ thông báo lỗi và không cho phép đăng nhập.
Hình 4.2 Giao diện Đăng nhập Giao diện Đăng ký
Người dùng cần nhập đầy đủ thông tin vào các ô yêu cầu; nếu để trống, hệ thống sẽ thông báo lỗi và yêu cầu nhập lại Sau khi hoàn tất, hệ thống sẽ kiểm tra tính hợp lệ của dữ liệu so với cơ sở dữ liệu Nếu thông tin đúng, hệ thống sẽ hiển thị thông báo "Đăng ký thành công" và chuyển hướng về trang đăng nhập ban đầu.
Doãn Tường 58 Lớp Khoa học máy tính ƯD K61B
Hình 4.3 Giao diện Đăng ký Giao diện quên mật khẩu
Người dùng nhập tên đăng nhập sau đó hệ thống sẽ trả lại 1 mật khẩu mới ngẫu nhiên về email ban đầu người dùng đăng ký
Hình 4.4 Giao diện Quên mật khẩu Đồ án tốt nghiệp ngành CNTT
Doãn Tường 59 Lớp Khoa học máy tính ƯD K61B
Giao diện báo cáo thống kê
Người dùng chọn mốc thời gian cần xem sau đó click vào thống kê, hệ thống sẽ hiển thị báo cáo thống kê trong khoảng thời gian muốn xem
Admin có thể xem được số lượng phòng trọ, chủ trọ, khách thuê trọ của toàn bộ hệ thống
Hình 4.5 Giao diện Báo cáo thống kê Giao diện danh sách nhà trọ
Người dùng có thể quản lý danh sách phòng trọ của mình, bao gồm thêm, sửa, xóa và tính tiền các thông tin liên quan Họ cũng có khả năng tìm kiếm phòng trọ nhanh chóng và tiện lợi theo tên và địa chỉ.
Admin có quyền quản lý tất cả các phòng trọ của các chủ trọ trên toàn hệ thống Đồ án tốt nghiệp ngành CNTT
Doãn Tường 60 Lớp Khoa học máy tính ƯD K61B
Hình 4.6 Giao diện Danh sách phòng trọ Giao diện thêm mới phòng trọ
Người dùng cần cung cấp đầy đủ thông tin về nhà trọ như giá tiền, giờ mở cửa, tiền đặt cọc, chi phí điện nước, cùng với hình ảnh chi tiết và tọa độ của phòng trọ Sau khi hoàn tất việc nhập liệu, người dùng chỉ cần nhấn vào nút "thêm phòng trọ" để hệ thống cập nhật thông tin lên bản đồ.
Doãn Tường 61 Lớp Khoa học máy tính ƯD K61B
Hình 4 7 Giao diện Thêm mới phòng trọ Giao diện danh sách chủ trọ
Admin quản lý danh sách tất cả các chủ trọ đăng ký hệ thống
Hình 4.8 Giao diện Danh sách chủ trọ Giao diện Thêm mới chủ trọ
Admin có thể thêm mới tài khoản người dùng sau đó cấp lại cho người sử dụng Đồ án tốt nghiệp ngành CNTT
Doãn Tường 62 Lớp Khoa học máy tính ƯD K61B
Hình 4.9 Giao diện Thêm mới chủ trọ Giao diện Thông tin cá nhân
Người dùng có thể thay đổi thông tin cá nhân của bản thân trên hệ thống khi muốn thay đổi
Hình 4.10 Giao diện Thông tin cá nhân Đồ án tốt nghiệp ngành CNTT
Doãn Tường 63 Lớp Khoa học máy tính ƯD K61B
Thiết kế kiểm soát
Để đảm bảo tính chính xác trong mọi hoạt động của hệ thống, cần nghiên cứu và thực hiện các biện pháp kiểm soát cần thiết nhằm đối phó với các nguy cơ tiềm ẩn.
- Mất mát và sai lệch thông tin
- Những lỗi sai xảy ra trong quá trình xuất, nhập thông tin
Các khía cạnh cơ bản trong thiết kế kiểm soát bao gồm:
Để đảm bảo độ chính xác, cần kiểm tra từng thao tác đang thực hiện để xác định xem chúng có được thực hiện đúng cách hay không Đồng thời, cần xác minh rằng các thông tin đang được lưu trữ và xử lý trong cơ sở dữ liệu là chính xác và đáng tin cậy.
- Độ an toàn: đảm bảo rằng không thể mất mát thông tin trong mọi tình huống do vô tình hay cố ý hoặc do những rủi ro ngẫu nhiên
- Độ riêng tư: kiểm tra việc bảo vệ các quyền của cá nhân, của tập thể
Nghiên cứu kiểm tra thông tin nhập, xuất
Tất cả thông tin xuất nhập cần được kiểm tra để đảm bảo tính xác thực Thường thì quá trình kiểm tra diễn ra tại các địa điểm thu nhận, trung tâm xử lý và nơi phân phát thông tin Mục đích của việc kiểm tra là phát hiện và khắc phục các lỗi có thể xảy ra.
- Kiểm tra thủ công: có thể dùng phương án kiểm tra đầy đủ hoặc ngẫu nhiên
Kiểm tra bằng máy có hai phương thức chính: trực tiếp và gián tiếp Phương thức trực tiếp sử dụng các ràng buộc toàn vẹn để đảm bảo tính chính xác, trong khi phương thức gián tiếp tham khảo thông tin từ các nguồn đã được kiểm tra trước đó.
Trong quá trình kiểm tra, thường bắt đầu bằng kiểm tra trực tiếp, sau đó là kiểm tra gián tiếp Kiểm tra trực tiếp tập trung vào sự hiện diện của giá trị, khuôn dạng, kiểu giá trị và miền giá trị Ngược lại, kiểm tra gián tiếp chú trọng đến các ràng buộc và mối liên hệ logic giữa các thông tin trong hệ thống Đây là những yếu tố quan trọng trong đồ án tốt nghiệp ngành CNTT.
Doãn Tường 64 Lớp Khoa học máy tính ƯD K61B
Một số dữ liệu đã được kiểm soát khi nhập
Khi người dùng đăng ký và cung cấp thông tin bắt buộc, nếu nhập sai định dạng email, hệ thống sẽ hiển thị thông báo lỗi Ngược lại, khi người dùng nhập đúng định dạng email, cơ sở dữ liệu sẽ ghi nhận thông tin và hoàn tất quá trình đăng ký.
Hình 4 11 Kiểm soát dữ liệu đăng ký Ở phần tính tiền bắt buộc nhập số tiền điện, nước, phụ thu dù giá trị có bằng
0 thì hệ thống sẽ trả ra kết quả
Hình 4 12 Kiểm soát dữ liệu tính tiền phòng trọ Đồ án tốt nghiệp ngành CNTT
Để hoàn tất thủ tục đăng ký thuê trọ tại Doãn Tường 65, lớp Khoa học máy tính ƯD K61B, người thuê cần nhập đầy đủ thông tin cá nhân và cập nhật hình ảnh của mình.
Để xem báo cáo thống kê, người dùng cần chọn một mốc thời gian cụ thể trong phần kiểm soát dữ liệu thông tin cá nhân.
Hình 4 14 Kiểm soát dữ liệu báo cáo thống kê
Kiểm thử hệ thống
Mỗi website cần trải qua quy trình kiểm thử chi tiết để đảm bảo chất lượng và không có lỗi phát sinh trước khi chính thức hoạt động Quy trình này là rất quan trọng trong việc hỗ trợ quản lý và thực hiện đồ án tốt nghiệp ngành CNTT.
Doãn Tường 66 Lớp Khoa học máy tính ƯD K61B tìm kiếm phòng trọ” này, em có thực hiện một số kiểm thử nhỏ để kiểm tra hệ thống
Kiểm tra nội dung website
Không có lỗi chính tả hoặc ngữ pháp lỗi trong nội dung
Tích hợp Alt trong hình ảnh
Xác nhận tính hợp lệ tất cả giao diện người dùng
Thực hiện theo một số tiêu chuẩn về xây dựng nội dung trên trang web
Tất cả nội dung rõ ràng và dễ hiểu
Sử dụng màu sắc tươi sáng, dễ nhìn
Kích thước hình ảnh kích phù hợp
Anchor text hoạt động bình thường
Kiểm thử cơ sở dữ liệu là quy trình quan trọng để đảm bảo độ tin cậy của dữ liệu Việc kiểm tra này cần được thực hiện một cách kỹ lưỡng trên nền tảng web, bao gồm nhiều hoạt động khác nhau để đảm bảo tính chính xác và hiệu quả của cơ sở dữ liệu.
Kiểm thử website cần độ chính xác từ cơ sở dữ liệu
Kiểm thử website cần độ chính xác từ cơ sở dữ liệu
Kiểm tra nếu các truy vấn được thực hiện mà không xảy ra lỗi
Thêm mới, cập nhật hoặc xoá dữ liệu trong cơ sở dữ liệu nên duy trì tính toàn vẹn của dữ liệu
Truy vấn dữ liệu không nên mất quá nhiều thời gian
Kiểm tra việc load dữ liệu và kết quả nhận được với các câu truy vấn dài
Dữ liệu nhận được trên cơ sở dữ liệu và hiển thị trên website có chính xác Đồ án tốt nghiệp ngành CNTT
Doãn Tường 67 Lớp Khoa học máy tính ƯD K61B