CƠ SỞ LÝ THUYẾT
Các khái niệm cơ bản
Internet là một mạng lưới toàn cầu gồm các máy tính được kết nối, cho phép trao đổi thông tin thông qua giao thức TCP/IP (Transmission Control Protocol/Internet Protocol).
Dịch vụ thư điện tử (email), trò chuyện trực tuyến (chat) và công cụ tìm kiếm (search engine) mang lại nhiều tiện ích hữu dụng cho người dùng, giúp cải thiện hiệu quả giao tiếp và tìm kiếm thông tin.
“Web server” có thể là phần cứng, phần mềm hoặc cả hai Về phần cứng, nó là máy tính lưu trữ các file của website như HTML, hình ảnh, CSS và JavaScript, và phân phát chúng đến người dùng qua Internet thông qua tên miền Về phần mềm, web server điều khiển việc truy cập các file trên máy chủ HTTP, hiểu các URL và giao thức HTTP Khi trình duyệt cần một file từ web server, nó gửi yêu cầu qua HTTP, và máy chủ HTTP sẽ phản hồi bằng cách gửi tài liệu yêu cầu trở lại qua cùng giao thức.
Hình 2.1 Mô hình hoạt động trên web
A static web server, or stack, consists of hardware and an HTTP server software It is termed "static" because the server delivers stored files "as-is" to your browser.
Một máy chủ web động bao gồm một máy chủ web tĩnh cùng với các phần mềm mở rộng, thường là máy chủ ứng dụng và cơ sở dữ liệu Thuật ngữ "động" được sử dụng vì máy chủ ứng dụng có khả năng cập nhật các tệp đã lưu trữ trước khi truyền chúng đến trình duyệt của người dùng thông qua máy chủ HTTP.
Để tạo ra các trang web hiển thị trong trình duyệt, máy chủ ứng dụng có thể sử dụng một mẫu HTML và điền nội dung từ cơ sở dữ liệu Các trang web như MDN và Wikipedia không phải là tài liệu HTML riêng lẻ mà là sự kết hợp của nhiều mẫu HTML và một cơ sở dữ liệu lớn Thiết lập này giúp việc bảo trì và phân phối nội dung trở nên dễ dàng và nhanh chóng hơn.
Là máy tính dùng để truy cập tới máy server và có khả năng yêu cầu và nhận kết quả từ máy server
- HTTP là giao thức chuyển giao siêu văn bản
Giao thức này quy định cách thức trao đổi tài liệu như văn bản, hình ảnh, âm thanh, video và các tệp tin đa phương tiện giữa máy chủ và trình duyệt.
URL là đường dẫn chỉ tới một trang web cụ thể trên Internet
Cú pháp đầy đủ: scheme:// [:port] [[?] ]
- scheme: loại dịch vụ Internet
- host: địa chỉ máy chủ chứa tài nguyên
- port: cổng dịch vụ trên máy chủ
- path: đường dẫn và tên của tệp tin tài nguyên trên máy chủ
- querystring: các tham số được gửi kèm theo http
Ngôn ngữ mang tính miêu tả chỉ dành riêng cho cấu trúc trang web
HTML bao gồm một tập hợp các thẻ dùng để:
- Định nghĩa cấu trúc của trang web
- Định dạng nội dung của trang web
- Tạo các siêu liên kết để liên kết đến những trang web khác
- Chèn âm thanh, hình ảnh, video,… vào trang web
2 Tập tin HTML là gì?
- Tập tin HTML là một tập tin text có chứa các thẻ HTML (tập tin có phần mở rộng là html hoặc htm)
- Tập tin HTML còn được gọi là một trang web
- Nếu cú pháp có bị sai thì trình duyệt vẫn không báo lỗi, nó chỉ hiển thị không như ý muốn
- Mỗi thẻ là một từ khóa, được bao quanh bởi cặp ngoặc nhọn (Ví dụ: ,
- Mỗi thẻ HTML thường bao gồm một cặp: thẻ mở (bắt đầu định dạng), và thẻ đóng (kết thúc định dạng)
- Thẻ đóng giống thẻ mở, nhưng ở thẻ đóng thì có thêm ký hiệu dấu gạch chéo (/) trước tên thẻ (ví dụ: , , )
- Văn bản cần định dạng được đặt giữa thẻ mở và thẻ đóng ví dụ: Văn bản
- Các khoảng trắng dư thừa và ký tự xuống dòng sẽ bị bỏ qua
- Các thẻ gồm một cặp thẻ đóng và mở được gọi là thẻ kép
- Các thẻ chỉ có một thẻ được gọi là thẻ đơn (Ví dụ: )
CSS (Cascading Style Sheets) là ngôn ngữ thiết kế dùng để định dạng các phần tử HTML, cho phép điều chỉnh kích thước chữ, font chữ, màu chữ, màu nền, hình nền và đường viền thông qua các cặp thuộc tính và giá trị tương ứng.
Việc sử dụng CSS cũng hết sức quan trọng bởi nó giúp chúng ta trình bày giao diện một cách đẹp mắt và khoa học cho người xem
CSS giống như việc tô điểm cho một bức tranh; một trang web thiếu CSS tốt sẽ trở nên xấu xí và gây khó chịu cho người dùng Ngược lại, một trang web được thiết kế với CSS chất lượng sẽ mang lại cảm giác dễ chịu và thu hút người dùng hơn.
- JavaScript (viết tắt là JS) là một ngôn ngữ lập trình kịch bản phía máy khách, mã lệnh được thực thi bởi trình duyệt của người dùng
- JavaScript được sử dụng rộng rãi trong việc kết hợp với HTML/CSS để thiết kế web động
- JavaScript là một ngôn ngữ lập trình phổ biến bậc nhất thế giới và là một thứ không thể thiếu đối với một lập trình viên web
JavaScript là yếu tố quan trọng trong lập trình web, vì nếu một trang web thiếu JavaScript, nó sẽ trở nên nhàm chán và thiếu sức hấp dẫn.
Web API là một phương thức cho phép các ứng dụng khác nhau giao tiếp và trao đổi dữ liệu qua lại Dữ liệu được trả về từ Web API thường ở định dạng JSON hoặc XML, sử dụng giao thức HTTP hoặc HTTPS.
2 Những điểm nổi bật của Web API
- Web API hỗ trợ restful đầy đủ các phương thức:
The ability to Get, Post, Put, and Delete data simplifies and accelerates the development of HTTP services It fully supports essential HTTP components, including URI, request and response headers, caching, and versioning.
3 Web API hoặt động như thế nào?
Đầu tiên, cần xây dựng URL API để cho phép bên thứ ba gửi yêu cầu dữ liệu đến máy chủ cung cấp nội dung và dịch vụ thông qua giao thức HTTP hoặc HTTPS.
Trên máy chủ web cung cấp nội dung, các ứng dụng nguồn sẽ tiến hành kiểm tra xác thực nếu cần thiết và truy cập vào tài nguyên phù hợp để tạo ra nội dung trả về kết quả.
- Server trả kết quả theo định dạng JSON hoặc XML thông qua giao thức HTTP/HTTPS
Tại ứng dụng web hoặc di động, dữ liệu JSON/XML sẽ được phân tích để trích xuất thông tin Sau khi thu thập dữ liệu, các bước tiếp theo bao gồm lưu trữ dữ liệu vào cơ sở dữ liệu và hiển thị thông tin cho người dùng.
Mô hình Client-Server (Máy trạm - máy chủ)
Mô hình máy khách - máy chủ là một trong những mô hình nổi bật trong mạng máy tính, được áp dụng rộng rãi và là nền tảng của mọi trang web hiện có Trong mô hình này, máy con (máy khách) gửi yêu cầu đến máy chủ (người cung cấp dịch vụ), sau đó máy chủ xử lý yêu cầu và trả kết quả về cho máy khách.
Hình 2.2 Mô hình client – server 1
Trong mô hình client-server, máy chủ tiếp nhận mọi yêu cầu hợp lệ từ các nguồn khác nhau trên mạng và gửi lại kết quả cho máy tính đã phát đi yêu cầu đó.
Máy tính được gọi là máy khách khi chúng gửi yêu cầu đến máy chủ và chờ phản hồi Để máy khách và máy chủ giao tiếp hiệu quả, cần có một giao thức chuẩn, như TCP/IP, OSI, ISDN, hay X.25 Khi máy khách muốn truy cập thông tin từ máy chủ, chúng phải tuân theo giao thức mà máy chủ yêu cầu Nếu yêu cầu được chấp nhận, máy chủ sẽ thu thập thông tin và trả kết quả cho máy khách Thông thường, máy chủ luôn sẵn sàng nhận yêu cầu từ các máy khách, vì vậy khi máy khách gửi tín hiệu, máy chủ sẽ phản hồi nhanh chóng.
Mô hình client-server cho phép người dùng làm việc trên bất kỳ máy tính nào hỗ trợ giao thức truyền thông, tạo điều kiện thuận lợi cho việc tích hợp sản phẩm của các nhà sản xuất mà không gặp khó khăn.
Có thể có nhiều server cùng làm một dịch vụ, chúng có thể nằm trên nhiều máy tính hoặc một máy tính
Mô hình client-server chủ yếu liên quan đến phần mềm, không phụ thuộc vào phần cứng, ngoại trừ yêu cầu rằng server cần có cấu hình mạnh mẽ hơn so với các client.
Mô hình client-server mang lại cho người dùng nhiều dịch vụ đa dạng và tiện lợi, nhờ vào khả năng truy cập từ xa mà các mô hình cũ không thể cung cấp.
Mô hình máy chủ tạo ra một nền tảng lý tưởng để tích hợp các kỹ thuật hiện đại như thiết kế hướng đối tượng, hệ chuyên gia và hệ thống thông tin địa lý (GIS).
2.2.4 Nhược điểm của mô hình client-server
Việc trao đổi dữ liệu giữa hai máy tính ở hai khu vực địa lý xa nhau có thể gây ra vấn đề về bảo mật thông tin, khiến cho dữ liệu đôi khi không được an toàn Đây là nhược điểm chính của mô hình này.
Hệ quản trị cơ sở dữ liệu MySQL
MySQL là hệ quản trị cơ sở dữ liệu mã nguồn mở phổ biến và được ưa chuộng bởi các nhà phát triển ứng dụng nhờ vào tốc độ cao, tính ổn định và dễ sử dụng Hệ thống này hỗ trợ nhiều hệ điều hành và cung cấp một loạt các hàm tiện ích mạnh mẽ Với tính bảo mật cao, MySQL rất phù hợp cho các ứng dụng truy cập cơ sở dữ liệu trên internet Người dùng có thể tải MySQL miễn phí từ trang chủ, với nhiều phiên bản tương thích cho Windows, Linux, Mac OS, Unix, FreeBSD và các hệ điều hành khác.
MySQL là một hệ quản trị cơ sở dữ liệu quan hệ nổi bật, sử dụng Ngôn ngữ truy vấn có cấu trúc SQL, giúp quản lý và truy xuất dữ liệu hiệu quả.
- MySQL được sử dụng để lưu trữ dữ liệu
Nếu bạn đang tìm kiếm một hệ thống quản lý cơ sở dữ liệu miễn phí hoặc giá cả phải chăng, MySQL, mSQL và Postgres là những lựa chọn tốt Khi so sánh MySQL với các hệ thống khác, hãy xem xét các yếu tố quan trọng như hiệu suất, hỗ trợ, tính năng, điều kiện và giới hạn bản quyền, cũng như giá cả MySQL nổi bật với nhiều đặc điểm hấp dẫn, phù hợp với nhu cầu của người dùng.
- Tốc độ: MySQL rất nhanh
MySQL là một hệ thống cơ sở dữ liệu mạnh mẽ nhưng dễ sử dụng, với quy trình cài đặt và quản trị đơn giản hơn so với các hệ thống lớn khác.
- Giá thành: MySQL là miễn phí cho hầu hết các việc sử dụng trong một tổ chức
MySQL hỗ trợ ngôn ngữ truy vấn SQL, một ngôn ngữ phổ biến cho các hệ thống cơ sở dữ liệu hiện đại Người dùng cũng có thể truy cập MySQL thông qua các ứng dụng hỗ trợ ODBC (Open Database Connectivity), một giao thức giao tiếp cơ sở dữ liệu do Microsoft phát triển.
Năng lực của hệ thống cho phép nhiều client truy cập đồng thời vào server, đồng thời sử dụng nhiều cơ sở dữ liệu Người dùng có thể tương tác với MySQL thông qua các giao diện khác nhau để thực hiện truy vấn và xem kết quả, bao gồm các dòng yêu cầu từ khách hàng và trình duyệt web.
MySQL cung cấp khả năng kết nối mạng toàn diện, cho phép truy cập cơ sở dữ liệu từ bất kỳ đâu trên Internet, giúp bạn dễ dàng chia sẻ dữ liệu Tuy nhiên, MySQL cũng đảm bảo tính bảo mật bằng cách kiểm soát quyền truy cập, ngăn chặn những người không có quyền từ việc xem dữ liệu của bạn.
MySQL có tính linh động cao, cho phép chạy trên nhiều hệ thống như UNIX, Windows và OS/2 Nó tương thích với mọi loại phần cứng, từ máy PC cá nhân đến máy chủ lớn.
MySQL có sự phân phối rộng rãi và dễ dàng truy cập qua trình duyệt web Người dùng có thể tìm hiểu cách hoạt động của nó bằng cách tải mã nguồn về và khám phá Nếu không hài lòng với một số tính năng, bạn có thể tùy chỉnh nó theo ý thích.
MySQL cung cấp nhiều tài nguyên hỗ trợ hữu ích cho người dùng Cộng đồng MySQL rất nhiệt tình và nhanh chóng, thường phản hồi các câu hỏi trên mailing list chỉ trong vài phút Khi phát hiện lỗi, các nhà phát triển cũng sẽ nhanh chóng đưa ra giải pháp khắc phục.
Công cụ Vuejs
Vue.js, thường được gọi tắt là Vue (phát âm là /vjuː/, giống như từ "view" trong tiếng Anh), là một framework JavaScript linh hoạt, được sử dụng để phát triển giao diện người dùng (user interfaces).
Vue là một framework linh động, cho phép phát triển ứng dụng theo từng bước Phần lõi của VueJS tập trung vào giao diện người dùng, đồng thời hỗ trợ việc cài đặt thêm các thành phần và thư viện để xây dựng ứng dụng đơn trang (SPA) hiệu quả.
- Khác với các monolithic framework (framework nguyên khối) cung cấp tất cả mọi thứ cần có để xây dựng app trong một framework duy nhất
- Ngoài ra cần chú ý một vấn đề nữa, VueJS sử dụng mô hình MVVM (Model- View- ViewModel)
- Đây chắc chắn là cách nhanh gọn nhất, khi bạn chỉ cần thêm 1 đường link vào file index.html là xong
CDN, hay Mạng phân phối nội dung, là hệ thống cho phép dữ liệu được lưu trữ trên nhiều máy chủ toàn cầu Khi người dùng truy cập, hệ thống sẽ tự động chọn máy chủ gần nhất với vị trí của họ, từ đó tối ưu hóa tốc độ tải trang và cải thiện trải nghiệm người dùng.
- Đây là cách truyền thống nhất, bạn lên trang chủ và tài file js về rồi thêm đường dẫn tới file js đó
Khi áp dụng phương pháp này, bạn cần lưu ý rằng sẽ có hai phiên bản: phiên bản dành cho phát triển với đuôi js và phiên bản tối ưu dung lượng với đuôi min.js.
3 NPM (Node Package Manager) Đây là công cụ tạo, quản lí các gói thư viện Javascript, tức là sẽ quả lí tự động, loại bỏ các thao tác thủ công như hai cách trên Chúng ta chỉ cần khai báo những thư viện cần sử dụng vào file package.json, npm sẽ sự động tải chúng về giúp bạn mà không lo thiếu sót
4 Cài đặt vue bằng npm:
Npm install -g @vue/cli @vue/cli-service-global
Component trong Vue là các đối tượng có thể tái sử dụng với tên gọi đã được khai báo Chúng có thể được sử dụng như các phần tử trong các đối tượng Vue gốc Để tìm hiểu thêm về component trong Vue, bạn có thể tham khảo tài liệu trên trang web chính thức.
1 Vòng đời Vuejs gồm 4 phần chính:
- Mounting (Chèn phần tử DOM)
- Component là 1 trong những tính năng mạnh mẽ nhất của Vuejs bởi khả năng tái sử dụng của nó
Khi một Component hoạt động, Hook khởi tạo sẽ thiết lập các yếu tố liên quan trước khi đưa vào DOM, do đó bạn không thể truy cập vào DOM hoặc các phần tử đã được khởi tạo bởi hook.
- Có 2 phương thức được sử dụng khi khởi tạo: beforceCreate() và Create()
- Hook beforeCreate sẽ được gọi là đồng bộ ngay sau khi Vue được khởi tạo Các dữ liệu (data) và sự kiện (event) chưa được thiết lập
- lúc này, các dữ liệu (data) và sự kiện (event) đã được thiết lập
3 Mounting (Chèn phần tử DOM)
Hook Mounting là một kỹ thuật phổ biến trong việc làm việc với các component, cho phép truy cập nhanh chóng vào các component ngay trước và sau khi chúng được hiển thị lần đầu Kỹ thuật này cũng hữu ích khi bạn cần chỉnh sửa DOM trước và sau quá trình render.
- Chú ý: Trong quá trình render từ phía máy chủ, Hook Mounting không nên được sử dụng để tìm nạp dữ liệu cho các component khi khởi tạo
- Hook này khá ít dùng Nó sẽ thực hiện sau khi render function hoàn tất và trước khi render chính thức phần tử DOM của lớp Vue
- Trong hook Mounted, ta đã có thể hoàn toàn truy cập đến các component, template và DOM
The Update Hook is triggered when there are changes in a component, causing it to re-render This hook brings your component through the cycle of watch, compute, and render.
- Hook này được gọi ngay khi có sự thay đổi dữ liệu (data) trên component
Và được thực hiện trước khi DOM re-rende Bạn có thể lấy được dữ liệu mới ở đây
Hook cập nhật sẽ được thực thi ngay lập tức khi có sự thay đổi dữ liệu trên component Dữ liệu được truy xuất là dữ liệu đã được thay đổi, tương tự như dữ liệu lấy được từ beforeUpdate().
- Hook Destruction dùng để thực hiện các hành động khi component của bạn bị hủy bỏ Hay nói cách khác là xóa khỏi DOM
- Được gọi ngay trước khi hủy bỏ component Đây là giai đoạn thích hợp nhất để xóa bỏ dữ liệu (data), các sự kiện (events) để dọn dẹp
- Được gọi khi component đã bị xóa bỏ khỏi DOM.
Công cụ Java – Spring Boot
Ngôn ngữ lập trình Java, được phát triển bởi Sun Microsystems dưới sự dẫn dắt của James Gosling và ra mắt vào năm 1995 với phiên bản Java 1.0 (J2SE), hiện đang phổ biến nhất với phiên bản 8 Với ưu điểm vượt trội về khả năng đa nền tảng, Java ngày càng được ứng dụng rộng rãi trên nhiều thiết bị, từ máy tính đến điện thoại di động và các thiết bị phần cứng khác.
Java là một ngôn ngữ lập trình hướng đối tượng (OOP) dựa trên các lớp (class) Khác với nhiều ngôn ngữ lập trình thông thường, Java không biên dịch mã nguồn thành mã máy hay thông dịch mã nguồn khi chạy, mà được thiết kế với cách tiếp cận riêng biệt.
22 biên dịch mã nguồn thành bytecode, bytecode sau đó sẽ được môi trường thực thi (runtime environment) chạy
Java là ngôn ngữ lập trình hướng đối tượng nên nó cũng có 4 đặc điểm chung của các ngôn ngữ hướng đối tượng
Tính trừu tượng là quá trình xác định và nhóm các thuộc tính cùng hành động liên quan đến một thực thể cụ thể, được xem xét trong mối quan hệ với ứng dụng đang phát triển.
Tính đa hình (Polymorphism) cho phép một phương thức thực hiện các tác động khác nhau trên nhiều loại đối tượng khác nhau Khi áp dụng cùng một phương thức cho các đối tượng thuộc các lớp khác nhau, kết quả thu được sẽ khác nhau Điều này xảy ra vì phương thức này có cùng một số lượng tham số.
- Tính kế thừa (Inheritance): Điều này cho phép các đối tượng chia sẻ hay mở rộng các đặc tính sẵn có mà không phải tiến hành định nghĩa lại
- Tính đóng gói (Encapsulation): là tiến trình che giấu việc thực thi những chi tiết của một đối tượng với người sử dụng đối tượng ấy
Bên cạnh đó java còn có một số đặc tính khác:
Java có tính năng "Độc lập nền" (Write Once, Run Anywhere), cho phép các chương trình Java được biên dịch thành mã byte code thay vì mã máy cụ thể như C hay C++ Điều này có nghĩa là bất kỳ thiết bị nào cài đặt máy ảo Java (JVM) đều có thể chạy được các ứng dụng Java, mang lại tính linh hoạt và khả năng tương thích cao cho người dùng.
Học Java dễ hơn nhiều so với C/C++, đặc biệt nếu bạn đã quen thuộc với các ngôn ngữ lập trình hướng đối tượng Sự đơn giản của Java đến từ việc loại bỏ tính đa kế thừa và phép toán con trỏ, điều này giúp quá trình học trở nên thuận lợi hơn.
Java cung cấp khả năng bảo mật mạnh mẽ thông qua việc sử dụng các thuật toán mã hóa, bao gồm mã hóa một chiều (one way hashing) và mã hóa công cộng (public key).
Java hỗ trợ tính năng đa luồng, cho phép lập trình viên phát triển các ứng dụng thực hiện nhiều tác vụ song song Tính năng này rất phổ biến trong lập trình game, giúp tối ưu hóa hiệu suất và trải nghiệm người chơi.
- Hiệu suất cao nhờ vào trình thug om rác (garbage collection), giải phóng bộ nhớ đối với các đối tượng không được dùng đến
- Linh hoạt: Java được xem là linh hoạt hơn C/C++ vì nó được thiết kế để thích ứng với nhiều môi trường phát triển
Java thường được sử dụng để phát triển các ứng dụng web (J2EE) cho các hệ thống lớn yêu cầu độ bảo mật cao và khả năng phục vụ số lượng người dùng lớn, chẳng hạn như ngân hàng, phần mềm quản lý bệnh viện và nền tảng streaming trực tuyến.
Việc phát triển ứng dụng di động với J2ME đã từng phổ biến trong việc tạo game và ứng dụng cho điện thoại feature phone thông qua file jar Hiện nay, khi smartphone Android trở thành xu hướng, Java vẫn được áp dụng để phát triển ứng dụng và game cho nền tảng Android với định dạng file apk.
Việc phát triển ứng dụng desktop bằng Java (J2SE) không phổ biến như các ngôn ngữ khác Ưu điểm lớn nhất của ứng dụng Java là khả năng chạy trên nhiều hệ điều hành như Windows, Linux và Mac mà không cần viết lại mã nguồn Tuy nhiên, do chạy trên Java Virtual Machine (JVM), hiệu suất của ứng dụng Java thường thấp hơn so với các ngôn ngữ lập trình như C/C++ và C#.
2.5.5 Định nghĩa về Spring Boot
Spring là một framework phổ biến cho phát triển ứng dụng Java, được hàng triệu lập trình viên tin dùng Nó hỗ trợ tạo ra các ứng dụng hiệu suất cao, dễ dàng kiểm thử và khuyến khích việc tái sử dụng mã nguồn.
- Spring nhẹ và trong suốt (nhẹ: kích thước nhỏ, version cơ bản chỉ khoảng 2MB, trong suốt: hoạt động một cách trong suốt với lập trình viên)
- Spring là một mã nguồn mở, được phát triển, chia sẻ và các cộng đồng người dùng rất lớn
- Spring Framework được xây dựng dựa trên 2 nguyên tắc design chính là: Dependencty Injection và Aspect Oriented Programming
Spring cung cấp các tính năng cốt lõi để phát triển ứng dụng Java Desktop, mobile và web Mục tiêu chính của Spring là đơn giản hóa quá trình 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).
2.5.6 Kiến trúc, các module của Spring Framework
Spring được chia làm nhiều module khác nhau, tùy theo mục đích phát triển ứng dụng mà ta dùng 1 trong các module
Hình 2.2 Kiến trúc tổng thể của Spring Framework
Mặc dù Spring là một framework tuyệt vời cho phát triển phần mềm, nhưng nó vẫn có một số nhược điểm, chẳng hạn như quá trình cấu hình phức tạp.
- Spring Boot được xây dựng để khắc phục những nhược điểm đó, đồng thời cũng cung cấp một hướng phát triển phần mềm mới tronwg tương lại
- 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
2.5.8 Ưu điểm của Spring Boot
- Có các tính năng của Spring Framework
- Tạo ứng dụng độc lập, có thể chạy bằng java -jar (cho cả java web)
- Nhúng trực tiếp các ứng dụng server (Tomcat, Jetty…) do đó không cần phải triển khai file WAR
- Cấu hình ít, tự động cậu hình bất kì khi nào có thể (Giảm thời gian viết code, tăng năng suất)
- Không yêu cầu XML config…
- Chuẩn cho Microservices (Cloud support; giảm việc setup, config; các thư viện hỗ trợ…)
Công cụ Nginx
Nginx là một máy chủ mã nguồn mở nổi tiếng, ban đầu được phát triển để phục vụ web HTTP Hiện nay, Nginx được sử dụng rộng rãi như một Reverse Proxy, Email Proxy (IMAP, POP3, SMTP) và HTTP Load Balancer Được ra mắt vào tháng 10/2004 bởi Igor Sysoev, Nginx sử dụng kiến trúc sự kiện không đồng bộ, giúp tăng tốc độ, mở rộng tính năng và cải thiện hiệu suất.
Nginx là một lựa chọn tin cậy cho nhiều website có lượng truy cập lớn nhờ vào khả năng xử lý mạnh mẽ và đồng thời quản lý hàng nghìn kết nối.
Hình 2.4 Nginx là phần mềm server mã nguồn mở nổi tiếng
2.6.2 Nguyên lý hoạt động của Nginx
Quy trình hoạt động của web server bắt đầu khi trình duyệt gửi yêu cầu mở một website, sau đó server sẽ tìm kiếm và gửi file yêu cầu đó trở lại trình duyệt Nginx sử dụng kiến trúc Asynchronous và Event Driven, trong đó các Threads được quản lý trong một tiến trình, với mỗi tiến trình hoạt động dựa vào các Worker Connections nhỏ hơn.
Worker Process nhận truy vấn từ Worker Connections và chuyển đến Master Process, sau đó nhận kết quả trả về Mỗi Worker Connections có khả năng xử lý 1024 yêu cầu tương tự, giúp Nginx xử lý hàng nghìn yêu cầu một cách hiệu quả Nginx hoạt động tốt nhất trong các môi trường tìm kiếm, thương mại điện tử và Cloud Storage.
Hình 2.5 Nginx hoạt động theo kiến trúc Asynchronous và Event Driven
2.6.3 Những tính năng của Nginx
Nginx bao gồm một số tính năng sau đây:
- Có khả năng xử lý cùng một lúc hơn 10.000 kết nối với bộ nhớ thấp
- Phục vụ Static Files và lập chỉ mục cho tập tin
- Dùng bộ nhớ đệm Cache để tăng tốc Proxy ngược, cân bằng tải đơn giản và khả năng chịu lỗi
- Hỗ trợ tăng tốc với bộ nhớ đệm của WSGI, SCGI, FastCGI và các máy chủ Memcached
- Có cấu hình linh hoạt và khả năng lưu lại nhật ký truy vấn
- Chuyển hướng lỗi 3XX – 5XX
- Sử dụng Regular Expressions để Rewrite URL
- Hạn chế tỷ lệ đáp ứng truy vấn
- Giới hạn truy vấn từ một địa chỉ hoặc số kết nối đồng thời
- Có khả năng nhúng mã PERL
- Tương thích và hỗ trợ IPv6
- Hỗ trợ truyền tải file MP4 và FLV
Hình 2.6 Một số tính năng của Nginx
2.6.4 Cách thức kiểm tra website chạy Nginx
Sử dụng HTTP header để kiểm tra xem website có chạy Nginx hay không thông qua các bước sau đây:
Bước 1: Vào Chrome và mở website muốn kiểm tra
Bước 2: Nhấn F12 hoặc tổ hợp phím Ctrl + Shift + I
Bước 3: Xuất hiện cửa sổ Chrome Devtools => chọn Network Tab Nhấp vào
“>>” nếu không thấy Network Tab
Hình 2.7 Kiểm tra website có sử dụng Nginx
2.6.5 Cài đặt Nginx Web Server
Việc cài đặt chương trình web server Nginx khá đơn giản nhất là với ubuntu sudo apt-get install nginx -y
Về việc cấu hình có thể tham khảo trực tiếp tại https://www.nginx.com/
2.6.6 Thao tác lệnh với Nginx Web Server Đối với ubuntu:
- Khởi động Nginx: sudo systemctl start nginx.service
- Dừng dịch vụ Nginx: sudo systemctl stop nginx.service
- Khởi động lại Nginx: sudo systemctl restart nginx.service
- Kiểm tra trạng thái Nginx: sudo systemctl status nginx.service
Công cụ Amazon EC2 và AWS
Amazon Web Services (AWS) là nền tảng đám mây hàng đầu, cung cấp hơn 175 dịch vụ từ các trung tâm dữ liệu toàn cầu Nhiều khách hàng, từ các công ty khởi nghiệp đến các tập đoàn lớn và cơ quan chính phủ, tin tưởng vào AWS để tiết kiệm chi phí, tăng tính linh hoạt và thúc đẩy đổi mới.
AWS cung cấp một loạt dịch vụ phong phú và tính năng đa dạng hơn bất kỳ nhà cung cấp đám mây nào khác Các dịch vụ này bao gồm công nghệ cơ sở hạ tầng như máy tính, ổ đĩa cứng lưu trữ và cơ sở dữ liệu, cũng như các công nghệ mới nổi.
30 công nghệ máy học và trí tuệ nhân tạo, kho dữ liệu và phân tích, cùng với Internet of Things, giúp bạn nâng cấp các ứng dụng hiện tại lên đám mây một cách nhanh chóng, dễ dàng và tiết kiệm chi phí Nhờ đó, bạn có thể xây dựng hầu hết mọi thứ mà bạn có thể tưởng tượng.
AWS cung cấp một loạt các dịch vụ với chức năng sâu sắc, bao gồm nhiều loại cơ sở dữ liệu được thiết kế riêng cho các ứng dụng khác nhau Điều này cho phép người dùng lựa chọn công cụ phù hợp nhất cho công việc của họ, đảm bảo hiệu suất tối ưu và chi phí hợp lý.
AWS được thiết kế để trở thành môi trường điện toán đám mây bảo mật và linh hoạt nhất, với cơ sở hạ tầng đáp ứng yêu cầu bảo mật cho quân đội, ngân hàng toàn cầu và các tổ chức nhạy cảm Hệ thống này được hỗ trợ bởi bộ công cụ bảo mật chuyên sâu, bao gồm 230 tính năng và dịch vụ liên quan đến bảo mật, tuân thủ và quản trị AWS cũng tuân thủ 90 tiêu chuẩn bảo mật và chứng nhận, đồng thời tất cả 117 dịch vụ lưu trữ dữ liệu khách hàng đều cung cấp khả năng mã hóa dữ liệu.
Với AWS, bạn có thể tận dụng các công nghệ mới nhất để thử nghiệm và đổi mới nhanh chóng AWS liên tục đẩy mạnh tốc độ đổi mới, giúp bạn chuyển đổi doanh nghiệp bằng những công nghệ tiên tiến Chẳng hạn, vào năm 2014, AWS đã ra mắt AWS Lambda, tiên phong trong lĩnh vực điện toán không có máy chủ, cho phép nhà phát triển chạy mã mà không cần quản lý máy chủ Ngoài ra, AWS còn phát triển Amazon SageMaker, một dịch vụ machine learning hoàn toàn được quản lý, giúp các nhà phát triển và nhà khoa học dễ dàng sử dụng machine learning mà không cần kinh nghiệm trước đó.
Amazon Elastic Compute Cloud (Amazon EC2) là dịch vụ hạ tầng điện toán đám mây của Amazon Web Services (AWS), cho phép người dùng truy cập và quản lý tài nguyên máy tính ảo hóa linh hoạt theo nhu cầu.
Amazon EC2 cung cấp các ứng dụng máy tính ảo hóa có khả năng mở rộng, cho phép người dùng tăng cường khả năng xử lý và sử dụng các thành phần phần cứng ảo, bao gồm bộ nhớ RAM của máy tính.
AWS cung cấp 31 vi xử lý, cho phép người dùng linh hoạt lựa chọn các phân vùng lưu trữ dữ liệu trên nhiều nền tảng khác nhau Hệ thống quản lý dịch vụ của AWS được đảm bảo an toàn nhờ vào kiến trúc ảo hóa đám mây mạnh mẽ.
Amazon EC2 cung cấp máy chủ ảo linh hoạt, cho phép người dùng dễ dàng triển khai ứng dụng nhanh chóng và đảm bảo tính sẵn sàng cao Hơn nữa, người dùng có thể dễ dàng theo dõi chi phí thanh toán dựa trên thông tin tài nguyên đã sử dụng.
2.7.3 Amazon EC2 Instance là gì?
Amazon EC2 Instances are cloud servers that allow users to create and utilize multiple instances with a single account These instances operate on the same physical server, sharing resources such as memory, CPU, and storage.
Tuy nhiên do tính chất của cloud service nên mỗi một Instance được hoạt động giống như một server riêng lẻ
2.7.4 Các đặc tính của Amazon EC2
- Scaling Up/Down: Tăng/Giảm capacity(RAM, CPU, ) của Instance
- Scaling In/Out: Tăng/Giảm số lượng Instance
- Có thể thiết lập rank IP Private dành riêng cho EC2
- Sử dụng Security Group và Network ACLS để control inbound/outbound
- Có thể thiết lập IPsec VPN giữa Data Center và AWS Clound
- Delicated Instance -> Tạo EC2 trên 1 hardware physical dành riêng cho 1 khách hàng duy nhất
- On-Demand Instance: Tính theo giờ, đáp ứng nhu cầu dùng trong thời gian ngắn Dùng bao nhiêu, trả bấy nhiêu
You can prepay for a server for either 1 or 3 years at a cost that is only 75% of the On-Demand price If you find that you no longer need the server for an extended period, you have the option to sell it in the Reserved Instance Marketplace.
PHÂN TÍCH VÀ THIẾT KẾ
Tìm hiểu nghiệp vụ
Hoạt động của phòng ban quản lý thiết bị như sau:
- Chương trình phần mềm có chức năng thêm, sửa, xóa, tìm kiếm các bản ghi được lưu trong cơ sở dữ liệu
- Khi người quản lý, nhân viên cần xuất ra file excel có thể sử dụng chức năng export dữ liệu
- Khi người quản lý, nhân viên cần nhập liệu dữ liệu lớn việc nhập tay mất nhiều thời gian thì có thể sử dụng chức năng import file
Khi thiết bị được sử dụng, hệ thống sẽ tự động gửi email thông báo đến người quản lý và nhân viên khi gần đến thời gian kiểm định.
Mục tiêu hệ thống
Mục tiêu của việc xây dựng hệ thống quản lý trang thiết bị y tế:
- Có thể sử dụng chương trình quản lý từ xa
- Thực hiện công việc quản lý chuyên nghiệp, chính xác
- Tránh nhầm lẫn, sai sót, ảnh hưởng
Các thao tác như thêm, xóa, sửa đổi, điều chỉnh, cập nhật và xuất nhập dữ liệu qua file Excel được thực hiện một cách nhanh chóng và chính xác, giúp tiết kiệm thời gian và công sức cho người dùng.
- Thực hiện gửi email tới người quản lý và nhân viên thông báo các thiết bị y tế gần tới thời gian cần kiểm định
- Xây dựng hệ thống thân thiện, dễ sử dụng và tối ưu nhất có thể.
Xác định người dùng
Người dùng bao gồm người quản lý và các nhân viên Mỗi người dùng được cấp một tài khoản để đăng nhập hệ thống trong đó:
1 Nhân viên: sử dụng các chức năng theo vị trí công việc
- Thêm thiết bị vào danh sách thiết bị
- Sửa thông tin thiết bị trong danh sách thiết bị
- Tìm kiếm bản ghi thiết bị
- Filter bản ghi thiết bị
- Import và Export file Excel, Csv
- Nhận được danh sách bản ghi thiết bị cần được kiểm định, bảo dưỡng thông qua email
2 Người quản lý: có thể sử dụng tất cả các chức năng
- Thêm bản ghi thiết bị vào danh sách thiết bị
- Sửa thông tin bản ghi thiết bị trong danh sách thiết bị
- Xóa bản ghi thiết bị
- Tạo mới tài khoản nhân viên
- Xóa tài khoản nhân viên
- Nhận được danh sách bản ghi thiết bị cần được kiểm định, bảo dưỡng thông qua email
- Xem được giá trị tài sản của thiết bị.
Yêu cầu chức năng, phi chức năng
Chú ý: người quản lý có thể sử dụng tất cả các chức năng của hệ thống và xem được giá thành sản phẩm
➢ Thao tác dữ liệu trực tiếp trên web
- Cho phép thêm mới bản ghi
- Cho phép sửa thông tin về bàn ghi
- Cho phép xóa bản ghi thiết bị
- Tìm kiếm các thiết bị theo từng loại filter, theo tên thiết bị,…
➢ Thao tác dữ liệu với file excel, csv
- Xuất dữ liệu ra file excel,csv từ dữ liệu tìm kiếm và filter
- Thêm dữ liệu từ file excel, csv
- Các file excel, csv được tạo ra chỉ hiển thị giá thành sản phầm nếu đó là người quản lý
➢ Báo cáo qua email cho người quản lý, nhân viên khi thiết bị sắp tới thời điểm cần kiểm định
3.4.2 Yêu cầu phi chức năng
- Giao diện thân thiện, dễ sử dụng
Hiệu năng của hệ thống đảm bảo hoạt động tin cậy 24/7, với kết quả được hiển thị trong vòng 30 giây Tốc độ tính toán và cập nhật dữ liệu nhanh chóng, chính xác, với thời gian cập nhật chỉ dưới 2 giây cho mỗi dữ liệu mới được nhập.
Hệ thống bảo mật của chúng tôi sử dụng JWT cho đăng nhập thay vì session, giúp mở rộng dễ dàng hơn Chỉ những người có tài khoản mới có thể đăng nhập, và chúng tôi phân quyền người dùng một cách hiệu quả.
- Ngôn ngữ sử dụng là tiếng Việt.
Kịch bản sử dụng
Các kịch bản sử dụng:
- Tạo bản ghi thiết bị
- Tạo tài khoản nhân viên
- Thêm, sửa, xóa, tìm kiếm hiển thị trực tiếp trên trình duyệt
- Export, Import dữ liệu từ file Excel, Csv
- Gửi danh sách thiết bị cần kiểm định về email người quản lý, nhân viên.
Danh mục hệ thống
- Danh mục quản lý user
- Danh sách quản lý thiết bị
- Danh sách nút nhấn thao tác với dữ liệu
Sơ đồ cấu trúc
Sơ đồ cấu trúc của chương trình phần mềm quản lý trang thiết bị y tế có cấu trúc dạng cây (tree), được thể hiện như trong hình vẽ 3.1
Hình 3.1 Sơ đồ cấu trúc phần mềm
Quản lý trang thiết bị vật tư y tế
Thao tác trực tiếp trên trình duyệt
Lịch sử bảo dưỡng, sửa chữa
Thêm mốc thời gian bảo dưỡng, sửa chữa
Sửa thời gian bảo dưỡng, sửa chữa
Thao tác với file excel, csv
Thiết kế Cơ sở dữ liệu
3.7.1 Bảng lưu trữ tài khoản người dùng
Bảng 3.1 Tài khoản người dùng
Column Name Datatype Chú thích id INT Id người dùng
Bảng người dùng bao gồm các trường quan trọng như login_id (Tên đăng nhập), password (Mật khẩu đăng nhập), email (Email người dùng), role (Phân quyền người dùng), created (Thời gian tạo tài khoản), created_by (Người tạo tài khoản), updated (Thời gian cập nhật tài khoản) và updated_by (Người cập nhật tài khoản) Các trường này giúp quản lý thông tin người dùng và đảm bảo quyền truy cập hợp lý trong hệ thống.
Hình 3.2 Bảng users trong database
3.7.2 Bảng lưu trữ thông tin thiết bị
Gồm bảng chính device ràng buộc khóa phụ đến các bảng nhỏ “risk_level”,
“status”, “type_of_device”, “year_of_manufacture”
Ngoài ra còn các bảng lưu trữ thời gian bảo dưỡng, lịch sử sửa chữa:
Bảng 3.2 Thông tin bản ghi thiết bị
Tên trường Kiểu dữ liệu Chú thích id INT Id của thiết bị (duy nhất) device_code VARCHAR Mã thiết bị
Serial_number VARCHAR Số seri thiết bị
Device_name VARCHAR Tên thiết bị
Model VARCHAR Model thiết bị
Manufacturer VARCHAR Hãng sản xuất
Year_of_manufacturer INT Năm sản xuất
Type_of_device INT Loại thiết bị
Risk_level INT Mức độ rủi ro number INT Số lượng
Faculty_use VARCHAR Khoa sử dụng
Used_time BIGINT Thời gian sử dụng
Assest_value FLOAT Giá trị tài sản
Warning_time BIGINT Thời gian thông báo
Created BIGINT Thời gian tạo bản ghi
Created_by VARCHAR Người tạo bản ghi
Updated BIGINT Thời gian cập nhật
Updated_by VARCHAR Người cập nhật bản ghi
Bảng 3.3 Mức độ rủi ro thiết bị
Tên trường Kiểu dữ liệu Chú thích
Id INT Id liên kết với bản chính
Risk VARCHAR Mức độ rủi ro thiết bị
Bảng 3.4 Trạng thái thiết bị
Tên trường Kiểu dữ liệu Chú thích
Id INT Id liên kết với bản chính
Status VARCHAR Trạng thái thiết bị
Bảng 3.5 Các loại trang thiết bị
Tên trường Kiểu dữ liệu Chú thích
Id INT Id liên kết với bản chính
Type VARCHAR Loại thiết bị
Bảng 3.6 Năm sản xuất thiết bị
Tên trường Kiểu dữ liệu Chú thích
Id INT Id liên kết với bản chính year INT Năm sản xuất thiết bị
Bảng 3.7 Bảng lưu lịch sử bảo dưỡng thiết bị
Tên trường Kiểu dữ liệu Chú thích
Id INT Id của bản ghi bảo dưỡng
Device_id INT Id liên kết với bảng device
Time BIGINT Mốc thời gian bảo dưỡng
Created BIGINT Thời gian tạo bản ghi
Created_by VARCHAR Người tạo bản ghi
Updated BIGINT Thời gian chỉnh sửa
Updated_by VARCHAR Người chỉnh sửa bản ghi
Bảng 3.8 Bảng lịch sử sủa chữa thiết bị
Tên trường Kiểu dữ liệu Chú thích
Id INT Id bản ghi lịch sử
Device_id INT Id liên kết với bảng device
Time BIGINT Thời gian sửa chữa
Content VARCHAR Nội dung sửa chữa
Value DOUBLE Giá trị sửa chữa
Repair VARCHAR Đơn vị sửa chữa
Created BIGINT Thời gian tạo bản ghi
Created_by VARCHAR Người tạo bản ghi
Updated BIGINT Thời gian update bản ghi
Updated_by VARCHAR Người update bản ghi
Hình 3.3 Bảng device và các bảng quan hệ trong database
3.8 Thiết kế chức năng và giao diện
Để đảm bảo tính năng đăng nhập hiệu quả, cần có ô nhập cho username và password, cùng với nút bấm "Đăng nhập" Hệ thống cũng phải thông báo khi tài khoản hoặc mật khẩu sai, cũng như khi người dùng chưa điền đầy đủ thông tin vào các ô nhập.
Hình 3.5 Thông báo lỗi khi nhập thiếu hoặc không nhập tài khoản mật khẩu
Hình 3.6 Chi tiết thông báo lỗi nhập thiếu tài khoản mật khẩu
Khi nhập thông tin tài khoản mật khẩu sai, thông tin về password sẽ được reset lại thành ô nhập trống và chỉ giữ thông tin tài khoản lại ô nhập
Hình 3.7 Thông báo lỗi khi đăng nhập sai tài khoản mật khẩu
Khi nhập đúng thông tin tài khoản mật khẩu nhưng tài khoản đã được admin disable không cho phép hoạt động
Hình 3.8 Thông báo lỗi khi tài khoản bị disable
3.8.2 Màn hình ngay khi login thành công
Màn hình hiển thị và quản lý trang thiết bị y tế là giao diện quan trọng nhất xuất hiện ngay sau khi người dùng đăng nhập thành công Chỉ có người quản lý mới có quyền truy cập và xem giá trị tài sản của các trang thiết bị y tế, thông tin này được hiển thị ở bên phải màn hình.
Sau khi đăng nhập vào bằng tài khoản quản lý, phần mềm sẽ hiển thị giao diện như sau:
Hình 3.9 Màn hình khi đăng nhập thành công tài khoản quản lý
Sau khi người dùng đăng nhập vào bằng tài khoản nhân viên, phần mềm sẽ hiển thị giao diện như sau:
Hình 3.10 Màn hình khi đăng nhập thành công tài khoản nhân viên
Khi đăng nhập thành công, tất cả các màn hình quản lý sẽ hiển thị thanh menu trên cùng với các mục quản lý như Thiết bị, Tài khoản, Logo trang, thanh tìm kiếm (dựa vào mã thiết bị, số serial và tên thiết bị), Hồ sơ và Đăng xuất.
3.8.4 Chức năng xem chi tiết thiết bị Đi vào chi tiết các chức năng về quản lý thiết bị Khi người quản lý hoặc nhân viên thực hiên nhấp chuột trái 2 lần liên tiếp (double click) vào 1 bản ghi thiết bị, chi tiết về thiết bị sẽ được hiển thị và thêm vào các ô input ngay dưới bảng danh sách thiết bị
Hình 3.12 Chi tiết bản ghi thiết bị
Để đảm bảo việc làm sạch các ô nhập liệu chi tiết thiết bị phục vụ cho các thao tác của người dùng, khi nhấn nút “Refresh”, các chi tiết thiết bị sẽ được xóa hoàn toàn Điều này cho phép người dùng nhập dữ liệu mới mà không làm ảnh hưởng đến các bản ghi cũ.
Hình 3.13 Giao diện hiển thị sau khi nhấn nút “Refesh”
3.8.5 Chức năng thêm bản ghi thiết bị
Khi nhập thông tin thiết bị vào ô nhập liệu và nhấn nút "Thêm mới", hệ thống sẽ kiểm tra xem đã có bản ghi thiết bị nào với mã thiết bị trùng lặp hay chưa Nếu có, bản ghi mới sẽ không được thêm vào; ngược lại, nếu không có bản ghi nào trùng, một bản ghi mới sẽ được tạo và hiển thị ở đầu danh sách.
Hình 3.14 Giao diện sau khi nhấn nút “Thêm mới bản ghi”
Hình 3.15 Bản ghi vừa được thêm hiển thị trên cùng danh sách
3.8.6 Chức năng sửa bản ghi thiết bị
Khi click “Sửa” bản ghi thiết bị khi vừa double click sẽ được sửa và cập nhật lập tức trên bảng danh sách thiết bị
Hình 3.16 Giao diện sau khi nhấn nút “Sửa”
Sau khi người dùng chỉnh sửa các thông tin cần thiết giao diện sẽ hiển thị:
Hình 3.17 Bản thi thiết bị đã được chỉnh sửa
3.8.7 Chức năng xóa thiết bị
Khi nhấn “Xóa” bản ghi thiết bị sau khi double click, tài khoản nhân viên sẽ nhận thông báo lỗi do không có quyền truy cập, trong khi tài khoản admin có thể xóa bản ghi và danh sách thiết bị sẽ được cập nhật ngay lập tức trên màn hình.
Hình 3.18 Lỗi khi không có quyền xóa thiết bị
Hình 3.19 Chi tiết thông báo lỗi
Khi bạn nhấn “Export”, một cửa sổ sẽ xuất hiện để cho phép bạn chọn vị trí lưu trữ và tên file Tên file mặc định sẽ có định dạng “devices_export_yyyy-MM-dd-HHmmss”.
“yyyy-MM-dd-HHmmss” là thông tin về ngày tháng năm và thời gian export file Ngoài ra người sử dụng có thể tự đặt tên theo ý muốn
Hình 3.20 Export danh sách bản ghi thiết bị
Khi xuất dữ liệu bằng tài khoản nhân viên, cột giá trị tài sản sẽ để trống, trong khi tài khoản quản lý sẽ hiển thị đầy đủ giá trị của thiết bị Ngoài việc xuất toàn bộ danh sách thiết bị, trang web còn cho phép người dùng sử dụng chức năng tìm kiếm và bộ lọc để xuất riêng các thiết bị mong muốn Chức năng tìm kiếm sẽ được giới thiệu trong phần sau.
Hình 3.21 File khi được export sử dụng tài khoản nhân viên
Hình 3.22 File khi được export sử dụng tài khoản quản lý
Sau khi người dùng tìm kiếm trên thanh menu, hệ thống sẽ lọc dữ liệu và hiển thị danh sách sản phẩm cần thiết Người dùng chỉ cần nhấn nút Export để xuất file dưới dạng Excel.
Hình 3.23 File export theo tên thiết bị tìm kiếm
Khi nhấn nút "Import" để tải lên một hoặc nhiều file, nếu xảy ra lỗi do thiết bị đã tồn tại trong danh sách, hệ thống sẽ hiển thị thông báo lỗi chi tiết, cho biết file nào gặp sự cố, lỗi ở bản ghi số bao nhiêu và tên file liên quan Trước khi thực hiện việc nhập dữ liệu, hệ thống cũng sẽ kiểm tra định dạng của file đầu vào; nếu định dạng không đúng, người dùng sẽ nhận được thông báo lỗi tương ứng.
Hình 3.24 Chi tiết lỗi khi định dạng file import không phù hợp
Khi người dùng sử dụng thao tác inport dữ liệu nhưng không đúng định dạng cho phép, chương trình sẽ báo lỗi:
Hình 3.25 Import xảy ra lỗi
Hệ thống sẽ hiển thị thông báo đã xảy ra lỗi với file được chỉ định như bên dưới:
Hình 3.26 Chi tiết thông báo lỗi
Khi file được định dạng đúng yêu cầu, quá trình nhập dữ liệu sẽ diễn ra thành công, kèm theo thông báo xác nhận và danh sách các thiết bị đã được thêm vào dữ liệu.
Thông báo inport thành công sẽ suất hiện theo dạng hộp thoại người dùng cần lick ok để xác nhận:
Hình 3.28 Chi tiết thông báo import thành công
3.8.9 Chức năng tìm kiếm Để tìm kiếm thiết bị và tài khoản người dùng tại các màn hình quản lý thiết bị và màn hình quản lý người dùng người dùng chỉ cần nhập thông tin lên ô “Tìm kiếm” chính giữa menu web Danh sách thiết bị hay tài khoản phù hợp sẽ được hiển thị ngay lập tức (realtime) mà không cần thao tác ấn enter hay click nút tìm kiếm nào khác
3.8.10 Chức năng lọc thiết bị
Khi nhấn "Lọc", một cửa sổ sẽ xuất hiện cho phép người dùng chọn lọc thiết bị dựa trên các tiêu chí như model, xuất xứ, hãng sản xuất, năm sản xuất, loại trang thiết bị y tế, mức độ rủi ro, khoa sử dụng và tình trạng thiết bị.
Sau khi click vào Filter hệ thống sẽ hiển thị danh sách kèm hộp thoại như bên dưới để người dùng nhập trường thuộc tính cần lọc:
Hình 3.30 Lọc thiết bị theo các trường khác nhau