1. Trang chủ
  2. » Cao đẳng - Đại học

Phát triển hệ thống quản lý đặt quà tặng tại các khu du lịch, triển khai trên môi trường di động và web

76 23 0

Đ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 đề Phát triển hệ thống quản lý đặt quà tặng tại các khu du lịch, triển khai trên môi trường web và di động
Tác giả Nguyễn Quốc Trung, Lê Thanh Quang
Người hướng dẫn TS. Nguyễn Trịnh Đông
Trường học Đại học Quốc gia Thành phố Hồ Chí Minh
Chuyên ngành Kỹ sư ngành Kỹ thuật phần mềm
Thể loại Khóa luận tốt nghiệp
Năm xuất bản 2021
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 76
Dung lượng 3,37 MB

Cấu trúc

  • CHƯƠNG 1. TỔNG QUAN ĐỀ TÀI (20)
    • 1.1. Dẫn nhập (20)
    • 1.2. Mục tiêu đề tài (0)
    • 1.3. Phạm vi, đối tượng thực hiện (21)
    • 1.4. Kết quả mong đợi (22)
    • 1.5. Bố cục khoá luận (0)
  • Chương 2. XÁC ĐỊNH VÀ PHÂN TÍCH YÊU CẦU (23)
    • 2.1. Phát biểu bài toán (23)
    • 2.2. Phân tích yêu cầu (25)
      • 2.2.1. Yêu cầu chức năng (25)
      • 2.2.2. Yêu cầu phi chức năng (26)
    • 2.3. Phương án thiết kế (26)
      • 2.3.1. Các yêu cầu của hệ thống (26)
      • 2.3.2. Các ràng buộc của hệ thống (26)
    • 3.1. ReactJS (27)
      • 3.1.1 ReactJS là gì ? (27)
      • 3.1.2 Các đặc trưng của ReactJS (27)
      • 3.1.3 Lợi ích khi sử dụng ReactJS (28)
      • 3.1.4 Những lưu ý khi sử dụng ReactJS (29)
      • 3.1.5 Tương lai của ReactJS (29)
    • 3.2. Java Spring 1. Spring là gì? (30)
      • 3.2.2. Các module và kiến trúc của Spring Framework.16 3.2.3. Các lợi ích của Spring Framework (30)
      • 3.2.4. Ưu và nhược điểm của Spring Framework (31)
    • 3.3. Flutter (32)
      • 3.3.1 Flutter là gì ? (32)
      • 3.3.2. Tại sao nên sử dụng Flutter ? (0)
      • 3.3.3. Ưu điểm của Flutter (33)
      • 3.3.4. Nhược điểm của Flutter (33)
    • 3.4. MySQL 1. MySQL là gì? (34)
      • 3.4.2. Cách thức hoạt động của MySQL (35)
      • 3.4.3. Các tính năng cốt lõi của MySQL (35)
      • 3.4.4. Các nhánh của MySQL (36)
      • 3.4.5. Sự khác biệt giữa SQL và MySQL (36)
  • Chương 4. PHÂN TÍCH THIẾT KẾ HỆ THỐNG 4.1. Thiết kế ứng dụng (37)
    • 4.1.1. Kiến trúc chương trình (37)
    • 4.1.2. Sơ đồ Usecase (38)
    • 4.1.3. Sơ đồ tuần tự ( Sequence Diagram ) (57)
    • 4.1.4. Sơ đồ lớp (65)
    • 4.1.5. Cơ sở dữ liệu (67)
      • 4.5.1.1 Danh sách các bảng (67)
      • 4.5.1.2 Mô hình thực thể liên kết dữ liệu (ERD)…52 4.1.6. Giao diện 4.1.6a. Giao diện web cho người mua (69)
    • 4.1.6 b. Giao diện web cho người bán (72)
    • 4.1.6 c. Giao diện web admin (73)
    • 4.1.6 d. Giao diện ứng dụng di động (73)
  • Chương 5. KẾT LUẬN 5.1.Kết quả đạt được (75)
    • 5.2. Hướng phát triển (75)
  • TÀI LIỆU THAM KHẢO (22)

Nội dung

XÁC ĐỊNH VÀ PHÂN TÍCH YÊU CẦU

Phát biểu bài toán

Trong những năm gần đây, thị trường thương mại điện tử (TMĐT) tại Việt Nam đã mở rộng đáng kể, trở thành phương thức kinh doanh phổ biến cho doanh nghiệp và người dân Sự đa dạng về mô hình hoạt động, đối tượng tham gia, quy trình và chuỗi cung ứng hàng hóa, dịch vụ, cùng với sự hỗ trợ từ hạ tầng Internet và công nghệ hiện đại, đã giúp TMĐT trở thành trụ cột quan trọng trong phát triển kinh tế số của quốc gia.

Mặc dù gặp những ảnh hưởng tiêu cực trong năm 2020 do đại dịch

COVID-19 đã thúc đẩy thương mại điện tử (TMĐT) tại Việt Nam tăng trưởng mạnh mẽ, đưa quốc gia này trở thành một trong những thị trường TMĐT phát triển nhanh nhất ở Đông Nam Á Theo Sách trắng Thương mại điện tử Việt Nam, năm 2020, TMĐT đạt tốc độ tăng trưởng 18%, với quy mô lên tới 11,8 tỷ USD, và là quốc gia duy nhất trong khu vực có mức tăng trưởng TMĐT hai con số Dự báo từ các tập đoàn lớn như Google, Temasek và Bain&Company cho thấy quy mô nền kinh tế số Việt Nam có thể vượt 52 tỷ USD, giữ vị trí thứ 3 trong ASEAN vào năm 2025.

Trong những năm gần đây, sự phát triển kinh tế toàn cầu đã nâng cao mức sống của con người, dẫn đến nhu cầu du lịch ngày càng tăng Khi đi du lịch, du khách thường mua sắm đặc sản và đồ lưu niệm để làm quà tặng hoặc lưu giữ kỷ niệm Điều này đã tạo ra một ngành kinh doanh đặc sản và đồ lưu niệm đầy tiềm năng và lợi nhuận Tuy nhiên, hiện tại, các cửa hàng đặc sản chủ yếu phục vụ khách du lịch tại chỗ, bỏ qua một lượng lớn khách hàng liên quan đến họ như bạn bè và người thân Chúng ta sẽ cùng khám phá một số tình huống để làm rõ vấn đề này.

Khi du lịch đến một địa điểm mới, mình thường thấy nhiều sản phẩm địa phương hấp dẫn và muốn mua làm quà cho người thân Tuy nhiên, do hạn chế trong việc mang theo hành lý, mình không thể mua tất cả các loại thực phẩm như mực, tôm, cua Nếu có một ứng dụng cho phép đặt hàng và theo dõi đơn hàng, đồng thời kiểm định uy tín và chất lượng sản phẩm, mình có thể dễ dàng đặt hàng các món quà đặc sản về cho người thân ở nhà.

Trước khi đi du lịch, việc tìm hiểu về các đặc sản của địa danh mình đến là rất quan trọng Bạn cần biết ai là người bán, độ uy tín của họ và cách xác thực thông tin Điều này giúp bạn có thể kiểm chứng thực tế khi đến nơi, đảm bảo rằng sản phẩm không chỉ ngon mà còn đẹp Ngoài ra, bạn cũng có thể mua hoặc đặt hàng làm quà tặng và yêu cầu giao hàng cho bạn bè ở xa Hãy cùng so sánh một số trang web có tính năng tương tự để hiểu rõ hơn về ưu và nhược điểm của từng trang.

Bảng 2.1 Ưu, nhược điểm của các sản phẩm trên thị trường

