Yêu Cầu Doanh Nghiệp- Web - App sẽ giúp tiết kiệm thời gian để ghi chép lại thông tin bán hàng, có thể theodõi và quản lý hầu như mọi khía cạnh trong công việc kinh doanh của bạn, từ khâ
Trang 1- -DỰ ÁN TỐT NGHIỆP
VÀ APP KINH DOANH CÀ PHÊ THÀNH ĐẠT
CHUYÊN NGÀNH: LẬP TRÌNH MÁY TÍNH – THIẾT BỊ DI ĐỘNG
Buôn Ma Thuột, 12/2021
LẬP TRÌNH MÁY TÍNH-THIẾT BỊ DI ĐỘNG 1
Giảng viên hướng dẫn : Đỗ Thị Bích Vân
Sinh viên thực hiện : Bùi Văn Hải - PK01120
Phạm Minh Thắng - PK01672Mai Khoa Hoàng Thi - PK01566
Võ Đức DuyNguyễn Quý ĐônHoàng Hồng Sơn
- PK01537
- PK01545
- PK01228
Trang 2LỜI CẢM ƠN
Lời đầu tiên nhóm chúng em xin chân thành cảm ơn quý thầy cô và nhà trường đã tạo cơ hội để chúng em được học tập và thực hiện dự án này Nhờ quý thầy cô đã giảng dạy, truyền đạt kiến thức lý thuyết cũng như thực hành cho chúng em trong trong quá trình học tập trên giảng đường giúp chúng em có thể áp dụng vào thực tế để xây dựng dự án “Web-App Cà phê Thành Đạt” Đặc biệt chúng em xin gửi lời cảm ơn đến cô Đỗ Thị Bích Vân đã đã tận tình giảng dạy, truyền đạt tất cả những kiến thức trong quá trình học tập cũng như hướng dẫn tận tâm để giúp chúng em tìm hiểu và thực hiện dự án một cách thuận lợi và hoàn thiện hơn Sau quá trình tìm hiểu, khảo sát và phân tích về cửa hàng kinh doanh Cà phê Thành Đạt chúng em quyết định xây dựng dự án “Web-App Cà phê Thành Đạt” để phù hợp với yêu cầu doanh nghiệp và nhu cầu khách hàng, vì thời gian còn hạn chế, kiến thức còn hạn hẹp nên bài báo cáo có thể còn những thiếu sót, kính mong sự góp ý chia sẻ từ doanh nghiệp, thầy cô cũng như các bạn để chúng em có thể rút kinh nghiệm và cải thiện tốt hơn Em xin chân thành cảm ơn! NHẬN XÉT (Của giảng viên hướng dẫn)
Trang 3
Buôn Ma Thuột, ngày tháng năm 20
Giảng viên hướng dẫn NHẬN XÉT (Của hội đồng phản biện 1)
Trang 4
Buôn Ma Thuột, ngày tháng năm 20
Hội đồng phản biện NHẬN XÉT (Của hội đồng phản biện 2)
Trang 5
Buôn Ma Thuột, ngày tháng năm 20
Hội đồng phản biện Mục Lục CHƯƠNG I: GIỚI THIỆU TỔNG QUAN 8
I Giới Thiệu Doanh Nghiệp 8
1 Khái quát doanh nghiệp 8
2 Sơ lược doanh nghiệp 8
II Lý Do Chọn Đề Tài 9
III Yêu Cầu Doanh Nghiệp 9
IV Khảo Sát Phần Mềm Tương Tự 11
CHƯƠNG II: NỀN TẢNG CÔNG NGHỆ 14
I React Native 14
Trang 6II React Js 16
III Node Js 17
IV MongoDB 17
V Github 18
VI Postman 19
VII Twilio 20
VIII Visual Studio Code 20
IX Redux, Redux – Saga 21
X Expo 22
CHƯƠNG III: PHÂN TÍCH THIẾT KẾ HỆ THỐNG 23
I Phân Tích Thiết Kế Hệ Thống: Hệ Thống Bao Gồm Web Và App 23
1 Sơ đồ thiết kế hệ thống 23
2 Biểu đồ phân ra chức năng 24
2.1 Phân ra chức năng chính của admin trên web 24
3 Sơ đồ use case 24
3.1.UC001: Sơ đồ use case tổng quát trên web và app 24
3.2.UC002: Sơ đồ use case đăng nhập trên web và app 24
3.3.UC003: Sơ đồ use đăng ký trên web và app 24
4 Đặc tả chi tiết use case 24
4 1 UC002: Chức năng đăng nhập 24
4.2 UC003: Chức năng đăng ký 25
4.3 UC004: Chức năng quản lý bán hàng 27
4.3.1 Chức năng quản lý bán hàng admin trên web 27
4.4 Chức năng quản lý kho của admin 27
5 Sơ đồ Data-flow diagram (DFD) 27
5.1 Sơ đồ DFD mức ngữ cảnh 27
5.2 Sơ đồ DFD phân ra chức năng tìm kiếm 27
5.3 Sơ đồ DFD phân rã chức năng đăng nhập 28
5.4 Sơ đồ DFD phân rã chức năng đăng ký 28
5.5 Sơ đồ DFD phân rã chức năng quên mật khẩu 30
5 6 Sơ đồ DFD phân rã chức năng thêm sản phẩm vào giỏ hàng 30
5.7 Sơ đồ DFD phân rã chức năng xóa sản phẩm trong giỏ hàng 31
II Thiết kế cơ sở dữ liệu 32
1 Mô tả bài toán 32
Trang 72 Xác định thực thể 32
3 Mối quan hệ giữa các thực thể 32
4 Bảng cơ sở dữ liệu 32
5 Sơ đồ quan hệ giữa các thực thể 32
6 Mô hình mối quan hệ EER 32
CHƯƠNG IV: THỰC HIỆN DỰ ÁN 32
I Biên bản họp và phân chia công việc 32
1 Biên bản họp 32
2.Phân chia công việc 42
II Thực hiện viết mã các chức năng 50
1 Tổng quan cấu trúc Soure code của website và app 50
2 Soure code của website 50
3 Soure code của app 50
4 Code chính của website 50
5 Code chính của app 50
6 Quên mật khẩu 50
CHƯƠNG V: KIỂM THỬ 50
I Website 51
1 Kiểm thử đơn vị 51
2 Kiểm thử tích hợp mô hình Top-Down 51
3 Kiểm thử phi chức năng 51
4 Kiểm thử chấp nhận người dùng 51
5 Test case 51
6 Kết quả kiểm thử 51
II App 51
1 Kiểm thử đơn vị 51
2 Kiểm thử tích hợp mô hình Top-Down 51
3 Kiểm thử phi chức năng 51
4 Kiểm thử chấp nhận người dùng 51
5 Test case 51
6 Kết quả kiểm thử 51
CHƯƠNG VI: TỔNG KẾT 51
I Kết quả đạt được 51
II Ưu điểm và nhược điểm 51
Trang 81 Ưu điểm 51
2 Nhược điểm 51
III Thuận lợi và khó khăn 51
1 Thuận lợi 51
2 Khó khăn 51
IV Định hướng phát triển 51
V Tài liệu tham khảo 51
CHƯƠNG I: GIỚI THIỆU TỔNG QUAN
I Giới Thiệu Doanh Nghiệp
1 Khái quát doanh nghiệp
- Tên doanh nghiệp : Cà phê Thành Đạt
- Tên chủ doanh nghiệp:
- Địa chỉ:
- Số điện thoại:
2 Sơ lược doanh nghiệp
- Cà phê Thành Đạt là doanh nghiệp cà phê tại Buôn Ma Thuột nơi cà phê vẫn luôn được đánh giá là có chất lượng cao nhất và có hương vị đặc trưng nhất được giới hâm
mộ và các nhà rang xay cà phê đánh giá cao Từ đó cà phê Thành Đạt chúng tôi mang lại các loại cà phê chất lượng có đủ các loài cà phê như: cà phê chè, cà phê vối, cà phê mít, cà phê vối, tham khảo qua : “Hệ thống Website và App cà phê Thành Đạt”.
II Lý Do Chọn Đề Tài
- Trước sự phát triển của thời đại công nghệ đi kèm với sự phát triển mạnh mẽ của các dịch vụ mua bán trực tuyến qua mạng đang tỏ ra vô cùng hiệu quả và tiện lợi, qua đó các doanh nghiệp cần áp dụng công nghệ vào quản lý sản phẩm, thanh toán trực tuyến một cách đơn giản và nhanh chóng, tiện lợi và chính xác
- Nắm bắt được nhu cầu thiết yếu này, sau một khoảng thời gian nghiên cứu và trao đổi
với doanh nghiệp nhóm em đã đưa ra quyết định đồ án tốt nghiệp là: “Hệ thống
Trang 9III Yêu Cầu Doanh Nghiệp
- Web - App sẽ giúp tiết kiệm thời gian để ghi chép lại thông tin bán hàng, có thể theodõi và quản lý hầu như mọi khía cạnh trong công việc kinh doanh của bạn, từ khâu tìmkiếm, quản lý kho, bài viết, sản phẩm đến dữ liệu khách hàng, tất cả trên một hệ thống,đơn giản hóa cách quản lý kinh doanh, làm cho các thông tin dễ dàng hơn để tìm thấy,
và giảm thiểu những sai sót
Đảm bảo đầy đủ các chức năng cơ bản của một phần mềm quản lý cơ bản Bao gồm cácchức năng sau:
1 Phân quyền người dùng hệ thống:
- Khách hàng:
+ Đăng nhập, đăng ký tài khoản
+ Thông báo hoạt động khách hàng
+ Xem và thay đổi thông tin về tài khoản (Tên, Ngày sinh, Địa chỉ, …)
+ Thêm, xóa và cập nhật sản phẩm trong giỏ hàng
+ Tùy chọn hình thức thanh toán
+ Hình thức thanh toán (tại cửa hàng, giao hàng tận nơi và thanh toán khi nhận hàng),đặt hàng phải dễ sử dụng và bảo mật
+ Danh sách sản phẩm, bài viết
+ Chi tiết sản phẩm, bài viết
+ Tìm kiếm sản phẩm, gợi ý sản phẩm bán chạy ở trang chủ để người dùng dễ dàngchọn loại sản phẩm cần tìm
+ Những chính sách, điều khoản cũng như thông tin liên hệ của doanh nghiệp
- Admin:
+ Tất cả quyền của khách hàng
+ Quản lý bài viết, sản phẩm: Cập nhật thông tin hàng hoá trực tuyến thay đổi hình ảnh,thông tin chi tiết giá các sản phẩm, bài viết
+ Quản lý khách hàng: Lưu trữ các thông tin, hoạt động khách hàng, …
+ Quản lý kho hàng : quản lý sản phẩm, bài viết,trạng thái đơn hàng người dùng,
2 Các chức năng chính của hệ thống:
- Quản lý giỏ hàng:
Trang 10+ Quản lý sản phẩm đã chọn trong giỏ hàng.
+ Có thể thêm, sửa xóa sản phẩm trong giỏ hàng
+ Thông tin sản phẩm trong giỏ gồm tên, hình ảnh, giá, số lượng
- Danh mục bài viết:
+ Danh sách bài viết
+ Thông tin bài viết gồm tiêu đề, hình ảnh, nội dung,
+ Phân trang bài viết
- Quản lý thông tin khách hàng:
+ Hiển thị thông tin khách hàng
+ Chỉnh sửa thông tin khách hàng (tên, ngày sinh, )
+ Lịch sử giao dịch
+ Thông báo khách hàng
Trang 11IV Khảo Sát Phần Mềm Tương Tự
1 Website Đặc sản Ban Mê
Trang chủ
Chức năng: Hiển thị các chức năng và thông tin cơ bản của website.
Ưu điểm: Đơn giản, dễ nhìn
Nhược điểm: Bố cục chưa rõ ràng, còn thiếu một số chức năng, hiển thị nhiều thứ
không cần thiết
Trang sản phẩm :
Trang 12Chức năng: Hiển thị danh sách sản phẩm.
Ưu điểm: Đơn giản, dễ nhìn
Nhược điểm: không có những bộ lọc sản phẩm cần thiết
Trang bài viết :
Chức năng: Hiển thị danh sách bài viết.
Ưu điểm: Đơn giản, dễ nhìn, đầy đủ
Nhược điểm: kích thước hình ảnh bài viết quá lớn nên hiển thị ít bài viết cùng lúc.
Trang giỏ hàng :
Chức năng: Hiển thị danh sách sản phẩm của giỏ hàng.
Ưu điểm: Đơn giản, dễ nhìn
Trang 13Nhược điểm: có lúc không hiển thị được danh sách
Tổng kết
Giao diện cơ bản dễ nhìn
Có đủ chức năng cơ bản
của 1 doanh nghiệp
Tốc độ truy cập nhanh
Giao diện sắp xếp bố cục chưa hợp lí, chưa tối
ưu hóa được sư tiện lợi cho người dùng
Còn nhiều chi tiết bị thừa
2 Website quản lí bán hàng
Tổng quan :
Chức năng: Hiển thị các chức năng và danh sách thông tin sản phẩm.
Ưu điểm: Đơn giản, dễ nhìn
Nhược điểm: Còn thiếu thống kê
3.Rút ra nhận xét
Ưu điểm
- Giao diện cần tối ưu hóa người dùng
- Tốc độ truy cập nhanh
- Sắp xếp bố cục hợp lý ,thông tin đầy đủ chi tiết
- Quản lý sản phẩm chính xác,thông tin rõ ràng
Nhược điểm
- Giao diện chưa bắt mắt, nhiều thành phần còn dư thừa, bố cục chưa hợp lí
- Chưa thống kê được các sản phẩm
- Sau khi khảo sát những phần mềm tương tự chúng em sẽ tiếp thu những ưu điểm và cải thiện tốt hơn như
- Sắp xếp bố cục rõ ràng
- Bổ sung những thành phần còn thiếu sót
Trang 14- Thao tác nngười dùng nhanh chóng, dễ hiểu.
CHƯƠNG II: NỀN TẢNG CÔNG NGHỆ
I React Native
React Native là một framework do công ty công nghệ nổi tiếng Facebook pháttriển nhằm mục đích giải quyết bài toán hiệu năng của Hybrid và bài toán chi phíkhi mà phải viết nhiều loại ngôn ngữ native cho từng nền tảng di động
Trang 15Chúng ta sẽ build được ứng dụng Native, và chúng ta cũng có thể build ứng dụng
đó một cách đa nền tảng (multi-platform) chứ không phải là một “mobile webapp”, không phải là “HTML5 app”, và cũng không phải là một “hybrid app” haycũng không chỉ build trên iOS hay Android mà chúng ta build và chạy được cả hai
hệ sinh thái luôn, sợ chưa!!!
+ Xây dựng cho nhiều hệ điều hành khác nhau với ít native code nhất
+ Trải nghiệm người dùng tốt hơn là hybrid app
+ Xem thêm: 6 ưu điểm nổi bật của React Native
Nhược điểm:
+ Vẫn đòi hỏi native code
+ Hiệu năng sẽ thấp hơn với app thuần native code
+ Bảo mật không cao do dựa trên JS
+ Quản lý bộ nhớ
+ Khả năng tùy biến cũng không thực sự tốt đối với một vài module
Trang 16 Ưu điểm:
+ Reactjs cực kì hiệu quả: Reactjs tạo ra cho chính nó DOM ảo – nơi mà các component thực sự tồn tại trên đó Điều này sẽ giúp cải thiện hiệu suất rất nhiều Reactjs cũng tính toán những thay đổi nào cần cập nhật len DOM và chỉ thực hiện chúng Điều này giúp Reactjs tránh những thao tác cần trên DOM mà nhiều chi phí
+ Hiệu năng cao đối với các ứng dụng có dữ liệu thay đổi liên tục, dễ dàng cho bảo trì và sửa lỗi
+ Tích hợp Reactjs vào các framework MVC truyền thống yêu cầu cần phải cấu hình lại
+ Khó tiếp cận cho người mới học Web
Trang 17III Node Js
NodeJS là một nền tảng được xây dựng trên “V8 Javascript engine” được viết bằng c++ và Javascript Nền tảng này được phát triển bởi Ryan Lienhart Dahl vào năm 2009
Node.js ra đời khi các developer đời đầu của JavaScript mở rộng nó từ một thứ bạn chỉ chạy được trên trình duyệt thành một thứ bạn có thể chạy trên máy của mình dưới dạng ứng dụng độc lập
Ưu điểm:
+ Đặc điểm nổi bật của Node.js là nó nhận và xử lý nhiều kết nối chỉ với mộtsingle-thread Điều này giúp hệ thống tốn ít RAM nhất và chạy nhanh nhất khikhông phải tạo thread mới cho mỗi truy vấn giống PHP Ngoài ra, tận dụng ưuđiểm non-blocking I/O của Javascript mà Node.js tận dụng tối đa tài nguyên củaserver mà không tạo ra độ trễ như PHP
+ JSON APIs Với cơ chế event-driven, non-blocking I/O(Input/Output) và mô hìnhkết hợp với Javascript là sự lựa chọn tuyệt vời cho các dịch vụ Webs làm bằngJSON
Nhược điểm:
+ Ứng dụng nặng tốn tài nguyên Nếu bạn cần xử lý các ứng dụng tốn tài nguyênCPU như encoding video, convert file, decoding encryption… hoặc các ứng dụngtương tự như vậy thì không nên dùng NodeJS (Lý do: NodeJS được viết bằng C++
& Javascript, nên phải thông qua thêm 1 trình biên dịch của NodeJS sẽ lâu hơn 1chút ) Trường hợp này bạn hãy viết 1 Addon C++ để tích hợp với NodeJS để tănghiệu suất tối đa !
IV MongoDB
MongoDB là một hệ quản trị cơ sở dữ liệu mã nguồn mở, là CSDL thuộc NoSql
và được hàng triệu người sử dụng MongoDB là một database hướng tài liệu (document), các dữ liệu được lưu trữ trong document kiểu JSON thay vì dạng bảng như CSDL quan hệ truy vấn sẽ rất nhanh Với CSDL quan hệ chúng ta có khái niệm bảng, các cơ sở dữ liệu quan hệ (như MySQL hay SQL Server,…) sử
Trang 18dụng các bảng để lưu dữ liệu thì với MôngDB chúng ta sẽ dùng khái niệm là
Trang 19- Github cung cấp các tính năng social networking như feeds, followers, và
network graph để các developer học hỏi kinh nghiệm của nhau thông qua lịch sử commit
- Quản lý source code dễ dàng: Khi bạn tạo một repo, toàn bộ source code của repo đó được lưu trên GitHub Tại đây, bạn có thể coi lại quá trình mình đã làm việc thông qua các comment sau mỗi lần commit Và cái hay ở đây, là nhiều người
có thể cùng làm một repo Lợi ích đầu tiên, chính là bạn biết được ai đã commit vàcommit cái gì Tiếp theo, source của bạn có thể phát triển theo nhiều nhánh
Nguyên tắc làm việc với các nhánh như thế này: Bạn có thể rẽ nhiều nhánh để pháttriển project Nhưng cuối cùng, bạn phải merge lại vào nhánh MASTER để ra được project hoàn chỉnh
VI Postman
Postman là một loại công cụ cho phép người dùng có thể thao tác với API, mà trong đó phổ biến nhất là REST Với thử nghiệm API thì Postman là một trong những công cụ phổ biến vì được thực nghiệm nhiều nhất Nhờ Postman lập trình viên có thể gọi Rest API mà không cần phải viết bất kỳ dòng code nào. Postman
có khả năng hỗ trợ mọi phương thức HTTP bao gồm: POST, PUT, DELETE, PATCH, GET, Ngoài ra, Postman còn cho phép lập trình viên lưu lại lịch sử của các lần request nên vô cùng tiện lợi cho nhu cầu sử dụng lại
Trang 20VII Twilio
Twilio là một dịch vụ điện thoại và tin nhắn SMS cung cấp các giải pháp liên lạc cho các doanh nghiệp thuộc mọi hình dạng và quy mô Nó cho phép các nhà phát triển phần mềm thực hiện và nhận các cuộc gọi điện thoại cũng như gửi và nhận tin nhắn văn bản bằng cách sử dụng các API dịch vụ web theo chương trình
VIII Visual Studio Code
Là một trình biên tập lập trình code miễn phí dành cho Windows, Linux và
macOS, Visual Studio Code được phát triển bởi Microsoft Nó được xem là một
sự kết hợp hoàn hảo giữa IDE và Code Editor
Trang 21Visual Studio Code hỗ trợ chức năng debug, đi kèm với Git, có syntax
highlighting, tự hoàn thành mã thông minh, snippets, và cải tiến mã nguồn Nhờ tính năng tùy chỉnh, Visual Studio Code cũng cho phép người dùng thay đổi theme, phím tắt, và các tùy chọn khác
IX Redux, Redux – Saga
Redux là một vùng chứa trạng thái có thể dự đoán được hay còn biết đến là một thư viện của JavaScript Thư viện này được thiết kế để giúp bạn viết các ứng dụng JavaScript có thể hoạt động nhất quán trong các môi trường máy khách, máy chủ
và môi trường số, đồng thời cho phép dễ dàng kiểm tra
Redux-Saga là một thư viện redux middleware, giúp quản lý những side effect trong ứng dụng redux trở nên đơn giản hơn Bằng việc sử dụng tối đa tính
Trang 22năng Generators (function*) của ES6, nó cho phép ta viết async code nhìn giống như là synchronos.
X Expo
Expo là một bộ công cụ giúp dễ dàng viết các ứng dụng React Native Trong bài này, tôi sẽ hướng dẫn cho bạn cách bạn có thể nhanh chóng tạo ra các ứng dụng React Native bằng Expo
Nó giống như Laravel hay Symphony cho các nhà phát triển PHP, hoặc Ruby on Rails cho các nhà phát triển Ruby Expo cung cấp một lớp nằm trên cùng của React Native API để giúp chúng dễ sử dụng và quản lý Nó còn cung cấp các công
cụ giúp bạn dễ dàng khởi tạo và kiểm thử các ứng dụng React Native Sau cùng,
nó cung cấp các thành phần UI và các dịch vụ thường chỉ có sẵn khi bạn cài đặt một thành phần React Native của bên thứ ba Tất cả đều được cung cấp thông qua Expo SDK
Trang 23CHƯƠNG III: PHÂN TÍCH THIẾT KẾ HỆ THỐNG
I Phân Tích Thiết Kế Hệ Thống: Hệ Thống Bao Gồm Web Và App
1 Sơ đồ thiết kế hệ thống
Biểu đồ 1 Sơ đồ thiết kế hệ thống
2 Biểu đồ phân rã chức năng
Trang 242.1 Phân ra chức năng chính của admin trên web-app
Trang 252.2 Biểu đồ phân rã chức năng người dùng trên web-app
Trang 263 Sơ đồ use case
3.1.UC001: Sơ đồ use case tổng quát trên web
3.2.UC002: Sơ đồ use case đăng nhập, đăng ký trên web và app
Trang 273.3.UC003: Sơ đồ use case quản lý sản phẩm, bài viết admin trên web và app
3.4.UC004: Sơ đồ use case quản lý tình trạng đơn hàng admin trên web và app
Trang 283.5.UC005: Sơ đồ use case quản lý đơn hàng admin trên web và app
3.6.UC006: Sơ đồ use case quản lý quảng cáo admin trên web và app
3.7.UC007: Sơ đồ use case quản lý giỏ hàng, đơn hàng của user
Trang 294 Đặc tả chi tiết use case
4 1 UC002: Chức năng đăng nhập
Cách sử dụng bắt đầu khi admin đăng nhập vào hệ thống
Hệ thống kiểm tra tính hợp lệ của thông tin mà admin nhập vào
Các luồng rẽ nhánh:
Thông tin đưa vào không hợp lệ
Hệ thống thông báo cho admin biết thông tin đó không hợp lệ
Yêu cầu kiểm tra và đăng nhập lại
+ Khách hàng:
Các luồng sự kiện chính:
Cách sử dụng bắt đầu khi khách hàng đăng nhập vào hệ thống
Hệ thống kiểm tra tính hợp lệ của thông tin mà khách hàng đã nhập vào đãđăng kí
Hệ thống ghi lại quá trình đăng nhập
Các luồng rẽ nhánh:
Thông tin đưa vào không hợp lệ
Hệ thống thông báo cho khách hàng biết thông tin đó không hợp lệ
Yêu cầu người dùng nhập lại
Trang 30 Nếu người dùng quên mật khẩu thì lấy mật khẩu bằng số điện thoại thôngqua OTP.
Tiền điều kiện:
Không
Hậu điều kiện:
Với admin nếu đăng nhập thành công sẽ dẫn đến trang quản lý cửa hàng
Với user đăng nhập thành công sẽ dẫn tới trang chủ
4.2 UC003: Chức năng đăng ký
Cách sử dụng bắt đầu khi khách hàng đăng kí vào hệ thống
Hệ thống kiểm tra tính hợp lệ của thông tin mà khách hàng đã nhập vào.Khi đăng ký thành công hệ thống đăng nhập cho khách hàng
Các luồng rẽ nhánh:
Thông tin đưa vào không hợp lệ
Hệ thống thông báo cho khách hàng biết thông tin đó không hợp lệ
Yêu cầu người dùng nhập lại
Tiền điều kiện:
Không
Hậu điều kiện:
Nếu đăng nhập thành công, user có thể thực hiện các thao tác mua đơnhàng, chỉnh sửa thông tin cá nhân
Trang 314.3 Chức năng quản lý sản phẩm của admin
Mô tả tóm tắt:
Tên cách sử dụng: Quản lý sản phẩm trong kho
Mục đích: mô tả cách thêm, xóa, sửa sản phẩm trong kho
Tác nhân: Admin, người dùng
Dòng sự kiện:
Quản lý:
Các luồng sự kiện chính:
Hiển thị các thông tin về sản phẩm
Thay đổi thông tin sản phẩm, thêm xóa hay sửa sản phẩm
Thay đổi số lượng
Các luồng rẽ nhánh:
Chỉ thay đổi khi thay đổi điều kiện hợp lệ
Tiền điều kiện:
Tài khoản phải có quyền quản lý để chỉnh sửa thông tin sản phẩm
Hậu điều kiện:
Đăng nhập thành công tài khoản quyền admin mới có thể thực hiện các thaotác quản lý hệ thống theo những chức năng đã được phân quyền
4.4 Chức năng quản lý đơn hàng của admin
Trang 32 Tài khoản admin sẽ có quyền xử lí các đơn hàng
Danh sách các đơn hàng được hiển thị
Hiển thị trạng thái xác nhận, xử lý đơn hàng, trạng thái chờ xác nhận,đã xácnhận,đang giao,đã giao,hủy đơn hàng
Chỉnh sửa trạng thái đơn hàng
Các luồng rẽ nhánh:
Đơn hàng không đủ điều kiện hoặc sản phẩm trong kho không đủ sẽ thông báo hàng không đủ
Hủy đơn hàng theo yêu cầu khách hàng
Tiền điều kiện:
Tài khoản phải có quyền quản lý sản phẩm
Hậu điều kiện:
Đăng nhập thành công tài khoản quyền admin mới có thể thực hiện các thaotác quản lý hệ thống theo những chức năng đã được phân quyền
4.5 Chức năng quản lý bài viết của admin
Mô tả tóm tắt:
Tên cách sử dụng: Quản lý bài viết
Mục đích: mô tả cách thêm, xóa, sửa bài viết
Tác nhân: Admin, người dùng
Dòng sự kiện:
Quản lý:
Các luồng sự kiện chính:
Hiển thị danh sách bài viết và chi tiết bài viết
Thay đổi thông tin bài viết, thêm xóa hay sửa bài viết
Các luồng rẽ nhánh:
Chỉ thay đổi khi thay đổi điều kiện hợp lệ
Tiền điều kiện:
Tài khoản phải có quyền quản lý để chỉnh sửa thông tin bài viết
Trang 33 Đăng nhập thành công tài khoản quyền admin mới có thể thực hiện các thaotác quản lý hệ thống theo những chức năng đã được phân quyền.
4.6 Chức năng quản lý banner và quảng cáo của admin
Mô tả tóm tắt:
Tên cách sử dụng: Quản lý banner, quảng cáo
Mục đích: mô tả cách thêm, xóa, sửa thông tin banner, quảng cáo
Tác nhân: Admin, người dùng
Dòng sự kiện:
Quản lý:
Các luồng sự kiện chính:
Hiển thị các thông tin về banner, quảng cáo
Hiển thị thông tin banner
Thay đổi thông tin banner, quảng cáo
Các luồng rẽ nhánh:
Chỉ hiển thị với người dùng
Có thể chỉnh sửa khi bạn có quyền admin
Tiền điều kiện:
Tài khoản phải có quyền quản lý để chỉnh sửa thông tin banner, quảng cáo
Hậu điều kiện:
Đăng nhập thành công tài khoản quyền admin mới có thể thực hiện các thaotác quản lý hệ thống theo những chức năng đã được phân quyền
5 Sơ đồ Data-flow diagram (DFD)
5.1 Sơ đồ DFD mức ngữ cảnh
Trang 34
Biểu đồ 21: Sơ đồ DFD mức ngữ cảnh
Mô tả:
- Admin yêu cầu gửi về hệ thống, hệ thống sẽ tiếp nhận yêu cầu và sử lý sau đó
phản hồi thông tin về cho khách hàng
5.2 Sơ đồ DFD phân ra chức năng tìm kiếm
Biểu đồ 22: Sơ đồ DFD tìm kiếm thông tin
Mô tả:
- Khi người dùng nhập thông cần tìm kiếm, hệ thống sẽ kiểm tra và đối chứng với
dữ liệu trong cơ sở dữ liệu rồi hiển thị thông tin tìm kiếm cho người dùng
Trang 355.3 Sơ đồ DFD phân rã chức năng đăng nhập
Biểu đồ 23: Sơ đồ DFD phân rã chức năng đăng nhập
Mô tả:
- Khi người dùng đăng nhập vào hệ thống, hệ thống yêu cầu người dùng nhập thông tin tài khoản của mình vào
- Sau khi người dùng nhập thông tin, hệ thống sẽ kiểm tra thông tin khách hàng
có trên CSDL hay không
o Nếu có, hệ thống sẽ so sánh và đối chiếu mật khẩu của người dùng
Đúng, hệ thống tự động chuyển đến trang chủ
Sai, hệ thống phải hồi lại cho người dùng
o Nếu chưa có, hệ thống phản hồi lại cho người dùng là tài khoản đã được đăng ký và hỏi người dùng muốn đăng ký hay không
5.4 Sơ đồ DFD phân rã chức năng đăng ký
Trang 36Biểu đồ 24: Sơ đồ DFD phân rã chức năng đăng ký
Mô tả:
- Khi người dùng đăng ký để đăng ký tài khoản vào hệ thống, họ sẽ nhập số
- Sau khi người dùng nhập số điện thoại cần đăng ký tài khoản mới
- Hệ thống sẽ kiểm tra
• Nếu số điện thoại mà người dùng nhập vào không đúng định 10, hệ thống
sẽ thông báo với người dùng là nhập sai số điện thoại
• Nếu số điện thoại mà người dùng nhập vào không tồn tại thì hệ thống sẽ thông báo với người dùng là số điện thoại không có
• Nếu số điện thoại mà người dùng nhập vào đã tồn tại thì hệ thống sẽ thông báo với người dùng là số điện thoại đã đăng ký
• Nếu số điện thoại mà người dùng nhập vào hợp lệ thì hệ thống sẽ tự động chuyển sang màn hình nhập mã OTP
Người dùng nhập mã OTP không hợp lệ , hệ thống sẽ phản hồi với người dùng là mã OTP sai
Người dùng nhập mã OTP hợp lệ, hệ thống sẽ tự động chuyển sang màn hình nhập thông tin tài khoản Sau khi người dùng nhập xong thông tin tài khoản thì hệ thống sẽ lưu thông tin tài khoản của người dùng vào dữ liệu tài khoản
Trang 37
5.5 Sơ đồ DFD phân rã chức năng quên mật khẩu
Biểu đồ 25: Sơ đồ DFD phân rã chức năng quên mật khẩu
- Nếu có, hệ thống sẽ gửi OTP cho người dùng
o Người dùng nhập mã OTP đúng, hệ thống sẽ yêu cầu người dùng nhậpmật khẩu mới
o Người dùng nhập mã OTP sai, hệ thống sẽ yêu cầu người dùng kiểm tra lại
- Nếu không, hệ thống sẽ thông báo tới người dùng
Trang 38II Thiết kế cơ sở dữ liệu
1 Mô tả bài toán
Doanh nghiệp cửa hàng cà phê Thành Đạt chưa có hệ thống website để bán hàngcũng như quản lý sản phẩm để tiện lợi hóa việc mua bán cũng như quản lý nhữngmặt hàng trong kho, thông tin bài viết, thông tin khách hàng Đồng thời nhómcũng xây dựng app mobile đa nền tảng giúp khách hàng tiện hơn khi không sửdụng website
2 Xác định thực thể
Tài khoản người dùng: (mã tài khoản, tên tài khoản, ngày sinh, số điện thoại,
mật khẩu, mã OTP, avatar, địa chỉ, tỉnh – thành phố, quận – huyện, xã phường)
Admin: (mã tài khoản, tên tài khoản, mật khẩu)
Thông báo(mã thông báo, tiêu đề, nội dung, mã khách hàng)
Đơn hàng(mã đơn hàng, mã khách hàng, tên khách hàng, tên sản phẩm, địa
chỉ, giá sản phẩm, giá ship, tổng sản phẩm, trạng thái đơn hàng)
Bài viết(mã bài viết, tiêu đề, nội dung, hình ảnh)
Sản phẩm(mã sản phẩm, đã bán, hình ảnh, giá, tên sản phẩm, giảm giá, loại
sản phẩm, số lượng )
3 Mối quan hệ giữa các thực thể
- Thống kê được nhiều sản phẩm
- Mỗi admin có thể tạo nhiều bài viết
Admin (1) -(N) Bài viết
Trang 394 Bảng cơ sở dữ liệu
❖ accounts
STT Tên thuộc tính Null/ notnull định Mặc Ràng buộc Khóa Ghi chú
2 nameUser NOT NULL
3 birthDay NOT NULL
4 phoneNumber NOT NULL
5 passWord NOT NULL
6 codeOTP NOT NULL
7 avatar NOT NULL
8 address NOT NULL
9 specificaddress NOT NULL
10 tinh_tp NOT NULL
11 quan_huyen NOT NULL
12 xa_phuong NOT NULL
❖ admins
STT Tên thuộc tính Null/ notnull định Mặc Ràng buộc Khóa Ghi chú
2 userName
4 createAt NOT NULL
5 updateAt NOT NULL
❖ carts
STT Tên thuộc tính Null/ notnull định Mặc Ràng buộc Khóa Ghi chú
2 id_Account NOT NULL
Trang 403 id_SanPham NOT NULL
4 tenSanPham NOT NULL
5 giaSanPham NOT NULL
6 soLuong NOT NULL
7 tongGiaBan NOT NULL
9 typeProduct NOT NULL
10 flashSale NOT NULL
11 Price NOT NULL
12 priceSale NOT NULL
13 createAt NOT NULL
14 updateAt NOT NULL
❖ dataCity
STT Tên thuộc tính Null/ notnull định Mặc Ràng buộc Khóa Ghi chú
❖ notifis
STT Tên thuộc tính Null/ notnull định Mặc Ràng buộc Khóa Ghi chú
2 title NOT NULL
3 content NOT NULL
4 id_Account NOT NULL
5 createAt NOT NULL
6 updateAt NOT NULL