Xây Dựng Hệ Thống Website Chất Lượng “Vì Đàn Em”

Tài liệu nghiên cứu Xây dựng hệ thống website, tổng hợp lý thuyết và thực hành, cung cấp kiến thức chuyên sâu về kỹ thuật., phục vụ nghiên cứu và ứng dụng thực tiễn

Chuyên ngành

Công Nghệ Thông Tin

Người đăng

Ẩn danh

Thể loại

khóa luận tốt nghiệp

2023

119
1
0

Phí lưu trữ

35 Point

Mục lục chi tiết

LỜI CẢM ƠN

1. CHƯƠNG 1: TỔNG QUAN

1.1. Lý do chọn đề tài

1.2. Phương pháp nghiên cứu

1.3. Cách tiếp cận và phương pháp nghiên cứu

2. CHƯƠNG 2: CƠ SỞ LÝ THUYẾT

2.1. Ngôn ngữ JavaScript

2.2. Các công nghệ và dịch vụ sử dụng

2.3. Kiến trúc hệ thống

2.4. Cơ sở dữ liệu

3. CHƯƠNG 3: XÁC ĐỊNH VÀ MÔ HÌNH HÓA YÊU CẦU

3.1. Khảo sát hiện trạng

3.2. Xác định yêu cầu

3.2.1. Yêu cầu chức năng

3.2.2. Yêu cầu phi chức năng

3.2.3. Đặc tả usecase

3.3. Quản lý tài khoản

3.3.1. Thêm tài khoản mới

3.3.2. Cập nhật tài khoản

3.3.3. Cập nhật trạng thái hoạt động của tài khoản

3.3.4. Tìm kiếm tài khoản

3.4. Quản lý đơn vị tài trợ

3.4.1. Thêm đơn vị tài trợ

3.4.2. Cập nhật đơn vị tài trợ

3.4.3. Xóa đơn vị tài trợ

3.4.4. Tìm kiếm đơn vị tài trợ

3.4.5. Xem chi tiết đơn vị tài trợ

3.5. Quản lý học bổng

3.5.1. Thêm học bổng

3.5.2. Cập nhật học bổng

3.6. Quản lý chủ đề và tin bài

3.6.1. Cập nhật chủ đề

3.6.2. Thêm tin bài

3.6.3. Cập nhật tin bài

3.6.4. Tìm kiếm tin bài

3.6.5. Xem nội dung tin bài

3.6.6. Duyệt tin bài

3.6.7. Từ chối bài viết

3.7. Quản lý đối tượng và hồ sơ trẻ em

3.7.1. Thêm đối tượng

3.7.2. Cập nhật đối tượng

3.7.3. Thêm hồ sơ trẻ em

3.7.4. Cập nhật hồ sơ trẻ em

3.7.5. Xóa hồ sơ trẻ em

3.7.6. Tìm kiếm hồ sơ trẻ em

3.7.7. Duyệt hồ sơ trẻ em

3.7.8. Từ chối hồ sơ trẻ em

3.8. Liên hệ, đề xuất

4. CHƯƠNG 4: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG

4.1. Thiết kế cơ sở dữ liệu

4.2. Thiết kế xử lý

4.3. Thiết kế giao diện

4.3.1. Trang vì đàn em

4.3.2. Trang cộng đồng

4.3.3. Trang tin tức

4.3.4. Trang liên hệ

4.3.5. Form thông tin chi tiết trẻ em

4.3.6. Trang chi tiết tin bài

4.3.7. Trang đăng nhập

4.3.8. Trang quản lý tài khoản

4.3.9. Trang quản lý học bổng

4.3.10. Trang quản lý nhà tài trợ

4.3.11. Trang quản lý năm học

4.3.12. Trang quản lý trẻ em

4.3.13. Trang quản lý tin bài

4.3.14. Trang Thêm tin bài

4.3.15. Trang Cập nhật trẻ em

5. CHƯƠNG 5: CÀI ĐẶT VÀ THỬ NGHIỆM

5.1. Môi trường phát triển

6. CHƯƠNG 6: PHẦN KẾT LUẬN

6.1. Kết quả đạt được

6.2. Nhược điểm

6.3. Hướng phát triển

TÀI LIỆU THAM KHẢO

Tóm tắt

I. Tổng Quan Về Xây Dựng Website Chất Lượng Với MERN Stack

