1. Trang chủ
  2. » Tất cả

Lập trình android nâng cao l03 nhóm 09

37 3 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây dựng phần mềm hỗ trợ quản lý gửi xe trong tòa nhà
Tác giả Nguyễn Tiến Đạt, Hoàng Văn Tân, Hoàng Quốc Đạt, Nguyễn Duy Lâm
Người hướng dẫn Thầy Bùi Văn Công
Trường học Học viện Kỹ thuật mật mã
Chuyên ngành Công nghệ thông tin
Thể loại Báo cáo môn học
Năm xuất bản 2022
Thành phố Hà Nội
Định dạng
Số trang 37
Dung lượng 1,28 MB
File đính kèm app quản lí gửi xe.zip (288 KB)

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

HỌC VIỆN KỸ THUẬT MẬT MÃ KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO MÔN HỌC LẬP TRÌNH ANDROID NÂNG CAO ĐỀ TÀI XÂY DỰNG PHẦN MỀM HỖ TRỢ QUẢN LÝ GỬI XE TRONG TÒA NHÀ BẰNG JAVA ANDROID. Báo cáo và word môn học mới chỉ có app chưa có web

Trang 1

HỌC VIỆN KỸ THUẬT MẬT MÃ

KHOA CÔNG NGHỆ THÔNG TIN

BÁO CÁO MÔN HỌC LẬP TRÌNH ANDROID NÂNG CAO

ĐỀ TÀI:

XÂY DỰNG PHẦN MỀM

HỖ TRỢ QUẢN LÝ GỬI XE TRONG TÒA NHÀ

Gi ng viên h ả ướ ng d n: ẫ Bùi Văn Công

Sinh viên th c hi n: ự ệ Nguy n Ti n Đ t ễ ế ạ

Hoàng Văn Tân Hoàng Qu c Đ t ố ạ Nguy n Duy Lâm ễ

CT030213 CT030248 CT030212 CT030229

Hà Nội, 10-2022

Trang 2

LỜI NÓI ĐẦU

Với sự phát triển nhảy vọt của công nghệ thông tin hiện nay, các thiết bị thôngminh giữ vai trò quan trọng trong các lĩnh vực khoa học và đời sống Điện thoại thôngminh là một trong những phát minh đem lại nhiều lợi ích trong sinh hoạt hàng ngày.Song song là sự phát triển của các phần mềm tích hợp trong máy, các ứng dụng ngàycàng tối ưu hóa, đem lại nhiều tiện ích và nhanh chóng cho người sử dụng, dần dầnthay thế các thao tác mất nhiều thời gian

Qua một thời gian tìm hiểu, nghiên cứu và phân tích, nhóm em nhận thấy cùngvới sự xuất hiện ngày càng nhiều của các tòa nhà chung cư thì nhu gửi xe trong các tòanhà, cùng với nhu cầu quản lý việc gửi xe sao cho thao tác nhanh gọn, dễ kiểm soát,tiết kiệm chi phí và đảm bảo an toàn cũng ngày càng tăng Chính vì lý do đó, nhómchúng em quyết định nghiên cứu và xây dựng phần mềm “Hỗ trợ quản lý gửi xe trongtòa nhà”

Nhóm em xin chân thành cảm ơn thầy Bùi Văn Công đã hướng dẫn trong quá

trình làm đồ án Tuy nhiên, do thời gian hạn hẹp, mặc dù đã nỗ lực hết sức mìnhnhưng chắc rằng đồ án khó tránh khỏi thiếu sót Em rất mong nhận được sự thôngcảm, những lời góp ý và chỉ bảo tận tình của thầy và các bạn

Trang 3

MỤC LỤC

4

4

Trang 4

DANH MỤC HÌNH VẼ

5

5

Trang 5

DANH MỤC BẢNG BIỂU

6

6

Trang 6

CHƯƠNG 1 CƠ SỞ LÝ THUYẾT

1.1 Tổng quan đề tài

1.1.1 Mô tả hệ thống gửi xe trong các tòa chung cư hiện nay

