LỜI MỞ ĐẦU *** Cuộc cách mạng khoa học kỹ thuật phát triển như vũ bão ngày nay là cuộc cách mạng công nghệ. Khoa học phát triển với sự gia tăng 25% / năm đã thu hút một bộ phận lớn nhân lực vào lĩnh vực này làm cho đội ngũ những người làm khoa học gia tăng nhanh chóng. Lực lượng những người làm khoa học tăng lên theo cấp số cộng kéo tài liệu khoa học và những sản phẩm nghiên cứu của họ tăng lên theo cấp số nhân. Tất cả đã tạo nên một khối lượng thông tin khổng lồ và không ngừng phát triển, dẫn đến bùng nổ thông tin.
Thêm vào đó, nhu cầu đòi hỏi rút ngắn đáng kể thời gian hữu ích của tài liệu làm cho các nhà quản lý phải thường xuyên bổ sung vốn tài liệu và không ngừng phải xử lý chúng, hoặc bằng thủ công, hoặc bằng tự động hóa. Quản lý kho thuốc trong các nhà thuốc hay bệnh viện là công việc quan trọng đòi hỏi bộ phận quản lý phải tiến hành nhiều nghiệp vụ phức tạp. Các nhà thuốc hay bệnh viện không chỉ có mô hình tập trung mà con tổ chức mô hình kho phân tán trên nhiều địa điểm khác nhau. Do vậy cách quản lý kho thuốc theo phương pháp truyền thống sẽ không còn hiệu quả.
Việc ứng dụng Công nghệ thông tin đã mang lại bước đột phá mới cho công tác quản lý kho thuốc, giúp nhà thuốc nắm bắt được thông tin về sản phẩm, đồ dùng y tế ,. một cách chính xác kịp thời. Từ đó, người quản lý nhà thuốc có thể đưa ra các kế hoạch và quyết định đúng đắn, giảm chi phí và tăng khả quan cạnh tranh, nâng cao kết quả hoạt động sản xuất kinh doanh. TỔNG QUAN ĐỀ TÀI 1.1 Tổng quan công nghệ 1.1 Tổng quan về Angular 1.1 Lịch sử hình thành AngularJS được phát triển từ năm 2009 bởi Misko Hevery cùng 1 người bạn khác là Adam Abrons.
Nó được xem là một dự án riêng cho đến khi Misko Hevery tham gia vào dự án Google Feedback dưới tư cách lập trình viên bán thời gian. Khi đó, Misko Hevery và 2 lập trình viên khác đã viết lên 17.000 các dòng mã khác dành cho dự án Google Feedback trong khoảng 6 tháng. Số lượng mã ngày càng nhiều và việc cần phải sửa lỗi kiểm soát phát sinh. Ông đã mạnh dạn đánh cược với quản lý là có thể viết lại toàn bộ mã nhờ sử dụng dự án GetAngular của mình trong 2 tuần.
Mặc dù đã thua cuộc nhưng mã dự án đã giảm nhanh từ 17. Nhờ sự thành công này mà AngularJS đã được phát triển nhân rộng và tăng tốc nhanh từ đó.2 Khái niệm và sự phát triển của Angular Angular được xem là một open source (mã nguồn mở) hay frameworks miễn phí chuyên dụng cho công việc thiết kế web. Angular được phát triển từ những năm 2009 và được duy trì bởi Google. Frameworks này được xem là frameworks front end mạnh mẽ nhất chuyên dụng bởi các lập trình viên cắt HTML cao cấp.
Angular được ứng dụng rộng rãi với mục đích xây dựng project Single Page Application (SPA). Hiện tại, Version stable của Angular là Angular 9 (released on February 7, 2020) với TypeScript 3. Trên thực tế, Angular sở hữu hai phiên bản hoàn toàn khác nhau như sau: Phiên bản 1: Phiên bản này có tên chính thức là AngularJS đến hiện nay nó vẫn đang được phát triển hoàn thiện bởi các chuyên gia. Vào năm 2018, thì phiên bản 1.3 đã được nhà sản xuất phát hành.
Đây là phiên bản được hoàn thành thực sự dựa trên Javascript bởi những lập trình viên viết mã theo ngôn ngữ Javascript thì nó thường dễ 11 làm và dễ tìm kiếm Tuy nhiên, hiệu năng khi so sánh với phiên bản ReactJS thì vẫn còn nhiều công ty xây dựng phải cân nhắc sử dụng Angular với phiên bản khác 1. Phiên bản 2: Phiên bản này được gọi với cái tên chính thức là Angular. Nó sở hữu tư duy thay đổi hoàn toàn với phiên bản thứ 1 và mang lại tham vọng giúp cho Angular có thể đánh bại ReactJS. AngularJS được xem là một trong những framework sở hữu cấu trúc ứng dụng dạng động và cho phép bạn có thể sử dụng HTML như là ngôn ngữ mẫu cũng như mở việc mở rộng cú pháp của HTML.
Nhờ vậy, việc diễn đạt các thành phần ứng dụng của người lập trình sẽ trở nên súc tích và rõ ràng hơn rất nhiều.3 Ưu và nhược điểm của Framework Angular Ưu điểm: - Angular được đánh giá là giải pháp dành cho các Single Page Application làm việc dễ dàng. - Code Front end thường rất thân thiện nhờ khả năng Binding data lên trên các nền tảng HTML để có thể tạo ra mọi thao tác rất tuyệt. - Bạn có thể dễ dàng Unit test - Có thể tái sử dụng component dễ dàng hơn - Hỗ trợ cho các lập trình viên có thể viết code được ít hơn với nhiều chức năng hơn. - Bạn có thể chạy Angular trên nhiều loại trình duyệt khác nhau lẫn PC hoặc mobile.
Nhược điểm: - Không an toàn: bản chất của Angular là một trong các framework frontend, mà frontend này thường vốn không thể bảo mật bằng backend, khi sử dụng API thì bạn cần xây dựng cho một hệ thống kiểm tra dữ liệu sao cho việc trả về được tốt nhất. 12 - Với một số trình duyệt sở hữu tính năng Disable Javascript nên có nghĩa là website sẽ không hoàn toàn có thể sử dụng được dựa trên những trình duyệt đó nữa.4 Ứng dụng của Angular Bao gồm: - CRUD Web Apps: đây là một trong những tính năng mà chính người sử dụng Angular ưu tiên sử dụng nhiều nhất. - Mobile Apps: Lập trình viên có thể sử dụng Angular kết hợp cùng Phonegap để tạo ra một loại Mobile App bạn có thể tạo một Mobile Web App. - Chrome Extensions: Đây là cách đơn giản nhất giúp lập trình viên tạo ra Chrome Extension lả việc sử dụng Yeoman- một Chrome Extension Generator.
- Testable JS Apps. - Firebase Powered Apps.2 Ngôn ngữ Java 1.1 Lịch sử hình thành Ngôn ngữ lập trình Java ban đầu được phát triển bởi Sun Microsystems do James Gosling khởi xướng và phát hành vào năm 1995 (Java 1. Tại thời điểm này phiên bản được sử dụng nhiều nhất là 8. Với ưu thế về đa nền tảng (multi platform) Java càng lúc càng được ứng dụng rộng rãi trên nhiều thiết bị từ máy tính đến mobile và nhiều thiết bị phần cứng khác… 1.2 Java là gì? Là một ngôn ngữ lập trình hướng đối tượng (OOP) và dựa trên các lớp (class).
Khác với phần lớn ngôn ngữ lập trình thông thường, thay vì biên dịch mã nguồn thành mã máy hoặc thông dịch mã nguồn khi chạy, Java được thiết kế để 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.3 Đặc điểm - 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 (Abstraction): là tiến trình xác định và nhóm các thuộc tính, Các hành động liên quan đến một thực thể đặc thù, xét trong mối tương quan 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 có các tác động khác nhau trên nhiều loại đối tượng khác nhau. Với tính đa hình, nếu cùng một phương thức ứng dụng cho các đối tượng thuốc các lớp khác nhau thì nó đưa đến những kết quả khác nhau.
Bản chất của sự việc chính là phương thức này bao gồm cùng một số lượng các 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: - Độc lập nền (Write Once, Run Anywhere): Không giống như nhiều ngôn ngữ lập trình khác như C và C++, khi Java được biên dịch, nó không được biên dịch sang mã máy cụ thể, mà thay vào đó là mã byte code chạy trên máy ảo Java (JVM).
Điều này đồng nghĩa với việc bất cứ thiết bị nào có cài đặt JVM sẽ có thể thực thi được các chương trình Java. - Đơn giản: học Java thật sự dễ hơn nhiều so với C/C++, nếu bạn đã quen với các ngôn ngữ lập trình hướng đối tượng thì việc học Java sẽ dễ dàng hơn. Java trở nên đơn giản hơn so với C/C++ do đã loại bỏ tính đa kế thừa và phép toán con trỏ từ C/C++. - Bảo mật: Java hỗ trợ bảo mật rất tốt bởi các thuật toán mã hóa như mã hóa một chiều (one way hasing) hoặc mã hóa công cộng (public key) … - Đa luồng: Với tính năng đa luồng Java có thể viết chương trình có thể thực thi nhiều task cùng lúc.
Tính năng này thường được sử dụng rất nhiều trong lập trình game. - Hiệu suất cao nhờ vào trình thu gom 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.3 Tổng quan về Spring Boot 1.1 Spring Boot là gì? - 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 Ưu và nhược điểm của Spring Boot Ưu điểm: - 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. Nhược điểm: - Thiếu kiểm soát.
Do style cố định, Spring Boot tạo ra nhiều phụ thuộc không được sử dụng đến kích thước tệp triển khai lớn. - Quá trình chuyển đổi dự án Spring cũ hoặc hiện có thành các ứng dụng Spring Boot nhiều khó khăn và tối thời gian. - Không thích hợp cho các dự án quy mô lớn. Hoạt động liên tục với các microservices, theo nhiều nhà phát triển, Spring Boot không phù hợp để xây dựng các ứng dụng nguyên khối.2 Tổng quan đề tài 1.1 Tổng quan về kho thuốc 1.1 Khái niệm kho thuốc Kho là nơi chứa đựng và lưu trữ các loại hàng hóa trong việc sản xuất kinh doanh.