Lý do chọn đề tài Việc ứng dụng công nghệ thông tin vào cuộc sống đã trở thành hoạt động không thể thiếu của con người trong thời kỳ công nghiệp hóa, hiện đại hóa.. Khi nhà phát triển
Trang 1Giảng viên hướng dẫn : ThS HỒ NGỌC TÚ
Đà Nẵng, tháng 05 năm 2015
Trang 2LỜI CẢM ƠN
Lời đầu tiên em xin bày tỏ lòng biết ơn sâu sắc đến tất cả các thầy cô trong khoa Tin học Trường Đại học Sư phạm – Đại học Đà Nẵng đã tận tình chỉ bảo và truyền đạt cho em rất nhiều kiến thức về chuyên môn cũng như kỹ năng trong nghề nghiệp trong bốn năm vừa qua
Đồng thời em xin gửi lời cảm ơn đến Trung tâm giải pháp công nghệ thông
tin và truyền thông viettel ICT đã tạo điều kiện cho em được tham gia thực tập tại
đơn vị cũng như truyền đạt những kiến thức quý báu trong công việc cũng như cuộc sống Xin cảm ơn đến các anh (chị) trong trung tâm đặc biệt em gửi tới lời cảm ơn đến anh Phạm Đức Chương đã tận tình chỉ dạy và giúp đỡ em trong quá trình làm đồ án thực tập và Khóa Luận tốt nghiệp
Em xin chân thành cảm ơn đến thầy giáo hướng dẫn ThS Hồ Ngọc Tú đã tận
tâm hướng dẫn và định hướng cho em ngay từ những bước đầu bắt tay vào thực hiện khóa luận này cho đến khi hoàn thành Với sự chỉ bảo đó em đã gặt hái cho mình được những kiến thức quý báu để hoàn thành tốt khóa luận tốt nghiệp cũng như đúc kết lại những kiến thức được học tập trong thời gian qua
Mặc dù đã cố gắng hết sức và sự giúp đỡ của thầy giáo hướng dẫn để thực hiện hoàn chỉnh khóa luận tốt nghiệp này Song do buổi đầu mới làm quen với công tác nghiên cứu khoa học, tiếp cận với thực tế của đề tài, cũng như hạn chế về kiến thức và kinh nghiệm nên không thể tránh khỏi những thiếu sót nhất định mà bản thân chưa thấy được Em rất mong được góp ý của quý Thầy, Cô giáo và các bạn để bản báo cáo khóa luận hoàn chỉnh hơn
Em xin trân trọng cảm ơn !
Trang 3LỜI CAM ĐOAN
Tôi xin cam đoan
1 Những nội dung trong báo cáo này là do tôi thực hiện dưới sự hướng dẫn
trực tiếp của các anh (chị) trong Trung tâm giải pháp CNTT và Truyền
thông Viettel ICT và giáo viên hướng dẫn ThS Hồ ngọc Tú
2 Mọi tham khảo dùng trong báo cáo này đều được trích dẫn rõ ràng tên tác giả, tên công trình, thời gian, địa điểm công bố
3 Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, tôi xin chịu hoàn toàn trách nhiệm
Sinh Viên
Trần Tiến Anh
Trang 4MỤC LỤC
LỜI MỞ ĐẦU 1
1 Lý do chọn đề tài 1
2 Mục tiêu nghiên cứu 1
3 Đối tượng nghiên cứu 1
4 Phạm vi nghiên cứu 1
5 Phương pháp nghiên cứu 1
6 Nội dung của đề tài 2
CHƯƠNG 1 CƠ SỞ LÝ THUYẾT 3
1.1 Giới thiệu về hệ điều hành ANDROID 3
1.1.1 Android là gì? 3
1.1.2 Lịch sự phát triển của Android 3
1.1.3 Delving với máy ảo Dalvik 6
1.1.4 Kiến trúc của Android 6
1.1.5 Chu kỳ sống của hệ điều hành Android 9
1.1.6 Các thành phần cơ bản của Android 11
1.1.7 Các thành phần giao diện trong Android 15
1.1.8 Cơ sở dữ liệu trong Android (SQLite) 16
1.1.9 JSON trong Android 16
1.1.10. Tìm hiểu Web Service 18
1.2 Tìm hiểu về PHP Framework CodeIgniter 19
1.2.1 Khái niệm 19
Trang 51.2.2 Cài đặt Framework codeIgniter 19
1.2.3 Mô hình Model –View- Controller 20
1.2.4 Cấu trúc Codelgniter 21
1.2.5 Dòng chảy dữ liệu trong Codeigniter 22
1.2.6 Codeigniter URL 23
1.2.7 Model 23
1.2.8 Controller 24
1.2.9 View 25
CHƯƠNG 2 PHÂN TÍCH VÀ THIẾT KẾ 26
2.1 Phân tích và thiết kế hệ thống 26
2.1.1 Đặc tả bài toán 26
2.1.2 Đặc tả yêu cầu của bài toán 26
2.1.3 Đặc tả chức năng 28
2.1.4 Phân tích hệ thống 34
2.1.5 Biểu đồ lớp 45
2.1.7 Biểu đồ tuần tự 50
2.1.8 Sơ đồ thuật toán 53
2.2 Phân tích và thiết kế cơ sở dữ liệu 56
2.2.1 Cấu trúc bảng 56
2.2.2 Sơ đồ thực thể quan hệ 58
2.3 Phân tích và Thiết kế Web Service 59
2.3.1 Mô hình hoạt động Web Service 59
Trang 62.3.2 Các API 59
CHƯƠNG 3 KẾT QUẢ VÀ ĐÁNH GIÁ 61
3.1 Kết quả 61
3.1.1 Màn hình đăng nhập 61
3.1.2 Màn hình chính 61
3.1.3 Màn hình chức năng 62
3.1.4 Màn hình thêm giao dich 63
3.1.5 Màn hình cập nhật giao dich 63
3.1.6 Màn hình sổ chi tiêu 64
3.1.7 Màn hình sổ nợ 64
3.1.8. Màn hình chọn biểu đồ 65
3.1.9 Màn hình Dự tính chi tiêu 65
3.1.10 Màn hình sổ tiết kiệm 66
3.1.11 Màn hình đăng ký 66
3.1.12 Màn hình đồng bộ dữ liệu 67
3.1.13 Màn hình cài đặt 67
3.2 Hướng dẫn cài đặt ứng dụng trên điện thoại 68
3.3 Kiểm thử ứng dụng 70
3.4 Đánh giá 71
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 72
TÀI LIỆU THAM KHẢO 73
PHỤ LỤC 74
Trang 7DANH MỤC HÌNH
Hình 1.1 Kiến trúc phân tầng của Android 6
Hình 1.2 Sơ đồ Activity stack 10
Hình 1.3 Chu kỳ sống của Activity 10
Hình 1.4 Sơ đồ hoạt động của một Activity 12
Hình 1.5 Sơ đồ hoạt động intent 12
Hình 1.6 Sơ đồ hoạt động service 13
Hình 1.7 Cấu trúc file Manifest 14
Hình 1.8 Sơ đồ ViewGroup 15
Hình 1.9 Sơ đồ tương tác giữa User và Webservice 18
Hình 1.10 Thư mục codeignter 19
Hình 1.12 Cấu trúc CodeIgniter 21
Hình 2.1 Sơ đồ use case tổng quát 36
Hình 2.2 Biểu đồ use case giao dịch 37
Hình 2.3 Biểu đồ user case chi tiêu 38
Hình 2.4 Biểu đồ use case sổ nợ 38
Hình 2.5 Biểu đồ use case biểu đồ 39
Hình 2.6 Biểu đồ use case đồng bộ dữ liệu 40
Hình 2.7 Biểu đồ use case khôi phục dữ liệu 40
Hình 2.8 Biểu đồ use case xem dữ liệu online 41
Hình 2.9 Biểu đồ use case cài đặt 41
Hình 2.10 Mối quan hệ giữa các đối tượng 49
Hình 2.11 Sơ đồ lớp 49
Hình 2.12 Biểu đồ tuần tự đăng nhập 50
Hình 2.13 Biều đồ tuần tự thêm giao dịch 50
Hình 2.14 Biểu đồ tuần tự quản lý chi tiêu 51
Trang 8Hình 2.15 Biểu đồ tuần tự quản lý sổ tiết kiệm 51
Hình 2.16 Biểu đồ tuần tự đồng bộ dữ liệu 52
Hình 2.17 Biểu đồ tuần tự khôi phục dữ liệu 52
Hình 2.18 Sơ đồ thuật toán đăng nhập 53
Hình 2.19 Sơ đồ thuật toán đăng ký 53
Hình 2.20 Sơ đồ thuật toán thêm giao dịch 54
Hình 2.21 Sơ đồ thuật toán đồng bộ dữ liệu 54
Hình 2.22 Sơ đồ thuật toán khôi phục dữ liệu 55
Hình 2.23 Sơ đồ thực thể quan hệ 58
Hình 3.4 Hình ảnh màn hình thêm giao dịch 63
Hình 3.5 Hình ảnh màn hình cập nhật giao dịch 63
Hình 3.6 Hình ảnh màn hình sổ chi tiêu 64
Hình 3.7 Hình ảnh màn hình sổ nợ 64
Hình 3.8 Hình ảnh màn hình chọn biểu đồ 65
Hình 3.9 Hình ảnh màn hình danh sách dự tính 65
Hình 3.10 Hình ảnh màn hình sổ tiết kiệm 66
Hình 3.11 Hình ảnh màn hình đăng ký 66
Hình 3.12 Hình ảnh đồng bộ dữ liệu 67
Hình 3.13 Hình ảnh màn hình cài 67
Hình 3.14 Hình ảnh cài đặt ứng dụng 68
Hình 3.15 Hình ảnh chọn mục cài đặt 69
Hình 3.16 Hình ảnh cài đặt hoàn tất 69
Trang 9DANH MỤC BẢNG
Bảng 2.1 Bảng use case tổng quan 35
Bảng 2.2 Bảng use case giao dịch 36
Bảng 2.3 Bảng use case sổ chi tiêu 37
Bảng 2.4 Bảng use case sổ nợ 38
Bảng 2.5 Bảng use case biểu đồ 39
Bảng 2.6 Bảng use case đồng bộ 40
Bảng 2.8 Lớp tài khoản 45
Bảng 2.9 Lớp đăng ký 45
Bảng 2.10 Lớp đăng nhập 45
Bảng 2.11 Lớp thu chi 46
Bảng 2.12 Lớp vay nợ 46
Bảng 2.13 Lớp sổ chi tiêu 47
Bảng 2.14 Lớp dự tính chi tiêu 47
Bảng 2.15 Lớp tiết kiệm 48
Bảng 2.16 Lớp đồng bộ dữ liệu 48
Bảng 2.17 Lớp khôi phục dữ liệu 48
Bảng 2.18 Lớp tạo cơ sở dữ liệu 48
Bảng 2.19 Bảng cơ sở dữ liệu thu chi 56
Bảng 2.20 Bảng cơ sở dữ liệu vay nợ 56
Bảng 2.21 Bảng cơ sở dữ liệu login 57
Bảng 2.22 Bảng cơ sở dữ liệu dự tính 57
Bảng 2.23 Bảng cơ sở dữ liệu tiết kiệm 57
Trang 10DANH MỤC BẢNG VIẾT TẮT
1 PHP Hypertext Preprocessor
2 CSDL Cơ sở dữ liệu
3 SQL Structured Query Language
4 MVC Model – View -Controllers
5 CSV Comma Separated Values
6 XML Extensible Markup Language
Trang 11LỜI MỞ ĐẦU
1 Lý do chọn đề tài
Việc ứng dụng công nghệ thông tin vào cuộc sống đã trở thành hoạt động không thể thiếu của con người trong thời kỳ công nghiệp hóa, hiện đại hóa Hiện nay, việc quản lý chi tiêu của cá nhân có thể được thực hiện một cách đơn giản, hiệu quả hơn bằng việc sử dụng những phần mềm tin học trên máy tính Giờ đây việc lưu trữ, quản lý bằng điện thoại giúp con người có thể tiết kiệm thời gian, giải phóng con người khỏi các công việc ghi chép và tính toán bằng giấy bút và giảm sự nhầm lẫn khi tính toán
Xuất phát từ thực tế việc chi tiêu hàng ngày của bản thân cũng như gia đình và bạn bè, Tôi đã phân tích những vấn đề thường xảy ra trong quản lý chi tiêu của cá nhân, thấy được sự cần thiết của ứng dụng quản lý chi tiêu cho những cá nhân trong gia đình
Bên cạnh đó, điện thoại thông minh đã trở nên phổ biến và được nhiều người sử
dụng nhất Vì thế tôi sử dụng công nghệ lập trinh di động để thực hiện đề tài “Xây
dựng ứng dụng quản lý chi tiêu trên nền tảng Android”
2 Mục tiêu nghiên cứu
Xây dựng ứng dụng quản lý chi tiêu để quản lý các khoản thu chi, sao cho người dùng có thể chi tiêu một cách hợp lý
3 Đối tượng nghiên cứu
Khách thể nghiên cứu
- Thiết bị dòng điện thoại hệ điều hành Android
Đối tượng nghiên cứu: Ứng dụng quản lý thu chi
4 Phạm vi nghiên cứu
Môi trường lập trình di động trên nền tảng Android để phát triển ứng dụng thu chi cho cá nhân
5 Phương pháp nghiên cứu
- Tìm các tài liệu trên website và các giáo trình liên quan đến đề tài
Trang 12- Tổng hợp các ý kiến của khách hàng để xây dụng các chức năng
- Sử dụng các mô hình của hệ thống về các trình tự của chức năng cũng như hệ thống
- Phân tích và thiết kế hệ thống thông tin
- Hệ quản trị cơ sơ dữ liệu nâng cao
6 Nội dung của đề tài
Bố cục của đề tài gồm 3 chương
Chương 1 Cơ sở lý thuyết
Chương 2 Phân tích và thiết kế
Chương 3 Kết quả và đánh giá
Trang 13CHƯƠNG 1 CƠ SỞ LÝ THUYẾT
1.1 Giới thiệu về hệ điều hành ANDROID
Dù mới bước chân vào làng điện thoại di động nhưng Android đã lần lượt hạ ngục những đối thủ tầm cỡ và trở thành hệ điều hành tăng trưởng nhất trên thế giới Mỗi phiên bản Android luôn thu hút mối quan tâm lớn của giới công nghệ và các nhà sản xuất
1.1.1 Android là gì?
Android là một hệ điều hành dành cho thiệt bị di động như Smartphone, tablet hay netbook, Android do Google phát triển giữa trên nền tảng Linux kernel và các phần mềm mã nguồn mở
Android là một hệ điều hành mở mã nguồn chính duy nhất với 12 triệu dòng mã bao gồm 3 triệu dòng mã XML, 2.8 triệu dòng mã C, 2.1 triệu dòng mà Java và 7.5 triệu dòng mã C++
1.1.2 Lịch sự phát triển của Android
Tháng 10/2003, Android được thành lập tại Palo Alto, California, Hoa kỳ do Andy Runbin, Rich Miner đồng sáng lập và cùng một số thành viên khác chủ trì, với múc đích phát triển hay tao ra cá thiệt bị di động thông minh để phục vụ cho con người
Bước đầu, hệ điều hành Android chi đơn thuần là phần mềm trên điện thoại di động Ban đầu, Android là hệ điều hành cho các thiết bị cầm tay dựa trên lõi Linux
do công ty Android inc (Califonia, mỹ) thiết kế Công ty này sau đó được google mua lại vào năm 2005 và bắt đầu xây dựng Android Platform
Và sau tiếp, vào cuối năm 2007, thuộc về liên minh thiết bị cầm tay mã nguồn
mở (Open Handset Alliance) Mục tiêu của liên minh này là nhanh chóng đổi mới để đáp ứng tốt hơn do nhu cầu của người tiêu dùng và kết quả đầu tiên của nó chính là nền tảng Android Android được thiết kế để phục vụ nhu cầu của các nhà sản xuất, các nhà khai thác và các lập trình viên cho các thiết bị cầm tay
Trang 14Các phiên bản của hệ điều hành Android từ 2003 đến hiện nay
- Một chức năng mới trong Froyo được nhóm người dùng lưu động yêu thích
là USB Tethering và Wi-Fi Hotspot, biến chiếc smartphone Android thành thiết bị phát sóng Wi-Fi từ kết nối 3G Tính năng này được sử dụng rất phổ biến đến ngày nay
Android 2.3: Gingerbread
- Ra mắt: Ngày 6-12-2010
- Đến cuối năm 2012, Gingerbread vẫn đang “phủ sóng” trên rất nhiều thiết bị dùng Android, chiếm đến hơn phân nửa (54%) Google hợp tác Samsung trình làng dòng smartphone đầu tiên sử dụng Gingerbread mang tên Nexus
S, hỗ trợ công nghệ giao tiếp tầm gần NFC
Trang 15- Gingerbread đưa vào hệ thống một công cụ quản lý tải tập tin, cho phép theo dõi và truy xuất đến các tập tin đã tải về máy Hệ thống này hỗ trợ nhiều camera cho các thiết bị có camera mặt sau và trước, quản lý nguồn pin hiệu quả hơn, tiết kiệm thời lượng pin
Android 4.0: Ice Cream Sanwich
- Ra mắt: Ngày 19-10-2011
- Android 4.0 đưa chức năng truy xuất nhanh các ứng dụng thường dùng vào phần bên dưới giao diện chủ, tùy biến widget, dễ sắp xếp và duyệt danh sách ứng dụng hơn Các ứng dụng đã có thể truy xuất nhanh từ màn hình khóa thiết bị (Lock screen), hiện các hãng sản xuất thiết bị chỉ mới cho phép Camera có thể chọn nhanh từ Lock screen
Android 4.1: Jelly Bean
- Ra mắt: Ngày 9-7-2012
- Máy tính bảng Nexus 7, sản phẩm hợp tác giữa Google và Asus, là thiết bị dùng Jelly Bean đầu tiên ra mắt Android 4.1 nâng tầm hoạt động cho hệ điều hành của Google, trở thành hệ điều hành cho thiết bị di động hàng đầu hiện nay, đe dọa cả “ông lớn” Windows
Android 4.2,4.3: ra mắt cùng tên phiên bản vào năm 2013
Android 4.4: Kitkat
- Ra mắt: Ngày 07-2014
Trang 16 Android 5.0: Lollipop
Hiện nay phiên bản mới nhất của Android là 5.4
1.1.3 Delving với máy ảo Dalvik
Dalvik là máy ảo giúp các ứng dụng java chạy được trên các thiết bị di động Android Nó chạy cả ứng dụng đã được chuyển đổi thành một file thực thi Dalvik (dex) Định dạng phù hợp cho các hệ thống mà thường bị hạn chế về bộ nhớ và tốc
độ xử lý Dalvik đã được thiết kế và viết bởi Dan Bornstein người đã đặt tên cho nó sau khi đến tham một ngôi làng đánh cá nhỏ có tên là Dalvik ở đảo Eyjafjrour, nơi
mà một số tổ tiên của ông sinh sống
Từ góc nhìn của một nhà phát triển, Dalvik trông giống như máy ảo java nhưng thực tế thì hoàn toàn khác Khi nhà phát triển viết một ứng dụng dành cho Android, anh ta thực hiện cả đoạn mã trong môi trường Java sau đó nó sẽ được biên dịch sang các bytecode của java
1.1.4 Kiến trúc của Android
Mô hình tổng quát các thành phần của hệ điều hành Android
Hình 1.1 Kiến trúc phân tầng của Android 1.1.4.1 Tầng ứng dụng
Đây là lớp ứng dụng giao tiếp với người dùng, bao gồm các ứng dụng cơ bản được cài đặt đi liền với hệ điều hành Android như gọi điện (phone), Quản lý danh bạ (contacts), duyệt web browser, nhắn tin SMS, lịch làm việc (calender) đọc Email, google map và còn nhiều ứng dụng khác nữa Tất cả các ứng dụng trên đều chạy trên
hệ điều hành Android và bằng ngôn ngữ java
Trang 171.1.4.2 Application framework
Bằng cách cung cấp một nền tảng phát triển mở, Android cung cấp cho các nhà phát triển khả năng xây dụng các ứng dụng cực kỳ phong phú và sáng tạo Nhà phát triển được tự do tận dụng các thiết bị phần cứng, thông tin địa điểm truy cập, các dịch vụ chạy nền, thiết lập hệ thống báo động, thêm các thông báo để các thanh trang thái
Nhà phát triển có thể truy cập vào các API cùng một khuôn khổ được sử dụng bởi các ứng dụng lõi Các kiến trúc ứng dụng được thiết kế để đơn giản hóa việc sử dụng lại các thành phần, bất kỳ ứng dụng có thể xuất bản khả năng của mình và ứng dụng nào khác sau đó có thể sử dụng những khả năng để bảo mật được thực thi với khuôn khổ Cơ bản tất cả các ứng dụng là một bộ các dịch vụ và các hệ thông bao gồm:
- View Manager: Một tập hợp rất nhiều các view có khả năng kế thừa lẫn nhau
dùng để thiết kế phần giao diện ứng dụng như : gridview, tableview, linearlayout, button…
- Activity Manager: Quản lý các chu kỳ sống của một ứng dụng cũng như cung
cấp công cụ điều khiển các Activity
- Telephony Manager: cung cấp công cụ để thực hiện việc liên lạc như gọi điện
thoại
- Location Manager: Cho phép xác định vị trí của điên thoại dựa vào hệ thống
định vị toàn cầu GPS và Google Maps
- Window Manager: Quản lý công việc xây dựng và hiển thị các giao diện người
dụng cũng như tổ chức quản lý các giao diện giữa các ứng dụng
- Notication Manager: Quản lý việc hiển thị các thông báo (như có tin nhắn mới,
có Email mới)
- Resource Manager: Quản lý tài nguyên tĩnh của các ứng dụng bao gồm các file
hình ảnh, âm thanh, layout, string những thành phần không viết bởi ngôn ngữ lập trình)
Trang 18- Content Provide: cho phép các ứng dụng có thể truy xuất dữ liệu từ các ứng
dụng khác hoặc là chia sẽ dữ liệu giữa các ứng dụng đó
- Thư viện Media: Có nhiều code để hỗ trợ việc phát và ghi các loại định dạng
âm thanh hình ảnh, video thông dụng
- Thư viện web: Đây là thành phần để xem nội dung trên web, được sử dụng để
xây dụng phần mềm duyệt web cũng như để nhúng các ứng dụng vào Để hỗ trợ nhiều cộng nghệ mạnh như HTML5, JavaScript, CSS, DOM, AJAX…
- Surface Manage: quản lý hiện thị 2D và 3D
Mặc dù cũng được viết từ ngôn ngữ Java nhưng một ứng dụng Java của hệ điều hành android không được chạy bằng JRE (Java Runtime Environment)
1.1.4.5 Linux kernel
Hệ điều hành Android được phát triển dựa trên hạt nhân linux, cụ thể là hạt nhân linux phiên bản 2.6, điều đó được thể hiện ở lớp dưới cùng này Tất cả mọi hoạt động của điện thoại muốn thi hành đươc thì đều được thực hiện ở mức cấp thấp ở lớp này bao gồm quản lý bộ nhớ (memory management), giao tiếp với phần cứng (driver model), thực hiện bảo mật (security), quản lý tiền trình (process)
Trang 19Các thành phần của nhân Linux
- Display Driver: Điều khiển việc hiện thị lên màn hình cũng như thu nhận những
điều khiển của người dùng lên màn hình (di chuyển, cảm ứng)
- Camera Drive: Điều khiển hoạt động của camera, nhận luồng dữ liệu từ camera
trả về
- Bluetooth Driver: Điều khiển thiết bị phát và thu sóng Bluetooth
- USB driver: Quản lý hoạt động của các cổng giao tiếp USB
- Keypad driver: Điều khiển bàn phím
- Wifi Driver: chịu trách nhiệm về việc thu phát sóng wifi
- Audio Driver: Điều khiển các bộ thu phát âm thanh, giải mã các tính hiệu dưới
dạng audio thành tín hiệu số và ngược lại
1.1.5 Chu kỳ sống của hệ điều hành Android
Một tiến trình linux gói gọn một ứng dụng Android đã được tạo ra cho ứng dụng khi code cần được chạy và sẽ còn chạy cho đến khi
1.1.5.2 Activity Stack
Bên trong hệ thống các Activity được quản lý như một Activity stack Khi một Activity mới được start nó được đặt ở đỉnh của stack và trở thành một Activity đang chạy
Sơ đồ của Activity stack thể hiện như sau
Trang 20Hình 1.2 Sơ đồ Activity stack
Sơ đồ trạng thái của Activity như sau
Hình 1.3 Chu kỳ sống của Activity
1.1.5.4 Chu kỳ sống của ứng dụng
Trong một ứng dụng Android có chứa nhiều thành phần và mỗi thành phần đều
có một chu trình sống riêng Và ứng dụng chỉ được gọi là kết thúc khi tất cả các thành phần trong ứng dụng đã kết thúc
Trang 211.1.6 Các thành phần cơ bản của Android
1.1.6.1 Activity và Intent
Activity
Một Activity thể hiện một giao diện đồ họa người dùng Ví dụ một Activity có thể biểu diễn một danh sách các menu item để người dùng có thể chọn
và có thể hiện thị ảnh cùng với tiêu đề Một ứng dụng gửi tin nhắn văn bản có thể
có một hoạt động là hiển thị một danh sách các liên hệ để gửi tin nhắn tới, hoạt động thứ hai là viết tin nhắn tới liên hệ được chọn, các hoạt động khác nữa là xem lại tin nhắn cũ hay thay đổi cài đặt Mặc dù chúng làm việc cùng nhau để tạo thành một giao diện người dùng, mỗi Activity độc lập với những cái khác Mỗi Activity là một lớp con của lớp cơ sở Activity
Một ứng dụng có thể gồm chỉ một Activity hay nhiều Activity Thông thường, một trong số các Activity được đánh dấu như là Activity đầu tiên phải được trình diễn tới người dùng khi ứng dụng được khởi động Chuyển từ một Activity sang Activity khác được hoàn thành bằng cách cho activity hiện thời khởi động Activity kế tiếp
Một cây phân cấp view được đặt trong một cửa sổ Activity bằng phương thức Activity.setconview().content(), view là một đối tượng view ở gốc của cây phân cấp
Class cơ sở Activity và vòng đời của một hoạt động như sau
- OnCreate(): Được gọi khi tạo ra lần đầu tiên
- OnCtart(): Được gọi khi hoạt động trở lên hữu hình
- onResume(): Được gọi khi hoạt động bắt đầu tương tác với người sử dụng
- onPause(): Được gọi để dừng các hoạt động hiện tại và nối lại các hoạt
động trước đó
- onStop(): Được gọi khi hoạt động không còn hiển thị với người dùng
- onDestroy(): Được gọi trước khi hoạt động bị phá hủy bởi hệ thống
Trang 22- onRestart(): Được gọi khi hệ thống đã được dừng lại và khởi động lại một
lần nữa
Hình 1.4 Sơ đồ hoạt động của một Activity
Intent
Là một cấu trúc dữ liệu mô tả cách thức, đối tượng thực hiện của một Activity
Là cầu nối giữa các Activity, ứng dụng Android thường bao gồm nhiều Activity, mỗi Activity hoạt động độc lập với nhau và thực hiện những công việc khác nhau Intent chính là người đưa thư, giúp các Activity có thể triệu gọi cũng như truyền các
dữ liệu cần thiết tới một Activity khác Điều này cũng giống như việc di chuyển qua lại giữa các Forms trong lập trình Windown Form
Hình 1.5 Sơ đồ hoạt động intent
Trang 231.1.6.2 Service trong Android
Một service không có giao diện trực quan, nó chạy trên nền tảng trong một khoảng thời gian không xác định Ví dụ một service có thể chơi nhạc nền hay nạp dữ liệu trên mạng hay xử lý một vấn đề gì đó Mỗi service được mở rộng từ lớp cơ sở service
Giống như các Activity và các thành phần khác, service chạy trong thread chính của tiến trình ứng dụng Vì thế chúng không thể ngăn chặn những thành phần khác hay giao diện người dùng, chúng thường tạo ra các thread khác cho các nhiệm vụ hao tốn thời gian
Hình 1.6 Sơ đồ hoạt động service 1.1.6.3 Broadcast Reveicer
Broadcast Reveicer là một thành phần không làm gì ngoài việc nhận và đáp lại các thông báo Broadcast Nhiều Broadcast khởi đầu trong mã hệ thống
Ví dụ:
- Như thay đổi múi giờ
- Thông báo pin yếu
- Thay đổi ngôn ngữ Một ứng dụng có thể có một số Broadcast Receiver để đáp lại bất cứ thông báo nào mà nó cho là quan trọng tất các Receiver mở rộng từ lớp cơ sở Broadcast Receiver
Trang 24Cấu trúc của một file Manifest
Hình 1.7 Cấu trúc file Manifest
Trang 25Bao gồm các thuộc tính chỉ quyền truy xuất và sử dụng tài nguyên của ứng dụng khi cần sử dụng một tài nguyên nào trong file MainiFest của ứng dụng cần khai báo như sau
- SDK version
Thẻ xác định phiên bản SDK của ứng dụng và được khai báo như sau
1.1.7 Các thành phần giao diện trong Android
1.1.7.1 View
Trong một ứng dụng Android, giao diện người dùng được xây dụng từ các đối tượng View và ViewGroup Có nhiều kiểu View và ViewGroup mỗi kiểu là một hậu duệ của class view và tất cả các kiểu đó được gọi là Widget
Trong Android platform, các screen được bố trí theo một kiểu cấu trúc phân cấp như hình dưới đây
Hình 1.8 Sơ đồ ViewGroup 1.1.7.2 ViewGroup
ViewGroup thực chất là một view hay đúng hơn Viewgroup là các widget Layout được dùng để bố trí các đối tượng khác trong một screen Có một số loại viewGroup như sau:
- LinearLayout
LinearLayout được dùng để bố trí các thành phần giao diện theo chiều ngang hoặc chiều dọc nhưng trên một line duy nhất mà không có xuống dòng
LinearLayout làm cho các thành phần trong nó không bị phụ thuộc vào kích thước của màn hình Các thành phần trong LinearLayout được dàn theo nhưng tỷ lệ cân xứng dựa vào các tàng buộc giữa các thành phần
- FrameLayout
Trang 26FrameLayout được dùng để bố trị các đối tượng theo kiểu giống như là các Layer trong Photoshop Những đối tượng nào thuộc Layer bên dưới thì
bị che khuất bởi các đối tượng thuộc layer nằm trên
- RetailiveLayout
Layout này cho phép bố trí các widget theo một trục đối xứng ngang hoặc dọc Để đặt được đúng vị trí thì các widget cần được xác định một mối ràng buộc nào đó với các widget, các ràng buộc này là các ràng buộc bên
trái, phải, trên, dưới
- TableLayout
Layout này được sử dụng khi cần thiết kế một table chứa dữ liệu hoặc
cần bố trí các widger theo các row và colums
1.1.8 Cơ sở dữ liệu trong Android (SQLite)
SQLite là một bộ thư viện dùng trong lập trình để hiển thực một SQL Database Engine có khả năng tự tổ chức quản lý dữ liệu, không cần server, không cần cấu hình mà vẫn hỗ trợ đầy đủ các tính năng quản lý giao tác SQLite hiện đang là SQL Database Engine mã nguồn mở theo mô hình dữ liệu quan hệ đang được sử dụng nhiều nhất trên thế giới do tính cơ động cao, dễ sử dụng, gọn nhẹ, hiệu quả và tin cậy SQLite có 1 số đặc điểm nổi bật là tính ứng dụng và một số công cụ làm việc với CSDL nhúng
1.1.9 JSON trong Android
1.1.9.1 Khái niệm Json
Json (JavaScript Object Nptation) là định dạng trao đổi dữ liệu độc lập giống như XML, json cho phép lưu trữ dữ liệu dưới dạng chữ và số
Một Json Object bao gồm các cặp key/value và được bắt đầu bởi dấu “{“và kết thúc bởi dấu “}”, và một mảng các giá trị được nằm trong dấu “[] “và cách nhau bởi
dấu phẩy
1.1.9.2 Cấu trúc Json
- Cấu trúc dữ liệu của json dựa trên cặp key/value
Trang 27+ Key là một chuỗi + Values có thể là một chuỗi, số, hoặc boolean hay object
- Json được xây dựng dựa trên 2 cấu trúc
+ Là tập hợp của các cặp tên và giá trị key-value Trong những ngôn ngữ khác nhau, đây được nhận thấy như là 1 đối tượng (object), bảng ghi (record), cấu trúc (struct), từ điển (dictionary), bảng băm (hash table), danh sách khoá (keyed list), hay mảng liên hợp
+ Là 1 tập hợp các giá trị đã được sắp xếp Trong hầu hết các ngôn ngữ, this được nhận thấy như là 1 mảng, vector, tập hợp hay là 1 dãy sequence
},
{ "name" : "Do manh", "email" : "code4lifevn@gmail.com"
} ]
Trang 281.1.10 Tìm hiểu Web Service
1.1.10.1 Khái niệm Web Service
Web Serivce là một công nghệ cho phép client truy xuất để thực hiện mọi tác vụ như một Web Application Về bản chất, Web service dựa trên XML và HTTP, trong
đó XML làm nhiệm vụ mã hóa và giải mã dữ liệu và dùng SOAP, WSDL, RESTful
để truyền tải Web Service không phụ thuộc vào platform nào, do đó bạn có thể dùng Web Service để truyền tải dữ liệu giữa các ứng dụng hay giữa các platform
Sơ đồ tương tác giữa User và Web Service:
Hình 1.9 Sơ đồ tương tác giữa User và Webservice
1.1.10.2 Đặc điểm của Web Service
- Có thể truy cập đến bởi bất kỳ một ứng dụng nào
- Không phụ thuộc vào nền tảng ngôn ngữ lập trình
- Hỗ trợ thao tác giữa các thành phần không đồng nhất
- Dễ bảo trì và chi phí phát triển rẻ
1.1.10.3 Định nghĩa các giao thức
- Giao thức SOAP: SOAP là giao thức sử dụng XML để định nghĩa dữ liệu dạng
thuần văn bản (plain text) thông qua HTTP SOAP là cách mà Web Service sử dụng để truyền tải dữ liệu Vì dựa trên XML nên SOAP là một giao thức không phụ thuộc platform cũng như bất kì ngôn ngữ lập trình nào
- Giao thức WSDL: WSDL là ngôn ngữ được sử dụng để mô tả đầy đủ về Web
Service theo chuẩn XML như các phương thức, kiểu dữ liệu, dựa trên XML schema
Trang 29- Giao thức RESTful: RESTful là một kiến trúc đơn giản thường chạy trên
HTTP REST của dịch vụ web hệ thống sản phẩm mã trạng thái phản ứng trong định dạng XML hoặc JSON
1.2 Tìm hiểu về PHP Framework CodeIgniter
1.2.1 Khái niệm
CodeIgniter là một nền tảng ứng dụng web (web application framework) nguồn
mở được dùng để xây dựng các ứng dụng web động bằng ngôn ngữ PHP Nó cho phép các nhà phát triển xây dựng một ứng dụng web nhanh hơn, so với việc viết mã hỗn tạp, bằng cách cung cấp 1 bộ thư viện đầy đủ cho các tác vụ thông thường, cũng như cung cấp một mô hình tương tác đơn giản và dễ hiểu cho việc kết nối tới những
bộ thư viện đó Phiên bản chính thức đầu tiên của CodeIgniter được công bố vào 28 tháng 2 năm 2006.[1] Phiên bản mới nhất cho tới bây giờ là 3.0 được công bố chính thúc vào ngày 07 tháng 08 năm 2014
1.2.2 Cài đặt Framework codeIgniter
Sau đây tôi xin trình bày các bước cài đặt codeignter để xây dụng web service Trước khi cài đặt bạn hãy vào trang web http://ellislab.com/codeigniter tải codeignter
- Bước 1: Mở thư mục gốc trong web server (wamp là www còn xamp là htdocs)
- Bước 2: Tìm đến tập tin CodeIgnter được tài về
- Bước 3: Giải nén nó vào thư mục gốc trong web service, chúng ta thấy một
folder có tên “ CodeIgnter-(tên phiên bản)”
Hình 1.10 Thư mục codeignter
Các bạn có thể đổi tên thư mục tùy ý
Trang 30 Bước 4: Bây giờ, chúng ta mở file Config.php trong thư mục CodeIgnter và
database.php trong file application->config định dang theo cơ sở dữ liệu
1.2.3 Mô hình Model –View- Controller
Model –View – Control (MVC) là một kiến trúc phần mềm, hiện đang được xem là một mẫu thiết kế trong công nghệ phần mềm Mô hình MVC tách biệt phần
xử lý dữ liệu ra khỏi phần giao diện, cho phép phát triển, kiểm tra và bảo trì các thành phần một cách độc lập
Mô hình thể hiện sự trao đổi dữ liệu giữa Model – View – Controller
Hình 1.11 Mô hình Model-Controller-View
Trong đó:
- Model thể hiện cấu trúc dữ liệu Các lớp thuộc thành phần Model thường thực
hiện các tác vụ như truy vấn, thêm, sửa, xóa dữ liệu, khi dữ liệu trong model thay đổi, thành phần View sẽ được cập nhật lại
- View là thành phần thể hiện dữ liệu trong Model thành các giao diện tương tác với người sử dụng Một Model có thể có nhiều View tùy thuộc vào các mục đích khác nhau
- Controller đóng vai trò trung gian giữa Model và View Thông tin người dùng từ view được gửi cho controller xử lý, sau đó controller tương tác với model để lấy
dữ liệu được yêu cầu, sau cùng Controller trả dữ liệu này về cho view
Trang 31Mô hình MVC thường được sử dụng trong các ứng dụng web, vì thành phần
view (mã HTML/XHTML) được sinh ra từ các ngôn ngữ lập trình web Thành phần controller sẽ nhận các dữ liệu GET/POST, xử lý những dữ liệu này, sau đó chuyển sang model xử lý
1.2.4 Cấu trúc Codelgniter
Hình 1.12 Cấu trúc CodeIgniter
Tập tin index.php được xem như là controller đầu vào, tiếp nhận các yêu cầu từ
phía client và chuyển các yêu cầu này cho hệ thống xử lý
Thư mục System bao gồm phần lõi của CodeIgniter Chúng bao gồm các thư viện xây dựng sẵn, các tập tin ngôn ngữ, ghi chú về hệ thống Trong số đó, các thư mục sau khá quan trọng
- Thư mục application dành cho lập trình viên, các tập tin được lập trình cho
ứng dụng sẽ lưu trong thư mục này
- Thư mục cache bộ đếm của hệ thống chứa các trang đã được xử lý trước
đó
Trang 32- Thư mục helpers Chứa các hàm hỗ trợ cho lập trình khi viết ứng dụng
- Thư mục liberaries chứa các thư viện sẵn của codeigniter
Đối với lập trình viên, các tập tin của ứng dụng sẽ được lưu trong thư mục system/application
Trong đó:
- Thư mục config chứa các tập tin cấu hình hệ thống
- Thư mục controller chứa các lớp Controller
- Thư mục errors chứa các tập tin lỗi
- Thư mục helpers chứa các tập tin để mở rộng mã nguồn CodeIgniter
- Thư mục hooks chứa các tập tin để mở rộng mã nguồn CodeIgniter
- Thư mục libraries chứa các thư viện cho người dùng định nghĩa
- Thư mục Models chứa các lớp Model
- Thư mục View chứa các lơp View 1.2.5 Dòng chảy dữ liệu trong Codeigniter
Tập tin index.php đóng vai trò làm Controller đầu vào, thiết lập các tài
nguyên cần thiết cho hệ thống
Routing: Điều khiển quá trình điều hướng giúp xác định yêu cầu và hướng
xử lý đối với chúng
Caching: Nếu dữ liệu được yêu cầu đã được lưu trong bộ đếm, CodeIgniter
sẽ trả dữ liệu trong bộ đếm về phía client Quá trình xử lý kết thúc
Security: Dữ liệu trước khi được chuyển đến các Controller sẽ được lọc để
phòng chống XXS hoặc SQL Injection
Application controller: Controller sử lý dữ liệu nhận được bằng cách gọi
đến các Model, Libraies, Helpers, Plugins… có liên quan
View: Dữ liệu được chuyển qua view để hiện thị cho người dùng Nếu chức
năng cache được bật, dữ liệu sẽ được lưu trong cache cho những lần yêu cầu tiếp theo
Trang 331.2.6 Codeigniter URL
Theo mặc định, cấu trúc URL của CodeIgniter được thiết kế dựa vào các segment thay cho kiểu query truyền thống Cách tiếp cận này giúp URL trở nên ngắn gọn, có ý nghĩa, dễ ghi nhớ và thân thiện với các bộ máy tìm kiếm
Một URL trong CodeIgniter có dạng
Domain.com/index.php/controller/method/param/
1.2.7 Model
Model là những lớp được xây dựng nhằm thực hiện việc trao đổi thông tin với
cơ sở dữ liệu Một lớp Model có thể thực hiện các tác vụ truy vấn, thêm, xóa, cập nhật dữ liệu
Trong CodeIgniter, việc khai báo các lớp model dành cho một thực thể nào đó là không cần thiết, vì trong controller của thực thể đó, ta có thể gọi đến thư viện database để thực hiện các thao tác với cơ sở dữ liệu Tuy nhiên, để tiện cho việc quản lý , xây dựng lớp model cho một thực thể được khuyến khích
Một lớp molder chuẩn trong CodeIgniter có cấu trúc như sau
Class Exaple extends CI_Model{
Trang 34 Tên lớp được viết hoa chữ đầu tiên, phần còn lại viết chữ thường
Tập tin được đặt như tên lớp, và được đặt trong thư mục application/models
Bắt buộc kế thừa từ lớp CI_Model Trong hàm tạo của lớp con gọi đến lớp cha
Để sử dụng lớp Model trong Controller
$this->load->Model(‘ten class model’)
Khi sử dụng một phương thức từ lớp Model bên Controller
$this->classModel->method()
1.2.8 Controller
Controller là những lớp đóng vai trò trung gian giữa View và Model Controller nhận các yêu cầu từ phía người dùng, kiểm tra chúng trước khi chuyển qua cho model Sau khi model xử lý rồi truyền qua cho controller chuyển sang view để hiển thị dữ liệu cho người dùng
Một lớp Controller chuẩn trong Codeigniter có mẫu sau
Class Example extends CI_Controller{
Public function method(){
// ham sử dụng truyền sang view
$this->class model->method(“”);
}
}
Khai báo một lớp Controller chúng ta phải theo quy tắc sau
Tên lớp ký tự đầu tiên phải viết hoa và các chữ tiếp theo viết thường
Trang 35 Tập tin được đặt trùng tên với tên lớp và bỏ trong thư mục
Nội dung của tập tin view ngoài mã HTML còn chứa mã PHP, view không bao giờ gọi trực tiếp mà phải qua controller
Trang 36CHƯƠNG 2 PHÂN TÍCH VÀ THIẾT KẾ
Trong chương này tôi tập trung làm rỏ được các chức năng chính của ứng dụng, đặc tả chức năng của hệ thống , biểu đồ các lớp và biểu đồ tuần tự hoạt động của các chức năng ngoài ra xây dựng và thiết kế cơ sở dữ liệu và xây dựng Web Service
2.1 Phân tích và thiết kế hệ thống
2.1.1 Đặc tả bài toán
Xây dựng ứng dụng có thể quản lý được tất cả các khoản chi tiêu hàng ngày, dữ liệu logic, rành mạch và có tính bảo mật về cơ sở dữ liệu, tính toán đúng
2.1.2 Đặc tả yêu cầu của bài toán
2.1.2.1 Các yêu cầu của ứng dụng
- Người sử dụng có thể lưu lại các thông tin các khoản chi tiêu hàng ngày bao gồm các thông tin như (số tiền, tên khoản thu chi, thời gian, ghi chú và thể loại)
- Thống kê các khoản chi tiêu hợp lý theo thời gian như (theo ngày, theo tháng, theo tuần, theo quý hoặc theo thể loại chi tiêu)
- Hiển thị thông tin chi tiết về các thể loại thu và chi
- Chức năng thống kê hiện thị dưới dạng biểu đồ Có 3 loại biểu đồ đường, biểu đồ cột và biểu đồ hình tròn
- Chức năng cảnh báo chi tiêu cho người dùng biết khi người dùng chi ra số tiền lớn hơn số tiền thu vào
- Giao thân thiện với người sử dụng
- Chức năng điều chỉnh hoặc xóa khi người dùng muốn sửa các thông tin của các khoản chi tiêu
- Chức năng lưu giữ những thông tin người mình cho vay, người mình nợ, thông tin bao gồm (số tiền, người vay hoặc nợ, ngày vay, ngày trả)
- Chức năng đồng bộ dữ liệu lên server và khôi phục dữ liệu dữ liệu từ server
về bộ nhớ của ứng dụng
- Thống kê số tiền thu và tiền chi trong từng tháng của năm
Trang 37- Xem dữ liệu trực tuyến và điều chỉnh dữ liệu lên server
- Chức năng quản lý tài khoản như (đăng ký, khôi phục mật khẩu)
2.1.2.2 Ràng buộc logic khi thực hiện bài toán
- Chỉ có người sử dụng khi đăng nhập bằng tài khoản và mật khẩu, mới quản
lý được những khoản chi tiêu của mình
- Khi người sử dụng chi ra hay thu vào thì số tiền cũng phải giảm xuống hoặc tăng lên tương ứng trong tài khoản
- Mọi khoản chi được giới hạn bằng số tiền dư trong tài khoản
- Mọi giao dịch trong hệ thống lên đến đơn vi hàng triệu tỉ (tức là 15 số)
- Ngày giao dịch mặc định là ngày hệ thống hoặc người sử dụng có thể thay đổi lại
- Có cơ chế phát hiện và cập nhật lại các giá trị bị thay đổi khi đồng bộ dữ liệu
2.1.2.3 Công thức tính toán
- Tính khoản thu nhập ta sẽ dựa vào công thức sau
Tiền thu vào = tiền thu + tiền nợ + tiền trả vay
- Tính khoản chi ra ta sẽ dựa vào công thức sau
Tiền chi ra = tiền chi + tiền vay + tiền trả nợ
- Tính tổng tiền còn lại
Tổng tiền còn lại = tiền thu vào- tiền chi ra
- Tính tiền tiết kiệm
Tiền tiết kiệm = tổng tiền còn lại
Trong đó:
+ Tiền thu là số tiền của các khoản thu vào
+ Tiền nợ là số tiền mà người sử dụng nợ của người khác
+ Tiền trả vay là số tiền mà người dùng khác trả số tiền vay cho người dùng
Trang 38+ Tiền thu vào là số tiền mà người dùng thu vào từ các trường hợp như (tiền thu, tiền nợ, tiền trả vay)
+ Tiền chi là số tiền của các khoản chi ra
+ Tiền vay là số tiền mà người dùng cho bạn bè của người dùng vay tiền + Tiền trả nợ là số tiền mà người dùng trả tiền nợ cho người khác
2.1.3 Đặc tả chức năng
2.1.3.1 Chức năng đăng ký tài khoản
Mô tả chức năng: Người dùng sử dụng chức năng này để tạo tài khoản để đăng nhập vào ứng dụng
Mô tả hoạt động
- Ứng dụng hiện thị from đăng ký bao gồm tài khoản, mật khẩu và email
- Khi người sử dụng nhập thiếu các trường yêu cầu thì chương trình sẽ hiện thị thông báo yêu cầu người dùng nhập lại
- Khi khai báo thông tin thành công thì chương trình gửi dữ liệu lên server để kiểm tra dữ liệu đã tồn tại chưa Nếu dữ liệu đã tồn tại thì chương trình sẽ hiện thị thông báo tài khoản đã tồn tại hoặc ngược lại thì dữ liệu sẽ lưu vào
cơ sở dữ liệu và gửi lên server lưu dữ liệu vào server, đồng thời hiện thị from đăng nhập
Điều kiện: Trước khi đăng ký tài khoản chúng ta phải bật wifi hoặc 3G
Trang 39- Khi đăng nhập thành công thì thông tin tài khoản và mật khẩu lưu vào hệ thống
2.1.3.3 Chức năng xem chi tiết các khoản thu chi
Mô tả chức năng: Chức năng này xem thông tin tổng quan về số tiền thu và tiền chi trong tháng, ngoài ra còn hiển thị các thông tin các khoản chi tiêu theo ngày tháng
- Đưa ra số liệu phần trăm theo các khoản thu, khoản chi, khoản vay hoặc khoản nợ
2.1.3.4 Chức năng thêm giao dịch
Mô tả chức năng: Chức năng này thêm các khoản giao dịch được người dùng nhập dữ liệu vào, với các thông số về các khoản thu, chi, vay, nợ theo ngày tháng
Mô tả hoạt động chức năng
Khi người dùng chọn vào chức năng thêm giao dịch thì hiển thị lên 4 giao dịch để người sử dụng chọn các loại hình giao dịch
Trang 40ngày tháng thì lấy mặc định theo ngày hệ thống và người dùng có thể thay đổi ngày tháng theo ý muốn
- Sau khi người dùng nhập các giá trị xong thì những thông tin về các khoản thu chi được lưu vào cơ sở dữ liệu
- Chức năng cũng có sửa hay xóa những khoản chi tiêu
Giao dịch cho vay và nợ
- Người sử dụng cần nhập các thông tin bao gồm (tên người vay hoặc nơ,
số tiền, ngày vay, ngày trả, ghi chú) trước khi lưu vào cơ sở dữ liệu
2.1.3.5 Chức năng quản lý sổ nợ
Mô tả chức năng: Chức năng quản lý sổ nợ cung cấp những thông tin về các khoản vay và khoản nợ mà người sử dụng vay hoặc nợ Cho chúng ta xem thông tin chi tiết và xử lý như trả nợ, sửa hoặc cập nhật lại các khoản vay
Mô tả hoạt động chức năng
- Khi người dùng chọn chức năng sổ nợ thì hiển thị danh sách thông tin người vay và nợ
- Có 2 chế độ để quản lý sổ nợ 1 là giao dịch vay hoặc nợ đã kết thúc và 2 là đang trong chế độ trả vay hoặc nợ
- Khi click vào chi tiết từng người hiện thị 3 chức năng xem, sửa, xóa
- Khi chọn chức năng xem thì chương trình đưa ta đến thông tin về ngày vay, ngày trả và hiển thị chức năng cập nhật lại các thông tin khoản vay và có thể trả nợ, hoặc người khác trả vay