Hiện nay đa phần các tòa chung cư đã tích hợp IOT và SmartCard vào việc gửi

xe trong tòa nhà Khi có một xe bất kỳ muốn đi vào hay đi ra khỏi bãi gửi xe, chủ xe sẽphải dùng SmartCard đã được cấp, hệ thống sẽ dựa vào biển số xe được lưu trong thẻ

so sánh với biển số xe mà hệ thống hiện đang đọc được thông qua camera để từ đóquyết định có cấp phép cho xe vào, ra hay không ?

- Ưu điểm của hệ thống:

+ Hệ thống đã tự động được trong khâu ra vào bãi gửi xe Giúp tăng tốc độ

xử lý việc quản lý cấp phép cho xe ra vào đặc biệt vào những giờ caođiểm lượng xe ra vào nhiều nhất

+ Hệ thống giúp giảm thiểu được rất nhiều sức người so với việc phải ghithẻ (vé) gửi xe so với các bãi xe truyền thống

+ Một vài hệ thống còn giúp người quản lý thống kê được lượng xe đang

có trong bãi Từ đó giúp quản lý biết được bãi xe hiện còn đang baonhiêu chỗ trống mà để xem xét có nhận thêm xe vào hay không ?

- Nhược điểm của hệ thống:

+ Hệ thống bắt buộc phải có SmartCard nên dẫn đến việc người quản lýphải bắt buộc tốn thêm chi phí để làm các SmartCard cung cấp cho bãigửi xe Và phải định kỳ làm thêm các SmartCard mới bổ sung, thay thếcho các SmartCard cũ không còn dùng được

+ Người dùng muốn đăng ký gửi xe lâu dài trong bãi sau khi làm đơn đăng

ký cũng sẽ phải chờ một khoảng thời gian để chờ người quản lý làmSmartCard cho xe của mình Nếu chẳng may chủ xe làm mất SmartCardcủa xe mình, thì sẽ phải tốn thời gian, chi phí để đăng ký làm lại cái mới.+ Các SmartCard dành cho các xe cố định, sau khi xe đó không còn gửitrong bãi nữa thì các SmartCard này cũng sẽ vô dụng, bắt buộc phải vứt

đi hoặc tốn thêm chi phí để cài đặt lại

Trang 7

+ Các hệ thống nếu có thống kê được lượng xe hiện đang có trong bãi thìchỉ có người quản lý xem được Người dùng vẫn đang chưa có cách nào

để xem thông tin này từ xa, để từ đó có ra quyết định gửi xe trong bãihay không ?

+ Đa phần hệ thống chưa có tính năng thanh toán tiền gửi xe tự động Chủ

xe vẫn phải thanh toán thủ công bằng tiền mặt hoặc chuyển khoản theongày hoặc theo tháng

1.1.2 Mô tả bài toán nhóm đặt ra

Dựa vào những tìm hiểu, nghiên cứu mà nhóm đã thực hiện Bài toán mà nhómđặt ra cho phần mềm sẽ làm là:

- Kế thừa những ưu điểm đang có trong hệ thống gửi xe hiện nay của các tòachung cư

- Xây dựng phương án cấp phép cho xe ra, vào mà không cần dùng SmartCardnhằm giúp giảm thiểu hơn nữa chi phí, thời gian hao tốn mà nhược điểm củaviệc dùng SmartCard mang lại

- Xây dựng chức năng thanh toán tiền tự động Người có thể nạp tiền vào app vàdựa vào mỗi lần gửi xe vào bãi, hệ thống sẽ tự trừ tiền đi trong tài khoản

- Xây dựng chức năng hiện thị số xe đang có trong bãi cho cả người dùng vàngười quản lý xem

Trang 8

Android có đặc điểm là một nền tảng mã nguồn mở, điều này cho phép các nhàmạng di động, lập trình viên có thể điều chỉnh và thiết kế các ứng dụng một cách linhhoạt và dễ dàng Đối với việc lập trình Android, lập trình viên sẽ phải làm việc vớitầng Android Runtime và Application Trên Runtime chứa tệp các thư viện cốt lõi chophép lập trình viên viết các ứng dụng sử dụng ngôn ngữ lập trình như Java Mọi ứngdụng được viết sẽ được lưu trữ tại tầng Application.

