Trong package model, là nơi chứa các domain hay các thực thể để cho việc trao đổi dữ liệu trong suốt cả chương trình Android.. Trong package repository và serviceapi là nơi thành phần đ
Trang 1TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI
KHOA CÔNG NGHỆ THÔNG TIN
-o0o -BÁO CÁO BÀI TẬP LỚN
LẬP TRÌNH THIẾT BỊ DI ĐỘNG
Đề tài: App giao đồ ăn
Giảng viên hướng dẫn: Thầy Lại Mạnh Dũng
Trang 21.2 Lý do chọn đề tài
Ngày nay việc mua bán trực tuyến trên điện thoại trở nên phổ biến, dựa vào nhu cầu đó chúng em muốn trải nghiệm thiết kế một ứng dụng mua bán trực tuyến là ứng dụng mua bán thực phẩm
1.3 Mục tiêu của đề tài
Mục tiêu của ứng dụng mua bán thực phẩm này để vừa luyện tập kĩ năng cơ bản cũng như nâng cao trong thiết kế phát triển ứng dụng Android Ứng dụng dùng Android Studio vẽ giao diện và dùng SQLiteOpenHelper làm CSDL.
Trang 31.2 Chi tiết các use-case
2 Cơ sở dữ liệu
3 Giao diện thiết kế
3.1 Giao diện thiết kế phần đăng ký, đăng nhập
Trang 4
3.2 Giao diện thiết kế khi vào bên trong ứng dụng
Trang 5
CHƯƠNG III : GIAO DIỆN VÀ CHỨC NĂNG CỦA
HỆ THỐNG
1 Cấu trúc dự án
1.1 Module dự án Android
Bên Android, cấu trúc dự án sẽ chia làm các thành phần là model, repository,
serviceapi, utils, view Mỗi một package sẽ chứa code để làm việc với từng thành
phần tương ứng
Trang 6
Trong package model, là nơi chứa các domain hay các thực thể để cho việc trao
đổi dữ liệu trong suốt cả chương trình Android
Trong package repository và serviceapi là nơi
thành phần để giao tiếp với bên Spring BackEnd Đây là phần MODEL ở trong
kiến trúc MVVM
Trong package view là nơi để làm việc với các activity và các fragment, đây là nơi
chứa nhiều code và nghiệp vụ nhất khi làm việc với Android, ở trong kiến trúc
MVVM đây là phần VIEW và VIEW MODEL Hình sau sẽ giới thiệu đôi chút
package utils chứa các thành phần static để sử dụng trong suốt quá trình ứng dụng chạy
Trang 71.2 Module dự án Spring (do file quá nhiều nên sẽ
show các thư mục project)
Bên phía BackEnd, các module được chia thành các package như bootstrap, configuration, controller, dto, exception, mapper, model, repository, service, util Trong đó các package như controller sẽ là đại diện cho tầng presentation (trình diễn) , những class trong package này sẽ có nhiệm vụ cung cấp các api để client có thể giao tiếp với phía BackEnd,
package service và repository đại diện cho tầng business cũng như tầng persistence, đây là nơi chứa những class giải quyết các logic nghiệp vụ và logic để giao tiếp với phía DB, Database em
sử dụng là PostgresSql
package auth chứa các activities
và fragments liên quan đến đăng nhập, đăng ký, …
package love chứa các activities và fragments liên quan đến trang love playlist, tạo một love playlist, …
package musicplayer chứa các activities và fragments liên quan đến trình phát nhạc, và service để phát nhạc trong khi ứng dụng chạy
Trang 8Package bootstrap có class Bootstrap để khởi chạy các thành phần cần thiết và xử lý các dữ liệu
cần thiết khi server khởi chạy, em dùng class này để khởi tạo lời gọi đến Song API rồi sau đó xử
lý dữ liệu nhét vào album rồi lưu vào DB, một dạng initialize dữ liệu
Package dto chứa các class DTO (Data Transfer Object) để trao đổi dữ liệu, exception chứa các lớp xử lý ngoại
lệ tự định nghĩa, mapper là nơi chứa các interface để thực
hiện cho việc chuyển đổi giữa DTO và Model gốc Em các
annotations của MapStruct để trong quá trình package thành jar sẽ tự sinh ra code triển khai các
interface này cho việc chuyển đổi
Cuối cùng là các package còn lại
package configuration có chứa class
để cấu hình các Spring Bean cần thiết
để sử dụng trong khi code…
package model chứa các logic miền hay domain logic chính của hệ thống backend
package repository, service có tác dụng để trao đổi với phía database, các service sẽ sử dụng thành phần phụ thuộc (DI) từ repository để các logic nghiệp vụ có thể giao tiếp với DB
Trang 9Ngoài ra em còn viết một số unit test và integration test phía backend để kiểm thử xem API hoạt động oke chưa hay kiểm thử xem repository lấy dữ liệu, lưu dữ liệu chuẩn chưa.
Trang 102.2 Giao diện trang Home, Playlist, LovePlaylist, User
Giao diện trang Home
Giao diện trang Playlist (chứa danh sách các bài hát)
Giao diện trang LovePlaylist
Trang 11 Giao diện trang User
2.3 Giao diện trang Rank (chưa có ý tưởng triển khai)
2.4 Giao diện trang Album khi người dùng click vào Album ở Home
Trang 122.5 Giao diện trang Playlist khi người dùng click vào một Playlist
2.6 Giao diện thêm mới một bài hát vào Playlist
Trang 132.7 Giao diện trình phát nhạc
3 Chức năng
3.1 Giao diện và chức năng đăng nhập
Giao diện bắt đầu sau intro là giao diện đăng nhập của ứng
3.2 Giao diện và chức năng đăng ký
3.3 Giao diện và chức năng quên mật khẩu
Trang 14
3.4 Giao diện và chức năng trong trang Home
Trang 153.5 Giao diện và chức năng của trang …
3.6 Giao diện và chức năng của trang ….
3.7 Giao diện và chức năng trang danh sách sản phẩm
3.8 Giao diện và chức năng trang người dùng
Trang 163.9 Giao diện và chức năng
Trang 17CHƯƠNG IV: KẾT LUẬN
KẾT LUẬN
BẢNG PHÂN CÔNG CÔNG VIỆC
Trang 18 Thao tác trên Intelij IDEA (để chạy backend local)
Trang 19o Sau khi thầy đã cài JDK 17 và tạo database trên PostgresSQL, mở ứng dụng Spring Boot lên bằng Intelij IDEA
file cấu hình cho ứng dụng spring
Đây là cấu hình mặc định cho remote database, chúng ta cần thay đổi để chạy trên local database đã cài từ bước trước.
Trang 20o Sau đó, vào file application.properties cấu hình lại một chút để có thể giao tiếp với database local, mặc định là đang kết nối đến database host trên web Đây là nội dung cần thay thế
Trang 21o Vậy là xong phần chạy backend local, em dùng Spring Data JPA nên
khi chạy app sẽ tự chạy code sinh ra các bảng và dữ liệu khởi tạo sẽ
được khởi tạo từ file Bootstrap.java trong package bootstrap.
Thao tác trên Android (để chạy android)
o Trong package serviceapi, để có thể chạy local cần thay đổi đường
dẫn gọi đến API của backend đang chạy local.
o Sau đó chạy ứng dụng Android lên và đăng ký tài khoản và trải
nghiệm thôi Lưu ý là phải có kết nối wifi để đăng ký.
Thay đổi từ Constants.FULL sang Constants.EMULATOR_FULL_PATH