Đồ Án Tốt Nghiệp Công Nghệ Thông Tin: Xây Dựng Hệ Thống Tư Vấn Sinh Viên Sử Dụng MERN Stack

Đồ án tốt nghiệp CNTT xây dựng hệ thống tư vấn sinh viên sử dụng MERN Stack, ứng dụng công nghệ hiện đại, hỗ trợ hiệu quả quản lý và tư vấn.

Chuyên ngành

Công nghệ thông tin

Người đăng

Ẩn danh

Thể loại

Đồ án tốt nghiệp

2024

181
2
0

Phí lưu trữ

45 Point

Mục lục chi tiết

LỜI CẢM ƠN

1. PHẦN MỞ ĐẦU

1.1. TÍNH CẤP THIẾT CỦA ĐỀ TÀI

1.2. MỤC TIÊU ĐỀ TÀI

1.3. PHƯƠNG PHÁP THỰC HIỆN

2. PHẦN NỘI DUNG

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

1.1. MERN Stack là gì ?

1.2. Tại sao nên chọn MERN Stack ?

1.3. Cấu trúc kiến trúc của MERN Stack và cách nó hoạt động?

1.4. Các thành phần của MERN Stack

1.5. Ưu điểm của MERN Stack

3. CHƯƠNG 2: KHẢO SÁT PHÂN TÍCH VÀ THIẾT KẾ

2.1. Phân tích hiện trạng

2.2. Yêu cầu chức năng nghiệp vụ

2.3. Yêu cầu chức năng hệ thống

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

4. CHƯƠNG 3: MÔ HÌNH HÓA YÊU CẦU

3.1. Danh sách các tác nhân và chức năng của hệ thống

3.2. Lược đồ chức năng

3.2.1. Người dùng (Người dùng đã có tài khoản)

3.2.2. Trưởng nhóm

3.2.3. Quản trị viên

3.3. Đặc tả use case

3.3.1. Đặc tả use case cho khách

3.3.2. Đặc tả use case cho người dùng

3.3.3. Đặc tả use case cho tư vấn viên

3.3.4. Đặc tả use case cho trưởng nhóm

3.3.5. Đặc tả use case cho giám sát viên

3.3.6. Đặc tả use case cho quản trị viên

5. CHƯƠNG 4: THIẾT KẾ PHẦN MỀM

4.1. Lược đồ tuần tự

4.2. Xem câu hỏi đã được trả lời

4.3. Xem thư viện câu hỏi

4.4. Xem danh sách tin tức

4.5. Xem danh sách tư vấn viên

4.6. Đặt câu hỏi

4.7. Trả lời câu hỏi công khai

4.8. Trả lời câu hỏi qua tin nhắn

4.9. Phản hồi tin nhắn

4.10. Duyệt câu trả lời

4.11. Không duyệt và gửi phản hồi

4.12. Lược đồ cơ sở dữ liệu

6. CHƯƠNG 5: GIAO DIỆN VÀ XỬ LÝ

5.1. Phiên bản Web

5.1.1. Trang đăng nhập

5.1.2. Trang quên mật khẩu

5.1.3. Trang thư viện câu hỏi

5.1.4. Trang danh sách tư vấn viên

5.1.5. Trang tin tức

5.1.6. Trang thông tin cá nhân

5.1.7. Trang xác minh tài khoản

5.1.8. Lịch sử tư vấn

5.1.9. Trang danh sách câu hỏi của tư vấn viên

5.1.10. Trang tư vấn viên xem chi tiết câu hỏi

5.1.11. Trang xem phản hồi từ trưởng nhóm

5.1.12. Trang thống kê của trưởng nhóm

5.1.13. Trang quản lý lĩnh vực của trưởng nhóm

5.1.14. Trang quản lý nhân sự của trưởng nhóm

5.1.15. Trang quản lý FAQ

5.1.16. Trang duyệt câu trả lời

5.1.17. Trang thống kê quản trị viên

5.1.18. Trang quản lý khoa

5.1.19. Trang quản lý người dùng

5.1.20. Trang quản lý tin tức

5.2. Phiên bản di động

5.2.1. Trang chủ của tư vấn viên

5.2.2. Trang danh sách câu hỏi chờ