Trang 9

1.2.1.2 Android Studio

Hình 1.2 Android Studio

Android Studio là môi trường phát triển của các tích hợp chuyên nghiệp cóchức năng hỗ trợ trực tiếp cho việc thiết kế và xây dựng các ứng dụng có trên di độngcủa nền tảng Android

Android Studio là IDE và nó được sử dụng trong sự phát triển của các ứng dụngcủa Android dựa trên IntelliJ IDEA Android Studio được tạo nên với mục đích chính

là để thay thế các phiên bản của plugin android được dùng cho Eclipse thời trước với

sự hợp tác của Google và JetBrains

Ngoài các khả năng đáng mong đợi từ IntelliJ, Android Studio còn cung cấp:

• Hệ thống Gradle-based linh hoạt

• Xây dựng các biến thể và tạo nhiều tệp APK

• Code các mẫu template để hỗ trợ các tính năng app thông thường

• Chỉnh sửa bố cục đa dạng với khả năng kéo và thả theme

• Công cụ lint giúp nắm bắt hiệu suất, khả năng sử dụng, phiên bản tương thích

Trang 10

1.2.1.3 Java Android

Java là ngôn ngữ chính thức để phát triển Android Đây là ngôn ngữ có sự hỗtrợ nhiều nhất từ Google Nó cũng là ngôn ngữ mà hầu hết các ứng dụng trên PlayStore được xây dựng Nó cũng là ngôn ngữ chính thức của Android Hệ điều hànhAndroid của Google sử dụng Java như là cơ sở cho tất cả các ứng dụng Android

Java được thiết kế để tương thích với nhiều môi trường phát triển nên nó đượcxem là linh hoạt hơn ngôn ngữ lập trình hướng đối tượng C++ và ngôn ngữ lập trình

C Ngoài ra Java còn có hiệu suất cao nhờ vào trình thu gom rác Nó giải phóng bộnhớ với các đối tượng không được dùng đến

1.2.2 Nền tảng NodeJS

Hình 1.3 Nền tảng NodeJS

NodeJS là một nền tảng phát triển độc lập được xây dựng ở trên JavaScriptRuntime của Chrome mà chúng ta có thể xây dựng được các ứng dụng mạng một cáchnhanh chóng và dễ dàng mở rộng

NodeJS được xây dựng và phát triển từ năm 2009, bảo trợ bởi công ty Joyent,trụ sở tại California, Hoa Kỳ Phần core bên dưới của NodeJS được viết bằng hầu hếtC++ nên cho tốc độ xử lý và hiệu năng khá cao [1]

Trang 11

NodeJS giúp tạo ra được các ứng dụng có tốc độ xử lý nhanh, realtime thời gianthực Đồng thời áp dụng cho các sản phẩm có lượng truy cập lớn, cần mở rộng nhanh,cần đổi mới công nghệ, hợc tạo ra các dự án Startup nhanh nhất có thể.

Những ứng dụng có thể và được khuyên viết bằng NodeJS:

• Websocket server: Các máy chủ web socket như Online chat, game server…

• Fast file upload client: là các chương trình upload file tốc độ cao

• Ad Server: Các máy chủ quảng cáo

• Cloud Services: Các dịch vụ đám mây

• RESTful API: đây là nhứng ứng dụng mà được sử dụng cho các ứng dụngkhác thông qua API

• Any Real-time Data Application: Bất kỳ một ứng dụng nào đó yêu cầu vềtốc độ thời gian thực

• Micro Services: ý tưởng là chia nhỏ một ứng dụng lớn thành các dịch vụnhỏ và kết nối chúng lại với nhau NodeJS có thể làm tốt điều này [1]

1.2.3 Hệ quản trị cơ sở dữ liệu NoSQL MongoDB

Khác với SQL, NoSQL ( viết tắt của Non-Relational SQL) là loại cơ sở dữ liệu