Shopee, Tiki, và Lazada là những trang thương mại điện tử nổi bật, bên cạnh các trang bán đặc sản như dacsanmientay.vn, muabandacsan.net, dacsanlamqua.com và dacsannhanh.com Những nền tảng này có ưu điểm là cung cấp mặt hàng phong phú và thu hút một lượng người dùng rất lớn.

Là các chuyên trang bán đặc sản vùng miền

Nhược điểm Các sản phẩm kém chất lượng khá nhiều

Trang thương mại điện tử này phục vụ cho nhiều ngành nghề khác nhau, nhưng lại không có chuyên mục riêng cho các mặt hàng đặc sản và đồ lưu niệm, điều này khiến khách hàng gặp khó khăn trong việc tìm kiếm sản phẩm mà họ cần.

Nhiều trang web hiện nay cung cấp hàng hóa chủ yếu từ một số doanh nghiệp, dẫn đến sự hạn chế về sự đa dạng sản phẩm Điều này khiến khách hàng gặp khó khăn trong việc tìm kiếm sản phẩm ưng ý với mức giá hợp lý.

Việc phát triển một ứng dụng hỗ trợ tra cứu thông tin và mua bán đặc sản, quà tặng địa phương là rất cần thiết Ứng dụng này sẽ đóng vai trò trung gian kết nối giữa du khách, người mua, người bán và các dịch vụ giao nhận, giúp thúc đẩy giao thương và quảng bá văn hóa địa phương.

Phân tích yêu cầu

Bảng 2.2.1 Bảng yêu cầu chức năng

STT Chức năng Yêu cầu

1 Xem danh sách sản phẩm theo địa danh.

Khách hàng có thể dễ dàng xem danh sách sản phẩm được phân loại theo từng địa danh du lịch, đồng thời có khả năng chọn một sản phẩm cụ thể để tìm hiểu thông tin chi tiết về sản phẩm đó.

2 Đặt hàng Khách hàng có thể đặt hàng mua sản phẩm qua hệ thống.

3 Giao hàng Cửa hàng có thể xác nhận đơn hàng nhận được và tiến hành chuẩn bị đơn hàng.

4 Theo dõi đơn hàng Khách hàng và cửa hàng theo dõi tình trạng vận chuyển của đơn hàng.

5 Đổi trả hàng Khách hàng có thể yêu cầu đổi trả hàng.

6 Khiếu nại Khách hàng hoặc cửa hàng có thể khiếu nại về vửa hàng / khách hàng.

Khách hàng có thể yêu cầu hỗ trợ về sản phẩm. Cửa hàng trả lời các thắc mắc, yêu cầu của khách hàng.

8 Tra cứu thông tin du lịch Khách hàng được tra cứu và đọc các bài viết về du lịch trên hệ thống.

Cửa hàng được đăng ký bán hàng trên hệ thống bằng việc cung cấp các thông tin cần thiết để người quản trị xét duyệt mở gian hàng.

Cửa hàng có thể quản lý các sản phẩm được bán trên gian hàng của mình, thêm, cập nhật sản phẩm vào danh mục sản phẩm.

11 Quản lý quy cách đóng gói

Cửa hàng có khả năng quản lý các quy cách đóng gói sản phẩm, mang đến cho khách hàng nhiều tùy chọn hấp dẫn như gói quà tặng.

12 Xem dữ liệu kinh doanh Cửa hàng được xem các dữ liệu về kinh doanh.

13 Cập nhật bài viết du lịch Người quản trị có thể cập nhật các bài viết về du lịch lên mục khám phá của hệ thống.

14 Cập nhật banner, quảng cáo

Người quản trị có thể cập nhật các thông tin về quảng cáo trên hệ thống.

Người quản trị có thể xử lý các vi phạm của khách hàng hoặc cửa hàng, chẳng hạn như hủy đơn hàng nhiều lần trong thời gian ngắn hoặc sử dụng ngôn ngữ không phù hợp khi đánh giá và phản hồi về sản phẩm.

2.2.2 Yêu cầu phi chức năng

Ứng dụng này mang lại tính tiện dụng cao khi có thể hoạt động trên cả hai nền tảng web và di động, bao gồm iOS và Android Giao diện của ứng dụng được thiết kế trực quan và dễ sử dụng, giúp người dùng dễ dàng tiếp cận và thao tác.

Tính linh động của hệ thống cho phép toàn bộ cơ sở dữ liệu được sao lưu trên máy chủ, sử dụng lưu trữ đám mây cho hình ảnh, đảm bảo khả năng truy xuất cao và dễ dàng trong việc sao lưu cũng như phục hồi dữ liệu.

• Tính bảo mật:Việc sử dụng các chức năng yêu cầu người dùng cần đăng nhập vào ứng dụng.

Phương án thiết kế

2.3.1 Các yêu cầu của hệ thống

• Các yêu cầu căn bản, bắt buộc

- Ứng dụng chạy được trên 2 nền tảng web và di động.

- Lưu trữ và quản lý tất cả các dữ liệu của ứng dụng.

- Có cơ chế bảo mật tài khoản người dùng.

- Thông báo trạng thái (thành công, lỗi) của tiến trình xử lí yêu cầu người dùng.

• Các yêu cầu cần thiết

- Tự động đăng nhập khi người dùng chưa kết thúc phiên đăng nhập hoặc chưa đăng xuất khỏi ứng dụng.

• Các yêu cầu mong muốn

- Ứng dụng tương thích và hoạt động ổn định trên thiết bị người dùng.

- Dễ dàng nâng cấp, bổ sung tính năng.

2.3.2 Các ràng buộc của hệ thống

• Tổng chi phí deploy ứng dụng phù hợp.

• Thời gian hiện thực ứng dụng trong khoảng đã đề ra.

Chương 3 CÔNG NGHỆ THỰC HIỆN ĐỀ TÀI

ReactJS

 React.JS là một thư viện Javascript dùng để xây dựng giao diện người dùng, nó không phải là 1 framework js nào hết.

 React hỗ trợ việc xây dựng những thành phần (components) UI có tính tương tác cao, có trạng thái và có thể sử dụng lại được.

 React được xây dựng xung quanh các component.

 React không chỉ hoạt động trên phía client, mà còn được render trên server và có thể kết nối với nhau…

React được phát triển nhằm tạo ra các ứng dụng web hấp dẫn, nhanh chóng và hiệu quả với mã hóa tối thiểu Mục tiêu chính của ReactJS là đảm bảo rằng các website sử dụng nó hoạt động mượt mà, nhanh chóng, có khả năng mở rộng cao và dễ dàng triển khai.

3.1.2 Các đặc trưng của ReactJS

 Redux: Đây có thể gọi là một phần cực kỳ quan trọng đối với

ReactJS là một thư viện phổ biến trong phát triển giao diện người dùng, và Redux là một công cụ không thể thiếu để quản lý trạng thái Do ReactJS không tích hợp sẵn các module xử lý dữ liệu, nó cho phép lập trình viên xây dựng ứng dụng một cách độc lập bằng cách chia nhỏ giao diện thành các component, giúp chúng liên kết chặt chẽ và hiệu quả hơn.

Trong ReactJS, luồng dữ liệu một chiều từ cha xuống con là yếu tố quan trọng, tạo nên sự liên kết và mối quan hệ giữa các component Mặc dù điều này có thể gây khó khăn cho những người mới bắt đầu, nhưng nó cũng giúp ReactJS phát huy tối đa chức năng của mình Cơ chế một chiều này làm cho các chức năng của view trở nên phức tạp hơn, đồng thời mang lại những lợi ích nổi bật trong việc quản lý trạng thái và dữ liệu.