Xây dựng website chất lượng là một nhiệm vụ quan trọng trong thời đại số hiện nay. MERN Stack, bao gồm MongoDB, Express.js, React.js và Node.js, là một bộ công nghệ mạnh mẽ giúp phát triển ứng dụng web một cách hiệu quả. Việc hiểu rõ về MERN Stack sẽ giúp các nhà phát triển tạo ra những sản phẩm chất lượng, đáp ứng nhu cầu của người dùng.

1.1. MERN Stack Là Gì Và Tại Sao Nên Sử Dụng

MERN Stack là một bộ công nghệ bao gồm MongoDB, Express.js, React.js và Node.js. Sự kết hợp này cho phép phát triển ứng dụng web một cách nhanh chóng và hiệu quả. Việc sử dụng MERN Stack giúp tiết kiệm thời gian và công sức trong quá trình phát triển.

1.2. Lợi Ích Của Việc Sử Dụng MERN Stack

MERN Stack mang lại nhiều lợi ích như khả năng mở rộng, hiệu suất cao và dễ dàng bảo trì. Các nhà phát triển có thể sử dụng JavaScript cho cả front-end và back-end, giúp giảm thiểu sự phức tạp trong việc quản lý mã nguồn.

II. Những Thách Thức Khi Xây Dựng Website Với MERN Stack

Mặc dù MERN Stack mang lại nhiều lợi ích, nhưng cũng không thiếu những thách thức. Các nhà phát triển cần phải đối mặt với việc tối ưu hóa hiệu suất, quản lý cơ sở dữ liệu và đảm bảo tính bảo mật cho ứng dụng.

2.1. Vấn Đề Tối Ưu Hóa Hiệu Suất

Tối ưu hóa hiệu suất là một trong những thách thức lớn nhất khi xây dựng website. Các nhà phát triển cần phải biết cách tối ưu hóa mã nguồn và cơ sở dữ liệu để đảm bảo ứng dụng hoạt động mượt mà.

2.2. Quản Lý Cơ Sở Dữ Liệu MongoDB

Quản lý cơ sở dữ liệu MongoDB có thể gặp khó khăn nếu không có kiến thức vững về NoSQL. Việc thiết kế cấu trúc dữ liệu hợp lý là rất quan trọng để đảm bảo hiệu suất và khả năng mở rộng của ứng dụng.

III. Phương Pháp Xây Dựng Website Chất Lượng Với MERN Stack

Để xây dựng website chất lượng với MERN Stack, cần có một quy trình rõ ràng và các phương pháp hiệu quả. Việc áp dụng các phương pháp phát triển Agile và DevOps sẽ giúp tăng cường hiệu suất làm việc.

3.1. Quy Trình Phát Triển Agile

Quy trình phát triển Agile giúp các nhóm phát triển linh hoạt hơn trong việc thay đổi yêu cầu và cải tiến sản phẩm. Điều này rất quan trọng trong việc xây dựng website chất lượng.

3.2. Tích Hợp DevOps Trong Phát Triển

DevOps giúp cải thiện quy trình phát triển và triển khai ứng dụng. Việc tích hợp DevOps vào quy trình phát triển MERN Stack sẽ giúp tăng cường khả năng phản hồi và giảm thiểu lỗi.

IV. Ứng Dụng Thực Tiễn Của MERN Stack Trong Xây Dựng Website

MERN Stack đã được áp dụng thành công trong nhiều dự án thực tế. Các ứng dụng từ thương mại điện tử đến mạng xã hội đều có thể được xây dựng bằng MERN Stack, mang lại trải nghiệm người dùng tốt.

4.1. Ví Dụ Về Ứng Dụng Thương Mại Điện Tử

Nhiều trang web thương mại điện tử hiện nay sử dụng MERN Stack để cung cấp trải nghiệm mua sắm trực tuyến mượt mà và hiệu quả. Điều này cho thấy khả năng mở rộng và tính linh hoạt của MERN Stack.

4.2. Ứng Dụng Trong Mạng Xã Hội

MERN Stack cũng được sử dụng để phát triển các ứng dụng mạng xã hội, cho phép người dùng tương tác và chia sẻ thông tin một cách dễ dàng. Điều này chứng tỏ sức mạnh của MERN Stack trong việc xây dựng các ứng dụng phức tạp.

V. Kết Luận Về Tương Lai Của MERN Stack Trong Phát Triển Web

