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.. Mỗi một package sẽ chứa cod
Trang 1TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢIKHOA CÔNG NGHỆ THÔNG TIN
Trang 2CHƯƠNG I : TỔNG QUAN VỀ ĐỀ TÀI1 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.
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
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 suốt quá trình ứng dụng chạy
package auth chứa các activities và fragments liên quan đến đăng
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
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 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ạyplaylist, tạo một love playlist, …
Trang 8Package 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ànhjar 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
để 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
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
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.
2.
Giao diện
2.1 Giao diện thực tế đăng nhập, đăng ký, quên mật khẩu
Trang 10
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
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ẬNBẢNG PHÂN CÔNG CÔNG VIỆC
Trang 18 Thao tác trên Intelij IDEA (để chạy backend local)
Trang 19oSau khi thầy đã cài JDK 17 và tạo database trên PostgresSQL, mở ứngdụ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 20oSau đó, 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_musicspring.datasource.username=postgres
spring.datasource.password=MaiAnhDo06102001@
o
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
Trang 21oVậ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)
oTrong 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.
oSau đó 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