5.2.3. Màn hình chi tiết câu hỏi

5.2.4. Trang thống kê cho trưởng nhóm

5.2.5. Trang chủ của trưởng nhóm

5.2.6. Trang quản lý tư vấn viên của trưởng nhóm

5.2.7. Trang quản lý lĩnh vực cho trưởng nhóm

5.2.8. Trang quản lý FAQ cho trưởng nhóm

5.2.9. Trang nhắn tin cho tư vấn viên

5.2.10. Trang thống kê của quản trị viên

5.2.11. Trang chủ cho quản trị viên

5.2.12. Trang quản lý khoa cho Admin

5.2.13. Trang quản lý tin tức của quản trị viên

5.2.14. Trang đăng nhập

5.2.15. Trang quên mật khẩu

5.2.16. Trang chủ cho người dùng

5.2.17. Trang xem thư viện câu hỏi

5.2.18. Trang xem danh sách tư vấn viên

5.2.19. Trang đặt câu hỏi

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

6.1. Chuẩn bị file cài đặt

6.2. Cài đặt MongoDB

6.3. Cài đặt NodeJS

6.4. Cài đặt ExpressJS

6.5. Cài đặt ReactJS

6.6. Cài đặt React Native

6.7. Môi trường thử nghiệm

6.8. Chạy thử ứng dụng

PHẦN KẾT LUẬN

NHỮNG KẾT QUẢ ĐẠT ĐƯỢC

ƯU ĐIỂM VÀ NHƯỢC ĐIỂM

HƯỚNG PHÁT TRIỂN

DANH SÁCH TÀI LIỆU THAM KHẢO

NHẬT KÝ LÀM VIỆC CÙNG GIẢNG VIÊN HƯỚNG DẪN

Tóm tắt

I. Đồ Án Tốt Nghiệp CNTT

Đồ án tốt nghiệp CNTT là một phần quan trọng trong chương trình đào tạo của sinh viên ngành Công nghệ thông tin. Đồ án này không chỉ giúp sinh viên áp dụng kiến thức lý thuyết vào thực tiễn mà còn là cơ hội để họ phát triển kỹ năng chuyên môn và giải quyết vấn đề. Trong đồ án này, sinh viên được yêu cầu xây dựng một hệ thống hoàn chỉnh, từ phân tích, thiết kế đến triển khai và kiểm thử. Xây dựng hệ thống tư vấn sinh viên là một đề tài phù hợp, giúp sinh viên hiểu rõ hơn về quy trình phát triển phần mềm và ứng dụng công nghệ vào thực tế.

1.1. Mục tiêu của đồ án

Mục tiêu chính của đồ án tốt nghiệp CNTT là giúp sinh viên vận dụng kiến thức đã học để xây dựng một hệ thống thực tế. Đồ án này yêu cầu sinh viên phải nắm vững các công nghệ hiện đại như MERN Stack, từ đó phát triển một ứng dụng web và di động hoàn chỉnh. Hệ thống tư vấn sinh viên được chọn làm đề tài vì tính ứng dụng cao trong giáo dục, giúp sinh viên nhận được sự hỗ trợ kịp thời từ các tư vấn viên.

1.2. Tính cấp thiết của đề tài

Trong bối cảnh công nghệ thông tin phát triển mạnh mẽ, việc ứng dụng công nghệ vào giáo dục là xu hướng tất yếu. Hệ thống tư vấn sinh viên giúp giải quyết các vấn đề liên quan đến học tập và phát triển cá nhân của sinh viên. Hệ thống này không chỉ giảm tải áp lực cho đội ngũ tư vấn truyền thống mà còn cung cấp một kênh tương tác hiệu quả giữa sinh viên và tư vấn viên.

II. Xây Dựng Hệ Thống Tư Vấn Sinh Viên

Xây dựng hệ thống tư vấn sinh viên là một quá trình phức tạp, đòi hỏi sự kết hợp giữa kiến thức lý thuyết và kỹ năng thực hành. Hệ thống này được thiết kế để hỗ trợ sinh viên trong việc đặt câu hỏi và nhận phản hồi từ các tư vấn viên. MERN Stack được lựa chọn làm nền tảng phát triển vì tính linh hoạt và hiệu quả của nó trong việc xây dựng ứng dụng web và di động.