MERN Stack đang trở thành một trong những lựa chọn hàng đầu cho phát triển web. Với sự phát triển không ngừng của công nghệ, MERN Stack hứa hẹn sẽ tiếp tục phát triển và đáp ứng nhu cầu ngày càng cao của thị trường.

5.1. Xu Hướng Phát Triển MERN Stack

Xu hướng phát triển MERN Stack đang gia tăng, với nhiều công ty và tổ chức áp dụng công nghệ này vào quy trình phát triển của họ. Điều này cho thấy sự tin tưởng vào khả năng của MERN Stack.

5.2. Tương Lai Của Phát Triển Web Với MERN Stack

Tương lai của phát triển web với MERN Stack rất sáng sủa. Công nghệ này sẽ tiếp tục được cải tiến và phát triển, mang lại nhiều cơ hội cho các nhà phát triển và doanh nghiệp.

14/07/2025

Trích đoạn nội dung tài liệu

CHƯƠNG 1: TỔNG QUAN - Vận dụng các kiến thức đã tìm hiểu để phân tích, xây dựng Website với các chức năng cần thiết đáp ứng đủ nhu cầu của hai bên client và admin. - Thiết kế giao diện thân thiện và đạt hiệu suất hoạt động ổn định.3 Cách tiếp cận và phương pháp nghiên cứu 1.1 Đối tượng “Website Vì đàn em” được nghiên cứu và xây dựng phục vụ cho tất cả các đối tượng người dùng quan tâm đến vấn đề giúp đỡ trẻ em ở Thành phố Hồ Chí Minh có thành tích tốt trong học tập, nhưng hoàn cảnh còn gặp nhiều khó khăn để thực hiện ước mơ đến với con chữ. Thêm vào đó Website còn hỗ trợ cho các cấp thành đoàn trong việc quản lý các hồ sơ, hoàn cảnh, tài trợ,… Mọi đối tượng người dùng không phân biệt tuổi tác, lĩnh vực ngành nghề đều có thể truy cập vào Website khi có Internet.2 Phương pháp nghiên cứu - Tìm hiểu các cơ sở lý thuyết và thực hành với những tài liệu về bộ công nghệ MERN trên các trang thông tin chính thức về từng công nghệ, trên Udemy và Youtube. - Xây dựng mô hình nghiệp vụ cho việc xây dựng hệ thống.

- Phân tích, khảo sát hiện trạng các Website tình nguyện khác trên Internet. - Xác định yêu cầu cho các đối tượng truy cập vào hệ thống. - Thiết kế sơ đồ, mô hình hóa chức năng. - Lập trình, kiểm tra chương trình.

- Cài đặt và kiểm thử. 2 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 Ngôn ngữ JavaScript JavaScript là ngôn ngữ lập trình phổ biến nhất trên thế giới trong suốt 20 năm qua. Nó cũng là một trong số 3 ngôn ngữ chính của lập trình Web, được phát triển bởi Brendan Eich tại hãng truyền thông Netscape. JavaScript là ngôn ngữ lập trình bậc cao, giống C/C++, Java hay Python, là ngôn ngữ lập trình kiểu động (dynamic programming language), được tối ưu hóa nhằm nâng cao hiệu suất làm việc cho lập trình viên.

Chữ script trong JavaScript đã nói rõ JavaScript là một ngôn ngữ lập trình kịch bản (scripting language), nghĩa là nó sẽ được dịch tại thời điểm chạy. JavaScript là ngôn ngữ dựa trên hướng đối tượng (object-based) và nguyên mẫu (prototype-based).2 Các công nghệ và dịch vụ sử dụng 2.1 Giới thiệu MongoDB là một cơ sở dữ liệu tài liệu mã nguồn mở và cơ sở dữ liệu NoSQL hàng đầu. Là một giải pháp thay thế cho cơ sở dữ liệu quan hệ. Cơ sở dữ liệu quan hệ lưu trữ dữ liệu trong bảng, hàng và cột với mối quan hệ giữa các thực thể.