mà không truy vấn bằng ngôn ngữ SQL Các hệ quản trị cơ sở dữ liệu NoSQL sử dụngcác kỹ thuật lưu trữ khác nhau: cặp khoá-giá trị (key-value) trên RAM, trên ổ cứng,tập tin NoSQL không có các chuẩn chung thống nhất như là SQL Các cơ sở dữ liệuNoSQL đang được sử dụng ngày càng nhiều trong các ứng dụng dữ liệu lớn và ứngdụng web thời gian thực

MongoDB là một hệ quản trị cơ sở dữ liệu mã nguồn mở được phát triển mởiMongoDB Inc và được cấp phép theo Giấy phép Công Cộng phía Máy chủ (SSPL), là

cơ sở dữ liệu thuộc NoSQL và được hàng triệu người sử dụng MongoDB là một cơ sở

dữ liệu hướng tài liệu(document), các dữ liệu được lưu trữ trong document kiểu JSON

Với CSDL quan hệ chúng ta có khái niệm bảng, các cơ sở dữ liệu quan hệ dùngbảng để lưu dữ liệu thì với MongoDB dùng khái niệm collection thay vì bảng,document ứng với các hàng Các collection trong MongoDB được cấu trúc rất linhhoạt, cho phép các dữ liệu lưu trữ không tuân theo một cấu trúc nhất định

Trang 12

Ưu điểm khi dùng MongoDB:

• Lưu trữ dưới dạng JSON, mỗi một collection sẽ có các kích cỡ và cácdocument khác nhau nên sẽ rất linh hoạt cho việc lưu trữ dữ liệu

• Khác với các cơ sở dữ liệu quan hệ, trong đây không có sự ràng buộc vàkhông yêu cầu tuân theo khuôn khổ nhất định nên các thao tác được thựchiện rất nhanh, làm tối ưu hiệu suất

• Khi có truy vấn dữ liệu thì các bản ghi được cached lên bộ nhớ RAM, đểlượt truy vấn sau diễn ra nhanh hơn mà không cần đọc ổ cứng

• Rất dễ mở rộng, MongoDB dễ dàng mở rộng hệ thống bằng cách thêm nodevào cluster – cum các node chứa dữ liệu giao tiếp với nhau

Chính vì lý do trên mà MongoDB được lựa chọn cho các ứng dụng yêu cầu thờigian thực, phản hồi nhanh, tương tác thường xuyên, các hệ thống yêu cầu việc lưu trữ

dữ liệu lớn, truy vấn nhanh thì MongoDB là lựa chọn rất phù hợp [2]

Hình 1.4 Cơ sở dữ liệu MongoDB

Trang 13

CHƯƠNG 2 PHÂN TÍCH THIẾT KẾ HỆ THỐNG

2.1 Mô hình của hệ thống

- Hệ thống được thiết kế theo mô hình Client – Server với các thành phần:

+ Frontend được code bằng Java trên Android Studio

+ Backend được code bằng NodeJs trên Visual

+ Database sẽ sử dụng MongoDB

Trang 14

2.2 Phân tích các ca sử dụng

2.2.1 Ca sử dụng của hệ thống

Hình 2.1 Biểu đồ ca sử dụng của hệ thống

Ca sử dụng của hệ thống bao gồm 2 tác nhân chính là Người dùng và Admin:

- Người dùng và Admin sẽ chung các ca sử dụng:

+ Đăng nhập

+ Đăng xuất

+ Hiển thị số xe có trong bãi

+ Đăng kí tài khoản người dùng

- Người dùng sẽ có các ca sử dụng riêng:

+ Đăng ký xe muốn gửi trong bãi

Trang 15

+ Hiển thị danh sách các xe đang đăng ký gửi

+ Nạp tiền vào app

+ Tự động trừ tiền gửi xe theo mỗi lần vào bãi

- Admin sẽ có các ca sử dụng riêng:

+ Cho xe vào bãi bằng cách quét biển số xe rồi sinh ra mã QR

+ Cho xe ra khỏi bãi bằng cách quét mã QR đã sinh ra lúc gửi

+ Quản lý danh sách các xe đang đăng ký gửi trong bãi