2.1. Các chức năng chính của hệ thống

Hệ thống bao gồm các chức năng chính như đăng ký, đăng nhập, đặt câu hỏi, trả lời câu hỏi, và quản lý tư vấn viên. Sinh viên CNTT có thể sử dụng hệ thống để đặt câu hỏi về các vấn đề học tập, trong khi tư vấn viên có thể phản hồi và cung cấp thông tin hữu ích. Hệ thống cũng hỗ trợ tìm kiếm câu hỏi và quản lý dữ liệu sinh viên một cách hiệu quả.

2.2. Lợi ích của hệ thống

Hệ thống tư vấn sinh viên mang lại nhiều lợi ích, bao gồm việc cải thiện chất lượng đào tạo, hỗ trợ sinh viên trong quá trình học tập, và giảm tải áp lực cho đội ngũ tư vấn truyền thống. Hệ thống cũng giúp tăng cường sự tương tác giữa sinh viên và tư vấn viên, tạo ra một môi trường học tập tích cực và hiệu quả.

III. MERN Stack và Ứng Dụng

MERN Stack là một bộ công nghệ phổ biến trong việc phát triển ứng dụng web và di động. Nó bao gồm MongoDB, Express.js, React.js, và Node.js. Sự kết hợp của các công nghệ này giúp tạo ra một hệ thống mạnh mẽ, linh hoạt và dễ dàng mở rộng. Trong đồ án này, MERN Stack được sử dụng để xây dựng hệ thống tư vấn sinh viên, từ việc thiết kế cơ sở dữ liệu đến phát triển giao diện người dùng.

3.1. Các thành phần của MERN Stack

MERN Stack bao gồm bốn thành phần chính: MongoDB (cơ sở dữ liệu NoSQL), Express.js (framework backend), React.js (thư viện frontend), và Node.js (môi trường runtime). Sự kết hợp này cho phép phát triển ứng dụng web và di động một cách nhanh chóng và hiệu quả. MongoDB được sử dụng để lưu trữ dữ liệu sinh viên và câu hỏi, trong khi React.js giúp tạo ra giao diện người dùng thân thiện và dễ sử dụng.

3.2. Ưu điểm của MERN Stack

MERN Stack mang lại nhiều ưu điểm, bao gồm tính linh hoạt, khả năng mở rộng, và hiệu suất cao. Nó cho phép các nhà phát triển xây dựng ứng dụng một cách nhanh chóng và dễ dàng bảo trì. Hệ thống tư vấn sinh viên được xây dựng trên nền tảng này sẽ có khả năng xử lý lượng lớn dữ liệu và cung cấp trải nghiệm người dùng tốt nhất.

21/02/2025

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

PHẦN MỞ ĐẦU 1. TÍNH CẤP THIẾT CỦA ĐỀ TÀI Trong thời đại phát triển của công nghệ thông tin, việc ứng dụng công nghệ vào các lĩnh vực của đời sống xã hội ngày càng trở nên phổ biến, trong đó có lĩnh vực giáo dục. Việc xây dựng hệ thống tư vấn sinh viên là một giải pháp hữu ích, giúp nâng cao chất lượng đào tạo, hỗ trợ sinh viên học tập và phát triển toàn diện. Hệ thống tư vấn sinh viên bao gồm ứng dụng Website và di động, nơi không chỉ sinh viên mà còn có cựu sinh viên, phụ huynh, học sinh có thể đặt câu hỏi cho ban tư vấn hệ thống là các giảng viên của nhà trường, sinh viên được chọn làm tư vấn viên và nhận được phản hồi từ họ về các vấn đề liên quan đến học tập và ngoài việc học tập.

Hệ thống có thể giúp giải quyết các vấn đề và mang lại những lợi ích to lớn. Hệ thống cung cấp cho sinh viên các lĩnh vực để có thể xin tư vấn tùy theo thắc mắc của sinh viên,. Qua đó, hệ thống giúp sinh viên có thể nhận câu hỏi từ những giảng viên có hiểu biết về lĩnh vực và nhận được câu trả lời đúng đắn. Hệ thống giúp giảng viên giải đáp thắc mắc của sinh viên một cách nhanh chóng, giảm tải số lượng sinh viên đến trực tiếp các phòng chức năng để hỏi các vấn đề từ đó giảm tải áp lực cho đội tư vấn truyền thống của nhà trường.