Virtual DOM là một phần quan trọng mà hầu hết các Framework hiện đại đều áp dụng, tương tự như ReactJS Khi Virtual DOM thay đổi, người dùng không cần thao tác trực tiếp trên DOM mà vẫn có thể quan sát được giao diện và những thay đổi một cách dễ dàng.

Virtual Dom hoạt động như một mô hình và một giao diện, do đó, khi có sự thay đổi ở một trong hai yếu tố này, yếu tố còn lại cũng sẽ tự động điều chỉnh theo Điều này cho phép bạn thực hiện các cơ chế của Data Binding mà không cần thao tác trực tiếp trên các phần tử DOM Mục tiêu chính của Virtual Dom là tăng tốc độ ứng dụng một cách đáng kể, mang lại lợi thế vượt trội cho người dùng.

3.1.3 Lợi ích khi sử dụng ReactJS

ReactJS mang lại lợi ích lớn với việc tạo ra một DOM ảo, nơi các component tồn tại Điều này giúp cải thiện hiệu suất làm việc đáng kể, vì ReactJS sẽ tính toán trước các thay đổi cần thiết trước khi thực hiện chúng trên DOM thực Nhờ vậy, ReactJS giảm thiểu các thao tác tốn kém trên DOM, tiết kiệm chi phí và thời gian cho quá trình cập nhật.

– Lợi ích thứ hai mà ReactJS đem lại đó chính là việc viết các đoạn code

JS trở nên dễ dàng hơn nhờ cú pháp JSX, cho phép kết hợp mã HTML và JavaScript Điều này giúp chúng ta có thể thêm đoạn mã trực tiếp vào hàm render mà không cần nối chuỗi, một đặc điểm thú vị của ReactJS Việc chuyển đổi các đoạn HTML thành các hàm khởi động được thực hiện thông qua bộ biến đổi JSX.

ReactJS mang lại nhiều công cụ phát triển hữu ích Khi bắt đầu với ReactJS, bạn nên cài đặt ứng dụng mở rộng Chrome chuyên dụng, giúp dễ dàng debug code Sau khi cài đặt, bạn sẽ có cái nhìn trực tiếp vào Virtual DOM, tương tự như khi bạn xem một cây DOM thông thường.

ReactJS nổi bật với tính thân thiện với SEO, điều mà nhiều framework JavaScript khác gặp khó khăn Mặc dù các framework này đã có những cải tiến, nhưng vẫn không thể so sánh với ReactJS, nhờ vào khả năng render và trả về nội dung dưới dạng webpage khi chạy trên server cùng với Virtual Dom Chính những yếu tố này giúp ReactJS đáp ứng tốt yêu cầu về SEO, tạo điều kiện thuận lợi cho việc tối ưu hóa công cụ tìm kiếm.

3.1.4 Những lưu ý khi sử dụng ReactJS

–ReactJs chỉ là view Library

–Sử dụng ít State components

– Hãy giữ Components luôn nhỏ gọn

– Kết hợp với Redux.js

Bạn có thể sử dụng JSX, ES6, Babel, Webpack và NPM trong phát triển React JSX là một trong những tính năng nổi bật, cho phép bạn viết mã dễ dàng hiển thị Kết hợp với Babel, bạn có thể biên dịch và tận dụng các tính năng mới của ES6 NPM và Webpack sẽ hỗ trợ quá trình đóng gói và tối ưu hóa việc sử dụng thư viện.

Dev Tools của Redux và React hỗ trợ các lập trình viên trong việc nhanh chóng gỡ lỗi và phát hiện lỗi trong ứng dụng Công cụ này cho phép người dùng theo dõi trạng thái action, hiểu rõ nguyên nhân thay đổi State và có khả năng quay lại trạng thái trước đó một cách dễ dàng.

Facebook và đội ngũ phát triển ReactJS luôn nỗ lực nâng cao hiệu quả của ReactJS để cạnh tranh với sự phát triển nhanh chóng của các framework khác như Vue.js Một số cập nhật đáng mong đợi cho React trong tương lai bao gồm những cải tiến về hiệu suất và tính năng mới.

 Sẽ có những loại render mới như việc add thêm những đoạn cú pháp độc đáo vào JSX mà không cần đến keys.

React đã cải thiện khả năng xử lý lỗi, giúp giảm thiểu sự cố do lỗi Javascript trong các Components Trước đây, lỗi này không chỉ làm hỏng trạng thái của component mà còn ảnh hưởng đến quá trình render của các component cha, với thông báo lỗi khó hiểu gây khó khăn cho việc khắc phục Hiện tại, React cung cấp cách thức rõ ràng để bắt và xử lý lỗi, cho phép phục hồi hiệu quả khi xảy ra sự cố trong Components.

Java Spring 1 Spring là gì?

Spring là một framework phát triển ứng dụng Java phổ biến, được hàng triệu lập trình viên tin dùng Nó hỗ trợ xây dựng các ứng dụng hiệu năng cao, dễ dàng kiểm thử và tái sử dụng mã nguồn.

Spring là một mã nguồn mở nhẹ và trong suốt, với kích thước chỉ khoảng 2MB, cho phép hoạt động mượt mà với lập trình viên Được phát triển và chia sẻ bởi một cộng đồng người dùng rộng lớn, Spring mang đến nhiều lợi ích cho các dự án phát triển phần mềm.

- Spring Framework được xây dựng dựa trên 2 nguyên tắc design chính là: Dependency Injection và Aspect Oriented Programming.

- Những tính năng core (cốt lõi) của Spring có thể được sử dụng để phát triển Java.

Mục tiêu chính của Spring là đơn giản hóa việc phát triển các ứng dụng J2EE thông qua việc sử dụng mô hình POJO (Plain Old Java Object), hỗ trợ cho các nền tảng như desktop, ứng dụng di động và Java Web.

3.2.2 Các module và kiến trúc của Spring Framework

Spring Framework được phân chia thành nhiều module khác nhau, mỗi module phục vụ cho các mục đích phát triển ứng dụng cụ thể Dưới đây là tổng quan về kiến trúc của Spring Framework.

• Test: Tầng này cung cấp khả năng hỗ trợ kiểm thử với JUnit và TestNG.

• Spring Core Container: Bao gồm các module spring core, beans, context và expression languate (EL)

- Spring core, bean cung cấp tính năng IOC và Dependency Injection.

- Spring Context hỗ trợ đa ngôn ngữ (internationalization), các tính năng Java EE như EJB, JMX.

- Expression Language được mở rộng từ Expresion Language trong

JSP Nó cung cấp hỗ trợ việc setting/getting giá trị, các method cải tiến cho phép truy cập collections, index, các toán tử logic…23

• AOP, Aspects and Instrumentation: Những module này hỗ trợ cài đặt lập trình hướng khía cạnh (Aspect Oriented Programming), hỗ trợ tích hợp với AspectJ.

• Data Access / Integration: Nhóm này bao gồm JDBC, ORM, OXM, JMS và module Transaction Những module này cung cấp khả năng giao tiếp với database

• Web: Hay còn gọi là Spring MVC Nhóm này gồm Web, Web-

Servlet… hỗ trợ việc tạo ứng dụng web.

3.2.3 Các lợi ích của Spring Framework

Spring cho phép lập trình viên sử dụng POJOs, giúp đơn giản hóa quy trình phát triển ứng dụng Việc này loại bỏ sự cần thiết phải làm việc với EJB, các luồng chạy và cấu hình phức tạp, từ đó tăng cường hiệu suất và tính dễ dàng trong lập trình.

Spring được tổ chức theo hình thức mô đun với nhiều gói và lớp học đa dạng Bạn chỉ cần tập trung vào những gì phù hợp với nhu cầu của mình mà không cần bận tâm đến các phần khác.