+ Quản lý lịch sử xe ra vào bãi

+ Quản lý danh sách tài khoản người dùng trong hệ thống:

o Xem thông tin người dùng

o Xóa tài khoản người dùng

o Nạp tiền vào tài khoản người dùng

2.2.2 Ca sử dụng đăng nhập

Bảng 2.1 Đặc tả ca sử dụng đăng nhập

Tên ca s d ngử ụ Đăng nh pậ

Tác nhân Người dùng ho c Admin ặ

Mô t ca s d ngả ử ụ Người dùng ho c Admin mu n đăng nh p vào h th ngặ ố ậ ệ ố

Lu ng sồ ự ki nệ

chính

1 Người dùng truy c p vào Appậ

2 Người dùng nh p Username và Password c a tài kho nậ ủ ả

3 Người dùng b m nút “Đăng nh p”ấ ậ

4 H th ng x lý vi c đăng nh p c a tài kho n ngệ ố ử ệ ậ ủ ả ười dùng

và tr v k t qu tả ề ế ả ương ngứ

Trang 16

Hình 2.2 Biểu đồ tuần tự ca sử dụng Đăng nhập

2.2.3 Ca sử dụng đăng ký

Bảng 2.2 Đặc tả ca sử dụng Đăng ký

Tên ca s d ngử ụ Đăng ký

Tác nhân Người dùng ho c Admin ặ

Mô t ca s d ngả ử ụ - Người dùng mu n tham gia vào h th ngố ệ ố

- Admin t o tài kho n cho ngạ ả ười dùng

Lu ng sồ ự ki nệ

chính

- Đ i v i ngố ớ ười dùng:

1 Người dùng truy c p vào Appậ

2 Người dùng ch n đọ ường d n “B n ch a có tài kho n ?ẫ ạ ư ảĐăng ký ngay” trên màn hình đăng nh pậ

3 Người dùng nh p đ y đ thông tin trên form Đăng kýậ ầ ủ

4 Người dùng b m nút “Thêm tài kho n” đ xác nh nấ ả ể ậ

5 H th ng x lý vi c đăng ký tài kho n c a ngệ ố ử ệ ả ủ ười dùng và

Trang 17

tr v k t qu tả ề ế ả ương ngứ

- Đ i v i Adminố ớ

1 Admin truy c p vào App và login vào tài kho n c a mìnhậ ả ủ

2 Admin vào ph n qu n lý tài kho n ngầ ả ả ười dùng

3 Admin b m vào nút d u c ng đ thêm tài kho n ngấ ấ ộ ể ả ườidùng

4 Admin nh p đ y đ thông tin trên form Đăng kýậ ầ ủ

5 Admin b m nút “Thêm tài kho n” đ xác nh nấ ả ể ậ

6 H th ng x lý vi c thêm tài kho n ngệ ố ử ệ ả ười dùng c a Adminủ

và tr v k t qu tả ề ế ả ương ngứ

Hình 2.3 Biểu đồ tuần tự ca sử dụng Đăng ký

2.2.4 Ca sử dụng Cho xe vào bãi

Bảng 2.3 Đặc tả ca sử dụng Cho xe vào bãi

Tên ca s d ngử ụ Cho xe vào bãi

Trang 18

5 H th ng x lý vi c g i xe theo nh bi n s phệ ố ử ệ ử ả ể ố ương ti nệ

đã xác nh n và tr v k t qu x lý ậ ả ề ế ả ử

Trang 19

Hình 2.4 Biểu đồ tuần tự ca sử dụng Cho xe vào bãi

2.2.5 Ca sử dụng cho xe ra khỏi bãi

Bảng 2.4 Đặc tả ca sử dụng Cho xe ra khỏi bãi

Tên ca s d ngử ụ Cho xe ra kh i bãiỏ

Trang 20

Tác nhân Admin

Mô t ca s d ngả ử ụ Admin c p phép cho phấ ương ti n ra kh i bãi g i xeệ ỏ ử

Lu ng sồ ự ki nệ

chính

1 Admin truy c p vào App và login vào tài kho n c a mìnhậ ả ủ