Hệ thống tư vấn sinh viên là một giải pháp hiệu quả, góp phần nâng cao chất lượng đào tạo, hỗ trợ sinh viên học tập và phát triển toàn diện. Do đó chúng em quyết định thực hiện đề tài : “Xây dựng hệ thống tư vấn sinh viên sử dụng MERN Stack” 2. MỤC TIÊU ĐỀ TÀI Xây dựng hệ thống tư vấn cho sinh viên. Vận dụng MERN Stack để xây dựng hệ thống.

PHƯƠNG PHÁP THỰC HIỆN Tìm hiểu các kiến thức cần thiết để thực hiện đề tài: - Các kỹ thuật phân tích thiết kế hệ thống: o Thiết kế cơ sở dữ liệu: Các kiến thức về thiết kế cơ sở dữ liệu NoSQL như MongoDB, bao gồm cách thiết kế schema-less và tối ưu hóa truy vấn. 18 PHẦN MỞ ĐẦU o Thiết kế API: Phân tích và thiết kế các API RESTful hoặc GraphQL để giao tiếp giữa frontend và backend. - Tìm hiểu các framework và thư viện chính cho đề tài: o Express.js: Cụ thể, hiểu về cách Express.js hoạt động như một framework backend cho Node.js, cách xử lý middleware và routing trong ứng dụng. o React và React Native: ▪ React (cho ứng dụng web): Hiểu về cách sử dụng React để xây dựng giao diện người dùng, cách sử dụng component, JSX và viết các ứng dụng đơn trang (Single Page Applications - SPAs).

▪ React Native (cho ứng dụng di động): Tìm hiểu cách sử dụng React Native để phát triển ứng dụng di động đa nền tảng, bao gồm cấu trúc dự án, component và các thư viện hỗ trợ. - Công cụ và kỹ năng khác: o Git và GitHub: Quản lý mã nguồn và phiên bản, làm việc nhóm. 19 CƠ SỞ LÝ THUYẾT PHẦN NỘI DUNG CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1. MERN Stack là gì ? Hình 1.1: MERN Stack [1] MERN Stack là một bộ công nghệ phổ biến được sử dụng để phát triển các ứng dụng web hiện đại, bao gồm cả frontend và backend.

MERN là từ viết tắt của bốn công nghệ chính: - MongoDB: Một cơ sở dữ liệu NoSQL phổ biến, lưu trữ dữ liệu dưới dạng tài liệu (document) thay vì các bảng như trong các hệ quản trị cơ sở dữ liệu quan hệ (RDBMS). MongoDB sử dụng định dạng BSON (Binary JSON) để lưu trữ dữ liệu, giúp truy xuất và xử lý dữ liệu nhanh chóng.js: Một framework cho Node.js, cung cấp các tính năng mạnh mẽ để xây dựng các API và các ứng dụng web dễ dàng và nhanh chóng.js giúp tổ chức và quản lý các chức năng của ứng dụng web thông qua routing và middleware. - React: Một thư viện JavaScript được sử dụng để xây dựng giao diện người dùng (UI) cho các ứng dụng web. React cho phép tạo ra các component UI tái sử dụng, giúp quản lý trạng thái và dữ liệu dễ dàng hơn.js: Một môi trường thực thi JavaScript trên máy chủ, cho phép sử dụng JavaScript để phát triển các ứng dụng phía server.js sử dụng mô hình non- blocking và event-driven, giúp xử lý nhiều yêu cầu cùng lúc một cách hiệu quả.

Tại sao nên chọn MERN Stack ? Tiết kiệm chi phí khi xây dựng: - JavaScript: Cả bốn công nghệ trong MERN Stack (MongoDB, Express.js, React, Node.js) đều dựa trên JavaScript, giúp giảm chi phí đào tạo và thuê mướn lập trình viên vì chỉ cần một ngôn ngữ duy nhất cho cả frontend và backend. - Mã nguồn mở: Tất cả các công nghệ trong MERN Stack đều là mã nguồn mở, giúp giảm chi phí mua sắm công cụ và phần mềm. Thân thiện với SEO: - Ứng dụng web xây dựng bằng React.js có thể được cấu hình để dễ dàng thu thập thông tin bởi các công cụ tìm kiếm như Google, Yahoo. Điều này giúp cải thiện khả năng tìm kiếm và xếp hạng trang web.

