Nhằm đáp ứng cho nhu cầu phát triển của xã hội nói chung và thực hiện tin học hoá trong công tác quản lý nhà trọ nói riêng, nhóm chúng e đã nghiên cứu và phát triển một ứng dụng chạy trê
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐÔNG Á KHOA CÔNG NGHỆ THÔNG TIN
BÀI TẬP LỚN
ĐỀ TÀI : QUẢN LÝ PHÒNG TRỌ
Bắc Ninh, năm 2024
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO
KHOA CÔNG NGHỆ THÔNG TIN
BÀI TẬP LỚN
ĐỀ TÀI : QUẢN LÝ PHÒNG TRỌ
Nhóm : 09
STT Sinh viên thực hiện Mã sinh viên Điểm bằng số Điểm bằng chữ
1
2
3
CÁN BỘ CHẤM 1
(Ký và ghi rõ họ tên)
CÁN BỘ CHẤM 2
(Ký và ghi rõ họ tên)
Trang 3Mục Lục
Lời nói đầu 1
Chương 1: Giới thiệu về các công nghệ sử dụng 2
1.1 Phát biểu bài toán 2
1.2 Khảo sát bài toán 3
1.3 Các yêu cầu về chức năng 3
1.4 Các yêu cầu phi chức năng 4
1 Hiệu xuất 4
2 Tính bảo mật 4
3 Tính thân thiện 4
4 Tính mở rộng 4
5 Khả năng sao lưu và khôi phục 4
Chương 2: Phân tích thiết kế 5
2.1 Các biểu đồ usecase tổng quát 5
2.2 Các biểu đồ trình tự 6
2.3 Biểu đồ lớp 6
2.4 Thiết kế Cơ sở dữ liệu 6
Hình 2: Thiết kế Cơ sở dữ liệu 6
Mô tả các bảng, thuộc tính, kiểu dữ liệu 7
Chương 4: kết Luận 9
I Kết quả đạt được 9
II Hướng phát triền đề tài 10
TÀI LIỆU THAM KHẢO 10
Trang 4Lời nói đầu
Trong giai đoạn đất nước đang quá trình hội nhập, cùng với sự phát triển mạnh mẽ của công nghệ thông tin, tin học hoá là điều mà mỗi công ty, cơ quan, xí nghiệp và các tổ chức cần phải nghỉ đến Tin học được ứng dụng trong mọi lĩnh vực cuộc sống, nó đem lại nhiều lợi ích to lớn, đã dần thay thế những công việc thủ công và mất nhiều thời gian
Hiện nay rất nhiều lĩnh vực đã và đang thực hiện việc tin học hoá, trong lĩnh vực sản xuất và
cả trong những lĩnh vực xã hội Nhằm đáp ứng cho nhu cầu phát triển của xã hội nói chung
và thực hiện tin học hoá trong công tác quản lý nhà trọ nói riêng, nhóm chúng e đã nghiên cứu và phát triển một ứng dụng chạy trên nền tảng điện thoại thông minh hệ điều hành android để giúp các chủ nhà trọ dễ dàng hơn trong việc quản lý khách thuê phòng của mình ứng dụng được viết ra dựa vào các nền tảng mã nguồn mở khác nhau như java, PHP, MySQL và android Nhận thấy được điện thoại di động thông minh được hầu hết tất cả mọi người sử dụng nên ứng dụng này được viết trên nền tảng này giúp cho việc quản lý của các chủ trọ thuận tiện hơn, có thể quản lý được tình hình của nhà trọ mình mọi lúc mọi nơi Với dao diện màn hình dễ sử dụng, bắt mắt tạo sự thoải mái cho người dùng Việc áp dụng ứng dụng này vào việc quản lý sẽ giúp người dùng giảm được thời gian ghi chép sổ sách, tính toán bởi ứng dụng đã tự động tính toán hóa đơn hàng tháng và lưu trữ trực tiếp lên máy chủ giúp cho thông tin lưu trữ được an toàn, người dùng cũng có thể tìm kiếm thông tin của một khách hàng bất kỳ trong nhà trọ của mình mà không cần phải lục lại từng trang sổ ghi chép Bằng nhiều tư liệu khác nhau, được sưu tầm từ nhiều nguồn khác nhau Chúng em viết ứng dụng quản lý nhà trọ này được phát triển dựa theo những yêu cầu thực tế và nhằm giúp cho việc quản lý dễ dàng Chúng em hy vọng ứng dụng quản lý nhà trọ, giống như tên gọi của
nó, sẽ trở thành một cẩm nang quản lý trong công việc Dù đã rất cố gắng, nhóm chúng em cũng khó có thể tránh khỏi những thiếu sót nhất định Rất mong nhận được sự đóng góp ý kiến của thầy và các bạn để chương trình ngày càng hoàn thiện hơn
Em xin chân thành cảm ơn thầy giáo Nguyễn Thái Cường là giáo viên hướng dẫn đã chỉ bảo tận tình giúp chúng em hoàn thành bài tập lớn này
Trang 5Chương 1: Giới thiệu về các công nghệ sử dụng 1.1 Phát biểu bài toán
Tên đề tài:
Ứng dụng Quản lý Nhà trọ sử dụng Java, SQLite và SQL Server trên nền tảng Android
Lý do lựa chọn đề tài:
Trong bối cảnh đô thị hóa ngày càng tăng, nhu cầu tìm kiếm và quản lý nhà trọ trở nên cấp thiết hơn bao giờ hết Các chủ trọ thường gặp khó khăn trong việc quản lý thông tin
về phòng trọ, khách thuê, hóa đơn hay hợp đồng một cách hiệu quả Việc ghi chép thủ công dễ dẫn đến sai sót, mất mát dữ liệu và tốn nhiều thời gian Đối với người thuê trọ, thông tin không đầy đủ và khó tiếp cận làm tăng sự bất tiện trong quá trình tìm kiếm phòng
Ứng dụng này được phát triển với mong muốn giải quyết những vấn đề trên bằng cách cung cấp một hệ thống quản lý nhà trọ thông minh và dễ sử dụng Đây không chỉ là công
cụ hỗ trợ quản lý, mà còn là cầu nối giữa chủ trọ và người thuê, giúp tiết kiệm thời gian
và nâng cao hiệu quả quản lý
Dữ liệu thu thập:
Dữ liệu sử dụng trong bài toán được thu thập từ:
Các chủ nhà trọ thực tế thông qua khảo sát trực tiếp
Thông tin từ các trang web bất động sản và nhà trọ để tham khảo các tiêu chí quản lý
Ý kiến đóng góp từ người dùng tiềm năng như sinh viên, công nhân, người lao động
Giải pháp và công nghệ lựa chọn:
Để xây dựng ứng dụng, các công nghệ và công cụ được lựa chọn gồm:
Ngôn ngữ lập trình Java: Do tính ổn định và phù hợp với phát triển ứng dụng
Android
SQLite: Là cơ sở dữ liệu nhẹ, lý tưởng cho các ứng dụng di động, giúp lưu trữ dữ
liệu cục bộ hiệu quả
SQL Server: Được sử dụng để quản lý dữ liệu trên hệ thống server, hỗ trợ việc
đồng bộ hóa và lưu trữ thông tin khi cần mở rộng quy mô
StarUML và draw.io: Công cụ vẽ Use Case, giúp phân tích và thiết kế hệ thống
một cách trực quan, dễ hiểu
Việc lựa chọn các công nghệ này là do tính phổ biến, dễ tiếp cận và phù hợp với yêu cầu của bài toán
Trang 61.2 Khảo sát bài toán
Trong quá trình khảo sát, chúng tôi đã phân tích hoạt động của các chủ nhà trọ và người thuê trọ thông qua các bước sau:
Quan sát thực tế: Theo dõi cách quản lý thông tin của các chủ trọ.
Phỏng vấn: Lấy ý kiến từ cả chủ trọ và người thuê trọ về các vấn đề họ gặp phải.
Đánh giá hiện trạng: Xác định những hạn chế của phương pháp quản lý thủ công
và nhu cầu cải tiến bằng công nghệ
Từ đó, bài toán được đặt ra với trọng tâm là:
Quản lý danh sách nhà trọ, phòng trọ
Cập nhật thông tin khách thuê và hóa đơn hàng tháng
Đảm bảo tính bảo mật, chính xác và nhanh chóng trong quản lý
1.3 Các yêu cầu về chức năng
Ứng dụng cần đáp ứng các chức năng chính như sau:
1 Quản lý phòng trọ
o Thêm, sửa, xóa và cập nhật thông tin phòng trọ (diện tích, giá thuê, trạng thái)
2 Quản lý khách thuê
o Lưu trữ thông tin khách thuê (họ tên, số điện thoại, số CMND/CCCD)
o Tra cứu thông tin khách thuê theo phòng
3 Quản lý hóa đơn
o Tạo, sửa và quản lý hóa đơn tiền trọ, tiền điện, nước, internet
o Theo dõi trạng thái thanh toán hóa đơn
4 Báo cáo thống kê
o Thống kê doanh thu theo tháng, quý, năm
o Xem báo cáo phòng trọ đang trống hoặc đã cho thuê
5 Tìm kiếm và tra cứu
o Tìm kiếm phòng trọ theo giá, diện tích, trạng thái
o Tra cứu lịch sử thanh toán của khách thuê
Trang 76 Đồng bộ hóa dữ liệu
o Đồng bộ hóa dữ liệu giữa SQLite (offline) và SQL Server (online)
1.4 Các yêu cầu phi chức năng
1 Hiệu xuất
o Ứng dụng phải hoạt động mượt mà trên các thiết bị Android phổ thông
o Xử lý dữ liệu nhanh, ngay cả với cơ sở dữ liệu lớn
2 Tính bảo mật
o Dữ liệu cá nhân của khách thuê và thông tin tài chính phải được bảo mật
o Hỗ trợ tính năng đăng nhập bằng tài khoản và mật khẩu
3 Tính thân thiện
o Giao diện dễ sử dụng, phù hợp cho cả người không am hiểu công nghệ
o Các thao tác quản lý được thiết kế trực quan và logic
4 Tính mở rộng
o Ứng dụng dễ dàng tích hợp thêm các tính năng mới trong tương lai (ví dụ: thanh toán trực tuyến)
5 Khả năng sao lưu và khôi phục
o Dữ liệu phải được sao lưu định kỳ và có thể khôi phục dễ dàng khi cần
Ứng dụng này không chỉ giúp tối ưu hóa quản lý nhà trọ mà còn tạo ra trải nghiệm tiện ích cho người dùng, hứa hẹn góp phần nâng cao chất lượng dịch vụ trong lĩnh vực bất động sản
Trang 8Chương 2: Phân tích thiết kế 2.1 Các biểu đồ usecase tổng quát
Hình 1 biểu đồ usecase tổng quát
Trang 92.2 Các biểu đồ trình tự
2.3 Biểu đồ lớp
2.4 Thiết kế Cơ sở dữ liệu
Hình 2: Thiết kế Cơ sở dữ liệu
Trang 10Mô tả các bảng, thuộc tính, kiểu dữ liệu
1 Bảng sản phẩm
Tên thuộc tính Kiểu dữ liệu Mô tả
id NVARCHAR(10) Mã sản phẩm (Khóa chính)
ten NVARCHAR(100) Tên sản phẩm
2 Bảng khách hàng
Tên thuộc tính Kiểu dữ liệu Mô tả
id NVARCHAR(10) Mã khách hàng (Khóa chính)
ten NVARCHAR(100) Tên khách hàng
email NVARCHAR(100) Email khách hàng (có thể để trống)
so_dien_thoai NVARCHAR(15) Số điện thoại khách hàng
3 Bảng hóa đơn
id NVARCHAR(10) Mã hóa đơn (Khóa chính)
id_khach_hang NVARCHAR(10) Mã khách hàng (Khóa ngoại đến bảng khachhang) ngay_lap DATE Ngày lập hóa đơn
tong_tien INT Tổng tiền của hóa đơn
4 Bảng chi tiết hóa đơn
id NVARCHAR(10) Mã chi tiết hóa đơn (Khóa chính)
id_hoa_don NVARCHAR(10) Mã hóa đơn (Khóa ngoại đến bảng hoadon)
id_san_pham NVARCHAR(10) Mã sản phẩm (Khóa ngoại đến bảng sanpham) so_luong INT Số lượng sản phẩm
gia INT Giá sản phẩm tại thời điểm mua
Trang 115 Bảng danh sách phòng
idphong INT Mã phòng (Khóa chính, tự tăng)
sophong NVARCHAR(10) Số phòng
loaiphong NVARCHAR(20) Loại phòng (khép kín hoặc không)
vitriphong NVARCHAR(MAX) Vị trí phòng
chutro NVARCHAR(20) Chủ trọ quản lý phòng
soluongsv INT Số lượng sinh viên đang thuê
6 Bảng nhà trọ
hoten NVARCHAR(MAX) Họ tên chủ nhà trọ
sodienthoai NVARCHAR(MAX) Số điện thoại chủ nhà trọ
diachi NVARCHAR(MAX) Địa chỉ nhà trọ
tenxomtro NVARCHAR(20) Tên xóm trọ (Khóa chính)
matkhau NVARCHAR(20) Mật khẩu đăng nhập quản lý nhà trọ
dongiadien FLOAT Đơn giá điện
dongianuoc FLOAT Đơn giá nước
trangthai BIT Trạng thái hoạt động (1: hoạt động, 0: ngừng)
7 Bảng sinh viên
idsinhvien INT Mã sinh viên (Khóa chính, tự tăng)
hoten NVARCHAR(MAX) Họ tên sinh viên
sodienthoai NVARCHAR(MAX) Số điện thoại sinh viên
diachi NVARCHAR(MAX) Địa chỉ sinh viên
Trang 12Tên thuộc tính Kiểu dữ liệu Mô tả
danhsachphong)
ngaythue DATE Ngày bắt đầu thuê phòng
8 Bảng tạm thời lưu thay đổi của sinh viên
action NVARCHAR(MAX) Hành động (update/delete)
Idsinhvien` INT Mã sinh viên bị thay đổi
hoten NVARCHAR(MAX) Họ tên sinh viên trước khi thay đổi sodienthoai NVARCHAR(MAX) Số điện thoại trước khi thay đổi diachi NVARCHAR(MAX) Địa chỉ trước khi thay đổi
email NVARCHAR(MAX) Email trước khi thay đổi
idphong INT Mã phòng trước khi thay đổi ngaythue DATE Ngày thuê trước khi thay đổi ngaytra DATE Ngày thực hiện thay đổi
Trang 13Mã Nguồn SQL:
Tạo cơ sở dữ liệu
CREATE DATABASE QuanLyNhaTro ;
GO
USE QuanLyNhaTro ;
GO
Tạo bảng sản phẩm
CREATE TABLE sanpham
id NVARCHAR ( 10 ) PRIMARY KEY ,
ten NVARCHAR ( 100 ) NOT NULL,
gia INT NOT NULL
);
GO
Tạo bảng khách hàng
CREATE TABLE khachhang
id NVARCHAR ( 10 ) PRIMARY KEY ,
ten NVARCHAR ( 100 ) NOT NULL,
email NVARCHAR ( 100 ),
so_dien_thoai NVARCHAR ( 15 )
);
GO
Tạo bảng hóa đơn
CREATE TABLE hoadon
id NVARCHAR ( 10 ) PRIMARY KEY ,
Trang 14tong_tien INT NOT NULL,
CONSTRAINT FK_HoaDon_KhachHang FOREIGN KEY ( id_khach_hang ) REFERENCES
khachhang ( id )
);
GO
Tạo bảng chi tiết hóa đơn
CREATE TABLE chitiethoadon
id NVARCHAR ( 10 ) PRIMARY KEY ,
id_hoa_don NVARCHAR ( 10 ) NOT NULL,
id_san_pham NVARCHAR ( 10 ) NOT NULL,
so_luong INT NOT NULL,
gia INT NOT NULL,
CONSTRAINT FK_ChiTietHoaDon_HoaDon FOREIGN KEY ( id_hoa_don ) REFERENCES
hoadon ( id ),
CONSTRAINT FK_ChiTietHoaDon_SanPham FOREIGN KEY ( id_san_pham ) REFERENCES
sanpham ( id )
);
GO
Tạo bảng danh sách phòng
CREATE TABLE danhsachphong
idphong INT IDENTITY ( , ) PRIMARY KEY ,
sophong NVARCHAR ( 10 ) NOT NULL,
loaiphong NVARCHAR ( 20 ) NOT NULL,
giaphong FLOAT NOT NULL,
vitriphong NVARCHAR ( MAX ) NOT NULL,
chutro NVARCHAR ( 20 ) NOT NULL,
soluongsv INT NOT NULL
);
GO
Tạo bảng nhà trọ
CREATE TABLE nhatro
Trang 15hoten NVARCHAR ( MAX ) NOT NULL,
sodienthoai NVARCHAR ( MAX ) NOT NULL,
diachi NVARCHAR ( MAX ) NOT NULL,
tenxomtro NVARCHAR ( 20 ) NOT NULL PRIMARY KEY ,
matkhau NVARCHAR ( 20 ) NOT NULL,
dongiadien FLOAT NOT NULL,
dongianuoc FLOAT NOT NULL,
trangthai BIT DEFAULT 1
);
GO
Tạo bảng sinh viên
CREATE TABLE sinhvien
idsinhvien INT IDENTITY ( , ) PRIMARY KEY ,
hoten NVARCHAR ( MAX ) NOT NULL,
sodienthoai NVARCHAR ( MAX ) NOT NULL,
diachi NVARCHAR ( MAX ) NOT NULL,
email NVARCHAR ( MAX ),
idphong INT NOT NULL,
ngaythue DATE NOT NULL,
CONSTRAINT FK_SinhVien_DanhSachPhong FOREIGN KEY ( idphong ) REFERENCES
danhsachphong ( idphong )
);
GO
Tạo bảng tạm cho sinh viên
CREATE TABLE sinhvien_tmp
action NVARCHAR ( MAX ) NOT NULL,
idsinhvien INT NOT NULL,
hoten NVARCHAR ( MAX ),
sodienthoai NVARCHAR ( MAX ),
Trang 16idphong INT NULL,
ngaythue DATE NULL,
ngaytra DATE NOT NULL
);
GO
Tạo Trigger: Lưu khi cập nhật sinh viên
CREATE TRIGGER luusua
ON sinhvien
INSTEAD OF UPDATE
AS
BEGIN
INSERT INTO sinhvien_tmp action , idsinhvien , hoten , sodienthoai , diachi ,
email , idphong , ngaythue , ngaytra )
SELECT 'update' , idsinhvien , hoten , sodienthoai , diachi , email , idphong ,
ngaythue , GETDATE ()
FROM deleted ;
END ;
GO
Tạo Trigger: Lưu khi xóa sinh viên
CREATE TRIGGER luuxoa
ON sinhvien
INSTEAD OF DELETE
AS
BEGIN
INSERT INTO sinhvien_tmp action , idsinhvien , hoten , sodienthoai , diachi ,
email , idphong , ngaythue , ngaytra )
SELECT 'delete' , idsinhvien , hoten , sodienthoai , diachi , email , idphong ,
ngaythue , GETDATE ()
FROM deleted ;
END ;
GO
Trang 17Chương 4: kết Luận
I Kết quả đạt được
Những vấn đề đã đạt được
- Tìm hiểu được các mã nguồn mở như java, android, PHP, mySQL
- Khảo sát được các thức quản lý sinh viên ở trọ của một số nhà trọ
- Lên kế hoạch và phát triển được hệ thống quản lý nhà trọ chạy trên nền tảng hệ điều hành android
- Cài đặt được máy chủ trực tuyến để lưu trữ dữ liệu
Những vấn đề chưa làm được
Do thời gian hạn hẹp nên ứng dụng không tránh khỏi những vấn đề chưa được như
- Mới chỉ phát triển được cho chỉ các chủ trọ sử dụng, chưa mở ra cho sinh viên tìm trọ
- Ứng dụng còn chưa được tối ưu
- Quá trình xử lý còn chậm do sử dụng host miễn phí
- Chưa đưa ra cho khách hàng sử dụng
II Hướng phát triền đề tài
Trong thời gian tới sau khi có được một lượng khách hàng nhất định chúng em
sẽ phát triển thêm chức năng cho phép sinh viên có thể sử dụng để tìm kiếm nhà trọ cho phù hợp và dễ dàng hơn
Tối ưu ứng dụng để xử lý nhanh hơn
TÀI LIỆU THAM KHẢO
(1): https://vi.wikipedia.org
(2): http://www.vietnamandroid.com/gioi-thieu?
fb_comment_id=10150304737329277_24791049#fadc422fd5a46c
(3): http://www.mystown.com/2016/12/tong-quan-ve-inh-dang-du-lieu-json-va.html (4): http://streampow.net/tu-hoc-php-co-ban-5/gioi-thieu-ngon-ngu-lap-trinh-php-23.html
(5): http://www.cncaptech.edu.vn/tin-tuc/tin-tuc.php?id=11667-Uu-va-nhuoc-diem-cua-ngon-ngu-PHP
(6): https://developer.android.com/guide/topics/ui/index.html