Spring hỗ trợ sử dụng khá nhiều công nghệ như ORM Framework, các logging framework, JEE, các thư viện tạo lịch trình (Quartz và JDK timer)…

Module Web của Spring được thiết kế theo mô hình MVC nên nó cung cấp đầy đủ các tính năng giúp thay thế các web framework khác như Struts

3.2.4 Ưu và nhược điểm của Spring Framework

- Lập trình toàn diện và cấu hình tiêu chuẩn.

- Hỗ trợ cơ sở dữ liệu truyền thống RDBMS cũng như là NoSQL mới.

- Cung cấp sự tương thích lùi và khả năng thử nghiệm của code.

- Sự kết nối lỏng lẻo có thể khắc phục bằng cách sử dụng IoC.

- Hỗ trợ lập trình theo định hướng phương diện cũng như là cho phép sự phát triển gắn kết.

- JBDC các lớp trừ tượng và hệ thống nối bật.

- Khó để thuần thục, hầu hết các lập trình viên đều gặp khó khăn với IoC và DI.

- Các cấu hình thay đổi liên tục khiến cho các lập trình viên phải cập nhật liên tục để bắt kịp với sự thay đổi mới.

- Mặc dù DI là một ưu điểm của nó, nhưng nó cũng sẽ khiến dự án phải phụ thuộc vào Spring framework.

Flutter

- Trang chủ: https://flutter.dev/

Flutter bắt đầu như một công cụ phát triển ứng dụng Android, nhưng đã nhanh chóng trở thành một trong những framework hàng đầu cho việc phát triển ứng dụng di động trên cả hai nền tảng Android và iOS Hơn nữa, Flutter còn mở rộng khả năng phát triển sang web và ứng dụng desktop, mang đến nhiều cơ hội cho lập trình viên.

Flutter is designed to address common challenges in mobile development by offering both fast development and native performance Unlike React Native, which focuses solely on fast development, or pure native code that guarantees only native performance, Flutter successfully combines both aspects, making it a versatile choice for developers.

Flutter là một bộ SDK đa nền tảng cho phép phát triển ứng dụng trên cả iOS và Android, giúp tối ưu hóa khả năng tương thích với framework UI của hai hệ điều hành này Tuy nhiên, các ứng dụng Flutter không biên dịch trực tiếp với ứng dụng native của Android và iOS.

Thay vì sử dụng các công nghệ truyền thống, Flutter chạy trên engine render được viết bằng C++ và Flutter Framework viết bằng Dart, cùng với các ứng dụng Flutter Cả hai bộ này được đóng gói trong mỗi ứng dụng, và bộ SDK sẽ được tích hợp vào ứng dụng để sẵn sàng hoạt động trên mọi nền tảng Khi bạn phát triển ứng dụng, một engine mới sẽ xử lý các đoạn code, bao gồm cả code native cần thiết để Flutter hoạt động trên cả Android và iOS.

Tính năng hot reload trong phát triển ứng dụng cho phép bạn nhanh chóng thử nghiệm và xây dựng giao diện người dùng, đồng thời thêm tính năng và sửa lỗi một cách hiệu quả Trải nghiệm tải lại mà không mất trạng thái trên emulator, simulator và thiết bị cho cả iOS và Android giúp tăng tốc quá trình phát triển.

Giao diện người dùng đẹp và biểu cảm là yếu tố quan trọng để làm hài lòng người dùng, với các widget tích hợp theo thiết kế Material và Cupertino (phiên bản iOS) Các API chuyển động phong phú cùng với khả năng cuộn tự nhiên và mượt mà giúp nâng cao trải nghiệm người dùng, đồng thời tự nhận thức được nền tảng sử dụng.

Create user interfaces effortlessly with Flutter's modern, reactive framework, which offers a rich collection of platforms, layouts, and widgets Tackle challenging UI issues using powerful and flexible APIs for 2D graphics, animations, gestures, effects, and more.

- Mạnh về hiệu ứng, hiệu suất ứng dụng rất cao.

- Giao tiếp gần như trực tiếp với hệ thống.

Ngôn ngữ lập trình này mang đặc điểm tĩnh nhưng áp dụng cú pháp hiện đại giống như JavaScript, Python và Java Compiler của nó linh hoạt, hỗ trợ cả AOT cho sản phẩm cuối và JIT cho quá trình phát triển, cho phép sử dụng tính năng hot reload.

Bạn có thể chạy giả lập mobile trực tiếp trên web, điều này rất thuận tiện cho quá trình phát triển Các công cụ đo lường hiệu suất được tích hợp sẵn giúp lập trình viên theo dõi và kiểm soát hiệu suất ứng dụng một cách hiệu quả.

- Có thể dùng để xây dựng các nền tảng gắn vào ứng dụng native để tăng hiệu suất.

Nhóm phát triển đã viết lại bộ render UI, không dựa vào UI có sẵn của Framework native, dẫn đến việc sử dụng bộ nhớ tăng cao Các UI được phát triển độc lập và không liên kết với hệ điều hành, khiến cho ứng dụng Flutter trên iOS từ phiên bản 8.x đến 12.x đều giống nhau, tương tự như trên Android Tuy nhiên, UI của Android vẫn khác biệt so với iOS.

Học ngôn ngữ DART là cần thiết cho lập trình viên, nhưng việc chuyên sâu vào DART có thể khiến họ bị giới hạn trong lĩnh vực phát triển ứng dụng di động Điều này khác với JavaScript hay Python, cho phép lập trình viên linh hoạt chuyển đổi giữa các lĩnh vực như front-end, back-end và trí tuệ nhân tạo.

Mô hình dữ liệu mới trong Flutter bao gồm bloc pattern và DART Streaming Nếu bạn đã quen với Redux khi phát triển ứng dụng React Native, việc làm quen với mô hình dữ liệu trong Flutter sẽ mất một chút thời gian, nhưng thực tế không quá khó khăn.

- Là con cưng của Google, tuy nhiên hãng dính nhìu phốt với thói quen

“quăng con giữa chợ” nên cũng cần cân nhắc Tuy nhiên, mình nhận thấy

Flutter rất tốt, tốt hơn nhiều so với những cái mà Google từng làm ra nhưAngular.

MySQL 1 MySQL là gì?

MySQL là hệ thống quản lý cơ sở dữ liệu quan hệ mã nguồn mở (RDBMS) dựa trên ngôn ngữ SQL, được phát triển và hỗ trợ bởi Oracle Hệ thống này tương thích với nhiều nền tảng, bao gồm Linux, UNIX và Windows, và thường được sử dụng kết hợp với các ứng dụng web.

Trang web MySQL http://www.mysql.com cung cấp thông tin mới nhất về hệ quản lý cơ sở dữ liệu MySQL.

SQL là ngôn ngữ phổ biến nhất để quản lý nội dung trong cơ sở dữ liệu nhờ vào khả năng xử lý nhanh, độ tin cậy cao, dễ sử dụng và linh hoạt MySQL đóng vai trò quan trọng trong hầu hết các ứng dụng PHP mã nguồn mở như WordPress, Joomla, Magento và Drupal Sự phổ biến của MySQL ngày càng tăng nhờ vào những ưu điểm vượt trội của nó.

 MySQL được phát hành theo giấy phép nguồn mở Vì vậy, bạn không phải trả tiền để sử dụng nó.

MySQL là một hệ quản trị cơ sở dữ liệu mạnh mẽ, cung cấp nhiều chức năng tương tự như các gói cơ sở dữ liệu đắt tiền và phức tạp.

 MySQL sử dụng một dạng chuẩn của ngôn ngữ dữ liệu SQL nổi tiếng.

 MySQL hoạt động trên nhiều hệ điều hành và với nhiều ngôn ngữ bao gồm PHP, PERL, C, C ++, JAVA, v.v.

 MySQL hoạt động rất nhanh và hoạt động tốt ngay cả với các tập dữ liệu lớn.

 MySQL rất thân thiện với PHP, ngôn ngữ được đánh giá cao nhất để phát triển web.