Hiệu suất cao: - Faster Response: Node.js và MongoDB kết hợp với nhau giúp cải thiện tốc độ phản hồi giữa frontend và backend, giúp ứng dụng chạy mượt mà và nhanh chóng. - Non-blocking I/O: Node.js sử dụng mô hình asynchronous I/O và non-blocking, giúp xử lý nhiều yêu cầu cùng một lúc một cách hiệu quả. Bảo mật tốt hơn: - Các ứng dụng xây dựng bằng MERN Stack có thể tích hợp dễ dàng với các nhà cung cấp dịch vụ hosting bảo mật. Ngoài ra, các công cụ bảo mật của MongoDB và Node.js cũng giúp bảo vệ ứng dụng khỏi các mối đe dọa từ Internet.

Tốc độ phát triển nhanh: - Fast Delivery: Sử dụng MERN Stack giúp rút ngắn thời gian phát triển và triển khai ứng dụng, từ đó giúp đưa sản phẩm đến tay khách hàng nhanh hơn. - Fast Modifications: Các công nghệ trong MERN Stack hỗ trợ việc thay đổi và cập nhật ứng dụng một cách nhanh chóng và dễ dàng theo yêu cầu của khách hàng. Mã nguồn mở và cộng đồng hỗ trợ mạnh mẽ: 21 CƠ SỞ LÝ THUYẾT - Tất cả các công nghệ trong MERN Stack đều là mã nguồn mở, cung cấp một lượng lớn tài liệu và cộng đồng hỗ trợ, giúp lập trình viên dễ dàng tìm kiếm giải pháp cho các vấn đề phát sinh trong quá trình phát triển. Dễ dàng chuyển đổi giữa client và server: - Do tất cả các công nghệ đều sử dụng JavaScript, việc chuyển đổi và tích hợp giữa front-end và back-end trở nên dễ dàng và mượt mà hơn.

Cấu trúc kiến trúc của MERN Stack và cách nó hoạt động? [1] Cấu trúc kiến trúc của MERN Stack bao gồm bốn thành phần chính: MongoDB, Express.js, React và Node. Đây là các công nghệ phổ biến và mạnh mẽ được sử dụng để phát triển ứng dụng web và di động toàn diện. Hãy đi vào từng thành phần và cách chúng hoạt động cùng nhau trong kiến trúc MERN Stack: - [5] MongoDB (Database): o MongoDB là một hệ quản trị cơ sở dữ liệu NoSQL, dữ liệu được lưu trữ dưới dạng các tài liệu (documents) dựa trên BSON (Binary JSON). o MongoDB không yêu cầu một cấu trúc schema cố định, cho phép linh hoạt trong việc lưu trữ dữ liệu và thích ứng với các thay đổi cấu trúc dữ liệu.

o Dữ liệu trong MongoDB được tổ chức thành các bộ sưu tập (collection) và các tài liệu (document) không cần phải tuân thủ một mô hình quan hệ như các hệ quản trị cơ sở dữ liệu quan hệ (RDBMS).js là một framework phổ biến cho Node.js, cung cấp một cách tiếp cận đơn giản để xây dựng các ứng dụng web và API.js giúp quản lý các yêu cầu HTTP và các middleware, cho phép xử lý các yêu cầu từ phía client và cung cấp các phản hồi tương ứng. o Nó cho phép xử lý định tuyến (routing) và middleware để điều hướng và xử lý các yêu cầu HTTP từ client đến server. - React (Frontend): o [2] React cho Web: 22 CƠ SỞ LÝ THUYẾT ▪ React cho phép phân chia giao diện thành các thành phần độc lập gọi là component. Mỗi component quản lý một phần của giao diện và có thể tái sử dụng trong nhiều nơi khác nhau trong ứng dụng.

