ĐẶC TẢ YÊU CẦU BÀI TOÁN
Mô tả yêu cầu bài toán
Xây dựng một phần mềm quản lý thông tin tổ dân phố/khu dân cư:
Ban quản lý tổ dân phố 7 phường La Khê cần xây dựng một phần mềm quản lý thông tin khu dân cư / tổ dân phố Tổ dân phố 7 có hơn 400 hộ gia đình với 1.700 nhân khẩu, chưa kể hàng trăm sinh viên thuê trọ và hàng chục gia đình nơi khác đến thuê nhà làm kinh doanh dịch vụ Địa bàn rộng, dân cư đông và phức tạp nên ban quản lý mong đợi phần mềm này có thể quản lý thông tin chung cả tổ dân phố từ biến động nhân khẩu, hộ khẩu đến các công tác đoàn thể khác Ban quản lý gồm một tổ trưởng, một tổ phó và các cán bộ phụ trách các hoạt động nghiệp vụ khác Tổ trưởng và tổ phó có thể thực hiện tất cả các nghiệp vụ quản lý, còn các cán bộ khác phụ trách từng nghiệp vụ theo phân công cụ thể
Nghiệp vụ chính: Quản lý thông tin về hộ khẩu, nhân khẩu và biến động nhân khẩu (khai sinh, khai tử, tạm vắng, tạm trú, …)
Thông tin về hộ khẩu và nhân khẩu do tổ trưởng ghi nhận và quản lý:
Thông tin về nhân khẩu của mỗi hộ gia đình được lưu trong sổ hộ khẩu với một mã số định danh duy nhất Sổ hộ khẩu gia đình ghi các thông tin cho cả hộ như: số hộ khẩu, họ tên chủ hộ, số nhà, đường phố (ấp), phường (xã, thị trấn), quận (huyện)
Sổ hộ khẩu gồm nhiều chi tiết cụ thể cho từng nhân khẩu trong hộ như họ và tên, bí danh, ngày tháng năm sinh, nơi sinh, nguyên quán, dân tộc, nghề nghiệp, nơi làm việc, số CMND hoặc số CCCD, ngày cấp và nơi cấp, ngày tháng năm đăng ký thường trú, địa chỉ nơi thường trú trước khi chuyển đến Trường hợp nhân khẩu là chủ hộ thì sẽ được ghi trang đầu tiên, nếu không là chủ hộ thì sẽ thêm chi tiết: quan hệ với chủ hộ
Các hoạt động biến đổi nhân khẩu:
Nếu gia đình có thêm nhân khẩu mới: sinh thêm con thì sẽ bổ sung chi tiết như trên, bỏ trống các chi tiết về nghề nghiệp, CMND và nơi thường trú chuyển đến sẽ ghi các chi tiết về giấy khai sinh của em bé
Nếu có nhân khẩu qua đời, chi tiết về chuyển đi sẽ ghi rõ các chi tiết về giấy khai tử Nếu có một nhân khẩu chuyển đi nơi khác thì sẽ thêm các chi tiết như sau: chuyển đi ngày, nơi chuyển đến, lý do khác
Nếu cả hộ chuyển đi nơi khác thì sẽ ghi ở phần thay đổi địa chỉ cả hộ các chi tiết như chuyển đến đâu, ngày đăng ký chuyển
Nếu có những thay đổi khác liên quan cả hộ (ví dụ như thay đổi chủ hộ) thì sẽ ghi ở phần thay đổi đính chính khác các chi tiết như nội dung thay đổi, ngày thay đổi
Nếu tách hộ thì tạo thông tin sổ hộ khẩu mới với các nhân khẩu được chọn.
Khi gia đình có ai đó đi xa dài ngày thì phải đến gặp tổ trưởng thông báo và xin cấp giấy tạm vắng có thời hạn Ngược lại nếu có nhân khẩu từ địa phương khác đến cư trú tạm thời trong một khoảng thời gian thì phải khai báo để được cấp giấy tạm trú
Phần mềm cần cung cấp cho tổ trưởng và tổ phó khả năng ghi nhận các thông tin trên ngoài ra có thể tìm kiếm các thông tin một cách nhanh chóng, xem lịch sử thay đổi nhân khẩu của một hộ Hàng quý tổ trưởng cần thống kê nhân khẩu theo các tiêu chí: theo giới tính (nam / nữ), theo độ tuổi (mầm non / mẫu giáo / cấp 1 / cấp 2 / cấp 3 / độ tuổi lao động / nghỉ hưu), theo khoảng thời gian và thống kê tạm vắng / tạm trú.
Nghiệp vụ khác: Quản lý thu phí, đóng góp của các hộ gia đình
Hàng năm tổ dân phố thực hiện thu một số khoản phí và đóng góp của các hộ gia đình, công việc này do cán bộ kế toán phụ trách Khoản phí vệ sinh là bắt buộc với tất cả các hộ gia đình, mỗi năm thu 1 lần với định mức 6.000VNĐ / 1 tháng / 1 nhân khẩu Cán bộ kế toán sẽ lập danh sách các hộ gia đình và số nhân khẩu tương ứng, sau đó đến từng nhà thu phí và ghi nhận số tiền nộp Đối với các khoản đóng góp thì không quy định số tiền mà phụ thuộc vào từng hộ, các khoản đóng góp này được thu theo từng đợt của các cuộc vận động như: “Ủng hộ ngày thương binh-liệt sỹ 27/07”,
“Ủng hộ ngày tết thiếu nhi”, “Ủng hộ vì người nghèo”, “Trợ giúp đồng bào bị ảnh hưởng bão lụt”,… Cán bộ kế toán cũng cần thống kê tổng số tiền đã thu trong mỗi đợt, tổng số hộ đã nộp và có thể xem chi tiết mỗi hộ đã nộp những khoản tiền nà.
Biểu đồ usecase
2.1 Biểu đồ usecase tổng quan
2.2 Biểu đồ usecase phân dã
- Quản lý thu phí đóng góp:
Đặc tả usecase
3.1 Đặc tả Use case “Đăng nhập”
UC001 Tên Use case Đăng nhập
Tác nhân User: Quản lý, kế toán …
Người đăng nhập đã có tài khoản trong hệ thống
1 User Mở form đăng nhập
2 Hệ thống Tạo giao diện đăng nhập
3 User Nhập thông tin: tên người dùng và password
4 User Nhấn nút “Đăng nhập”
5 Hệ thống Tiếp nhận thông tin, kiểm tra thông tin nhập vào
6 Hệ thống Hợp lệ, mở ra giao diện mới ứng với thông tin người đăng nhập
Luồng sự kiện thay thế
7a Hệ thống Thông báo lỗi: Cần nhập các trường bắt buộc nhập nếu nhập thiếu
Từ chối đăng nhập và thông báo không tìm thấy tài khoản khi kiểm tra thông tin đăng nhập không chính xác
7b Hệ thống Người dùng chọn “Thoát” thì kết thúc chương trình 7c Hệ thống Người dùng chọn “Tư cách khách’
Người dùng đăng nhập thành công và thực hiện các chức năng
3.2 Đặc tả Use case “Hộ khẩu”
UC002 Tên Use case Quản lý User
Tác nhân User: Quản lý
Tiền điều kiện Đăng nhập thành công, bấm vào “Hộ khẩu”
2 User Chọn yêu cầu di chuyển
4 User Chọn một hộ khẩu cần di chuyển
6 User Điền đầy đủ thông tin cần điền, bấm vào
8 User Điền đầy đủ thông tin vào form địa chỉ, bấm “OK”
5 Hệ thống Thực hiện lưu lại, và cập nhập
Luồng sự kiện thay thế
6.a Hệ thống Thông báo cho user cần nhập đủ các trường 6.b Hệ thống Yêu cầu kiểm tra lại thông tin khi người thực hiện nhập sai thông tin.
6.c Hệ thống Không lưu thông tin người dùng nhập và trở về giao diện hộ khẩu khi bấm “Cancel” Thay đổi:
1 User chọn một hộ khẩu và yêu cầu thay đổi
3 Hệ thống chuyển đến form sửa thông tin hộ khẩu
5 User chỉnh sửa các thông tin, bấm “+” để chỉnh sửa địa chỉ
7 Hệ thống Chuyển đến form địa chỉ
9 User Nhập thông tin địa chỉ
11 Hệ thống Cho người dùng chọn tiếp tục lưu nhấn vào “OK” hay hủy bỏ nhấn vào “Cancel”
13 Hệ thống kiểm tra các trường bắt buộc nhập, các trường nhập có hợp lệ hay không.
14 Hệ thống Hiển thị thông itn địa chỉ vừa điền
15 User Bấm “OK” để lưu thông tin
16 Hệ thống Cập nhập thông tin thay đổi
Luồng sự kiện thay thế
8.a Hệ thống thông báo lỗi khi chưa nhập đủ các trường cần thiết nếu quản trị viên nhập thiếu trường.
8.b Hệ thống Yêu cầu kiểm tra lại thông tin khi người
12 thực hiện nhập sai thông tin.
8.c Hệ thống Không lưu thông tin người dùng chỉnh sửa và trở về giao diện hộ khẩu khi bấm
1 User Chọn yêu cầu thêm hộ khẩu
3 Hệ thống Hiển thị form thêm hộ khẩu
5 User Nhập các thông tin hộ khẩu cần thêm vào hệ thống
7 Hệ thống Cho người dùng chọn tiếp tục lưu nhấn vào “OK” hay hủy bỏ nhấn vào “Cancel”
11 Hệ thống kiểm tra các trường bắt buộc nhập
12 Hệ thống Thực hiện lưu và cập nhật các thông tin hộ khẩu
Luồng sự kiện thay thế
13 Hệ thống thông báo lỗi chưa nhập đủ các trường cần thiết nếu quản trị viên nhập thiếu trường
3.3 Đặc tả Use case “Nhân khẩu”
UC003 Tên Use case Quản lý User
Tác nhân User: Quản lý
Tiền điều kiện Đăng nhập thành công, bấm vào “Nhân khẩu”
1 User Chọn yêu cầu tạm trú, vắng
3 User Quản lý tìm kiếm
5 Hệ thống Hiển thị những nhân khẩu thỏa mãn yêu
27 Hệ thống Kiểm tra các trường phải nhập và các trường nhập có hợp lệ hay không
29 Hệ thống Thực hiện lưu và cập nhật các thông tin nhân khẩu
Luồng sự kiện thay thế
12.a Hệ thống Báo lỗi chưa nhập đầy đủ trường nếu người dùng chưa nhập đầy đủ các trường cần thiết
12.b Hệ thống Báo lỗi khi người dùng nhập sai thông tin Thêm khoản phí
1 User yêu cầu thêm khoản phí
2 Hệ thống Hiển thị form thêm hàng hóa
3 User Nhập đầy đủ thông tin khoản phí.
4 Hệ thống Cho quản lý chọn tiếp tục lưu nhấn vào
“OK” hay hủy bỏ nhấn vào “Cancel”
6 Hệ thống Kiểm tra các trường bắt buộc và các trường có nhập hợp lệ
Luồng sự kiện thay thế
7.a Hệ thống thông báo lỗi: chưa nhập đủ các trường cần thiết nếu nhập thiếu trường 7.b Hệ thống Thông báo lỗi: khi các trường nhập sai thông tin
3.5 Đặc tả Use case “Thống Kê”
UC005 Tên Use case Thống kê
Tác nhân Uset: Quản lý
Tiền điều kiện Đăng nhập thành công, bấm vào “Trang chủ”
Luồng sự STT Thực hiện Hành động
1 Hệ thống Hiển thị giao diện gồm thống kê
2 Hệ thống Hệ thống vào database lấy các thông tin
3 Hệ thống Hiển thị các thông tin lên giao diện thống kê
Luồng sự kiện thay thế
3.6 Đặc tả Use case “Tìm kiếm’
UC007 Tên Use case Quản lý tài khoản
Tác nhân Quản lý, khách
Tiền điều kiện Đăng nhập thành công, bấm vào “Tìm kiếm”
1 Hệ thống Hiển thị giao diện tìm kiếm
2 User Tùy chọn kìm kiếm về hộ khẩu hoặc nhân khẩu
3 User Nhập thông tin ID, tên của hộ khẩu, nhân khẩu muốn tìm kiếm
4 Hệ thống Lấy danh sách nhân khẩu, hộ khẩu từ database theo yêu cầu
5 Hệ thống Hiển thị danh sách tìm kiếm
Luồng sự kiện thay thế
PHÂN TÍCH THIẾT KẾ BÀI TOÁN
Thiết kế cơ sở dữ liệu
Các bảng trong cơ sở dữ liệu:
1 Bảng dong_gop (ID, tenKhoanDong, ngayTao, soTien, donVi, theLoai, hoanThanh) ID: Mã khoản đóng góp tenKhoanDong: tên khoản đóng góp ngayTao: ngày tạo soTien: số tiền donVi: đơn vị theLoai: thể loại hoanThanh: hoàn thành
2 Bảng ho_khau_dong_gop (idHoKhau, idDongGop, ngayDong, daDong) idHoKhau: Mã hộ khẩu đóng góp idDongGop: Mã khoản đóng góp ngayDong: ngày đóng daDong: đã đóng (true:1, false:0)
3 Bảng ho_khau (ID, maHoKhau, idChuHo, maKhuVuc, diaChi, ngayChuyenDi) ID maHoKhau: mã hộ khẩu idChuHo: mã chủ hộ maKhuVuc: mã khu vực diaChi: địa chỉ ngayChuyenDi: ngày chuyển đi
4 Bảng thanh_vien_cua_ho (idNhanKhau, idHoKhau, quanHeVoiChuHo) idNhanKhau: Mã Nhân khẩu idHoKhau: Mã hộ khẩu quanHeVoiChuHo: quan hệ với chủ hộ
5 Bảng tieu_su (ID, idNhanKhau, tuNgay, denNgay, diaChi, ngheNghiep, noiLamViec)
19 idNhanKhau: Mã nhân khẩu tuNgay: từ ngày denNgay: đến ngày diaChi: địa chỉ ngheNghiep: nghề nghiệp noiLamViec: nơi làm việc
6 Bảng dinh_chinh (ID, idHoKhau, thongTinThayDoi, thayDoiTu, doiThanh, ngayThayDoi, nguoiThayDoi)
ID: Mã thủ tục đính chính idHoKhau: mã hộ khẩu thongTinThayDoi: thông tin thay đổi thayDoiTu: thay đổi từ doiThanh: đổi thành ngayThayDoi: ngày thay đổi nguoiThayDoi: người thay đổi
7 Bảng user (ID, username, password, ngayTao, role)
ID: mã người dùng username: tên người dùng password: mật khẩu ngayTao: ngày tạo role: vai trò
8 Bảng nhan_khau (ID, hoTen, bietDanh, namSinh, gioiTinh, noiSinh, nguyenQuan, danToc, tonGiao, quocTich, soHoChieu, noiThuongTru, diaChiHienNay, trinhDoHocVan, trinhDoChuyenMon, bietTiengDanToc, trinhDoNgoaiNgu, ngheNghiep, noiLamViec, tienAn, ngayChuyenDen, lyDoChuyenDen, ngayChuyenDi, lyDoChuyenDi, diaChiMoi, ngayTao, idNguoiTao, ngayXoa, idNguoiXoa, lyDoXoa, ghiChu)
ID: mã nhân khẩu hoTen: họ tên bietDanh: biệt danh namSinh: năm sinh gioiTinh: giới tính noiSinh: nơi sinh nguyenQuan: nguyên quán danToc: dân tộc tonGiao: tôn giáo quocTich: quốc tịch soHoChieu: số hộ chiếu noiThuongTru: nơi thường trú diaChiHienNay: địa chỉ hiện nay trinhDoHocVan: trình độ học vấn trinhDoChuyenMon: trình độ chuyên môn bietTiengDanToc: biết tiếng dân tộc trinhDoNgoaiNgu: trình độ ngoại ngữ ngheNghiep: nghề nghiệp noiLamViec: nơi làm việc tienAn: tiền án ngayChuyenDen: ngày chuyển đến
20 lyDoChuyenDen: lý do chuyển đến ngayChuyenDi: ngày chuyển đi lyDoChuyenDi: lý do chuyển đi diaChiMoi: địa chỉ mới ngayTao: ngày tạo idNguoiTao: mã nhân khẩu người tạo ngayXoa: ngày xóa idNguoiXoa: mã nhân khẩu người xóa lyDoXoa: lý do xóa ghiChu: ghi chú
9 Bảng dinh_danh (ID,idNhanKhau, soDinhDanh, ngayCap, noiCap, type)
ID: mã thủ tục định danh idNhanKhau: mã nhân khẩu soDinhDanh: sổ định danh ngayCap: ngày cấp noiCap: nơi cấp type: loại
10 Bảng tam_tru (ID, idNhanKhau, maGiayTamTru, soDienThoaiNguoiDangKy, tuNgay, denNgay, lyDo)
ID: mã tt tạm trú idNhanKhau: mã nhân khẩu maGiayTamTru: mã giấy tạm trú soDienThoaiNguoiDangKy: số điện thoại người đăng ký tuNgay: từ ngày denNgay: đến ngày lyDo: lý do
11 Bảng tam_vang (ID, idNhanKhau, maGiayTamVang, noiTamTru, tuNgay, denNgay, lyDo)
ID: mã tt tạm vắng idNhanKhau: mã nhân khẩu maGiayTamVang: mã giấy tạm vắng noiTamTru: nơi tạm trú tuNgay: từ ngày denNgay: đến ngày lyDo: lý do
12 Bảng khai_tu (ID, soGiayKhai, idNguoiKhai, idNguoiChet, ngayKhai, ngayChet, lyDoChet)
ID: Mã thủ tục khai tử soGiayKhai: số giấy khai idNguoiKhai: mã nhân khẩu người khai idNguoiChet: mã nhân khẩu người chết ngayKhai: ngày khai ngayChet: ngày chết
Biểu đồ trình tự
2 Usecase Xem thông tin Hộ Khẩu
Biểu đồ lớp
Sơ đồ package tổng quát
Sơ đồ lớp tổng quát
Thiết kế cơ sở dữ liệu
Các package trong bài toán : app.common: gồm class chứa chức vụ có thể thực hiện nghiệp vụ quản lý bao gồm tổ trưởng, tổ phó, kế toán và các cán bộ khác app.component: gồm class thuộc tầng giao diện, cung cấp giao diện người dùng như đăng ký hộ khẩu , đăng ký nhân khẩu, đăng nhập, app.config: gồm class thuộc tầng dữ liệu để kết nối tới máy tính của bạn app.database: gồm class thuộc tầng dữ liệu , những class này có thể là cấu trúc dữ liệu hoặc là nơi lưu trữ dữ liệu phục vụ hoạt động của ứng dụng app.entity: gồm class thuộc tầng nghiệp vụ , những class này có nhiệm vụ định nghĩa những đối tượng riêng lẻ được tạo ra trong package này app.helper: gồm class thuộc tầng nghiệp vụ để thông báo các trường hợp ngoại lệ app.service: gồm class thuộc tầng nghiệp vụ, những class này đóng vai trò như các chức năng ứng dụng app.utility: gồm class thuộc tầng nghiệp vụ và giao diện, những class này vừa có vai trò là giao diện tương tác người dùng, nó giống như môi trường giao tiếp giữa người dùng và hệ thống ( cụ thể là button, label, )
Tất cả các package trên sẽ cung cấp đầy đủ chức năng của ứng dụng, và việc chia các lớp trong ứng dụng thành các package cùng chức năng như vậy sẽ giúp lập
24 trình viên dễ dàng quản lý chương trình, tổ chức code một cách phù hợp và thân thiện với người đọc code
Một số packages quan trọng:
CÔNG NGHỆ VÀ THUẬT TOÁN SỬ DỤNG
Tư duy lập trình hướng đối tượng
Ứng dụng tính trừu tượng hóa và đóng gói để xây dựng các đối tượng trong chương trình và ứng dụng tính kế thừa, kết tập, hợp thành để tái sử dụng code đồng thời ứng dụng tính đa hình trong quản lý các lớp đối tượng (upcasting và downcasing).
Sử dụng những lớp abstract kết hợp với các interface để tạo cấu trúc thiết kế chương trình rõ ràng, rất có ích trong việc làm việc nhóm.
Ghép nhóm những lớp có cùng chức năng hoặc có chức năng có liên quan lại với nhau tạo ra một chương trình có cấu trúc rõ ràng, dễ hiểu.
Công nghệ
- Javascript là một ngôn ngữ lập trình kịch bản dựa vào đối tượng phát triển có sẵn hoặc tự định nghĩa Javascript được sử dụng rộng rãi trong các ứng dụng Website Javascript được hỗ trợ hầu như trên tất cả các trình duyệt như Firefox, Chrome, trên máy tính lẫn điện thoại.
- Nhiệm vụ của Javascript là xử lý những đối tượng HTML trên trình duyệt Nó có thể can thiệp với các hành động như thêm / xóa / sửa các thuộc tính CSS và các thẻ HTML một cách dễ dàng Hay nói cách khác, Javascript là một ngôn ngữ lập trình trên trình duyệt ở phía client Tuy nhiên, hiện nay với sự xuất hiện của NodeJS đã giúp cho Javascript có thể làm việc ở backend.
- ReactJS là một thư viện JavaScript chuyên giúp các nhà phát triển xây dựng giao diện người dùng hay UI Trong lập trình ứng dụng front-end, lập trình viên thường sẽ phải làm việc chính trên 2 thành phần sau: UI và xử lý tương tác của người dùng UI là tập hợp những thành phần mà bạn nhìn thấy được trên bất kỳ một ứng dụng nào, ví dụ có thể kể đến bao gồm: menu, thanh tìm kiếm, những nút nhấn, card,… Giả sử bạn đang lập trình một website thương mại điện tử, sau khi người dùng chọn được sản phẩm ưng ý rồi và nhấn vào nút “Thêm vào giỏ hàng”, thì việc tiếp theo mà bạn phải làm đó là thêm sản phẩm được chọn vào giỏ hàng và hiển thị lại sản phẩm đó khi user vào xem => xử lý tương tác.
- Phù hợp với đa dạng thể loại website: ReactJS khiến cho việc khởi tạo website dễ dàng hơn bởi vì bạn không cần phải code nhiều như khi tạo trang web thuần chỉ dùng JavaScript, HTML và nó đã cung cấp cho bạn đủ loại “đồ chơi” để bạn có thể dùng cho nhiều trường hợp.
Cơ sở dữ liệu NoSQL
- Cơ sở dữ liệu NoSQL là Cơ sở dữ liệu được xây dựng dành riêng cho mô hình dữ liệu và có sơ đồ linh hoạt để xây dựng các ứng dụng hiện đại Cơ sở dữ liệu NoSQL được công nhận rộng rãi vì khả năng dễ phát triển, chức năng cũng như hiê £u năng ở quy mô lớn Trang này có các tài nguyên giúp bạn hiểu thêm về cơ sở dữ liệu NoSQL và bắt đầu sử dụng.
- Cơ sở dữ liệu NoSQL sử dụng nhiều mô hình dữ liệu để truy cập và quản lý dữ liệu Các loại cơ sở dữ liệu này được tối ưu hóa dành riêng cho các ứng dụng yêu cầu mô hình dữ liệu linh hoạt có lượng dữ liệu lớn và độ trễ thấp, có thể đạt được bằng cách giảm bớt một số hạn chế về tính nhất quán của dữ liệu của các cơ sở dữ liệu khác.
- Cơ sở dữ liệu NoSQL là lựa chọn cực kỳ thích hợp cho nhiều ứng dụng hiện đại, ví dụ như di động, web và trò chơi đòi hỏi phải sử dụng cơ sở dữ liệu cực kỳ thiết thực, linh hoạt, có khả năng thay đổi quy mô và hiệu năng cao để đem đến cho người dùng trải nghiệm tuyệt vời.
Linh hoạt: Cơ sở dữ liệu NoSQL thường cung cấp các sơ đồ linh hoạt giúp công đoạn phát triển nhanh hơn và có khả năng lặp lại cao hơn Mô hình dữ liệu linh hoạt biến cơ sở dữ liệu NoSQL thành lựa chọn lý tưởng cho dữ liệu không được tổ chức thành cấu trúc hoặc có cấu trúc chưa hoàn chỉnh.
Khả năng thay đổi quy mô: Cơ sở dữ liệu NoSQL thường được thiết kế để tăng quy mô bằng cách sử dụng các cụm phần cứng được phân phối thay vì tăng quy mô bằng cách bổ sung máy chủ mạnh và tốn kém Một số nhà cung cấp dịch vụ đám mây xử lý các hoạt động này một cách không công khai dưới dạng dịch vụ được quản lý đầy đủ. Hiệu năng cao: Cơ sở dữ liệu NoSQL được tối ưu hóa theo các mô hình dữ liệu cụ thể và các mẫu truy cập giúp tăng hiệu năng cao hơn so với việc cố gắng đạt được mức độ chức năng tương tự bằng cơ sở dữ liệu quan hệ.
Cực kỳ thiết thực: Cơ sở dữ liệu NoSQL cung cấp các API và kiểu dữ liệu cực kỳ thiết thực được xây dựng riêng cho từng mô hình dữ liệu tương ứng.
- Là một hệ thống quản lý phiên bản phân tán (Distributed Version Control System) ra đời vào 2005 và được sử dụng rất phổ biến.
- Git sẽ giúp bạn thực hiện việc quản lý mã nguồn cũng như làm việc nhóm chở nên hiệu quả hơn:
Lưu lại các phiên bản khác nhau của mã nguồn dự án.
Khôi phục lại mã nguồn từ một phiên bản bất kì.
Dễ dàng so sánh giữa các phiên bản
Phát hiện được ai đã sửa phần nào trong mã nguồn
Khôi phục lại tập tin bị mất.
Dễ dàng thử nghiệm, mở rộng tính năng dự án
Giúp phối hợp thực hiện dự án một cách hiệu quả.
- Sourcetree: cho phép người dùng thực hiện các thao tác cơ bản của git như commit, push, pull, fetch, create branch, …
Giao diện sử dụng của sourcetree rất thân thiện, dễ nhìn giúp người dùng có thể thực hiện các thao tác một cách đơn giản.
DEMO CHƯƠNG TRÌNH
Kết quả đạt được
Hoàn thành các chức năng cơ bản của phần mềm quản lý dân cư và thu phí, cụ thể là các chức năng: Đăng nhập: Đăng nhập cho admin Đăng nhập cho khách
Xem thông tin tổng quan
Tìm kiếm (nhân khẩu, hộ khẩu)
Xem thông tin tổng quan
Tìm kiếm (nhân khẩu, hộ khẩu)
Giao diện chương trình
Chức năng đăng nhập cho phép người dùng đăng nhập vào hệ thống
Màn hình chính của ứng dụng : màn hình làm việc sau khi người dùng đăng nhập thành công Màn hình chứa menu bên trái với các nút liên kết để mở các chức năng chính Khung bên phải chứa các thông tin thống kê chung về các số liệu (nhân khẩu, hộ khẩu, tạm vắng, tạm trú) trong hệ thống. Điều khiển Thông tin dữ liệu
Tổng quan Hiển thị thông tin tổng quan về tình hình dân cư.
Tìm kiếm Khi người dùng click sẽ mở màn hình “Tìm kiếm hộ khẩu nhân khẩu”
Thu phí Khi người dùng click sẽ mở màn hình “Quản lý thu phí”
Hộ khẩu Khi người dùng click sẽ mở màn hình “Quản lý hộ khẩu”
Nhân khẩu Khi người dùng click sẽ mở màn hình “Quản lý nhân khẩu”
Thống kê Khi người dùng click sẽ mở màn hình “Thống kê”
Quản lý hộ khẩu: có chức năng thêm, thay đổi, di chuyển hộ khẩu Điều khiển Thông tin dữ liệu
Thêm Khi người dùng click vào sẽ hiển thị ra một biểu mẫu, người dùng có thể điền thông tin vào đó rồi ấn OK để tạo ra một hộ khẩu mới
Thay đổi Người dùng click vào một hộ khẩu cụ thể sau đó nhấn thay đổi, nó sẽ hiện ra một biểu mẫu nơi người dùng có thể thay đổi thông tin
Di chuyển Người dùng click vào sẽ hiển thị ra một biễu mẫu nơi người dùng sẽ khai báo thông tin về việc di chuyển hộ khẩu
Quản lý nhân khẩu: có chức năng thêm, thay đổi, di chuyển hộ khẩu Điều khiển Thông tin dữ liệu
Thêm Khi người dùng click vào sẽ hiển thị ra một biểu mẫu, người dùng có thể điền thông tin vào đó rồi ấn OK để tạo ra một nhân khẩu mới
Thay đổi Người dùng click vào một nhân khẩu cụ thể sau đó nhấn thay đổi, nó sẽ hiện ra một biểu mẫu nơi người dùng có thể thay đổi thông tin
Tạm trú, vắng Người dùng click vào sẽ hiển thị ra một biễu mẫu nơi người dùng sẽ khai báo thông tin về việc tạm trú, tạm vắng
Quản lý thu phí: có chức năng thêm, thay đổi, di chuyển hộ khẩu Điều khiển Thông tin dữ liệu
Thêm đóng góp Khi người dùng click vào sẽ hiển thị ra một biểu mẫu, người dùng có thể điền thông tin vào để khai báo lần đóng góp đấy
Thêm khoản phí Khi người dùng click vào sẽ hiển thị ra một biểu mẫu, người dùng có thể điền thông tin vào để khai báo thông tin khoản phí
2.4 Giao diện quản lý hộ khẩu
2.5 Giao diện quản lý nhân khẩu
2.7 Giao diện thêm, thay đổi, di chuyển hộ khẩu
2.8 Giao diện thêm, thay đổi, tạm trú, vắng nhân khẩu
2.9 Giao diện thêm đóng góp, thêm khoản phí
Kiểm thử các chức năng chương trình
1.1 Kiểm thử cho chức năng tìm kiếm
Bảng 3.1: Kết quả kiểm thử cho chức năng tìm kiếm
T Input Output Ngoại lệ Kết quả
Tìm kiếm: (dữ liệu bất kỳ)
Không hiển thị dữ liệu Không xử lý OK
Hiển thị danh sách tất cả hộ khẩu
Tìm kiếm: “hk0001” Hiển thị danh sách thông tin hộ khẩu có chứa ký tự
“hk0001” không phân biệt chữ hoa chữ thường
Tìm kiếm: “HÙng” Hiển thị danh sách thông tin hộ khẩu có chứa ký tự
“HÙng” không phân biệt chữ hoa chữ thường
Không hiển thị dữ liệu Không xử lý OK
Không hiển thị dữ liệu Không xử lý OK
Hiển thị danh sách tất cả hộ khẩu
Tìm kiếm: “HÙng” Hiển thị danh sách thông tin nhân khẩu có chứa ký tự
“HÙng” không phân biệt chữ hoa chữ thường
Tìm kiếm: “0342” Hiển thị danh sách thông tin nhân khẩu có chứa ký tự
Không hiển thị danh sách Không xử lý OK
1.2 Kiểm thử chức năng “Thu phí”
Bảng 3.2.1: Kết quả kiểm thử chức năng “Thêm khoản phí”
T Input Output Ngoại lệ Kết quả
Thông báo ra lỗi yêu cầu nhập đầy đủ thông tin
Thông báo ra lỗi yêu cầu nhập đầy đủ thông tin
Thông báo ra lỗi yêu cầu nhập đầy đủ thông tin
Thông báo ra lỗi yêu cầu nhập đầy đủ thông tin
Loại phí: “Đóng góp” Lưu thông tin vào CSDL Không xử lý OK
Lưu thông tin vào CSDL Không xử lý OK
Thông báo ra lỗi yêu cầu nhập lại Xử lý chuẩn OK
Hình 3.2.2: Kết quả kiểm thử chức năng “Thêm khoản phí”
STT Input Output Ngoại lệ Kết quả
Hiển thị “Bạn chưa chon tên khoản phí”
2 Tên khoản phí:Ủng hộ miền trung
3 Tên khoản phí:Ủng hộ miền trung
4 Tên khoản phí: Ủng hộ miền trung 9000
Hiển thị:”chưa có thông tin hộ khẩu”
5 Tên khoản phí: Ủng hộ miền trung 9000
Hiển thị:”chưa có thông tin hộ khẩu”
6 Tên khoản phí: Ủng hộ miền trung 9000
Lưu vào cơ sở dữ liệu
7 Tên khoản phí: Ủng hộ miền trung 9000
Ghi chú: ủng hộ 9000 đồng
Lưu vào cơ sở dữ liệu
1.3 Kiểm tra chức năng “Hộ khẩu”
Bảng 3.3.1: Kết quả kiểm thử chức năng “Thêm” và “Thay đổi” hộ khẩu
T Input Output Ngoại lệ Kết quả
1 Số hộ khẩu: null Địa chỉ: “Số 1, Đường test, Phường test, Quận test, Huyện test”
Thông báo ra lỗi yêu cầu nhập lại
2 Số hộ khẩu: “test” Địa chỉ: null
Thông báo ra lỗi yêu cầu nhập lại
3 Số hộ khẩu: “test” Địa chỉ: “Số 1, Đường test, Phường test, Quận test, Huyện test”
Họ tên chủ hộ: null
Thông báo ra lỗi yêu cầu nhập lại Không ngoại lệ OK
4 Số hộ khẩu: “test” Địa chỉ: “Số 1, Đường test, Phường test, Quận test, Huyện test”
Họ tên chủ hộ: “test”
Thông báo ra lỗi yêu cầu nhập lại
5 Số hộ khẩu: “test” Địa chỉ: “Số 1, Đường test, Phường test, Quận test, Huyện test”
Lưu vào cơ sở dữ liệu Không ngoại lệ OK
6 Số hộ khẩu: “HK0001” Địa chỉ: “Số 1, Đường test, Phường test, Quận test, Huyện test”
Thông báo đã tồn tại hộ khẩu yêu cầu nhập lại Không ngoại lệ OK
7 Số hộ khẩu: “///,.xsax/” Địa chỉ: “Số 1, Đường test, Phường test, Quận test, Huyện test”
Thông báo nhập sai yêu cầu nhập lại
Bảng 3.4.2: Kết quả kiểm thử chức năng “Di chuyển” hộ khẩu
T Input Output Ngoại lệ Kết quả
BK Quận HBT Thành Phố
Chưa chọn thông tin về hộ khẩu xử lí chuẩn OK
BK Quận HBT Thành Phố
Bạn chưa chọn thể loại chuyển
BK Quận HBT Thành Phố
Thông tin không hợp lệ
Số nhà: null đường TĐN
BK Quận HBT Thành Phố
Bạn chưa chọn thông tin số nhà
BK Quận HBT Thành Phố
Bạn chưa nhập thông tin đường phố
Phường null Quận HBT Thành Phố
Thông báo: bạn chưa nhập thông tin phường
Thông báo: bạn chưa nhập thông tin quận
BK Quận null Thành Phố
BK Quận BK Thành Phố null
Thông báo: bạn chưa nhập thông tin thanh phố
BK Quận HBT Thành Phố
Lưu vào cơ sở dữ liệu Không xử lí OK
1.4 Kiểm tra chức năng nhân khẩu
Bảng 3.5.1: Kết quả kiểm thử chức năng “Thêm” và “Thay đổi” nhân khẩu
T Input Output Ngoại lệ Kết quả
Nơi sinh, Dân tộc, Nguyên quán,
Nơi làm việc, Nơi cấp CMND,
Quan hệ chủ hộ = “Con”
Lưu vào cơ sở dữ liệu Không có ngoại lệ OK
2 Lần lượt thay các trường ở trên test case 1 bằng null, các trường còn lại giữ nguyên
Thông báo nhập sai yêu cầu nhập lại Không có ngoại lệ OK
Bảng 3.5.2: Kết quả kiểm thử chức năng “Tạm trú, vắng”
ST Input Output Ngoại lệ Kết quả
Thể loại: tạm vắng Địa chỉ: Số nhà 10 đường
Vui lòng chọn nhân khẩu
Thể loại: tạm vắng Địa chỉ: Số nhà 10 đường
Thông tin không hợp lệ
Thể loại: tạm vắng Địa chỉ: Số nhà 10 đường
Thông báo:Thông tin không hợp lệ
Thể loại: null Địa chỉ: Số nhà 10 đường
Thể loại: tạm vắng Địa chỉ: Số nhà null đường
Chưa chọn thông tin số nhà
Thể loại: tạm vắng Địa chỉ: Số nhà 10 đường null Phường BK Quận
Bạn chưa nhập thông tin đường phố
Thể loại: tạm vắng Địa chỉ: Số nhà 19 đường
Thông báo:Bạn chưa nhập thông tin phường
Thể loại: tạm vắng Địa chỉ: Số nhà 33 đường
TDN Phường BK Quận null Thành Phố HN
Bạn chưa nhập thông tin quận huyện
Thể loại: tạm vắng Địa chỉ: Số nhà 86 đường
Bạn chưa nhập thông tin tỉnh, thành phố
Thể loại: tạm vắng Địa chỉ: Số nhà 86 đường
Lưu vào cơ sở dữ liệu
1.5 Kiểm tra chức năng đăng nhập
Bảng 3.6: Kết quả kiểm thử chức năng đăng nhập
T Input Output Ngoại lệ Kết quả
Bạn chưa nhập tên tài khoản
Bạn chưa nhập mật khẩu
Thông báo: bạn chưa nhập tài khoản
Mật khẩu:admin Thông báo:
Không tìm thấy tài khoản
Mật khẩu không chính xác.Vui long nhập lại
Hiển thị giao diện tổng quan dân cư