MySQL có khả năng quản lý cơ sở dữ liệu lớn với số lượng hàng lên tới 50 triệu hoặc hơn trong một bảng Mặc dù kích thước tệp mặc định cho một bảng là 4GB, người dùng có thể nâng cấp giới hạn này, miễn là hệ điều hành hỗ trợ, với mức tối đa lý thuyết lên đến 8 triệu terabyte (TB).

MySQL là một hệ quản trị cơ sở dữ liệu mã nguồn mở được cấp phép theo GPL, cho phép các lập trình viên tùy chỉnh và sửa đổi phần mềm này để phù hợp với nhu cầu và môi trường cụ thể của họ.

3.4.2 Cách thức hoạt động của MySQL

MySQL hoạt động dựa trên mô hình client-server, với máy chủ MySQL là phần cốt lõi, chịu trách nhiệm xử lý tất cả các lệnh và hướng dẫn liên quan đến cơ sở dữ liệu Máy chủ MySQL có thể được sử dụng như một chương trình độc lập trong môi trường mạng client-server hoặc được nhúng vào các ứng dụng khác dưới dạng thư viện.

MySQL hoạt động kết hợp với nhiều tiện ích hỗ trợ quản trị cơ sở dữ liệu Các lệnh được gửi đến MySQL Server thông qua máy khách MySQL được cài đặt trên máy tính.

MySQL được phát triển để xử lý cơ sở dữ liệu lớn một cách nhanh chóng Mặc dù thường được cài đặt trên một máy, MySQL cho phép gửi cơ sở dữ liệu đến nhiều vị trí, với người dùng có thể truy cập thông qua các giao diện máy khách khác nhau Các giao diện này thực hiện việc gửi câu lệnh SQL đến máy chủ và hiển thị kết quả.

3.4.3 Các tính năng cốt lõi của MySQL

MySQL hỗ trợ lưu trữ và truy cập dữ liệu qua nhiều công cụ như InnoDB, CSV và NDB, đồng thời cung cấp khả năng sao chép dữ liệu và phân vùng bảng để nâng cao hiệu suất và độ bền Người dùng có thể dễ dàng truy cập dữ liệu bằng các lệnh SQL tiêu chuẩn mà không cần phải học các lệnh mới.

MySQL được viết bằng C và C++ và có thể truy cập và có sẵn trên hơn

MySQL hỗ trợ 20 nền tảng khác nhau, bao gồm Mac, Windows, Linux và Unix, cho phép quản lý cơ sở dữ liệu lớn với hàng triệu bản ghi Hệ quản trị cơ sở dữ liệu quan hệ (RDBMS) này hỗ trợ nhiều loại dữ liệu như số nguyên, FLOAT, DOUBLE, CHAR, VARCHAR, BINARY, VARBINARY, TEXT, BLOB, DATE, TIME, DATETIME, TIMESTAMP, YEAR, SET, ENUM và các kiểu OpenGIS MySQL cũng cho phép sử dụng các loại chuỗi có độ dài cố định và biến đổi Để đảm bảo an toàn, MySQL áp dụng hệ thống quyền truy cập và mật khẩu được mã hóa, cho phép xác minh dựa trên máy chủ Các máy khách MySQL có thể kết nối với máy chủ thông qua nhiều giao thức, bao gồm TCP/IP, trên bất kỳ nền tảng nào Ngoài ra, MySQL hỗ trợ nhiều chương trình máy khách, tiện ích, chương trình dòng lệnh và công cụ quản trị như MySQL Workbench.

Các nhánh của MySQL bao gồm:

 Drijection: một hệ thống quản lý cơ sở dữ liệu nguồn mở nhẹ được phát triển dựa trên MySQL 6.0.

 MariaDB: một sự thay thế phổ biến do cộng đồng phát triển cho

MySQL sử dụng các lệnh và API của MySQL.

 Percona Server với XtraDB: một phiên bản nâng cao của MySQL được biết đến với khả năng mở rộng theo chiều ngang.

3.4.5 Sự khác biệt giữa SQL và MySQL

Bảng 3.4.5 Bảng so sánh khác biệt giữa SQL và MySQL

SQL, hay Ngôn ngữ truy vấn có cấu trúc, là một công cụ quan trọng trong việc quản lý cơ sở dữ liệu quan hệ, giúp người dùng thực hiện các truy vấn và thao tác dữ liệu một cách hiệu quả.

MySQL là một RDBMS để lưu trữ, truy xuất, sửa đổi và quản trị cơ sở dữ liệu bằng cách sử dụng MySQL.

Kiểu SQL là một ngôn ngữ truy vấn MySQL là phần mềm cơ sở dữ liệu Nó đã sử dụng ngôn ngữ

"SQL" để truy vấn cơ sở dữ liệu.

Hỗ trợ kết nối SQL không bao gồm trình kết nối, trong khi MySQL cung cấp công cụ tích hợp 'MySQL Workbench' để thiết kế và phát triển cơ sở dữ liệu hiệu quả.

Mục đích Để truy vấn và vận hành hệ thống cơ sở dữ liệu Cho phép xử lý dữ liệu, lưu trữ, sửa đổi, xóa theo định dạng bảng.

Sử dụng Mã và lệnh SQL được sử dụng trong các hệ thống DBMS và RDMS khác nhau bao gồm MYSQL.

MYSQL được sử dụng làm cơ sở dữ liệu RDBMS.

Cập nhật Ngôn ngữ là cố định, và lệnh vẫn giữ nguyên Nhận cập nhật thường xuyên.

PHÂN TÍCH THIẾT KẾ HỆ THỐNG 4.1 Thiết kế ứng dụng

Kiến trúc chương trình

Hình 4.4.1 Kiến trúc trương trình

Sơ đồ Usecase

STT Tên Actor Ý nghĩa / Ghi chú

1 Khách hàng sử dụng hệ thống để mua sản phẩm

2 Cửa hàng bán sản phẩm trên hệ thống

3 Nhân viên quản lý hệ thống

Danh sách các Use-case:

STT Tên Use-case Ý nghĩa / Ghi chú

1 Xem danh sách sản phẩm theo địa danh.

Khách hàng có thể dễ dàng duyệt qua danh sách sản phẩm được phân loại theo địa danh du lịch, và họ có khả năng chọn một sản phẩm cụ thể để xem thông tin chi tiết về sản phẩm đó.

2 Đặt hàng Khách hàng đặt hàng mua sản phẩm qua hệ thống.

Cửa hàng xác nhận đơn hàng và bắt đầu quá trình chuẩn bị Sau khi hoàn tất việc đóng gói, hàng hóa sẽ được giao cho đơn vị vận chuyển để tiến hành giao hàng.

4 Theo dõi đơn hàng Khách hàng và cửa hàng theo dõi tình trạng vận chuyển của đơn hàng.

Khách hàng có nhu cầu đổi trả hàng, và cửa hàng sẽ xem xét yêu cầu này trước khi xác nhận Sau khi nhận được sự đồng ý, khách hàng sẽ gửi sản phẩm qua đơn vị vận chuyển để trả lại cho cửa hàng.

6 Khiếu nại Khách hàng hoặc cửa hàng có thể khiếu nại về vửa hàng / khách hàng.

7 Hỗ trợ khách hàng Khách hàng yêu cầu hỗ trợ về sản phẩm.

Cửa hàng trả lời các thắc mắc, yêu cầu của khách hàng.

