3 Quản trị viên muốn thêm mới thì nhấn nút thêm mới Sau khi quản trị viên bấm nút thêm mới thì trang web sẽ dẫn quản trị viên tới một cái form để quản trị viên điền các thông tin vào tin
Trang 1NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP i
PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN ii
PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN iii
LỜI CẢM ƠN iv
LỜI MỞ ĐẦU v
TÓM TẮT BẰNG TIẾNG VIỆT vi
TÓM TẮT BẰNG TIẾNG ANH vii
MỤC LỤC viii
DANH MỤC CÁC TỪ VIẾT TẮT x
DANH MỤC CÁC HÌNH ẢNH xi
DANH MỤC CÁC BẢNG BIỂU xv
Chương 1 .1
TỔNG QUAN 1
1.1 Lý do chọn đề tài 1
1.2 Mục tiêu nghiên cứu đề tài 1
1.3 Công nghệ sử dụng 2
Chương 2 .3
CƠ SỞ LÝ THUYẾT 3
2.1 React Javascript 3
2.2 Spring Boot 3
2.3 Spring Boot 3
2.4 Amazon S3 4
Chương 3 .5
KHẢO SÁT HIỆN TRẠNG 5
3.1 Khảo sát các sản phẩm liên quan tới đề tài 5
3.1.1 PHONGTRO123.COM 5
3.1.2 Kết luận 6
3.2 Yêu cầu của ứng dụng 6
3.3 So sánh trang KHUTRO123 với sản phẩm 6
Trang 24.1 Mô hình hóa yêu cầu 8
4.1.1 Thiết kế sơ đồ chức năng (usecase diagram) 8
4.1.2 Đặc tả sơ đồ chức năng 9
4.1.3 Sơ đồ tuần tự (sequence diagram) 100
4.2 Thiết kế hệ thống 103
4.2.1 Thiết kế cơ sở dữ liệu 103
4.2.2 Thiết kế giao diện 122
CHƯƠNG 5 196
CÀI ĐẶT VÀ KIỂM THỬ 196
5.1 Cài đặt 196
5.1.1 Cài đặt môi trường phát triển 196
5.1.2 Front-end 196
5.1.3 Back-end 198
5.1.4 Cài đặt với docker (tùy chọn) 200
5.2 Kiểm thử 200
5.2.1 Các chức năng kiểm thử 200
5.2.2 Thực hiện kiểm thử 200
CHƯƠNG 6 219
TỔNG KẾT 219
6.1 Kết quả đạt được 219
6.2 Ưu điểm 220
6.3 Nhược điểm 220
6.4 Khó khăn 220
6.5 Bài học kinh nghiệm 220
6.6 Hướng phát triển 220
TÀI LIỆU THAM KHẢO 221
Trang 3TÊN TIẾNG ANH TÊN TIẾNG VIỆT
Trang 4Hình 3.1 Giao diện quản lý người dùng của phongtro123.com 5
Hình 4.1 Mô hình chức năng 8
Hình 4.2 Tổng quát sơ đồ chức năng của quản trị viên 9
Hình 4.3 Sơ đồ chức năng CRUD của khách trọ 10
Hình 4.4 Sơ đồ chức năng checkin khách trọ 12
Hình 4.5 Sơ đồ chức năng checkout khách trọ 14
Hình 4.6 Sơ đồ chức năng tìm khách trọ theo quyền 15
Hình 4.7 Sơ đồ chức năng tìm khách trọ theo username 17
Hình 4.8 Sơ đồ chức năng kiểm tra username trùng 19
Hình 4.9 Sơ đồ chức năng CRUD nội quy 21
Hình 4.10 Sơ đồ chức năng CRUD phòng trọ 23
Hình 4.11 Sơ đồ chức năng tìm kiếm phòng theo vị trí chi nhánh 26
Hình 4.12 Sơ đồ chức năng CRUD quản lý quyền 27
Hình 4.13 Sơ đồ chức năng CRUD quản lý báo cáo đề mục 30
Hình 4.14 Sơ đồ chức năng CRUD quản lý thông báo 32
Hình 4.15 Sơ đồ chức năng CRUD quản lý nguồn chi 34
Hình 4.16 Sơ đồ chức năng tìm kiếm nguồn chi theo chi nhánh 37
Hình 4.17 Sơ đồ chức năng CRUD quản lý nguồn thu 38
Hình 4.18 Sơ đồ chức năng tìm kiếm chi nhánh theo nguồn thu 41
Hình 4.19 Sơ đồ chức năng CRUD quản lý hóa đơn 42
Hình 4.20 Sơ đồ chức năng xuất một hóa đơn 45
Hình 4.21 Sơ đồ chức năng xuất nhiều hóa đơn 46
Hình 4.22 Sơ đồ chức năng CRUD quản lý thiết bị 48
Hình 4.23 Sơ đồ chức năng CRUD quản lý điện nước 51
Hình 4.24 Sơ đồ chức năng CRUD quản lý hợp đồng 53
Hình 4.25 Sơ đồ chức năng tìm kiếm hợp đồng theo khách trọ 55
Hình 4.26 Sơ đồ chức năng tìm kiếm hợp đồng theo chủ trọ 57
Hình 4.27 Sơ đồ chức năng CRUD quản lý chi nhánh 59
Hình 4.28 Sơ đồ chức năng tìm kiếm chi nhánh theo vị trí 61
Hình 4.29 Sơ đồ chức năng CRUD quản lý lầU 63
Hình 4.30 Sơ đồ chức năng cập nhật thông tin cá nhân 65
Hình 4.31 Sơ đồ chức năng đổi mật khẩu 67
Hình 4.32 Sơ đồ chức năng đăng ký 69
Hình 4.33 Sơ đồ chức năng đăng nhập 71
Hình 4.34 Tổng quan sơ đồ chức năng của khách trọ 73
Hình 3.35 Sơ đồ chức năng đăng nhập khách trọ 74
Hình 4.36 Sơ đồ chức năng đăng ký khách trọ 75
Trang 5Hình 4.40 Sơ đồ chức năng xem thông báo của khách trọ 84
Hình 4.41 Sơ đồ chức năng tạo báo cáo đề mục 86
Hình 4.42 Sơ đồ chức năng xem báo cáo đề mục 87
Hình 4.43 Sơ đồ chức năng xem phòng 89
Hình 4.44 Sơ đồ chức năng tìm kiếm phòng trọ theo chi nhánh 91
Hình 4.45 Sơ đồ chức năng tìm kiếm phòng theo loại phòng 93
Hình 4.46 Sơ đồ chức năng xem hóa đơn khách trọ 94
Hình 4.47 Sơ đồ chức năng tạo hóa đơn 96
Hình 4.48 Sơ đồ chức năng xuất hóa đơn 98
Hình 4.49 Sơ đồ tuần tự đăng ký 100
Hình 4.50 Sơ đồ tuần tự đăng nhập 101
Hình 4.51 Sơ đồ tuần tự quản lý chi nhánh của quản trị viên 101
Hình 4.52 Sơ đồ tuần tự in hóa đơn 102
Hình 4.53 Sơ đồ tuần tự chi tiết phòng 102
Hình 4.54 Mô hình liên kết thực thể 1 (ERD Diagram 1) 103
Hình 4.55 Mô hình liên kết thực thể 2 (ERD Diagram 2) 104
Hình 4.56 Mô hình liên kết thực thể 3 (ERD Diagram 3) 105
Hình 4.57 Sơ đồ lớp 1 120
Hình 4.58 Sơ đồ lớp 2 121
Hình 4.59 Sơ đồ lớp 3 121
Hình 4.60 Giao diện trang đăng nhập 122
Hình 4.61 Giao diện trang đăng ký 123
Hình 4.62 Giao diện trang chủ quản lý 1 124
Hình 4.63 Giao diện trang chủ quản lý 2 124
Hình 4.64 Thanh điều hướng trang quản lý 1 126
Hình 4.65 Thanh điều hướng trang quản lý 2 127
Hình 4.66 Thanh điều hướng trang quản lý 3 127
Hình 4.67 Thanh điều hướng trang quản lý 4 128
Hình 4.68 Thanh điều hướng trang quản lý 4 128
Hình 4.69 Trang quản lý chi nhánh 130
Hình 4.70 Giao diện thêm mới chi nhánh 131
Hình 4.71 Giao diện chỉnh sửa chi nhánh 132
Hình 4.72 Giao diện xóa chi nhánh 133
Hình 4.73 Giao diện trang quản lý phòng 133
Hình 4.74 Giao diện thêm phòng 135
Hình 4.75 Giao diện chỉnh sửa phòng 137
Hình 4.76 Giao diện xóa phòng 138
Trang 6Hình 4.80 Giao diện xóa hợp đồng 142
Hình 4.81 Giao diện trang quản lý điện nước 143
Hình 4.82 Đặc tả giao diện trang quản lý điện nước 144
Hình 4.83 Giao diện chỉnh sửa điện nước 145
Hình 4.84 Giao diện xóa điện nước 146
Hình 4.85 Giao diện trang quản lý thiết bị 147
Hình 4.86 Giao diện thêm thiết bị 148
Hình 4.87 Giao diện chỉnh sửa thiết bị 149
Hình 4.88 Giao diện xóa thiết bị 149
Hình 4.89 Giao diện trang quản lý khách trọ 150
Hình 4.90 Giao diện thêm khách trọ 151
Hình 4.91 Giao diện chỉnh sửa khách trọ 153
Hình 4.92 Giao diện xóa khách trọ 154
Hình 4.93 Giao diện checkin 154
Hình 4.94 Giao diện checkout 155
Hình 4.95 Giao diện trang quản lý nguồn thu 156
Hình 4.96 Giao diện thêm nguồn thu 157
Hình 4.97 Giao diện chỉnh sửa nguồn thu 157
Hình 4.98 Giao diện xóa nguồn thu 158
Hình 4.99 Giao diện trang quản lý nguồn chi 159
Hình 4.100 Giao diện thêm nguồn chi 160
Hình 4.101 Giao diện chỉnh sửa nguồn chi 160
Hình 4.102 Giao diện xóa nguồn chi 161
Hình 4.103 Giao diện trang quản lý phân quyền người dùng 162
Hình 4.104 Giao diện thêm quyền 162
Hình 4.105 Giao diện chỉnh sửa phân quyền 163
Hình 4.106 Giao diện xóa phân quyền 163
Hình 4.107 Giao diện trang quản lý thông báo 164
Hình 4.108 Giao diện thêm thông báo 165
Hình 4.109 Giao diện chỉnh sửa thông báo 165
Hình 4.110 Giao diện xóa thông báo 166
Hình 4.111 Giao diện trang quản lý nội quy 166
Hình 4.112 Giao diện thêm nội quy 167
Hình 4.113 Giao diện chỉnh sửa nội quy 168
Hình 4.114 Giao diện xóa nội quy 168
Hình 4.115 Giao diện trang quản lý báo cáo đề mục 169
Hình 4.116 Giao diện thêm báo cáo đề mục 170
Trang 7Hình 4.120 Giao diện thêm hóa đơn 173
Hình 4.121 Giao diện xóa hóa đơn 173
Hình 4.122 Giao diện tải hóa đơn 174
Hình 4.123 Giao diện của trang quản lý số lầu 174
Hình 4.124 Giao diện thêm lầu 175
Hình 4.125 Giao diện chỉnh sửa số lầu 176
Hình 4.126 Giao diện xóa số lầu 177
Hình 4.127 Giao diện thông tin cá nhân 177
Hình 4.128 Giao diện chỉnh sửa thông tin cá nhân 178
Hình 4.129 Giao diện đổi mật khẩu cho quản trị viên 180
Hình 4.130 Giao diện trang chủ của người dùng 181
Hình 4.131 Giao diện trang phòng trọ của người dùng 182
Hình 4.132 Giao diện trang chi tiết phòng trọ của người dùng 1 183
Hình 4.133 Giao diện trang chi tiết phòng trọ của người dùng 2 184
Hình 4.134 Giao diện trang chi tiết phòng trọ của người dùng 3 184
Hình 4.135 Giao diện trang bản đồ 1 186
Hình 4.136 Giao diện trang bản đồ 2 187
Hình 4.137 Giao diện trang nội quy 188
Hình 4.138 Giao diện trang báo cáo đề mục 189
Hình 4.139 Giao diện trang thông báo 190
Hình 4.140 Giao diện trang hóa đơn 1 190
Hình 4.141 Giao diện trang hóa đơn 2 191
Hình 4.142 Giao diện thêm hóa đơn 191
Hình 4.143 Giao diện trang thông tin cá nhân của người dùng 193
Hình 4.144 Giao diện trang đổi mật khẩu của người dùng 194
Hình 5.1 Thư mục Front-end 197
Hình 5.2 Thư mục back-end 199
Trang 8Bảng 4.1 Đặc tả sơ đồ chức năng CRUD khách trọ 12
Bảng 4.2 Đặc tả sơ đồ chức năng checkin khách trọ 13
Bảng 4.3 Đặc tả sơ đồ chức năng checkout khách trọ 15
Bảng 4.4 Đặc tả sơ đồ chức năng tìm khách trọ theo quyền 17
Bảng 4.5 Đặc tả sơ đồ chức năng tìm khách trọ theo username 19
Bảng 4.6 Đặc tả sơ đồ chức năng kiểm tra username trùng 20
Bảng 4.7 Đặc tả sơ đồ chức năng CRUD nội quy 23
Bảng 4.8 Đặc tả sơ đồ chức năng CRUD phòng trọ 25
Bảng 4.9 Đặc tả sơ đồ chức năng tìm kiếm phòng theo vị trí chi nhánh 27
Bảng 4.10 Đặc tả sơ đồ chức năng CRUD quản lý quyền 29
Bảng 4.11 Đặc tả sơ đồ chức năng CRUD quản lý báo cáo đề mục 32
Bảng 4.12 Đặc tả sơ đồ chức năng CRUD quản lý thông báo 34
Bảng 4.13 Đặc tả sơ đồ chức năng CRUD quản lý nguồn chi 36
Bảng 4.14 Đặc tả sơ đồ chức năng tìm kiếm nguồn chi theo chi nhánh 38
Bảng 4.15 Đặc tả sơ đồ chức năng CRUD quản lý nguồn thu 40
Bảng 4.16 Đặc tả sơ đồ chức năng tìm kiếm chi nhánh theo nguồn thu 42
Bảng 4.17 Đặc tả sơ đồ chức năng quản lý hóa đơn 44
Bảng 4.18 Đặc tả sơ đồ chức năng xuất hóa đơn lẻ 46
Bảng 4.19 Đặc tả sơ đồ chức năng xuất nhiều hóa đơn 48
Bảng 4.20 Đặc tả sơ đồ chức năng CRUD quản lý thiết bị 50
Bảng 4.21 Đặc tả sơ đồ chức năng CRUD quản lý điện nước 53
Bảng 4.22 Đặc tả sơ đồ chức năng CRUD quản lý hợp đồng 55
Bảng 4.23 Đặc tả sơ đồ chức năng tìm kiếm hợp đồng theo khách thuê 57
Bảng 4.24 Đặc tả sơ đồ chức năng tìm kiếm hợp đồng theo chủ trọ 58
Bảng 4.25 Đặc tả sơ đồ chức năng CRUD quản lý chi nhánh 61
Bảng 4.26 Đặc tả sơ đồ chức năng tìm kiếm chi nhánh theo vị trí 62
Bảng 4.27 Đặc tả sơ đồ chức năng quản lý lầu CRUD 65
Bảng 4.28 Đặc tả sơ đồ chức năng cập nhật thông tin cá nhân 67
Bảng 4.29 Đặc tả sơ đồ chức năng đổi mật khẩu 69
Bảng 4.30 Đặc tả sơ đồ chức năng đăng ký 71
Bảng 4.31 Đặc tả sơ đồ chức năng đăng nhập 72
Bảng 4.32 Đặc tả sơ đồ chức năng đăng nhập khách trọ 75
Bảng 4.33 Đặc tả sơ đồ chức năng đăng ký khách trọ 77
Bảng 4.34 Đặc tả sơ đồ chức năng cập nhật thông tin cá nhân khách trọ 79
Bảng 4.35 Đặc tả sơ đồ chức năng đổi mật khẩu khách trọ 81
Bảng 4.36 Đặc tả sơ đồ chức năng xem nội quy của khách trọ 83
Bảng 4.37 Đặc tả sơ đồ chức năng xem thông báo của khách trọ 85
Trang 9Bảng 4.41 Đặc tả sơ đồ chức năng tìm kiếm phòng trọ theo chi nhánh 92
Bảng 4.42 Đặc tả sơ đồ chức năng tìm kiếm phòng theo loại phòng 94
Bảng 4.43 Đặc tả sơ đồ chức năng xem hóa đơn 96
Bảng 4.44 Đặc tả sơ đồ chức năng tạo hóa đơn 98
Bảng 4.45 Đặc tả sơ đồ chức năng xuất hóa đơn 100
Bảng 4.46 Đặc tả mô hình liên kết thực thể 110
Bảng 4.47 Đặc tả chi tiết các thuộc tính của mô hình liên kết thực thể 119
Bảng 4.48 Đặc tả giao diện trang đăng nhập 122
Bảng 4.49 Đặc tả giao diện trang đăng ký 123
Bảng 4.50 Đặc tả giao diện trang chủ quản lý 126
Bảng 4.51 Đặc tả thanh điều hướng trang quản lý 130
Bảng 4.52 Đặc tả giao diện trang quản lý chi nhánh 131
Bảng 4.53 Đặc tả giao diện thêm mới chi nhánh 132
Bảng 4.54 Đặc tả giao diện chỉnh sửa chi nhánh 133
Bảng 4.55 Đặc tả giao diện xóa chi nhánh 133
Bảng 4.56 Đặc tả giao diện trang quản lý phòng 134
Bảng 4.57 Đặc tả giao diện thêm phòng 136
Bảng 4.58 Đặc tả giao diện chỉnh sửa phòng 138
Bảng 4.59 Đặc tả giao diện xóa phòng 139
Bảng 4.60 Đặc tả giao diện trang quản lý hợp đồng 140
Bảng 4.61 Đặc tả giao diện thêm mới hợp đồng 141
Bảng 4.62 Đặc tả giao diện chỉnh sửa hợp đồng 142
Bảng 4.63 Đặc tả giao diện xóa hợp đồng 142
Bảng 4.64 Đặc tả giao diện trang quản lý điện nước 144
Bảng 4.65 Đặc tả giao diện thêm điện nước 145
Bảng 4.66 Đặc tả giao diện chỉnh sửa điện nước 146
Bảng 4.67 Đặc tả giao diện xóa điện nước 146
Bảng 4.68 Đặc tả giao diện trang quản lý thiết bị 147
Bảng 4.69 Đặc tả giao diện thêm thiết bị 148
Bảng 4.70 Đặc tả giao diện chỉnh sửa thiết bị 149
Bảng 4.71 Đặc tả giao diện xóa thiết bị 150
Bảng 4.72 Đặc tả giao diện trang quản lý khách trọ 151
Bảng 4.73 Đặc tả giao diện thêm khách trọ 152
Bảng 4.74 Đặc tả giao diện chỉnh sửa khách trọ 154
Bảng 4.75 Đặc tả giao diện xóa khách trọ 154
Bảng 4.76 Đặc tả giao diện checkin 155
Bảng 4.77 Đặc tả giao diện checkout 155
Trang 10Bảng 4.81 Đặc tả giao diện xóa nguồn thu 158
Bảng 4.82 Đặc tả giao diện trang quản lý nguồn chi 159
Bảng 4.83 Đặc tả giao diện thêm nguồn chi 160
Bảng 4.84 Đặc tả giao diện chỉnh sửa nguồn chi 161
Bảng 4.85 Đặc tả giao diện xóa nguồn chi 161
Bảng 4.86 Đặc tả giao diện trang quản lý phân quyền người dùng 162
Bảng 4.87 Đặc tả giao diện thêm quyền 163
Bảng 4.88 Đặc tả giao diện chỉnh sửa phân quyền 163
Bảng 4.89 Đặc tả giao diện xóa phân quyền 164
Bảng 4.90 Đặc tả giao diện trang quản lý thông báo 164
Bảng 4.91 Đặc tả giao diện thêm thông báo 165
Bảng 4.92 Đặc tả giao diện chỉnh sửa thông báo 166
Bảng 4.93 Đặc tả giao diện xóa thông báo 166
Bảng 4.94 Đặc tả giao diện trang quản lý nội quy 167
Bảng 4.95 Đặc tả giao diện thêm nội quy 167
Bảng 4.96 Đặc tả giao diện chỉnh sửa nội quy 168
Bảng 4.97 Đặc tả giao diện xóa nội quy 168
Bảng 4.98 Đặc tả giao diện trang quản lý báo cáo đề mục 169
Bảng 4.99 Đặc tả giao diện thêm báo cáo đề mục 170
Bảng 4.100 Đặc tả giao diện chỉnh sửa báo cáo đề mục 171
Bảng 4.101 Đặc tả giao diện xóa báo cáo đề mục 171
Bảng 4.102 Đặc tả giao diện trang quản lý hóa đơn 172
Bảng 4.103 Đặc tả giao diện thêm hóa đơn 173
Bảng 4.104 Đặc tả giao diện xóa hóa đơn 174
Bảng 4.105 Đặc tả giao diện tải hóa đơn 174
Bảng 4.106 Đặc tả giao diện của trang quản lý số lầu 175
Bảng 4.107 Đặc tả giao diện thêm lầu 176
Bảng 4.108 Đặc tả giao diện chỉnh sửa số lầu 176
Bảng 4.109 Đặc tả giao diện xóa số lầu 177
Bảng 4.110 Đặc tả giao diện thông tin cá nhân 178
Bảng 4.111 Đặc tả giao diện chỉnh sửa thông tin cá nhân 179
Bảng 4.112 Đặc tả giao diện đổi mật khẩu cho quản trị viên 180
Bảng 4.113 Đặc tả giao diện trang chủ của người dùng 181
Bảng 4.114 Đặc tả giao diện trang phòng trọ của người dùng 183
Bảng 4.115 Đặc tả giao diện trang chi tiết phòng trọ của khách trọ 186
Bảng 4.116 Đặc tả giao diện trang bản đồ 188
Bảng 4.117 Đặc tả giao diện trang nội quy 188
Trang 11Bảng 4.121 Đặc tả giao diện trang thông tin cá nhân của người dùng 194
Bảng 4.122 Đặc tả giao diện trang đổi mật khẩu của người dùng 195
Bảng 5.1 Công cụ và môi trường 196
Bảng 5.2 ApplicationMotel-01 201
Bảng 5.3 ApplicationMotel-02 203
Bảng 5.4 ApplicationMotel-03 205
Bảng 5.5 ApplicationMotel-04 206
Bảng 5.6 ApplicationMotel-05 208
Bảng 5.7 ApplicationMotel-06 210
Bảng 5.8 ApplicationMotel-07 211
Bảng 5.9 ApplicationMotel-08 213
Bảng 5.10 ApplicationMotel-09 215
Bảng 5.11 ApplicationMotel-10 216
Bảng 5.12 ApplicationMotel-11 218
Trang 12Chương 1
TỔNG QUAN
1.1 Lý do chọn đề tài
Trong thời kỳ bùng nổ thông tin hiện nay, công nghệ góp phần quan trọng dẫn đến
sự thành công trên hầu hết các lĩnh vực đời sống Ngoài ra, trước diễn biến phức tạp của tình hình dịch bệnh Covid-19, nhu cầu sử dụng các dịch vụ số cho các ngành nghề ngày càng tăng Nhận thấy sự sự cần thiết trong việc tìm kiếm phòng, nhà ở, nhóm đã quyết định làm website quản lý phòng trọ cung cấp khả năng tìm kiếm và quản lý trọ dễ dàng, nhanh chóng và thuận lợi thay vì hình thức đi kiếm nhà trọ trực tiếp không mấy khả thi và an toàn ngày nay
1.2 Mục tiêu nghiên cứu đề tài
Xây dựng ứng dụng quản lý phòng trọ với các chức năng chính bao gồm:
● Phần cho khách hàng sử dụng:
− Xem phòng trọ, thông tin phòng, thiết bị của phòng trọ, giá phòng, loại phòng, giá phòng cụ thể,
− Tìm kiếm phòng theo vị trí chi nhánh hoặc là tìm kiếm theo loại phòng
− Xem thông báo của phòng trọ
− Xem báo cáo đề mục của phòng trọ
− Tạo báo cáo đề mục của phòng trọ
− Xem nội quy của phòng trọ
− Xem thông báo của phòng trọ
− Cập nhật thông tin cá nhân của phòng trọ
− Đổi mật khẩu tài khoản
− Tạo hóa đơn, xem hóa đơn và xuất hóa đơn
● Phần quản lý:
Trang 13− Quản lý user: thêm, sửa, xóa, tìm kiếm user theo username, tìm kiếm user theo role, checkin, checkout
− Quản lý nội quy: thêm, sửa, xóa
− Quản lý phòng: thêm, sửa, xóa, tìm kiếm phòng theo vị trí chi nhánh
− Quản lý quyền: thêm, sửa, xóa
− Quản lý báo cáo đề mục: thêm, sửa, xóa
− Quản lý thông báo: thêm, sửa, xóa
− Quản lý nguồn thu: thêm, sửa, xóa, tìm kiếm nguồn thu theo vị trí chi nhánh
− Quản lý nguồn chi: thêm, sửa, xóa, tìm kiếm nguồn chi theo vị trí chi nhánh
− Quản lý hóa đơn: thêm, sửa, xóa, xuất một hóa đơn, xuất nhiều hóa đơn
− Quản lý thiết bị: thêm, sửa, xóa
− Quản lý điện nước: thêm, sửa, xóa
− Quản lý hợp đồng: thêm, sửa, xóa, tìm kiếm hợp đồng theo chủ trọ, tìm kiếm hợp đồng theo khách thuê
− Quản lý chi nhánh: thêm, sửa, xóa, tìm kiếm chi nhánh theo vị trí, tìm kiếm chi nhánh theo username
1.3 Công nghệ sử dụng
Sử dụng Restful API để tạo giao tiếp client, server Với các công nghệ gồm:
Spring Boot, Restful API, ReactJS
Trang 14Chương 2
CƠ SỞ LÝ THUYẾT
2.1 React Javascript
React là thư viện Javascript phổ biến nhất để xây dựng giao diện người dùng (UI)
Nó cho tốc độ phản hồi tuyệt vời khi user nhập liệu bằng cách sử dụng phương pháp mới
để render trang web
Components của công cụ này được phát triển bởi Facebook.Nó được ra mắt như một công cụ JavaScript mã nguồn mở vào năm 2013 Hiện tại, nó đã đi trước các đối thủ chính như Angular và Bootstrap, hai thư viện JavaScript bán chạy nhất thời bấy giờ [1]
2.2 Spring Boot
Spring Boot cung cấp một nền tảng tốt cho các nhà phát triển Java để phát triển một ứng dụng Spring độc lập và các ứng dụng Spring mà chỉ cần run Bạn có thể bắt đầu với các cấu hình tối thiểu mà không cần thiết lập toàn bộ cấu hình Spring
Ưu điểm
− Spring Boot cung cấp những lợi thế sau cho các nhà phát triển của nó:
− Dễ hiểu và phát triển các ứng dụng spring
− Tăng năng suất
− Giảm thời gian phát triển
Mục tiêu
− Để tránh cấu hình XML phức tạp trong Spring Để phát triển các ứng dụng Spring sẵn sàng sản xuất theo cách dễ dàng hơn
− Để giảm thời gian phát triển và chạy ứng dụng một cách độc lập
− Giúp bắt đầu thiết kế một ứng dụng dễ dàng hơn
Ở đây, chúng ta sử dụng Spring Boot để tạo các Restful API
2.3 Spring Boot
− PostgreSQL là một hệ thống quản trị cơ sở dữ liệu quan hệ-đối tượng có mục đích chung, hệ thống cơ sở dữ liệu mã nguồn mở tiên tiến nhất hiện nay
Trang 15− PostgreSQL là một phần mềm mã nguồn mở miễn phí Mã nguồn của phần mềm khả dụng theo license của PostgreSQL, một license nguồn mở tự do Theo đó, bạn
sẽ được tự do sử dụng, sửa đổi và phân phối PostgreSQL dưới mọi hình thức
− PostgreSQL là một phần mềm mã nguồn mở miễn phí Mã nguồn của phần mềm khả dụng theo license của PostgreSQL, một license nguồn mở tự do Theo đó, bạn
sẽ được tự do sử dụng, sửa đổi và phân phối PostgreSQL dưới mọi hình thức
2.4 Amazon S3
Amazon Simple Storage Service (Amazon S3) là một dịch vụ lưu trữ đối tượng cung cấp khả năng thay đổi theo quy mô, tính khả dụng của dữ liệu, bảo mật và hiệu năng hàng đầu trong lĩnh vực Điều này có nghĩa là khách hàng thuộc mọi quy
mô và lĩnh vực có thể sử dụng dịch vụ này để lưu trữ và bảo vệ bất kỳ lượng dữ liệu nào cho nhiều trường hợp sử dụng khác nhau, chẳng hạn như trang web, ứng dụng di động, sao lưu và khôi phục, lưu trữ, ứng dụng doanh nghiệp, thiết bị IoT
Trang 16❖ Nhược điểm:
Do chỉ mang tính tham khảo nên nhóm chúng em chỉ xem các trình bày các phòng như thế nào nên các trang khác ngoài trang phòng thì nhóm chúng em đều tự thiết kế
Trang 17− Xem địa chỉ chi nhánh phòng trọ bằng google map
3.2 Yêu cầu của ứng dụng
− Ngoài các tính năng của trang web nhóm tham khảo như hiển thị danh sách phòng trọ của nhà trọ, tìm kiếm phòng trọ theo từng danh mục, google map hiển thị vị trí của từng chi nhánh
− Ứng dụng của nhóm thêm các tính năng khác với trang web nhóm tham khảo là:
• Sơ đồ phòng trọ
• Hiển thị hóa đơn, in hóa đơn
• Biểu đồ thể hiện mối quan hệ giữa nguồn thu và nguồn chi của nhà trọ
• Thống kê tổng doanh thu
• Thống kê tổng doanh chi
• Thống kê lợi nhuận
3.3 So sánh của nhóm với nhatro123.com
Ưu điểm của nhóm so với nhatro123:
• Xem thông tin phòng
• Tìm kiếm phòng theo các danh mục như loại phòng
• Tìm kiếm phòng theo chi phòng
• Đăng tin phòng trọ cho thuê ở phía chủ trọ
• Quản lý các thông tin phòng trọ ở phía chủ trọ
• Khách trọ thích phòng trọ đó thì có thể liên hệ với chủ trọ qua số điện
thoại hoặc email
Trang 18• Chức năng nạp tiền vào tài khoản
• Lọc theo các trạng thái tin đã đăng là tin đang hiển thị và tin hết hạn
• Thống kê lịch sử thanh toán, lịch sử nạp tiền
3.4 Yêu cầu từ khách hàng
Ngoài việc chúng em tham khảo trang web nhatro123.com thì chúng em còn dựa requirement từ khách hàng và sau đó được GVHD là thầy Nguyễn Thiên Bảo xác nhận lại các requirement đó lần nữa Tuy nhiên, nhóm cũng có các chức năng chưa thực hiện được và cần thêm thời gian thêm để hoàn thành
Trang 19CHƯƠNG 4
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
4.1 Mô hình hóa yêu cầu
4.1.1 Thiết kế sơ đồ chức năng (usecase diagram)
Hình 4.1 Mô hình chức năng
Trang 204.1.2.1 Quản trị viên
Trang 21❖
o CRUD
Hình 4.3 Sơ đồ chức năng CRUD của khách trọ
USE CASE
Actor: Quản trị viên
Summary: Quản lý các thông tin của khách thuê khi tới thuê trọ
Goal: Quản lý thông tin cá nhân của khách thuê (cho phép thêm xóa sửa)
Trang 22Preconditions: Phải có account là quản trị viên mới xem được các thông tin này và người dùng phải đăng ký khi thuê trọ
Post conditions: N/A
Main Success Scenario:
1
Quản trị viên phải đăng
nhập tài khoản và mật khẩu
với quyền là admin
Sau khi đăng nhập trang web sẽ dẫn người dùng tới trang chủ
3
Quản trị viên muốn thêm
mới thì nhấn nút thêm mới
Sau khi quản trị viên bấm nút thêm mới thì trang web sẽ dẫn quản trị viên tới một cái form
để quản trị viên điền các thông tin vào
tin thì quản trị viên bấm nút
Thêm mới
Sau khi quản trị viên bấm nút thì hệ thống sẽ tự động tắt form và hiển thị thông tin vừa mới nhập lên giao diện
5
Nếu quản trị viên muốn
chỉnh sửa thông tin thì bấm
vào icon chỉnh sửa
Hệ thống sẽ dẫn quản trị viên tới form chỉnh sửa
6
Quản trị viên nhập các
thông tin cần chỉnh sửa vào
các input Sau khi nhập
xong thì quản trị viên bấm
nút chỉnh sửa
Hệ thống sẽ xác nhận và sẽ xuất hiện ký hiệu load trong khoảng vài giây và sẽ hiển thị lại thông tin đã chỉnh sửa lên giao diện
Trang 237
Nếu quản trị viên muốn xóa
thì bấm icon xóa góc bên
phải
Hệ thống sẽ chỉ load những thông tin còn lại, còn thông tin của khách trọ nào mà quản trị viên muốn xóa thì hệ thống sẽ làm mất nó
Alternative Scenario: N/A
Trang 24Actor: Quản trị viên
Summary: Checkin khách trọ
Goal: Cho phép quản trị viên thêm người dùng vào phòng trọ bằng chức năng checkin
Preconditions: Phải có account là quản trị viên mới xem được các thông tin này và người
dùng phải đăng ký khi thuê trọ
Post conditions: N/A
Main Success Scenario:
1
Quản trị viên phải đăng
nhập tài khoản và mật khẩu
với quyền là admin
Sau khi đăng nhập trang web sẽ dẫn người dùng tới trang chủ
3
Quản trị viên muốn checkin
một khách trọ bất kỳ thì
click vô icon checkin
Sau khi quản trị viên checkin thành công thì hệ thống sẽ hiện thông tin tin nhắn thành công và trạng thái phòng của người dùng mà quản trị đã thực hiện sẽ được cập nhật
Alternative Scenario: N/A
Exceptions: N/A
Bảng 4.2 Đặc tả sơ đồ chức năng checkin khách trọ
o Checkout
Trang 25Hình 4.5 Sơ đồ chức năng checkout khách trọ
USE CASE
Actor: Quản trị viên
Summary: Checkout khách trọ
Goal: Cho phép quản trị viên xóa người dùng ra khỏi phòng trọ bằng chức năng checkout Preconditions: Phải có account là quản trị viên mới xem được các thông tin này và người dùng phải đăng ký khi thuê trọ
Post conditions: N/A
Trang 26Step Actor Action System Response
1
Quản trị viên phải đăng nhập tài khoản và mật khẩu với quyền là admin
Sau khi đăng nhập trang web sẽ dẫn người dùng tới trang chủ
3
Quản trị viên muốn checkout một khách trọ bất
kỳ thì click vô icon checkin
Sau khi quản trị viên checkin thành công thì hệ thống sẽ hiện thông tin tin nhắn thành công và trạng thái phòng của người dùng hiện tại sẽ bị xóa mất
Alternative Scenario: N/A
Exceptions: N/A
Bảng 4.3 Đặc tả sơ đồ chức năng checkout khách trọ
o Tìm kiếm theo roleName
Hình 4.6 Sơ đồ chức năng tìm khách trọ theo quyền
USE CASE
Trang 27Use Case No 4 Use Case Version 1.0
Actor: Quản trị viên
Summary: Tìm kiếm người dùng theo role
Goal: Cho phép quản trị viên tìm tất cả thông tin người dùng theo phân quyền, ở đây có hai quyền là admin và user
Preconditions: Phải có account là quản trị viên mới xem được các thông tin này và người dùng phải đăng ký khi thuê trọ
Post conditions: N/A
Main Success Scenario:
1
Quản trị viên phải đăng nhập tài khoản và mật khẩu với quyền là admin
Sau khi đăng nhập trang web sẽ dẫn người dùng tới trang chủ
Trang 283
Quản trị viên muốn tìm kiếm thông tin người dùng theo role thì quản trị viên sẽ bấm vào nút ô Search
Sau khi thực hiện xong thì hệ thống sẽ load lại table và hiện lên data theo yêu cầu của quản trị viên
Alternative Scenario: N/A
Exceptions: N/A
Bảng 4.4 Đặc tả sơ đồ chức năng tìm khách trọ theo quyền
o Tìm kiếm theo username
Hình 4.7 Sơ đồ chức năng tìm khách trọ theo username
USE CASE
Trang 29Author Nguyễn Hùng Duy – 17110112
Actor: Quản trị viên
Summary: Tìm kiếm người dùng theo username
Goal: Cho phép quản trị viên tìm tất cả thông tin người dùng theo username
Preconditions: Phải có account là quản trị viên mới xem được các thông tin này và người dùng phải đăng ký khi thuê trọ
Post conditions: N/A
Main Success Scenario:
1
Quản trị viên phải đăng nhập tài khoản và mật khẩu với quyền là admin
Sau khi đăng nhập trang web sẽ dẫn người dùng tới trang chủ
3
Quản trị viên muốn tìm kiếm thông tin người dùng theo role thì quản trị viên sẽ bấm vào nút ô select và chọn theo username mong
Sau khi thực hiện xong thì hệ thống sẽ load lại table và hiện lên data theo yêu cầu của quản trị viên
Trang 30Alternative Scenario: N/A
Exceptions: N/A
Bảng 4.5 Đặc tả sơ đồ chức năng tìm khách trọ theo username
o Kiểm tra username trùng
Hình 4.8 Sơ đồ chức năng kiểm tra username trùng
Actor: Quản trị viên
Trang 31Summary: Tìm kiếm người dùng theo username
Goal: Cho phép quản trị viên check username có trùng hay không khi tạo người dùng
Preconditions: Phải có account là quản trị viên mới xem được các thông tin này và người dùng phải đăng ký khi thuê trọ
Post conditions: N/A
Main Success Scenario:
đăng nhập tài khoản và mật khẩu với quyền là admin
Sau khi đăng nhập trang web sẽ dẫn người dùng tới trang chủ
vào khách trọ để quản lý tác click trang web trỏ quản trị viên tới Sau khi người dùng thực hiện thao
trang quản lý khách trọ
vào nút Thêm mới
Hệ thống sẽ load modal thêm mới lên và có các ô input
input username Sau đó quản trị viên sẽ bấm button check trùng bên cạnh
Sau khi quản trị viên bấm xong thì
hệ thống sẽ hiện tin nhắn nếu trùng thì hệ thống sẽ show tin nhắn là đã trùng
username còn nếu không trùng thì hệ thống sẽ hiện thị là không trùng
Alternative Scenario: N/A
Exceptions: N/A
Trang 32❖
o CRUD
Hình 4.9 Sơ đồ chức năng CRUD nội quy
USE CASE
Trang 33Actor: Quản trị viên
Summary: Quản lý các thông tin của nội quy của nhà trọ
Goal: Cho phép quản trị viên quản lý nội quy của nhà trọ ( thêm, xóa, sửa)
Preconditions: Phải có account là quản trị viên mới xem được các thông tin này
Post conditions: N/A
Main Success Scenario:
khẩu với quyền là admin
Sau khi đăng nhập trang web sẽ dẫn người dùng tới trang chủ
2
2
Quản trị viên chọn vào nội quy để quản lý
Sau khi quản trị viên thực hiện thao tác click trang web trỏ quản trị viên tới trang quản lý nội quy
4
4
Sau khi đã nhập xong thông tin thì quản trị
viên bấm nút Thêm mới
Sau khi quản trị viên bấm nút thì hệ thống sẽ
tự động tắt form và hiển thị thông tin vừa mới nhập lên giao diện
5
5
Nếu quản trị viên
Trang 346
Quản trị viên nhập các thông tin cần chỉnh sửa
vào các input Sau khi nhập
xong thì quản trị viên bấm
Trang 35Use Case Name Quản lý phòng trọ - CRUD
Actor: Quản trị viên
Summary: Quản lý các thông tin của phòng trọ
Goal: Cho phép quản trị viên quản lý các phòng ( thêm, xóa, sửa)
Preconditions: Phải có account là quản trị viên mới xem được các thông tin này
Post conditions: N/A
Main Success Scenario:
khẩu với quyền là admin
Sau khi đăng nhập trang web sẽ dẫn người dùng tới trang chủ
2
2
Quản trị viên chọn vào phòng trọ để quản lý click trang web trỏ quản trị viên tới trang quản Sau khi quản trị viên thực hiện thao tác
lý phòng trọ
Trang 364
Sau khi đã nhập xong thông tin thì quản trị
viên bấm nút Thêm mới
Sau khi quản trị viên bấm nút thì hệ thống sẽ tự động tắt form và hiển thị thông tin vừa mới nhập lên giao diện
5
5
Nếu quản trị viên muốn chỉnh sửa thông tin
thì bấm vào icon chỉnh sửa
Hệ thống sẽ dẫn quản trị viên tới form chỉnh sửa
5
6
Quản trị viên nhập các thông tin cần chỉnh sửa
vào các input Sau khi nhập
xong thì quản trị viên bấm
nút chỉnh sửa
Hệ thống sẽ xác nhận và sẽ xuất hiện ký hiệu load trong khoảng vài giây và sẽ hiển thị lại thông tin đã chỉnh sửa lên giao diện
Alternative Scenario: N/A
Exceptions: N/A
Bảng 4.8 Đặc tả sơ đồ chức năng CRUD phòng trọ
o Tìm kiếm phòng theo vị trí chi nhánh
Trang 37Hình 4.11 Sơ đồ chức năng tìm kiếm phòng theo vị trí chi nhánh
USE CASE
Actor: Quản trị viên
Summary: Tìm kiếm phòng trọ theo location
Goal: Cho phép quản trị viên tìm phòng trọ theo location của chi nhánh
Preconditions: Phải có account là quản trị viên mới xem được các thông tin này
Post conditions: N/A
Main Success Scenario:
Trang 38khẩu với quyền là admin
Sau khi đăng nhập trang web sẽ dẫn người dùng tới trang chủ
2
2
Quản trị viên chọn vào phòng trọ để quản lý click trang web trỏ quản trị viên tới trang quản Sau khi quản trị viên thực hiện thao tác
lý phòng trọ
3
3
Quản trị viên tìm kiếm phòng trọ theo
location thì nhập vô ô
search
Sau khi quản trị viên bấm nút search thì
hệ thống sẽ hiển thị lại table với những dữ liệu phù hợp với location mà quản trị viên đã search
Alternative Scenario: N/A
Trang 39USE CASE
Actor: Quản trị viên
Summary: Quản lý các thông tin của quyền tài khoản người dùng
Goal: Cho phép quản trị viên quản lý các quyền ( thêm, xóa, sửa)
Preconditions: Phải có account là quản trị viên mới xem được các thông tin này
Post conditions: N/A
Main Success Scenario:
khẩu với quyền là admin
Sau khi đăng nhập trang web sẽ dẫn người dùng tới trang chủ
Trang 402
Quản trị viên chọn vào quyền để quản lý
Sau khi quản trị viên thực hiện thao tác click trang web trỏ quản trị viên tới trang quản
4
4
Sau khi đã nhập xong thông tin thì quản trị
viên bấm nút Thêm mới
Sau khi quản trị viên bấm nút thì hệ thống sẽ tự động tắt form và hiển thị thông tin vừa mới nhập lên giao diện
5
5
Nếu quản trị viên muốn chỉnh sửa thông tin
thì bấm vào icon chỉnh sửa
Hệ thống sẽ dẫn quản trị viên tới form chỉnh sửa
5
6
Quản trị viên nhập các thông tin cần chỉnh sửa
vào các input Sau khi nhập
xong thì quản trị viên bấm
nút chỉnh sửa
Hệ thống sẽ xác nhận và sẽ xuất hiện ký hiệu load trong khoảng vài giây và sẽ hiển thị lại thông tin đã chỉnh sửa lên giao diện
Alternative Scenario: N/A
Exceptions: N/A
Bảng 4.10 Đặc tả sơ đồ chức năng CRUD quản lý quyền