You are on page 1of 22

TRƯỜ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

Danh sách thành viên nhóm 5

Phó Đức Tùng 211210244


Phạm Anh Dương 211241688
Trần Tuấn Hoàng 211211181
Cao Quốc Đạt 211203881

Hà Nội, Tháng 4 Năm 2024


CHƯƠNG I : TỔNG QUAN VỀ ĐỀ TÀI
1. Mô tả về đề tài
1.1. Tóm tắt đề tài
Đề tài chúng em thực hiện là ứng dụng mua bán thực phẩm trên hệ điều hành
Android và sử dụng ngôn ngữ Java dựa trên kiến thức đã được học trên lớp và
tham khảo các nguồn kiến thức khác trên Internet.
1.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.

2. Mô tả về hệ thống

CHƯƠNG II : PHÂN TÍCH VÀ THIẾT KẾ


1. Sơ đồ use-case
1.1. Tổng quát các use-case trong dự án
- Các use case:
Trong dự án bao gồm có 1 use case duy nhất là người dùng mua hàng
1.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
3.2. Giao diện thiết kế khi vào bên trong ứng dụng
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.
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


chứa những lớp để làm việc với các
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 package
đôi chút.
utils chứa các thành
phần static để sử dụng trong
suốt quá trình ứng dụng chạy
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

1.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 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 configuration có chứa class
để cấu hình các Spring Bean cần thiết
để sử dụng trong khi code…

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 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

package util chứa class Constants


chứa các thành phần static dùng
xuyên suốt chương trình. Ngoài ra file
application.properties để cấu hình
một số thành phần cho ứng dụng
Spring như url để kết nối với database
Ngoà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.

2.

Giao diện
2.1. Giao diện thực tế đăng nhập, đăng ký, quên mật khẩu
2.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


 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
2.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
2.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


3.4. Giao diện và chức năng trong trang Home
3.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


3.9. Giao diện và chức năng
CHƯƠNG IV: KẾT LUẬN

KẾT LUẬN

BẢNG PHÂN CÔNG CÔNG VIỆC


 Thao tác trên Intelij IDEA (để chạy backend local)
o 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

Đâ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.
file cấu hình cho
ứng dụng spring
o 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ế
spring.datasource.url=jdbc:postgresql://localhost:5432/soul_music
spring.datasource.username=postgres
spring.datasource.password=MaiAnhDo06102001@

Sau đó chạy ứng dụng lên bằng cách cách nhấn nút hình tam giác trong
file SoulMusicBEServiceApplication.java
o 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.

Thay đổi từ Constants.FULL sang


Constants.EMULATOR_FULL_PATH

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ý.

You might also like