Dữ liệu trong MongoDB được biểu diễn và tương tác bằng các tài liệu JSON.2 Tính năng nổi bật Quản lý cả dữ liệu có tổ chức và phi cấu trúc trong nhiều ứng dụng bằng cách tích hợp với các ngôn ngữ lập trình phổ biến khác. 3 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT - Hỗ trợ rất nhiều truy vấn, hỗ trợ các truy vấn đặc biệt, giúp truy vấn phạm vi, tìm kiếm trường và tìm kiếm cụm từ regex. - Chia và tách cơ sở dữ liệu của mình bằng chức năng tích hợp sẵn của MongoDB.Cho phép lập chỉ mục cho bất kỳ trường nào trong tài liệu nhằm nâng cao hiệu suất tìm kiếm chung của MongoDB.3 Ưu điểm - So với các cơ sở dữ liệu quan hệ khác, việc tối ưu hóa hiệu suất rất đơn giản. - Do cách nó sử dụng bộ nhớ trong để lưu trữ dữ liệu, nó cho phép truy cập dữ liệu nhanh chóng.

- Sử dụng sharding, MongoDB mở rộng theo chiều ngang (phân vùng dữ liệu trên các máy chủ khác nhau). Dữ liệu của bạn được phân tách và đặt đồng đều trên các phân đoạn. Điều này giúp người đọc dễ dàng tìm thấy dữ liệu của họ. - Dễ bảo trì hơn cơ sở dữ liệu thông thường - Sao chép dữ liệu và phân phối khối lượng công việc đã được sử dụng để tăng tính khả dụng của dữ liệu và mang lại hiệu suất cao.4 Nhược điểm - MongoDB lưu trữ tên khóa của từng cặp giá trị.

Ngoài ra, sự dư thừa dữ liệu xảy ra do các giới hạn của phép nối. Kết quả là, bộ nhớ được nhìn thấy thường xuyên hơn mức cần thiết. - 16 MB là giới hạn kích thước tối đa cho tài liệu.5 Áp dụng vào đề tài Sử dụng thư viện Mongoose của MongoDB để kết nối database hệ thống. 4 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 Giới thiệu Node.js là một môi trường Runtime JavaScript.js ra đời là sự mở rộng của JavaScript, từ thứ chỉ có thể chạy trong trình duyệt, giờ có thể chạy trên máy tính như một ứng dụng độc lập.

Nhờ đó, JavaScript không còn chỉ là ngôn ngữ dành riêng cho việc tương tác với trang Web phía Front-end, mà JavaScript còn có thể dùng để xử lý ở phía Back-end.js đại diện cho mô hình “JavaScript ở mọi nơi”.2 Tính năng nổi bật - Node.js cung cấp cho nhà phát triển các API I/O hướng sự kiện và không đồng bộ. Nó cũng có thể diễn giải mã JavaScript thông qua công cụ JavaScript V8 của Google. - Hoạt động trên một vòng lặp dựa trên sự kiện theo luồng đơn để làm cho tất cả các lần thực thi không bị chặn.3 Ưu điểm - Hiệu suất cao cho các ứng dụng thời gian thực - Khả năng mở rộng dễ dàng cho các ứng dụng hiện đại - Tiết kiệm chi phí với Fullstack JS - Hỗ trợ cộng đồng để đơn giản hóa quá trình phát triển - Dễ học và thích ứng nhanh - Giúp xây dựng các Nhóm chức năng chéo - Cải thiện thời gian phản hồi của ứng dụng và tăng hiệu suất. - Giảm thời gian tải bằng bộ nhớ đệm nhanh - Giúp xây dựng các ứng dụng đa nền tảng.4 Nhược điểm 5 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT - MongoDB lưu trữ tên khóa của từng cặp giá trị.

Ngoài ra, sự dư thừa dữ liệu xảy ra do các giới hạn của phép nối. Kết quả là, bộ nhớ được nhìn thấy thường xuyên hơn mức cần thiết. - 16 MB là giới hạn kích thước tối đa cho tài liệu.5 Áp dụng vào đề tài Xây dựng các API 2.1 Giới thiệu Expressjs là một framework được xây dựng trên nền tảng của Nodejs. Nó cung cấp các tính năng mạnh mẽ để phát triển web hoặc mobile.

Expressjs hỗ trợ các method HTTP và midleware tạo ra API vô cùng mạnh mẽ và dễ sử dụng.2 Tính năng nổi bật - Thiết lập các lớp trung gian để trả về các HTTP request. - Define router cho phép sử dụng với các hành động khác nhau dựa trên phương thức HTTP và URL. - Cho phép trả về các trang HTML dựa vào các tham số.3 Ưu điểm - Giúp phát triển ứng dụng web Node.js nhanh chóng và dễ dàng. - Dễ dàng cấu hình và tùy chỉnh.