8 Tra cứu thông tin du lịch

Khách hàng tra cứu và đọc các bài viết về du lịch trên hệ thống.

Cửa hàng đăng ký bán hàng trên hệ thống bằng việc cung cấp các thông tin cần thiết để người quản trị xét duyệt mở gian hàng.

Cửa hàng quản lý các sản phẩm được bán trên gian hàng của mình, thêm, cập nhật sản phẩm vào danh mục sản phẩm.

11 Quản lý quy cách đóng gói

Cửa hàng quản lý các quy cách đóng gói sản phẩm cung cấp cho khách hàng, cung cấp cho khách hàng các tùy chọn như gói quà tặng,…

12 Xem dữ liệu kinh doanh Cửa hàng xem các dữ liệu về kinh doanh.

13 Cập nhật bài viết du lịch

Người quản trị cập nhật các bài viết về du lịch lên mục khám phá của hệ thống.

14 Cập nhật banner, quảng cáo

Người quản trị cập nhật các thông tin về quảng cáo trên hệ thống.

Người quản trị có trách nhiệm xử lý các vi phạm từ khách hàng hoặc cửa hàng, bao gồm việc hủy đơn hàng quá nhiều trong khoảng thời gian ngắn và sử dụng ngôn ngữ không chuẩn mực khi đánh giá hoặc phản hồi về sản phẩm.

 Use-case “Xem danh sách sản phẩm theo địa danh”:

Người sử dụng Khách hàng

Khách hàng xem danh sách sản phẩm trên hệ thống được lọc theo địa danh du lịch.

1 Khách hàng chọn chức năng mua sắm.

2 Hệ thống hiển thị danh sách sản phẩm trên hệ thống.

3 Khách hàng chọn địa danh du lịch để lọc sản phẩm.

4 Hệ thống hiển thị danh sách sản phẩm đã được lọc theo địa danh.

5 Khách hàng chọn vào 1 sản phẩm.

6 Hệ thống hiển thị thông tin chi tiết về sản phẩm.

7 Khách hàng chọn thêm sản phẩm vào giỏ hàng.

8 Hệ thống cập nhật giỏ hàng của khách hàng.

Các yêu cầu đặc biệt

Trạng thái hệ thống trước khi thực hiện Use-case

Khách hàng đã đăng nhập vào hệ thống.

Khách hàng đã cho sản phẩm vào giỏ hàng.

Khách hàng có kết nối Internet. Trạng thái hệ thống sau khi thực hiện Use-case

Hệ thống cập nhật thông tin giỏ hàng của khách hàng Điểm mở rộng

Người sử dụng Khách hàng

Mô tả chức năng Khách hàng đặt hàng qua hệ thống

5 Khách hàng mở giỏ hàng.

6 Hệ thống hiển thị giao diện giỏ hàng.

7 Khách hàng nhập thông tin đặt hàng: Thông tin người nhận ( Tên,

Số điện thoại, Địa chỉ), Tuỳ chọn sản phẩm ( Kiểu dáng, số lượng,…), Quy cách đóng gói, Phương thức thanh toán, Lưu ý cho người bán, Hình thức vận chuyển.

9 Hệ thống hiển thị giao diện xác nhận đặt hàng.

10 Khách hàng xác nhận đặt hàng.

Nếu khách hàng chọn thanh toán qua ngân hàng ở bước 3:

7 Hệ thống hiển thị giao diện thanh toán qua ngân hàng.

8 Khách hàng tiến hành thanh toán:

 8a Khách hàng chọn / nhập thông tin thanh toán và xác nhận.

 8b Khách hàng chọn thanh toán sau.

Các yêu cầu đặc biệt

Nếu khách hàng chọn thanh toán qua ngân hàng thì sẽ phải thanh toán trong vòng 24h.

Trạng thái hệ thống trước khi thực hiện Use-case

Khách hàng đã đăng nhập vào hệ thống.

Khách hàng đã cho sản phẩm vào giỏ hàng.

Khách hàng có kết nối Internet.

Trạng thái hệ thống sau khi thực hiện Use-case

Hệ thống thông báo đặt hàng thành công.

Hệ thống ghi nhận đơn hàng.

Hệ thống thông báo cho cửa hàng. Điểm mở rộng

Người sử dụng Cửa hàng

Mô tả chức năng Xác nhận đơn hàng và lên lịch giao hàng cho đơn vị vận chuyển.

1 Cửa hàng chọn chức năng Xem danh sách đơn hàng.

2 Xác nhận đơn hàng đang chờ.

4 Xác nhận đã gửi hàng.

2a Cửa hàng chọn huỷ đơn hàng, Nhập lý do huỷ, xác nhận huỷ => Kết thúc Use-case.

Các yêu cầu đặc biệt

Trạng thái hệ thống trước khi thực hiện Use-case Đơn hàng chờ xác nhận.

Cửa hàng đã đăng nhập vào hệ thống.

Cửa hàng có kết nối Internet.

Trạng thái hệ thống sau khi thực hiện Use-case Đơn hàng đã được giao cho đơn vị vận chuyển Điểm mở rộng

 Use-case “Theo dõi đơn hàng”:

Người sử dụng Khách hàng , Cửa hàng

Mô tả chức năng Theo dõi quá trình vận chuyển của đơn hàng

1 Người dùng chọn chức năng theo dõi đơn hàng.

2 Hệ thống hiển thị chức năng theo dõi đơn hàng

3 Người dùng chọn đơn hàng cần theo dõi.

4 Hệ thống hiện thị thông tin vận chuyển của đơn hàng

Dòng sự kiện khác 2a Không có đơn hàng nào chưa hoàn thành => kết thúc Use-case Các yêu cầu đặc biệt

Trạng thái hệ thống trước khi thực hiện Use-case

Người dùng đã đăng nhập vào hệ thống.

Người dùng có kết nối internet. Trạng thái hệ thống sau khi thực hiện Use-case Điểm mở rộng

 Use-case “Đổi trả hàng”:

Người sử dụng Khách hàng, cửa hàng

1 Khách hàng gửi yêu cầu đổi trả hàng

2 Hệ thống hiển thị giao diện chức năng đổi trả hàng.

3 Chọn đơn hàng cần đổi trả và lý do đổi trả.

4 Khách hàng xác nhận đổi trả hàng

5 Hệ thống ghi nhận và thông báo đến cửa hàng.

6 Cửa hàng xác nhận đổi trả hàng.

7 Hệ thống ghi nhận và thông báo kết quả cho khách hàng.

8 Khách hàng tiến hành gửi trả sản phẩm cho cửa hàng.

9 Cửa hàng xác nhận đã nhận được sản phẩm.

6a Cửa hàng không đồng ý đổi trả. 6b Khách hàng yêu cầu quản trị viên giải quyết:

 6b1 Quản trị viên chấp nhận yêu cầu đổi trả hàng => Use- case tiếp tục bước 7.

 6b2 Quản trị viên từ chối yêu cầu đổi trả hàng => Kết thúc Use-case.

9a Hệ thống xử lý dựa trên việc yêu cầu của khách hàng là đổi hay trả hàng:

 9a1 Đổi hàng: Hệ thống yêu cầu cửa hàng gửi lại sản phẩm cho khách hàng.

 9a2 Trả hàng: Hệ thống tiến hành hoàn tiền cho khách hàng.

Các yêu cầu đặc biệt

Trạng thái hệ thống trước khi thực hiện Use-case Đơn hàng đã được giao trong thời gian không quá 7 ngày.

Người dùng đã đăng nhập vào hệ thống.

Người dùng có kết nối internet. Trạng thái hệ thống sau khi thực hiện Use-case Đơn hàng được hoàn thành đổi trả. Điểm mở rộng

