PHẦN MỞ ĐẦU 1. TÍNH CẤP THIẾT CỦA ĐỀ TÀI Hiện nay với công nghệ thông tin và thương mại điện tử đang phát triên rất mạnh mẽ, sự xuất hiện ngày càng nhiều dịch vụ bán đồ ăn nhanh và nhu cầu của người dùng từ chủ cửa hàng đến người tiêu dùng ngày càng tăng cao. Đê giải quyết bài toán làm sao đem lại sự trải nghiệm tốt nhất cho người tiêu dùng và cung cấp giải pháp quản lý về món ăn, nguyên liệu, chi phí … cho các điêm bán hàng. Với những vấn đề nêu trên việc tạo ra một website và ứng dụng có thê xử lý và đồng bộ được hoạt động một cách tốt nhất.
Bằng những kiến thức hiện có, nhóm chúng em ứng dụng công nghệ Java Spring Boot, React, Flutter và MySQL đê thực hiện đề tài “Xây dựng website và ứng dụng chuỗi trà sữa Gogi” đê giải quyết những vấn đề nêu trên. MỤC TIÊU ĐỀ TÀI Xây dựng website cho quản trị quản trị viên quản trị cơ sở dữ liệu. Xây dựng website và ứng dụng cho người dùng có thê thực hiện mua online. Vận dụng thành các công công nghệ mới, ngôn ngữ lập trình hiện đại vào đê xây dựng website của đề tài.
PHƯƠNG PHÁP THỰC HIỆN Tìm hiêu các kiến thức cần thiết đê thực hiện đề tài: Các kỹ thuật phân tích thiết kế hệ thống. Tìm hiêu các thư viện hỗ trợ cho đề tài. Cách thiết kế Mockup UI. Tham khảo các website tương tự trên thị trường.
1 PHẦN NỘI DUNG CHƯƠNG 1. Java Spring Boot 1. Giới thiệu về Java Spring Boot Hình 1. Logo Spring Boot [1] Spring Boot là một module của Spring Framework, cung cấp tính năng RAD (Rapid Application Development) – Phát triên ứng dụng nhanh.
Spring Boot được dùng đê tạo các ứng dụng độc lập dựa trên Spring. Spring Boot không yêu cầu cấu hình XML Nó là một chuẩn cho cấu hình thiết kế phần mềm, tăng cao năng suất cho developer. Tìm hiêu spring boot dễ dàng thông qua các trang web công nghệ w3school và documents Cung cấp các Rest Api đê Front-End sử dụng. Ưu điểm ● Có các tính năng của Spring Framework.
● Đơn giản hóa cấu hình và xây dựng được các ứng dụng độc lập có khả năng chạy bằng java-jar nhờ các dependency starter. ● Dễ dàng deploy vì các ứng dụng server được nhúng trực tiếp vào ứng dụng đê tránh những khó khăn khi triên khai lên môi trường production mà không cần thiết phải tải file WAR. 2 ● Cấu hình ít, tự động được hỗ trợ bất cứ khi nào cho chức năng spring như tăng năng suất, giảm thời gian viết code và không yêu cầu XML config. ● Cung cấp nhiều plugin, số liệu, cấu hình ứng dụng từ bên ngoài.
Giới thiệu về React Js Hình 1. Logo React Js [2] React (hay còn được gọi là React.js hoặc ReactJS) là một thư viện JavaScript front-end mã nguồn mở và miễn phí đê xây dựng giao diện người dùng dựa trên các thành phần UI riêng lẻ. Nó được phát triên và duy trì bởi Meta (trước đây là Facebook) và cộng đồng các nhà phát triên và công ty cá nhân. React có thê được sử dụng làm cơ sở đê phát triên các ứng dụng SPA (Single-page), thiết bị di động hoặc ứng dụng được kết xuất bằng máy chủ với các thư viện khác như Next.
Tuy nhiên, React chỉ hướng tới việc quản lý trạng thái và hiên thị trạng thái đó cho DOM, vì vậy việc tạo ứng dụng bằng React thường yêu cầu sử dụng thêm các thư viện bổ sung đê thực hiện định tuyến trang, cũng như thêm một số chức năng ở phía máy khách. Ưu điểm Hiệu quả cao: 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 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 lên DO và chỉ thực hiện chúng.
Điều này giúp ReactJs tránh những thao tác cần cho DOM mà nhiều chi phí, giúp cho trang website tiết kiệm được thời gian load lại những tài nguyên không cần thiết. 3 ReactJs giúp việc việc viết các đoạn code Js dễ dàng hơn: Nó dùng cú pháp đặc biệt là JSX (Javascript mở rộng) cho phép người ta trộn giữa code HTML và Javascript. Ta có thê thêm vào các đoạn HTML vào trong hàm render mà không cần phải nối chuỗi. Đây là đặc tính thú vị của ReactJs.
Nó sẽ chuyên đổi các đoạn HTML thành các hàm khởi tạo đối tượng HTML bằng bộ biến đổi JSX. Dễ dàng viết các test case giao diện vì virtual DOM được cài đặt hoàn toàn bằng JS. Hiệu năng đố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 đổi. ReactJs hỗ trợ nhiều thư viện cho lập trình viên tha hồ sáng tạo làm cho trang web sinh động và sắc sảo thủ hút người dùng hơn.
Có thê tích hợp ReactJs vào các framework khác. Giới thiệu về Flutter Hình 1. Logo Flutter [3] Flutter là một bộ open source UI software development kit (SDK) được tạo bởi Google, được dùng đê phát triên các ứng dụng cho các thiết bị di động với chỉ một basecode chạy trên cả Android và iOS, các ứng dụng trên máy tính và ứng dụng web. Ưu điểm Flutter là bộ open-source SDK, tức là miễn phí và mở – cộng đồng developer có thê cùng tham gia phát triên.
Giao diện đẹp (impressive UI) : Flutter cung cấp rất nhiều các widget, với nhiều sự lựa chọn. Giao diện khá đẹp và sắc nét. 4 Viết code ứng dụng nhanh hơn: Như các bạn đã biết, tầng Framework của Flutter được viết bằng Dart- một ngôn ngữ hướng đối tượng hỗ trợ JIT (Just In Time), tức là hỗ trợ hot reload trong quá trình viết code. Với hot reload bạn có thê cập nhật ứng dụng rất nhanh khi source code của bạn thay đổi mà không cần phải build lại bằng việc nhấn nút hot reload.
Trong quá trình viết ứng dụng, bạn sẽ thấy rõ điêm ưu việt này của hot reload. Native Performance: Trải nghiệm native hay độ mượt của ứng dụng tốt như native. Ngôn ngữ Dart hỗ trợ AOT (Ahead of Time), tức là compile sẽ nhanh hơn- giúp cải thiện performance và startup time. Code 1 lần chạy được trên cả iOS và Android: Trong bài viết Flutter là gì? , bạn thấy được cấu trúc của bộ Flutter SDK, hỗ trợ chạy trên cả hai nền tảng iOS và Android với cùng một basecode.
Thời gian xây dựng ứng dụng nhanh hơn, chi phí thấp hơn: Viết code nhanh, chỉ 1 basecode chạy trên 2 nền tảng Android, iOS vì vậy thời gian test, fix bugs sẽ nhanh hơn, tiết kiệm chi phí xây dựng app hơn. Giao diện như nhau trên các version của platform: Ví dụ: Android 5.0 sẽ có cùng giao diện nếu cùng chạy một ứng dụng Flutter, và trường hợp trên iOS cũng vậy. Nhược điểm Thư viện và Supports hạn chế hơn so với native SDK. Vì Flutter SDK mới chỉ phát hành chính thức vào năm 2017 nên cộng đồng chưa mạnh được như các nền tảng native.
Kích thước file lớn: Ví dụ cùng một app “Hello world”, App Flutter có kích thước là 4.7MB, App Kotlin là 550KB, App native Java là: 539KB. Cũng dễ hiêu thôi, bởi cấu trúc của Flutter SDK chứa các thư viện đê xử lý trên cả iOS và Android. Giới thiệu về MySQL Hình 1. Logo MySQL [4] MySQL là hệ quản trị cơ sở dữ liệu mã nguồn mở phổ biến hàng đầu trên thế giới và đặc biệt được ưa chuộng trong quá trình xây dựng, phát triên ứng dụng.
Đây là hệ quản trị cơ sở dữ liệu tốc độ cao, ổn định và dễ sử dụng, có khả năng thay đổi mô hình sử dụng phù hợp với điều kiện công việc khả chuyên.MySQL hoạt động trên nhiều hệ điều hành, cung cấp một hệ thống lớn các hàm tiện ích rất mạnh. Với tốc độ và tính bảo mật cao, MySQL thích hợp với các ứng dụng có truy cập cơ sở dữ liệu trên internet. MySQL có thê tải miễn phí từ trang chủ với nhiều phiên bản cho các hệ điều hành khác nhau như: phiên bản Win 32 cho các hệ điều hành dòng Windows, Linux, Mac OS X, Unix, FreeBSD, NetBSD, Novell NetWare, SGI Irix, Solaris, SunOS. Ưu điểm Sử dụng dễ dàng: MySQL là cơ sở dữ liệu tốc độ cao và ổn định, công cụ này dễ sử dụng và hoạt động trên nhiều hệ điều hành cung cấp hệ thống lớn các hàm tiện ích.
Tính bảo mật cao: MySQL phù hợp với các ứng dụng có truy cập cơ sở dữ liệu trên internet vì nó sở hữu nhiều tính năng bảo mật, thậm chí là bảo mật cấp cao. Đa tính năng: MySQL có thê hỗ trợ hàng loạt các chức năng SQL từ hệ quản trị cơ sở dữ liệu quan hệ trực tiếp và cả gián tiếp. Khả năng mở rộng và mạnh mẽ: Công cụ MySQL có khả năng xử lý khối dữ liệu lớn và có thê mở rộng khi cần thiết. 6 Tương thích trên nhiều hệ điều hành: MySQL tương thích đê chạy trên nhiều hệ điều hành, như Novell NetWare, Windows, Linux, nhiều loại UNIX (như Sun, Solaris , AIX và DEC, UNIX), OS / 2, FreeBSD,.MySQL cũng cung cấp phương tiện mà các máy khách có thê chạy trên cùng một máy tính với máy chủ hoặc trên một máy tính khác (giao tiếp qua mạng cục bộ hoặc Internet).
Cho phép khôi phục: MySQL cho phép các transaction được khôi phục,cam kết và phục hồi sự cố. Nhược điểm MySQL bị hạn chế dung lượng, cụ thê, khi số bản ghi của người dùng lớn dần, sẽ gây khó khăn cho việc truy xuất dữ liệu, khiến người dùng cần áp dụng nhiều biện pháp đê tăng tốc độ chia sẻ dữ liệu như chia tải database ra nhiều server, hoặc tạo cache MySQL. KHẢO SÁT, PHÂN TÍCH, THIẾT KẾ 2. Phân tích hiện trạng F&B đang là một trong những ngành đang phát triên và có cơ hội bứt phá ở Việt Nam.
Trong đó, thị trường trà sữa là một trong những thị trường hot nhất hiện nay ở nước ta. Trà sữa là thức uống phổ biến có thê phù hợp mọi lứa tuổi. Cùng với sự phát triên mạnh mẽ của internet, việc ứng dụng công nghệ thông tin và số hóa đóng vai trò hết sức quan trọng trong cuộc sống thường ngày. Chính điều này, đã thúc đẩy sự khai sinh và phát triên của thương mại điện tử.
Nắm bắt xu thế đó, các chuỗi trà sữa hoàn toàn có thê xây dựng website thương mại điện tử của riêng mình. Đối với doanh nghiệp, website thương mại điện tử giúp tiết kiệm chi phí quảng cáo, nâng cao sức cạnh tranh hơn so với loại hình kinh doanh truyền thống, tiếp cận được nhiều khách hàng hơn, tiết kiệm thời gian, và tối ưu trong việc quản lý, thống kê cho chuỗi cửa hàng.