Chương 1: Giới thiệu đề tài – lý do chọn đề tài, mục tiêu nghiên cứu, đối tượng nghiên cứu, phạm vi nghiên cứu và bố cục của đề tài. Chương 2: Cơ sở lý thuyết và các công nghệ liên quan – giới thiệu các khái niệm cơ bản về các công nghệ sử dụng trong quá trình phát triển website. Chương 3: Phân tích và thiết kế hệ thống – phân tích yêu cầu của website, thiết kế hệ thống, cơ sở dữ liệu và giao diện người dùng. Chương 4: Xây dựng và triển khai website – trình bày chi tiết quá trình xây dựng, phát triển và triển khai website bệnh viện thú y SAOvet.
Chương 5: Kết luận và kiến nghị - đánh giá kết quả nghiên cứu và đề xuất các hướng phát triển trong tương lai. 5 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 / ReactJS - React là một thư viện Javascript (front-end) do Facebook phát triển, hiệu quả và linh hoạt cho việc xây dựng giao diện người dùng. React cho phép tạo ra những giao diện (UI) phức tạp từ những đoạn code nhỏ và độc lập, những đoạn code này được gọi là “components”. Ưu điểm của ReactJS: Hiệu suất cao: Sử dụng DOM ảo (Virtual DOM) để tối ưu hóa hiệu suất và giảm thiểu tác động lên DOM thực tế.
Cập nhật giao diện người dùng một cách hiệu quả chỉ bằng cách thay đổi các thành phần đã thay đổi, thay vì render lại toàn bộ trang. Dễ dàng học hỏi và sử dụng: Cung cấp cú pháp JSX đơn giản, dễ hiểu, cho phép nhúng mã HTML và JavaScript. Có cấu trúc rõ ràng, giúp việc quản lý và bảo trì code dễ dàng hơn. Tính linh hoạt: Có thể sử dụng để xây dựng các ứng dụng web đơn giản đến phức tạp, từ trang web tĩnh đến ứng dụng web một trang (SPA).
Dễ dàng tích hợp với các thư viện và framework khác để tạo ra các ứng dụng web toàn diện. Tái sử dụng code: Khuyến khích việc tạo các thành phần UI có thể tái sử dụng, giúp tiết kiệm thời gian và công sức cho các nhà phát triển. Giúp code trở nên nhất quán và dễ bảo trì hơn. 6 Cộng đồng lớn mạnh: Có cộng đồng người dùng và nhà phát triển ReactJS lớn và tích cực, luôn sẵn sàng hỗ trợ và chia sẻ kiến thức.
Nhiều tài nguyên học tập và hướng dẫn có sẵn để giúp bắt đầu với ReactJS. Nhược điểm của ReactJS: Ngưỡng học ban đầu: Mặc dù ReactJS dễ học hơn so với các framework JavaScript khác, nhưng nó vẫn có một số khái niệm mới cần được hiểu. Các khái niệm như Virtual DOM, JSX và state management có thể gây khó khăn cho người mới bắt đầu. Hệ sinh thái: Hệ sinh thái ReactJS phát triển nhanh chóng, với nhiều thư viện và công cụ mới được tạo ra mỗi ngày.
Điều này có thể gây khó khăn cho các nhà phát triển trong việc theo kịp các xu hướng mới nhất và chọn công cụ phù hợp cho dự án của họ. Phụ thuộc vào JavaScript: ReactJS là một thư viện JavaScript, vì vậy nó phụ thuộc vào JavaScript để hoạt động. Điều này có thể gây ra một số vấn đề, chẳng hạn như lỗi JavaScript và các vấn đề về bảo mật. Tuy nhiên, có nhiều cách để giảm thiểu những rủi ro này, chẳng hạn như sử dụng các công cụ kiểm tra linting và minification.
Khó khăn trong SEO: ReactJS là một framework JavaScript dựa trên client- side, vì vậy nó có thể gây khó khăn cho việc tối ưu hóa công cụ tìm kiếm (SEO). Các công cụ tìm kiếm có thể gặp khó khăn khi lập chỉ mục các ứng dụng ReactJS, vì nội dung của chúng được tạo ra secara động. Tuy nhiên, có một số kỹ thuật có thể được sử dụng để cải thiện SEO cho các ứng dụng ReactJS. Không phải là framework đầy đủ: ReactJS không phải là một framework đầy đủ, vì vậy nó thiếu một số tính năng cần thiết cho các ứng dụng web lớn, chẳng hạn như quản lý routing và xử lý form.
Các nhà phát triển cần sử dụng các thư viện bổ sung để cung cấp các tính năng này.2 / Tailwind CSS - Tailwind CSS là một framework CSS theo hướng utility-first, được phát triển bởi Adam Wathan và phát hành lần đầu vào tháng 10/2019. Nó giúp xây dựng giao diện người dùng một cách nhanh chóng và linh hoạt bằng cách cung cấp các lớp tiện ích (utility classes) thay vì các component cố định. Ưu điểm của Tailwind CSS: Tăng tốc độ phát triển nhờ khai báo trực tiếp các lớp CSS. Giảm kích thước file CSS bằng cách chỉ xuất ra các lớp đã sử dụng.
Hỗ trợ thiết kế responsive ngay trên file HTML. Cung cấp các lớp CSS cho các trạng thái tương tác như hover, focus. Khuyến khích sử dụng các lớp tái sử dụng, giảm thiểu mã lặp. Dễ dàng mở rộng, chỉnh sửa và tùy biến.
Hỗ trợ chế độ tối (Dark Mode). Tích hợp tốt với nhiều framework front-end khác như React, Vue. Nhược điểm của Tailwind CSS: Số lượng mã HTML có thể trở nên rất dài và khó quản lý. Cần có kiến thức vững về CSS để sử dụng hiệu quả.
Tốn thời gian để làm quen và nhớ các tên lớp.3 / NodeJS - Nodejs là một nền tảng được phát triển độc lập trên V8 JavaScript Engine – trình thông thực thi mã JavaScript. Nhờ Nodejs mà việc xây dựng các ứng dụng Web trở nên đơn giản và dễ dàng hơn rất nhiều. Ngoài ra, Nodejs còn được biết tới là một mã nguồn mở và là một môi trường cho các máy chủ và ứng dụng mạng. Ưu điểm của Node.js: Có tốc độ xử lý nhanh nhờ cơ chế xử lý bất đồng bộ (non-blocking).
Có thể dễ dàng xử lý hàng ngàn kết nối trong khoảng thời gian ngắn nhất. Giúp dễ dàng mở rộng khi có nhu cầu phát triển website. Nhận và xử lý nhiều kết nối chỉ với một single-thread. Nhờ đó, hệ thống xử lý sẽ sử dụng ít lượng RAM nhất và giúp quá trình xử lý nhanh hơn rất nhiều.
Có khả năng xử lý nhiều yêu cầu (request) cùng một lúc trong thời gian ngắn nhất. Có khả năng xử lý hàng ngàn process cho hiệu suất đạt mức tối ưu nhất. Phù hợp để xây dựng những ứng dụng thời gian thực như các ứng dụng chat, mạng xã hội … 9 Nhược điểm của Node.js: + NodeJS gây hao tốn tài nguyên và thời gian. Nodejs được viết bằng C++ và JavaScript nên khi xử lý cần phải trải qua một quá trình biên dịch.
+ NodeJS so với các ngôn ngữ khác như PHP, Ruby và Python sẽ không có sự chênh lệch quá nhiều. NodeJS có thể sẽ phù hợp với việc phát triển ứng dụng mới. Tuy nhiên khi xây dựng và triển khai dự án quan trọng thì NodeJS không phải là sự lựa chọn hoàn hảo nhất.4 / MongoDB Cloud - MongoDB Cloud là dịch vụ cơ sở dữ liệu MongoDB được cung cấp dưới dạng một dịch vụ đám mây (cloud service), giúp người dùng triển khai và quản lý MongoDB mà không cần lo lắng đến việc cấu hình, duy trì hoặc vận hành các cơ sở hạ tầng vật lý. Ưu điểm của MongoDB Cloud: Quản lý dễ dàng: MongoDB Cloud cung cấp giao diện quản trị dễ sử dụng, cho phép người dùng tạo, cấu hình, và quản lý cơ sở dữ liệu MongoDB mà không cần phải lo lắng về hạ tầng.
Tính mở rộng (scalability): MongoDB Cloud dễ dàng mở rộng theo nhu cầu của người dùng, giúp người dùng tăng hoặc giảm tài nguyên một cách linh hoạt mà không cần phải lo lắng về việc quản lý phần cứng. 10 Tính bảo mật cao: MongoDB Cloud cung cấp nhiều lớp bảo mật, bao gồm mã hóa dữ liệu khi truyền tải và khi lưu trữ, xác thực mạnh mẽ và các quyền truy cập chi tiết, giúp bảo vệ dữ liệu của người dùng. Sao lưu và phục hồi tự động: Dịch vụ này hỗ trợ sao lưu tự động và khả năng phục hồi dữ liệu khi cần thiết, giảm thiểu rủi ro mất mát dữ liệu. Hiệu suất tối ưu: MongoDB Cloud cung cấp các công cụ để tối ưu hóa hiệu suất, giúp người dùng theo dõi và phân tích các hoạt động cơ sở dữ liệu, từ đó nâng cao hiệu quả sử dụng.
Tích hợp với các dịch vụ đám mây khác: MongoDB Cloud dễ dàng tích hợp với các nền tảng đám mây lớn như AWS, Google Cloud, và Azure, cũng như các công cụ và dịch vụ bên thứ ba. Nhược điểm của MongoDB Cloud: Chi phí cao: Mặc dù MongoDB Cloud mang lại nhiều lợi ích, nhưng chi phí của dịch vụ có thể cao hơn so với việc triển khai MongoDB trên hạ tầng riêng, đặc biệt khi nhu cầu về tài nguyên lớn. Giới hạn kiểm soát: Việc sử dụng dịch vụ đám mây có thể khiến người dùng mất một số quyền kiểm soát trực tiếp đối với cơ sở hạ tầng, điều này có thể là một vấn đề đối với những tổ chức yêu cầu sự kiểm soát hoàn toàn. Khó khăn trong việc di chuyển: Nếu người dùng quyết định chuyển cơ sở dữ liệu của mình ra khỏi MongoDB Cloud, quá trình di chuyển có thể khá phức tạp và tốn thời gian.
Dịch vụ phụ thuộc vào nhà cung cấp: Mặc dù MongoDB Cloud có sẵn trên nhiều nền tảng đám mây, nhưng người dùng vẫn phải phụ thuộc vào các nhà cung cấp này, điều này có thể tạo ra một số rủi ro về độ tin cậy và khả năng phục hồi của hệ thống. Yêu cầu kết nối internet ổn định: Vì MongoDB Cloud là dịch vụ đám mây, người dùng cần có kết nối internet ổn định để sử dụng dịch vụ, điều này có thể là một hạn chế nếu mạng lưới không ổn định.5 / Firebase - Firebase là một nền tảng giúp phát triển các ứng dụng di động trong web. Bên cạnh đó, Firebase còn được hiểu là một dịch vụ cơ sở dữ liệu hoạt động trên nền tảng đám mây cloud với hệ thống máy chủ mạnh mẽ của Google. Firebase chứa cơ sở dữ liệu mang đến khả năng code nhanh và thuận tiện hơn.
- Một số tính năng nổi bật của Firebase bao gồm: Realtime Database: Cơ sở dữ liệu NoSQL cho phép lưu trữ và đồng bộ hóa dữ liệu theo thời gian thực. Cloud Firestore: Cơ sở dữ liệu linh hoạt, có khả năng mở rộng, giúp tổ chức dữ liệu tốt hơn và hỗ trợ truy vấn phức tạp. Authentication: Dịch vụ xác thực cho phép bạn dễ dàng tích hợp các phương thức đăng nhập như email, mạng xã hội, hoặc xác thực bằng số điện thoại. Cloud Functions: Cho phép chạy mã backend mà không cần quản lý máy chủ, giúp tự động hóa quy trình và xử lý các sự kiện.