2 Admin b m nút “Quét xu t xe”ấ ấ

3 Admin quét mã QR được sinh ra lúc xe đi vào bãi

4 H th ng x lý vi c xu t xe theo mã QR quét đệ ố ử ệ ấ ược và trả

v k t qu x lý ề ế ả ử

Hình 2.5 Biểu đồ tuần tự ca sử dụng Cho xe ra khỏi bãi

2.2.6 Ca sử dụng Nạp tiền vào tài khoản người dùng

Bảng 2.5 Đặc tả ca sử dụng Nạp tiền vào tài khoản người dùng

Tên ca s d ngử ụ N p ti n vào tài kho n ngạ ề ả ười dùng

Tác nhân Người dùng ho c Admin ặ

Trang 21

Mô t ca s d ngả ử ụ Người dùng ho c Admin n p ti n vào tài kho n ngặ ạ ề ả ười dùng

5 H th ng x lý yêu c u n p ti n c a ngệ ố ử ầ ạ ề ủ ười dùng và tr vả ề

k t qu x lýế ả ử

- D i v i Adminố ớ

1 Admin truy c p vào App và login vào tài kho n c a mìnhậ ả ủ

2 Admin chuy n sang màn hình Qu n lý tài kho n ngể ả ả ườidùng

3 Admin l a ch n tài kho n mu n n p ti n và b m vàoự ọ ả ố ạ ề ấ

4 Admin b m vào nút N p ti nấ ạ ề

5 Admin nh p s ti n mu n n p và b m nút N p ti n đậ ố ề ố ạ ấ ạ ề ểxác nh nậ

6 H th ng x lý yêu c u n p ti n c a Admin và tr v k tệ ố ử ầ ạ ề ủ ả ề ế

qu x lýả ử

Trang 22

Hình 2.6 Biểu đồ tuần tự ca sử dụng Nạp tiền vào tài khoản người dùng

2.2.7 Ca sử dụng Đăng ký xe muốn gửi

Trang 23

Hình 2.7 Biểu đồ tuần tự Đăng ký xe muốn gửi2.3 Thiết kế cơ sở dữ liệu

Hình 2.8 Cấu trúc cơ sở dữ liệu

Trang 24

Cơ sở dữ liệu của hệ thống được mô hình hoá thông qua các hình trên Gồm cócác bảng và trường như sau:

1 Bảng Users: lưu dữ liệu người dùng hệ thống.

• id (object id): id định danh người dùng

• userName (string): tên đăng nhập tài khoản người dùng

• password (string): mật khẩu tài khoản người dùng

• phone (string): số điện thoại người dùng

• address (string): địa chỉ người dùng

• dob (string): ngày sinh người dùng

• money (integer): số tiền trong tài khoản người dùng

• hetTien (integer): biến cờ chỉ ra tài khoản còn tiền hay không ?

• ngayHet (string): ngày tài khoản người dùng hết tiền

• isBlock (integer): biến cờ chỉ ra tài khoản có bị khóa hay không ?

• email (string): email người dùng

2 Bảng Transports: liên kết tới bảng Users lưu thông tin các phương tiện người

dùng đăng ký gửi trong bãi

• id (object id): id định danh phương tiện

• trans_type (string): loại xe

• trans_name (string): tên xe

• trans_license (string): biển số xe

• qr (string): mã qr dùng để lấy xe ra khỏi bãi

• own (object id): khóa ngoại liên kết với bảng Users giúp biết được phươngtiện này của người dùng nào

3 Bảng Statisticals: liên kết tới bảng Transports lưu thông tin lịch sử các

phương tiện ra, vào bãi

• id (object id): id định danh bản ghi

• timeCome (string): ngày giờ phương tiện vào

• timeOut (string): ngày giờ phương tiện ra

• isOut (integer): biến cờ chỉ xe đã gửi vào bãi đã ra khỏi bãi hay chưa ?

transport (object id): khóa ngoại liên kết với bảng Transports cho biết bản

ghi này của phương tiện nào

Ngày đăng: 24/11/2022, 11:02

w