Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (5.56 MB, 25 trang )
<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">
BỘ GIÁO DỤC VÀ ĐÀO TẠO
<b>TRƯỜNG ĐẠI HỌC THĂNG LONG</b>
<b>PHẦN 1. MÔ TẢ BÀI TỐN...3</b>
<b>1.1. Mơ hình Client – Server...3</b>
<b>1.2. Dịch vụ Cloud Server ( Firebase )...3</b>
<i>2.2.1. Các tính năng của Firebase...6</i>
<i>2.2.2. Ưu và nhược điểm của việc sử dụng Firebase...7</i>
<b>PHẦN 3. CÀI ĐẶT CHƯƠNG TRÌNH VÀ KẾT QUẢ...8</b>
<b>3.1. Mơ hình Client – Server ( ExpressJs, MongoDB)...8</b>
<i>3.1.1. Tổ chức code theo mơ hình MVC...8</i>
<i>3.1.2. Cài đặt lập trình phần mềm...9</i>
<i>3.1.3. Mơ tả về cách thức hoạt động của phần mềm...12</i>
<b>3.2. Firebase (Java, Firebase)...13</b>
</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3"><b>PHẦN 1. MƠ TẢ BÀI TỐN</b>
<b>1.1. Mơ hình Client – Server</b>
Tìm hiểu về mơ hình Client – Server cài đặt và lập trình một phần mềm quản lý sinh viên và mơn học mơ phỏng mơ hình Client – Server.
Phần mềm được lập trình bằng framework ExpressJs và sử dụng cơ sở dữ liệu MongoDB.
<b>1.2. Dịch vụ Cloud Server ( Firebase )</b>
Tìm hiểu về dịch vụ Cloud Server Firebase cài đặt và lập trình một Android app sử dụng ngơn ngữ lập trình Java và cơ sở dữ liệu thời gian thực.
</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4"><b>PHẦN 2. CƠ SỞ LÝ THUYẾT</b>
<b>2.1. Mơ hình Client – Server</b>
Client server là mơ hình mạng máy tính gồm có 2 thành phần chính đó là máy khách (client) và máy chủ (server). Server chính là nơi giúp lưu trữ tài nguyên cũng như cài đặt các chương trình dịch vụ theo đúng như yêu cầu của client. Ngược lại, Client bao gồm máy tính cũng như các loại thiết bị điện tử nói chung sẽ tiến hành gửi yêu cầu đến server.
Người dùng nhập URL (Uniform Resource Locator) của trang web hoặc tệp. Sau đó, Trình duyệt sẽ u cầu Máy chủ DNS (HỆ THỐNG TÊN MIỀN).
DNS Server tra cứu địa chỉ của WEB Server .
Máy chủ DNS phản hồi bằng địa chỉ IP của Máy chủ WEB .
Trình duyệt gửi yêu cầu HTTP/HTTPS tới IP của Máy chủ WEB (do máy chủ DNS cung cấp ).
Máy chủ gửi qua các tập tin cần thiết của trang web.
Trình duyệt sau đó hiển thị các tập tin và trang web được hiển thị. Việc kết xuất này được thực hiện với sự trợ giúp của trình thơng dịch DOM (Mơ hình đối tượng tài liệu), trình thơng dịch CSS và Cơng cụ JS được gọi chung là Trình biên dịch JIT hoặc (Just in Time).
2.1.1. Client
Client chính là khách hàng sử dụng dịch vụ. Nó có thể là một tổ chức hay cá nhân cụ thể nào đó. Và khi khái niệm này được sử dụng trong lĩnh vực kỹ thuật số thì cũng mang ý
</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">nghĩa tương tự như vậy. Trong Client Server thì Client chính là một máy tính (Host). Chúng có khả năng nhận thơng tin từ nhà cung cấp và sử dụng dịch vụ cụ thể (Server). 2.1.2. Server
Server là từ dùng để nói về một máy chủ hoặc một phương tiện được sử dụng để phục vụ các dịch vụ nào đó. Khi khái niệm này được sử dụng trong lĩnh vực cơng nghệ thì Server là một máy tính từ xa. Chúng có chức năng là cung cấp các thông tin (dữ liệu) cho một dịch vụ cụ thể nào đó hoặc quyền truy cập đối với dịch vụ.
2.1.3. Ưu điểm của mơ hình Client-Server
<b>Ưu điểm của mơ hình Client-Server:</b>
Hệ thống tập trung với tất cả dữ liệu ở một nơi duy nhất.
Chi phí hiệu quả địi hỏi ít chi phí bảo trì hơn và có thể phục hồi dữ liệu. Dung lượng của Máy khách và Máy chủ có thể được thay đổi riêng biệt.
<b>Nhược điểm của mơ hình Client-Server:</b>
Máy khách dễ bị nhiễm vi-rút, Trojan và sâu nếu có trong Máy chủ hoặc được tải lên Máy chủ.
Máy chủ dễ bị tấn công từ chối dịch vụ (DOS).
Các gói dữ liệu có thể bị giả mạo hoặc sửa đổi trong quá trình truyền.
Lừa đảo hoặc lấy thông tin đăng nhập hoặc thông tin hữu ích khác của người dùng là phổ biến và các cuộc tấn công MITM (Người đàn ông ở giữa) là phổ biến.
</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">2.2.1. Các tính năng của Firebase
<b>a) Xây dựng các ứng dụng tốt hơn</b>
<i>Các dịch vụ bao gồm trong tính năng này là:</i>
- Cơ sở dữ liệu thời gian thực - Cloud Firestore
- Xác thực - Cấu hình từ xa - Lưu trữ
- Nhắn tin đám mây Firebase (FCM)
<b>b) Cải thiện chất lượng ứng dụng</b>
</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">Gói miễn phí cho người mới bắt đầu. Cơ sở dữ liệu thời gian thực có sẵn.
</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8"><b>PHẦN 3. CÀI ĐẶT CHƯƠNG TRÌNH VÀ KẾT QUẢ</b>
<b>3.1. Mơ hình Client–Server ( ExpressJs, MongoDB)</b>
3.1.1. Tổ chức code theo mơ hình MVC
<b>Cách thức hoạt động:</b>
Từ phía client (người dùng) sẽ tương tác với giao diện gửi các yêu cầu đến Controller (bộ điều khiển
Controller sẽ nhận và xử lý yêu cầu người dùng gửi lên thông qua việc tương tác với model để lấy hoặc cập nhật dữ liệu tùy vào yêu cầu người dùng gửi lên.
Model xử lý yêu cầu và tương tác với database xử lí logic trả về kết quả cho Controller.
Controller tiếp nhận kết quả từ model chọn View phù hợp để hiển thị kết quả cho người dùng.
Quá trình trên ra một luồng hoạt động mạch lạc giữa các thành phần của mơ hình MVC, giúp q trình phát triển và bảo trì ứng dụng dễ dàng hơn.
</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">3.1.2. Cài đặt lập trình phần mềm
Bước 1: Cài đặt các thư viện cần thiết
Bước 2: Cấu hình các tuyến đường
</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">Bước 3: Cấu hình Model
</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">Bước 4: Lập trình các chức năng trong Controller để tương tác với model
</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">Từ đó Model tiếp nhận và tương tác với Database Bước 5: Lập trình giao diện
3.1.3. Mơ tả về cách thức hoạt động của phần mềm
Từ phía Client sẽ tương tác với phần mềm qua Browser
Người dùng sẽ tương tác với các URL tương ứng với các chức năng đã được cài đặt trong phầm mềm.
</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">Khi người dùng muốn cập nhật hay thêm một đối tượng vào phầm mềm sẽ tương tác qua một form data và khi submit form sẽ gửi lên server một action và một forrm data.
</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">hiệu quả và nhanh chóng thơng qua REST API và SDK Firebase. Điều này giúp ứng dụng của bạn cung cấp các tính năng như chat thời gian thực, cập nhật trực tiếp và đồng bộ dữ liệu trên nhiều người dùng.
- Cấu trức dữ liệu các bảng trên Realtime Database
- Cách thức, vai trò của từng bảng dữ liệu:
Bảng Bags : Chứa dữ liệu giỏ hàng của từng User gồm các sản phẩm tương ứng trong bảng Products khi được người dùng chọn thêm vào giỏ hàng.
Bảng HomePageImageLinks: Chứa các link ảnh quảng bá thương hiệu, giới thiệu sản phẩm.
Bảng Products: Chứa dữ liệu từng sản phẩm. Bảng Users: Chứa dữ liệu của mỗi người dùng.
<i>3.2.1.2 Storage</i>
<i>Storage là dịch vụ lưu trữ đám mây được cung cấp để lưu trữ tệp tin và nội dung</i>
đa phương tiện. Với Firebase Storage, bạn có thể lưu trữ hình ảnh, video, âm thanh và các loại tệp tin khác một cách an toàn và dễ dàng truy cập từ ứng dụng của mình. Firebase Storage cũng cung cấp tính năng quản lý phân quyền truy cập tệp tin, giúp bạn kiểm soát việc chia sẻ và truy cập dữ liệu một cách linh hoạt.
- Cấu trúc dữ liệu trên Storage
- Cách thức, vai trò của từng folder:
</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">Folder HomePageImageLinks: Chứa các ảnh của quảng bá thương hiệu, giới thiệu sản phẩm trong phần mềm.
Folder Products: Chứa các ảnh của từng sản phẩm.
<i>3.2.1.3 Authentication</i>
Authentication trong Firebase là dịch vụ cung cấp khả năng xác thực người dùng trong ứng dụng của bạn. Điều này cho phép người dùng đăng nhập và xác thực bằng cách sử dụng một loạt các phương thức như email/password, số điện thoại, Google, Facebook, Twitter, và nhiều hơn nữa. Firebase Authentication cung cấp tính năng quản lý người dùng, các quyền truy cập và cung cấp cơ chế bảo mật để xác minh danh tính người dùng
</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">- Đăng nhập vào tài khoản người dùng
<i>3.2.2.3 Sử dụng Realtime Database</i>
- Tạo đối tượng người dùng mới
</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">Model hồ sơ người dùng
</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">- Đọc các đối tượng sản phẩm
Model sản phẩm
</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20">- Xóa đối tượng sản phẩm khỏi giỏ hàng
- Cập nhập đối tượng sản phẩm trong giỏ hàng
</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21">3.2.3. Mô tả cách hoạt động - Tạo tài khoản người dùng
Giao diện:
</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">Cách thức hoạt động:
Khi người dùng nhập email và mật khẩu vào các ơ và click vào “LOGIN” thì trên Firebase Authentication sẽ kiểm tra các tài khoản có tương ứng với email và mật khẩu mà người dùng đã nhập bên trên khơng. Nếu đúng thì sẽ đăng nhập vào tài khoản, và khơng thì sẽ không cho đăng nhập.
- Đọc dữ liệu các sản phẩm Giao diện:
</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23">Cách thức hoạt động
Ứng dụng đọc dữ liệu từ đối tượng cha “Products” trên Realtime Database, đọc từng đối tượng con bên trong , mỗi đối tượng con là 1 đối tượng sản phẩm và đọc các thuộc tính của mỗi sản phẩm và hiển trị lên trên ứng dụng. - Thêm sản phẩm vào giỏ hàng
Giao diện:
</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24">Cách thức hoạt động:
</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="25">Khi người dùng chọn màu và kích thước sản phẩm và nhấn “Add to Bag”, ứng dụng sẽ truy cập tới giỏ hàng của người dùng và thêm sản phẩm vào giỏ hàng với các màu sắc, kích thước tương ứng.
- Cập nhập và xóa dữ liệu sản phẩm trong giỏ hàng Giao diện
</div>