Người sử dụng Khách hàng, Cửa hàng, Quản trị viên

Khách hàng hoặc cửa hàng có thể nộp khiếu nại liên quan đến hành vi của nhau Quản trị viên sẽ xem xét các khiếu nại này và đưa ra quyết định về hình thức xử lý phù hợp nếu cần thiết.

Dòng sự kiện chính 1 Khách hàng / Cửa hàng chọn chức năng khiếu nại.

2 Hệ thống hiển thị giao diện gửi khiếu nại.

3 Khách hàng / Cửa hàng nhập thông tin khiếu nại (người khiếu nại, lý do, bằng chứng,…)

4 Hệ thống ghi nhận khiếu nại.

5 Quản trị viên mở chức năng Giải quyết khiếu nại.

6 Hệ thống hiển thị danh sách các khiếu nại đang chờ giải quyết.

7 Quản trị viên chọn khiếu nại để giải quyết.

8 Quản trị viên chọn hình thức giải quyết (bỏ qua, xử phạt) và xác nhận.

9 Hệ thống ghi nhận và thông báo cho Khách hàng / Cửa hàng.

Các yêu cầu đặc biệt

Trạng thái hệ thống trước khi thực hiện Use-case

Người dùng đã đăng nhập vào hệ thống.

Người dùng có kết nối internet. Trạng thái hệ thống sau khi thực hiện Use-case

Khiếu nại được tạo và xử lý trên hệ thống. Điểm mở rộng

 Use-case “Hỗ trợ khách hàng”:

Người sử dụng Khách hàng, Cửa hàng

Mô tả chức năng Khách hàng yêu cầu hỗ trợ về sản phẩm Cửa hàng trả lời các thắc mắc, yêu cầu của khách hàng.

1 Khách hàng chọn chức năng yêu cầu hỗ trợ.

2 Hệ thống hiển thị giao diện yêu cầu hỗ trợ.

3 Khách hàng nhập thông tin yêu cầu hỗ trợ.

4 Hệ thống ghi nhận yêu cầu và thông báo cho cửa hàng.

5 Cửa hàng mở danh sách yêu cầu hỗ trợ.

6 Hệ thống hiển thị danh sách yêu cầu hỗ trợ.

7 Cửa hàng chọn yêu cầu để hỗ trợ.

8 Cửa hàng gửi trả lời cho yêu cầu của Khách hàng.

9 Khách hàng nhận được câu trả lời và xác nhận kết thúc yêu cầu.

9a Khách hàng nhận được câu trả lời nhưng vẫn còn thắc mắc cần hỗ trợ thêm => Use-case quay lại bước 3.

Các yêu cầu đặc biệt

Trạng thái hệ thống trước khi thực hiện Use-case

Người dùng đã đăng nhập vào hệ thống.

Người dùng có kết nối internet.Trạng thái hệ thống sau khi thực Yêu cầu hỗ trợ được ghi nhận và xử hiện Use-case lý. Điểm mở rộng

 Use-case “Tra cứu thông tin du lịch”:

Người sử dụng Khách hàng.

Mô tả chức năng Khách hàng tra cứu và đọc các bài viết về du lịch trên hệ thống.

1 Khách hàng chọn chức năng Khám phá.

2 Hệ thống hiển thị giao diện khám phá bao gồm các địa danh du lịch và các bài viết về các địa danh nổi bật.

3 Khách hàng chọn một địa danh du lịch để xem thông tin.

4 Hệ thống hiển thị danh sách các bài viết du lịch về địa danh được chọn

5 Khách hàng chọn một bài viết để xem.

Các yêu cầu đặc biệt

Trạng thái hệ thống trước khi thực hiện Use-case

Các bài viết đã được người quản trị thêm vào hệ thống.

Người dùng đã đăng nhập vào hệ thống.

Người dùng có kết nối internet. Trạng thái hệ thống sau khi thực hiện Use-case Điểm mở rộng

 Use-case “Đăng ký gian hàng”:

Người sử dụng Cửa hàng, Quản trị viên

Cửa hàng đăng ký bán hàng trên hệ thống bằng việc cung cấp các thông tin cần thiết để người quản trị xét duyệt mở gian hàng.

1 Cửa hàng gửi yêu cầu mở tài khoản bán hàng.

2 Hệ thống hiển thị giao diện đăng ký bán hàng

3 Cửa hàng nhập các thông tin được yêu cầu (tên cửa hàng, số điện thoại, địa chỉ, các giấy chứng nhận,…)

4 Hệ thống ghi nhận thông tin đăng ký của cửa hàng.

5 Quản trị viên mở danh sách các cửa hàng đang chờ xét duyệt.

6 Hệ thống hiển thị danh sách cửa hàng đang chờ xét duyệt.

7 Quản trị viên chọn xem thông tin đăng ký chi tiết của cửa hàng.

8 Quản trị viên xác nhận cho phép mở của hàng.

9 Hệ thống gửi thông báo cho cửa hàng.

Dòng sự kiện khác 8a Quản trị viên từ chối yêu cầu =>

Kết thúc Use-case 8b Quản trị viên yêu cầu thêm thông tin từ cửa hàng => Use-case quay lại bước 3.

Các yêu cầu đặc biệt

Trạng thái hệ thống trước khi thực hiện Use-case

Người dùng đã đăng nhập vào hệ thống.

Người dùng có kết nối internet. Trạng thái hệ thống sau khi thực hiện Use-case

Cửa hàng được quyền mở gian hàng bán trên hệ thống. Điểm mở rộng

 Use-case “Quản lý sản phẩm”:

Người sử dụng Cửa hàng

Cửa hàng quản lý các sản phẩm được bán trên gian hàng của mình, thêm, cập nhật sản phẩm vào danh mục sản phẩm.

1 Cửa hàng chọn chức năng Quản lý sản phẩm.

2 Hệ thống hiển thị giao diện Quản lý sản phẩm.

3 Cửa hàng tiến hành các bước cập nhật sản phẩm (thêm, thay đổi thông tin, ẩn sản phẩm,…)

4 Hệ thống hiển thị yêu cầu xác nhận thay đổi.

5 Cửa hàng xác nhận thay đổi.Dòng sự kiện khác 3a Cửa hàng chọn thêm sản phẩm.

=> Cửa hàng nhập các thông tin cần thiết cho sản phẩm => Use-case đi tới bước 4.

Cửa hàng tiến hành cập nhật thông tin sản phẩm bằng cách nhập các thông tin cần thiết Nếu cửa hàng chọn ẩn sản phẩm, quá trình sẽ kết thúc tại đây.

Các yêu cầu đặc biệt

Trạng thái hệ thống trước khi thực hiện Use-case

Người dùng đã đăng nhập vào hệ thống.

Người dùng có kết nối internet. Trạng thái hệ thống sau khi thực hiện Use-case

Sản phẩm được tạo mới hoặc cập nhật trên hệ thống. Điểm mở rộng

 Use-case “Quản lý quy cách đóng gói kiện hàng”:

Người sử dụng Cửa hàng

Cửa hàng quản lý các hình thức đóng gói cho các sản phẩm của mình, thêm và cập nhật danh sách các hình thức đóng gói.

1 Cửa hàng chọn chức năng Quản lý quy cách đóng gói.

2 Hệ thống hiển thị giao diện Quản lý quy cách đóng gói.

3 Cửa hàng tiến hành các bước cập nhật quy cách đóng gói (thêm, thay đổi thông tin, xoá quy cách,…)

4 Hệ thống hiển thị yêu cầu xác nhận thay đổi.

5 Cửa hàng xác nhận thay đổi.

3a Cửa hàng chọn thêm sản phẩm.

