Ứng dụng tìm kiếm điểm ATM trên Android có tích hợp bản đồ

MỤC LỤC

CƠ SỞ LÝ THUYẾT

    Android không chỉ là một hệ điều hành dành cho thiết bị di động thông minh mà nó còn đưa ra một tập hợp hoàn chỉnh phần mềm cho các thiết bị di động (phần mềm ngăn sếp – stack software): Một hệ điều hành, phần mềm trung gian (để liên kết các phần mềm hoặc ứng dụng khác – middleware) và các ứng dụng chủ chốt.Android được biết đến như là một sản phẩm phần mềm của Google (Google đã mua lại công ti liên hợp Android vào năm 2005) nhưng nói chính xác hơn thì đó là của một liên minh các thiết bị cầm tay nguồn mở (Open Handset Alliance – OHA, được khởi xướng thành lập và đứng đầu bởi Google). Sự ra mắt của Android vào ngày 5 tháng 11 năm 2007 gắn với sự thành lập của liên minh thiết bị cầm tay mã nguồn mở (Open Handset Alliance – OHA) đứng đầu bởi Google với 34 thành viên bao gồm các nhà sản xuất điện thoại di động, ứng dụng phát triển, một số mạng di động và nhà sản xuất bán dẫn được thành lập với mục đích là thúc đẩy sự đổi mới trong tiêu dùng điện thoại di động và cung cấp những kinh nghiệm phong phú hơn, ít tốn kém, và tốt hơn cho điện thoại di động. ASP.NET thiết kế để tương thích với các phiên bản ASP trước đó của Microsoft, cho nên chúng ta có thể phát triển cả ASP chung với ASP.NET trên cùng một máy chủ mà không cần phải thay đổi cấu hình ứng dụng ASP.NET được biên dịch dựa trên môi trường .NET cho phép tạo ra các ứng dụng trong bất kỳ ngôn ngữ lập trình nào có hổ trợ .NET chẳng hạn như: VB.NET, Javascript.NET, C# Ngoài ra .NET FrameWork sẵn sàng cho ứng dụng ASP.NET.

    Hình 2.2. Tổ chức liên minh nguồn mở OHA
    Hình 2.2. Tổ chức liên minh nguồn mở OHA

    PHÂN TÍCH THIẾT KẾ HỆ THỐNG 3.1. Đặc tả bài toán

    Xác định các tác nhân của hệ thống

     Tác nhân Người sử dụng: Sử dụng phần mềm để tra cứu thông tin, địa điểm ATM, xem bản đồ, thông tin về ngân hàng, các ngân hàng cùng hệ thống thẻ ATM và gửi ý kiến đóng góp cho người quản trị.  Tác nhân Người quản trị: Tiếp nhận những ý kiến đóng góp của người dùng, cập nhật cơ sở dữ liệu trên Server những thông tin về Tình/Thành phố, quận/huyện, các ngân hàng, ngân hàng và thông tin về địa điểm ATM.

    Đặc tả các Use case

    8 Người sử dụng Chọn một tỉnh/tp trong danh sách 9 Người sử dụng Chọn địa điểm quận/huyện cần xem 10 Ứng dụng Kết nối tới cơ sở dữ liệu và đưa ra. Mô tả Khi người sử dụng phát hiện những thông tin mà phần mềm cung cấp sai lệnh, chưa đầy đủ thì có thể gửi ý kiến đóng góp để Người quản trị cập nhật lại. 2 Ứng dụng Hiển thị giao diện gửi ý kiến phản hồi 3 Người sử dụng Điền thông tin phản hồi bao gồm tên, số điện thoại, nội dung và nhấn chọn nút gửi thông tin.

    4b Trình duyệt Hiển thị thông báo lỗi nếu người sử dụng chưa điền nội dung đăng nhập hoặc điền nội dung đăng nhập sai 5b Trình duyệt Kết nối và kiểm tra trong cơ sở dữ. - Yêu cầu Người quản trị nhập thông tin của cây ATM bao gồm: Địa điểm, địa chỉ, thông tin, quận huyện, kinh độ và vĩ độ trên bản đồ. 4 Trình duyệt  Luồng Thêm ngân hàng - Yêu cầu Người quản trị nhập thông tin của Ngân hàng bao gồm: Tên viết tắt, tên đầy đủ, địa chỉ, email, số điện thoại, website, logo, mức phí giao dịch ATM của ngân hàng đó.

    Nếu Use case này được thực hiện thành công thì các ý kiến phản hồi của người dùng sẽ được tiếp nhận và chỉnh sửa lại trong cơ sở dữ liệu. 4 Người quản trị Chọn chức năng xóa phản hồi để xóa bớt những ý kiến trong cơ sở dữ liệu 5 Trình duyệt Kết nối và cập nhật ý kiến phản hồi.

    Tìm lớp

    3 Người quản trị Chọn chức năng cập nhật trạng thái phản hồi để duyệt danh sách. - Cung cấp thông tin về ngân hàng, liên ngân hàng, chi phí giao dịch cho Người sử dụng. - Cung cấp thông tin về ngân hàng cho Người quản trị để quản lý thông tin ATM thuộc các ngân hàng.

    - Cung cấp thông tin về tỉnh để Người quản trị quản lý thông tin quận huyện. - Cung cấp thông tin về quận huyện để Người quản trị quản lý thông tin về địa chỉ của cây ATM. - Lớp W_NQT_DangNhap: Là giao diện chính giao tiếp với tác nhân Người quản trị.

    - Lớp W_NQT_NH_Them/Sua: Là giao diện phụ tương ứng với việc thêm, sửa thông tin Ngân hàng. - Lớp W_NQT_YK_CapNhat: Là giao diện phụ tương ứng với việc cập nhật lại trình trạng đã duyệt qua ý kiến phản hồi.

    Xây dựng các biểu đồ cho các Use case

    NganHang maNganHang : int tenVietTat : text tenDayDu : text diaChi : text soDienThoai : text email : text website : text logo : image phiGiaoDich : text cacLienNganHang : text phiGiaoDichLienNH : text getTenVietTat() setTenVietTat() getTenDayDu() setTenDayDu() getSoDienThoai() setSoDienThoai() getEmail() setEmail() getWebsite() setWebsite() getlogo() setlogo() getPhiGiaoDich() setPhiGiaoDich() getLienNganHang() setLienNganHang() getPhiLienNH() setPhiLienNH() getMaNganHang() hienThi() them() sua() xoa() QuanHuyen. ATM maATM : int diaDiem : text diaChi : text thongTin : text kinhDo : long viDo : long getDiaDiem() setDiaDiem() getDiaChi() setDiaChi() getThongTin() setThongTin() getKinhDo() setKinhDo() getViDo() setViDo() hienThi() them() sua() xoa(). NganHang maNganHang : int tenVietTat : text tenDayDu : text diaChi : text soDienThoai : text email : text website : text logo : image phiGiaoDich : text cacLienNganHang : text phiGiaoDichLienNH : text getTenVietTat() setTenVietTat() getTenDayDu() setTenDayDu() getSoDienThoai() setSoDienThoai() getEmail() setEmail() getWebsite() setWebsite() getlogo() setlogo() getPhiGiaoDich() setPhiGiaoDich() getLienNganHang() setLienNganHang() getPhiLienNH() setPhiLienNH() getMaNganHang() hienThi() them() sua() xoa() C_NSD_NH.

    NganHang maNganHang : int tenVietTat : text tenDayDu : text diaChi : text soDienThoai : text email : text website : text logo : image phiGiaoDich : text cacLienNganHang : text phiGiaoDichLienNH : text getTenVietTat() setTenVietTat() getTenDayDu() setTenDayDu() getSoDienThoai() setSoDienThoai() getEmail() setEmail() getWebsite() setWebsite() getlogo() setlogo() getPhiGiaoDich() setPhiGiaoDich() getLienNganHang() setLienNganHang() getPhiLienNH() setPhiLienNH() getMaNganHang() hienThi() them() sua() xoa() W_NSD_BanDo. YKienNSD maYKien : int tenNguoiGui : text soDienThoai : text noiDung : text thoiGian : datetim daKiemTra : boolean getMaYKien() setMaYKien() getTenNguoiGui() setTenNguoiGui() getSoDienThoai() setSoDienThoai() getNoiDung() setNoiDung() getThoiGian() setThoiGian() getDaKiemTra() setDaKiemTra() hien thi() sua() them() xoa() 1. NganHang maNganHang : int tenVietTat : text tenDayDu : text diaChi : text soDienThoai : text email : text website : text logo : image phiGiaoDich : text cacLienNganHang : text phiGiaoDichLienNH : text getTenVietTat() setTenVietTat() getTenDayDu() setTenDayDu() getSoDienThoai() setSoDienThoai() getEmail() setEmail() getWebsite() setWebsite() getlogo() setlogo() getPhiGiaoDich() setPhiGiaoDich() getLienNganHang() setLienNganHang() getPhiLienNH() setPhiLienNH() getMaNganHang() hienThi() them() sua() xoa() ATM.

    NganHang maNganHang : int tenVietTat : text tenDayDu : text diaChi : text soDienThoai : text email : text website : text logo : image phiGiaoDich : text cacLienNganHang : text phiGiaoDichLienNH : text getTenVietTat() setTenVietTat() getTenDayDu() setTenDayDu() getSoDienThoai() setSoDienThoai() getEmail() setEmail() getWebsite() setWebsite() getlogo() setlogo() getPhiGiaoDich() setPhiGiaoDich() getLienNganHang() setLienNganHang() getPhiLienNH() setPhiLienNH() getMaNganHang() hienThi() them() sua() xoa() C_NQT_NH. NganHang maNganHang : int tenVietTat : text tenDayDu : text diaChi : text soDienThoai : text email : text website : text logo : image phiGiaoDich : text cacLienNganHang : text phiGiaoDichLienNH : text getTenVietTat() setTenVietTat() getTenDayDu() setTenDayDu() getSoDienThoai() setSoDienThoai() getEmail() setEmail() getWebsite() setWebsite() getlogo() setlogo() getPhiGiaoDich() setPhiGiaoDich() getLienNganHang() setLienNganHang() getPhiLienNH() setPhiLienNH() getMaNganHang() hienThi() them() sua() xoa(). ATM maATM : int diaDiem : text diaChi : text thongTin : text kinhDo : long viDo : long getDiaDiem() setDiaDiem() getDiaChi() setDiaChi() getThongTin() setThongTin() getKinhDo() setKinhDo() getViDo() setViDo() hienThi() them() sua() xoa() 1.*.

    YKienNSD maYKien : int tenNguoiGui : text soDienThoai : text noiDung : text thoiGian : datetim daKiemTra : boolean getMaYKien() setMaYKien() getTenNguoiGui() setTenNguoiGui() getSoDienThoai() setSoDienThoai() getNoiDung() setNoiDung() getThoiGian() setThoiGian() getDaKiemTra() setDaKiemTra() hien thi() sua() them() xoa().

    Hình 3.3. Biểu đồ lớp cho Use case Xem thông tin địa điểm ATM
    Hình 3.3. Biểu đồ lớp cho Use case Xem thông tin địa điểm ATM

    CÀI ĐẶT VÀ TRIỂN KHAI 4.1. Cài đặt chương trình

    Cài đặt chương trình

    Chức năng dành cho người dùng - Chức năng tìm kiếm địa chỉ ATM - Chức năng xem thông tin trên bản đồ - Chức năng hiển thị thông tin ngân hàng - Chức năng trợ giúp và gửi ý kiến phản hôi.  Hình 4.8 thể hiện danh sách các quận/huyện khi người dùng chọn nút chọn quận huyện, nếu người dùng chưa chọn tỉnh thì ứng dụng sẽ hiện ra thông báo chọn tỉnh trước và không hiển thị giao diện danh sách huyện này. Người dùng có thể điền địa chỉ, tên đường phố để ứng dụng tìm kiếm chính xác hoặc không cần điền nhưng ngân hàng, tỉnh/Tp và quận/huyện thì cần được chọn.

    Khi đã chọn và điền đầy đủ thông tin thì người dùng nhấn nút Tìm kiếm và chương trình sẽ kết nối với webservice để tải về danh sách các cây ATM theo tiêu chí đã chọn được thể hiện theo hình 3.10. Tại giao diện này có một nút để hiển thị giao diện của phần giới thiệu về ứng dụng như hình 4.14 và các text box để người dùng nhập liệu, sau khi nhập thông tin xong người dùng nhấn vào nút Gửi ý kiến thì ý kiến này sẽ được gửi lên server cho người quản trị và thông báo gửi thành công hoặc thất bại sẽ hiện lên. Khi nhập không đúng tài khoản, mật khẩu hoặc mã xác nhận thì sẽ có thông báo yêu cầu nhập lại, nếu tất cả là hợp lệ và chính xác thì trình duyệt sẽ tự chuyển tới trang quản trị được thể hiện như hình 4.17.

     Tính trong suốt của ứng dụng: ứng dụng đảm bảo được quá trình khi một người dùng truy cập vào ứng dụng cho đến khi người dùng thoát khỏi ứng dụng thì ứng dụng vẫn chạy với một tình tự chức năng thuận tiện không có tình trạng lắp lại những chức năng không cần thiết.  Hệ thống kiểm tra lổi: với mỗi chức năng nếu một người dùng thao tác không đúng thì ứng dụng sẽ thông báo lổi cho người dùng đó với lổi cụ thể để cho người dùng có thể nhận được lổi một cách cụ thể.

    Hình 4.1. Hộp thoại Environment Variables
    Hình 4.1. Hộp thoại Environment Variables