- Cho phép bạn xác định các tuyến của ứng dụng dựa trên các phương thức HTTP và URL. - Bao gồm các mô-đun phần mềm trung gian khác nhau mà bạn có thể sử dụng để thực hiện các tác vụ bổ sung theo yêu cầu và phản hồi. - Dễ dàng tích hợp với các công cụ mẫu khác nhau như Jade, Vash, EJS, v. - Cho phép bạn xác định một phần mềm trung gian xử lý lỗi.

- Dễ dàng phục vụ các tệp tĩnh và tài nguyên của ứng dụng của bạn. 6 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT - Cho phép bạn tạo máy chủ API REST. - Dễ dàng kết nối với các cơ sở dữ liệu như MongoDB, Redis, MySQL 2.4 Nhược điểm - Express cũng không chỉ ra cách triển khai bảo mật. - Các thông báo lỗi không thật sự hữu ích cho quá trình gỡ lỗi.5 Áp dụng vào đề tài Tạo các routings để map giữa giao diện người dùng (UI) và hệ thống, quyết định xử lý các request.1 Giới thiệu - ReactJS là một thư viện JavaScript, hiệu quả và linh hoạt để xây dựng các thành phần giao diện người dùng có thể tái sử dụng.

ReactJS là một thư viện giao diện người dùng dựa trên thành phần mã nguồn mở chỉ chịu trách nhiệm cho lớp view của ứng dụng. - Một ứng dụng ReactJS được tạo thành từ nhiều component, mỗi component chịu trách nhiệm xuất ra một đoạn mã HTML nhỏ, có thể tái sử dụng. Các component này có thể được lồng với các component khác để cho phép các ứng dụng phức tạp được xây dựng từ các khối xây dựng đơn giản. ReactJS sử dụng cơ chế dựa trên Virtual DOM để điền dữ liệu vào HTML DOM.

React Virtual DOM hoạt động nhanh vì nó chỉ thay đổi các phần tử DOM riêng lẻ thay vì tải lại toàn bộ DOM mỗi lần.2 Tính năng nổi bật - Ta có thể sử dụng React để xây dựng ứng dụng di động, đồng thời có thể tái sử dụng mã rộng rãi. Hơn thế, ta cũng có thể làm app trên Android, IOS và Web cùng một lúc. 7 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT - Rất dễ dàng để có thể kiểm tra các ứng dụng của Reat, có thể thực hiện thao tác với trạng thái khi chuyển đến chế độ xem ReactJS và xem đầu ra, các hành động, sự kiện, chức năng,… - Có thể sử dụng ReactJS để viết ứng dụng trực tiếp bằng JavaScript. - Biến các thành phần UI phức tạp trở thành những component độc lập.

- Chuyển các dữ liệu đã được tùy biến đến một UI component cụ thể. - Giúp thay đổi trạng thái cho nhiều component con và không gây ảnh hưởng đến component gốc dù đang ở trong đang ở trạng thái Stateful. - Khả năng xác định chính xác khi nào cần render lại cũng như khi nào bỏ đi phần tử DOM.3 Ưu điểm - Thuận tiện, khá dễ để học và sử dụng. - Tạo các ứng dụng web động trở nên dễ dàng hơn.

- Có lượng tài liệu phong phú, dễ sử dụng hơn nếu có nền tảng về Javascript. - Các thành phần có thể tái sử dụng. - Nâng cao hiệu suất khi ReactJS quản lý một Virtual DOM. DOM xử lý HTML, XML hoặc XHTML.

Nó là một API lập trình và đa nền tảng. Với ReactJS, người dùng không viết trực tiếp vào DOM mà vào Virtual DOM, do đó dẫn đến hiệu suất mượt mà và nhanh hơn. - Hỗ trợ các công cụ tiện dụng, với sự hiện diện của một bộ công cụ tiện dụng trong ReactJS tạo sự thuận tiện và dễ dàng hơn cho các nhà phát triển.4 Nhược điểm - ReactJS sử dụng JSX. Đó là một phần mở rộng cú pháp cho phép trộn lẫn HTML với JavaScript với nhau tạo sự phức tạp trong quá trình học tập.

- Trường hợp nhược điểm của tốc độ phát triển cao vì môi trường liên tục thay đổi quá nhanh, đòi hỏi học những cách làm việc mới thường xuyên. 8 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.5 Áp dụng vào đề tài Xây dựng giao diện người dùng (UI) 2.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