▪ Nó sử dụng JSX (JavaScript XML), một cú pháp mở rộng của JavaScript, để kết hợp mã HTML với JavaScript. JSX giúp việc viết mã giao diện trở nên đơn giản hơn và dễ hiểu hơn so với việc sử dụng các phương pháp truyền thống. ▪ React sử dụng virtual DOM (Document Object Model) để tối ưu hóa hiệu suất render giao diện, chỉ render lại những thành phần thay đổi thực sự thay vì render lại toàn bộ DOM, giúp tăng tốc độ và hiệu quả của ứng dụng web. o [3] React Native cho Mobile: ▪ React Native là một framework cho phép phát triển ứng dụng di động sử dụng JavaScript và React.

▪ Nó cho phép lập trình viên sử dụng các thành phần React để xây dựng giao diện người dùng cho cả iOS và Android. ▪ React Native sử dụng các thành phần giao diện tương tự như React, nhưng thay vì render ra HTML, nó sử dụng các thành phần tương thích với giao diện người dùng native của từng hệ điều hành. ▪ Điểm mạnh của React Native là khả năng tái sử dụng mã nguồn giữa các nền tảng, giảm thiểu thời gian phát triển và chi phí bảo trì ứng dụng di động.js là một môi trường thực thi mã nguồn mở cho phép chạy JavaScript ngoài môi trường trình duyệt. o Nó được sử dụng để xây dựng các ứng dụng server-side và cung cấp các API để tương tác với cơ sở dữ liệu và các dịch vụ bên ngoài.js sử dụng mô hình không đồng bộ (asynchronous) và không chặn (non-blocking) để xử lý nhiều yêu cầu cùng một lúc một cách hiệu quả.

Các thành phần của MERN Stack MERN Stack là một công nghệ stack bao gồm các thành phần chính sau: 23 CƠ SỞ LÝ THUYẾT - [5] MongoDB: Hình 1.2: Mongo DB o MongoDB là một hệ quản trị cơ sở dữ liệu NoSQL (Non-SQL hoặc Not Only SQL) phổ biến. o Nó lưu trữ dữ liệu dưới dạng các tài liệu (document) có cấu trúc linh hoạt (schema-less). o MongoDB sử dụng BSON (Binary JSON) để lưu trữ dữ liệu, cho phép nó hoạt động nhanh và hiệu quả trong việc truy xuất và lưu trữ dữ liệu. o Được sử dụng cho lưu trữ dữ liệu của ứng dụng, MongoDB cung cấp tính mở rộng (scalability) tốt và có hỗ trợ các tính năng để nâng cao hiệu suất và độ tin cậy.3: Express JS o Express.js là một framework backend cho Node.js, được sử dụng để xây dựng các ứng dụng web và API.

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

Đồ Án Tốt Nghiệp CNTT: Xây Dựng Hệ Thống Tư Vấn Sinh Viên Với MERN Stack là một tài liệu chuyên sâu về việc ứng dụng công nghệ MERN Stack (MongoDB, Express.js, React.js, Node.js) để phát triển hệ thống tư vấn sinh viên. Tài liệu này không chỉ cung cấp kiến thức chi tiết về quy trình xây dựng hệ thống mà còn giúp người đọc hiểu rõ cách tích hợp các công nghệ hiện đại vào thực tế. Đây là nguồn tài liệu hữu ích cho sinh viên CNTT muốn nâng cao kỹ năng lập trình và quản lý dự án.

Nếu bạn quan tâm đến các dự án tương tự, bạn có thể khám phá thêm về Phát triển website quản lý bán hàng thời trang Sober sử dụng ReactJS, NodeJS, MongoDB, một đồ án tốt nghiệp khác ứng dụng công nghệ web hiện đại. Bên cạnh đó, Nghiên cứu mô hình MVC Laravel và xây dựng website đăng ký đề tài luận văn cũng là một tài liệu đáng tham khảo để hiểu sâu hơn về các mô hình phát triển web. Cuối cùng, Đồ án thực tập tốt nghiệp CNTT: Tìm hiểu Ruby on Rails, Arduino và xây dựng ứng dụng quản lý thư viện sẽ mang đến góc nhìn đa chiều về việc ứng dụng các framework và công nghệ khác nhau trong phát triển phần mềm.

Hãy khám phá các tài liệu này để mở rộng kiến thức và tìm cảm hứng cho các dự án của bạn!