=> Cửa hàng nhập các thông tin cần thiết cho các quy cách đóng gói => Use-case đi tới bước 4.

3b Cửa hàng chọn cập nhật thông tin về quy cách đóng gói => Cửa hàng nhập các thông tin cần thiết.

=> Use-case đi tới bước 4.

3c Cửa hàng chọn xoá quy cách.

Các yêu cầu đặc biệt

Trạng thái hệ thống trước khi thực hiện Use-case

Người dùng đã đăng nhập vào hệ thống.

Người dùng có kết nối internet. Trạng thái hệ thống sau khi thực hiện Use-case

Quy cách đóng gói được tạo mới hoặc cập nhật trên hệ thống. Điểm mở rộng

 Use-case “Xem dữ liệu kinh doanh”:

Người sử dụng Cửa hàng

Mô tả chức năng Cửa hàng xem dữ liệu thống kê về tình trạng kinh doanh của cửa hàng Dòng sự kiện chính

1 Cửa hàng chọn chức năng Xem dữ liệu kinh doanh

2 Hệ thống hiển thị dữ liệu kinh doanh của cửa hàng.

Các yêu cầu đặc biệt

Trạng thái hệ thống trước khi thực hiện Use-case

Người dùng đã đăng nhập vào hệ thống.

Người dùng có kết nối internet. Trạng thái hệ thống sau khi thực hiện Use-case Điểm mở rộng

 Use-case “Cập nhật bài viết du lịch”:

Admin sử dụng chức năng Cập nhật bài viết du lịch để thêm , cập nhật hoặc xoá bài viết du lịch trên hệ thống

1 Admin chọn chức năng cập nhật bài viết du lịch.

2 Hệ thống hiển thị giao diện Cập nhật bài viết du lịch.

3 Admin tiến hành các thao tác cập nhật bài viết du lịch(Thêm , xoá , cập nhật ).

4 Hệ thống hiển thị yêu cầu xác nhận thay đổi.

5 Hệ thống xác nhận thay đổi. Dòng sự kiện khác

3a Admin chọn thêm bài viết =>Cửa hàng nhập các thông tin cần thiết cho bài viết => Use-case đi tới bước 4.

3b Admin chọn cập nhật thông tin về bài viết => Admin nhập các thông tin cần thiết => Use-case đi tới bước 4.

3c Admin chọn xoá bài viết => Kết thúc Use-case.

Các yêu cầu đặc biệt

Trạng thái hệ thống trước khi thực hiện Use-case

Người dùng đã đăng nhập vào hệ thống.

Người dùng có kết nối internet. Trạng thái hệ thống sau khi thực hiện Use-case

Bài viết du lịch được thêm mới hoặc cập nhật trên hệ thống Điểm mở rộng

 Use-case “Cập nhật banner, quảng cáo”:

Admin sử dụng chức năng Cập nhật banner, quảng cáo để thêm , cập nhật hoặc xoá banner, quảng cáo trên hệ thống

1 Admin chọn chức năng Cập nhật banner, quảng cáo.

2 Hệ thống hiển thị giao diện Cập nhật banner, quảng cáo.

3 Admin tiến hành các thao tác cập nhật banner, quảng cáo(Thêm , xoá , cập nhật ).

4 Hệ thống hiển thị yêu cầu xác nhận thay đổi.

5 Hệ thống xác nhận thay đổi.

3a Admin chọn thêm banner, quảng cáo => Admin nhập các thông tin cần thiết cho banner, quảng cáo => Use-case đi tới bước 4.

3b Admin chọn cập nhật thông tin về banner, quảng cáo => Admin nhập các thông tin cần thiết => Use-case đi tới bước 4.

3c Admin chọn xoá banner, quảng cáo => Kết thúc Use-case.

Các yêu cầu đặc biệt

Trạng thái hệ thống trước khi thực hiện Use-case

Người dùng đã đăng nhập vào hệ thống.

Người dùng có kết nối internet. Trạng thái hệ thống sau khi thực hiện Use-case

Banner, quảng cáo được thêm mới hoặc cập nhật trên hệ thống Điểm mở rộng

 Use-case “Xử lý vi phạm”:

Admin sử dụng chức năng xử lý vi phạm để xử lý vi phạm đối với cửa hàng.

1 Admin chọn chức năng xử lý vi phạm.

2 Hệ thống hiển thị giao diện Danh sách các trường hợp vi phạm.

3 Admin chọn hình thức xử lý ( Cảnh cáo, Xoá tài khoản cửa hàng)

4 Hệ thống hiển thị yêu cầu xác nhận xử lý.

5 Admin xác nhận xử lý.

Các yêu cầu đặc biệt

Trạng thái hệ thống trước khi thực hiện Use-case

Người dùng đã đăng nhập vào hệ thống.

Người dùng có kết nối internet. Trạng thái hệ thống sau khi thực hiện Use-case Cửa hàng bị xử lý trên hệ thống.Điểm mở rộng

Sơ đồ tuần tự ( Sequence Diagram )

Xem danh sách sản phẩm theo địa danh Đặt hàng

Theo dõi đơn hàng Đổi trả hàng

Tra cứu thông tin du lịch Đăng ký gian hàng

Quản lý quy cách đóng gói

Xem dữ liệu kinh doanh

Cập nhật bài viết du lịch

Cập nhật banner, quảng cáo

Cơ sở dữ liệu

Bảng user Tên cột Kiểu dữ liệu Not Null Ghi chú id bigint(20) X PRI email varchar(254) user_name varchar(50) X UNI password_hash varchar(60) X activated bit(1) X store_id bigint(20) MUL

Bảng user_authority Tên cột Kiểu dữ liệu Not Null Ghi chú user_id bigint(20) X PRI authority_name varchar(50) X PRI

Bảng store Tên cột Kiểu dữ liệu Not Null Ghi chú id bigint(20) X PRI name varchar(60) X activated bit(1)

Bảng order Tên cột Kiểu dữ liệu Not Null Ghi chú id bigint(20) X PRI user_id bigint(20) X MUL total_price bigint(20)

Tên cột Kiểu dữ liệu Not Null Ghi chú id bigint(20) X PRI order_id bigint(20) X MUL store_id bigint(20) X MUL total_price bigint(20) status enum('created',

'paid','accepted ','packaged','sh ipped','received ','completed','c ancelled')

The product table consists of several columns, including an ID of type bigint(20) which is the primary key, a name with a varchar(100) type, and a description stored as mediumtext The price is also defined as bigint(20) and is required, alongside an activated status represented by a bit(1) Additional columns include stock as an unsigned int(10), sold as an unsigned int(10), a created_at date, images stored as mediumtext, and a store_id of type bigint(20) which is indexed.

The `order_product_detail` table includes several key columns: `id`, which is a primary key of type bigint(20); `order_store_detail_id`, a foreign key also of type bigint(20); `product_id`, another foreign key of type bigint(20); `quantity`, an unsigned integer of type int(10); `price`, a bigint(20) representing the unit price; and `total_price`, a bigint(20) reflecting the total cost of the order Each of these columns is essential for maintaining the integrity and functionality of the order details within the database.

4.5.1.2 Mô hình thực thể liên kết dữ liệu (ERD)

4.1.6a Giao diện web cho người mua

Giao diện chi tiết sản phẩm

b Giao diện web cho người bán

Giao diện Quản lý sản phẩm

Giao diện quản lý đơn hàng

c Giao diện web admin

Giao diện xét duyệt cửa hàng

d Giao diện ứng dụng di động

Giao diện trang chủ Giao diện chi tiết sản phẩm

Giao diện giỏ hàng Giao diện thanh toán

Ngày đăng: 24/01/2022, 22:10

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w