Tuy nhiên, thách thức đối với việc tổ chức sự kiện là thông tin không được quản lý tập trung, dẫn đến sự thiếu chú ý của sinh viên và giảm số lượng người tham gia.. Mục đích chính của dự
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM
Tp Hồ Chí Minh, 09/2023
Trang 2Lời cám ơn
Xin chân thành cảm ơn trường Đại học Công nghệ Thông tin ĐHQG TP.HCM, quý Thầy, Cô Bộ môn đã tạo điều kiện và hỗ trợ chúng em trong quá trình học tập môn đồ án 1 vừa qua Nhờ sự đồng lòng và sự quan tâm của quý Thầy, Cô, chúng em đã có một môi trường học tập thuận lợi và được trao dồi kiến thức một cách hiệu quả
Chúng em xin chân thành cảm ơn Cô Huỳnh Thị Mộng Trinh, người đã dành thời gian và tâm huyết để giảng dạy, giải đáp thắc mắc và hỗ trợ chúng em trong suốt thời gian qua Sự tận tâm và sự chỉ dẫn tận tình của Cô đã giúp chúng em hiểu rõ hơn về nội dung đồ án và phát triển đồ án một cách tốt nhất
Cảm ơn các thành viên trong nhóm đã cống hiến và hoàn thành xuất sắc công việc được giao Mặc dù công việc không dễ dàng và gặp nhiều khó khăn trong quá trình trao đổi ý kiến và thảo luận, nhưng mọi người luôn nỗ lực đóng góp ý kiến và hỗ trợ lẫn nhau Sự tích cực và tinh thần đoàn kết của cả nhóm đã tạo nên thành công cuối cùng của dự án Chúng em nhận thức rằng kiến thức mà nhóm tìm hiểu vẫn còn hạn chế và dự án của chúng em vẫn còn thiếu sót Vì vậy chúng em rất mong nhận được sự góp ý chân thành từ Cô để chúng em có thể rút kinh nghiệm, nâng cao kiến thức và hoàn thiện đề tài nghiên cứu của nhóm
Một lần nữa, chúng em xin chân thành cảm ơn sâu sắc Chúng em rất biết ơn và tự hào vì đã có cơ hội được học tập và làm việc dưới sự hướng dẫn của cô Huỳnh Thị Mộng Trinh Mong rằng chúng em sẽ tiếp tục nhận được sự hỗ trợ và định hướng từ cô trong tương lai
Ngày 15 tháng 12 năm 2023 Thành phố Hồ Chí Minh Trân trọng, Nhóm sinh viên thực hiện
Trang 3MỤC LỤC
Chương 1:Mở đầu 7
1.1.1 Giới thiệu đề tài 7
Chương 2:Tổng quan 8
2.1.1 Quy trình tổng hợp sự kiện tại UIT 8
2.1.2 Quyền đóng góp ý tưởng của sinh viên 8
2.1.3 Quy trình cập nhật các loại chứng chỉ dùng để xét danh hiệu 8
2.2.1 Website tổng hợp sự kiện 8
2.2.2 Xây dựng tính năng gợi ý xét thưởng 8
2.2.3 Cập nhật trực tiếp chứng chỉ lên hệ thống 8
2.2.4 Đóng góp ý tưởng 8
2.3.1 Thu thập và xử lý dữ liệu đáng tin cậy 9
2.3.2 Cải thiện tính năng hiển thị thông tin 9
2.3.3 Xây dựng quy trình hoạt động của hệ thống 9
2.3.4 Thiết kế giao diện người dùng tương tác 9
Trang 42.5.13 Quản Lý Đăng Nhập và Bảo Mật: 10
Chương 3:Cơ sở lí thuyết 11
3.2.2 Ưu điểm của API 14
3.2.3 Nhược điểm của API 14
3.3.1 NOSQL 14
3.3.2 MongoDB 15
3.3.3 Các thuật ngữ hay sử dụng trong MongoDB 16
3.3.4 Ưu điểm của MongoDB 17
3.3.5 Nhược điểm khi sử dụng MongoDB 18
3.5.1 Khái niệm Firebase 20
3.5.2 Chức năng chính của Google Firebase 20
3.5.3 Lợi ích của Google Firebase 21
Chương 4:Quá trình thực hiện 23
4.3.1 Database diagram 23
4.3.2 Use-case diagram 24
4.4.1 Giao diện chung khi không đăng nhập 25
4.4.2 Giao diện đăng nhập 26
4.4.3 Giao diện đóng góp ý tưởng dành cho sinh viên 26
4.4.4 Giao diện cập nhật minh chứng các chứng chỉ 26
4.4.5 Giao diện các sự kiện đang chờ duyệt 28
Trang 54.4.6 Giao diện lịch sử các sự kiện đã tham gia và đề xuất tham gia các sự kiện khác 29
Chương 5:Kết luận 30
Trang 6Mục lục hình ảnh
Hình 3 1 Thiết lập tập tin app.js 12
Hình 3 2 Khởi động server 12
Hình 3 3 Thêm Middleware Body Parsing 13
Hình 3 4 Sơ lược API 13
Hình 3 5 Các tính năng của MongoDB 16
Hình 3 6 Hiệu năng của MongoDB 18
Hình 3 7 Mongoose 19
Hình 3 8 Mongoose 20
Hình 4 1 Database Diagram NoSQL 23
Hình 4 2 Sơ đồ usecase 24
Hình 4 3 Giao diện chung khi không đăng nhập 25
Hình 4 4 Giao diện đăng nhập 26
Hình 4 5 Giao diện đóng góp ý tưởng 26
Hình 4 6 Giao diện cập nhật chứng chỉ 27
Hình 4 7 Giao diện các sự kiện chờ duyệt 28
Hình 4 8 Giao diện lịch sử các sự kiện đã tham gia và đề xuất tham gia 29
Trang 7Chương 1: Mở đầu Lí do chọn đề tài
1.1.1 Giới thiệu đề tài
Ngày nay, tổ chức sự kiện đóng một vai trò quan trọng trong môi trường làm việc, đặc biệt là trong ngữ cảnh giáo dục như các trường đại học Tuy nhiên, thách thức đối với việc tổ chức sự kiện là thông tin không được quản lý tập trung, dẫn đến sự thiếu chú ý của sinh viên và giảm số lượng người tham gia Đồng thời, việc kiểm tra sự tham gia, thu thập thông tin và phản hồi từ người tham gia sự kiện vẫn gặp khó khăn do các phương pháp truyền thống không hiệu quả Các phương pháp và hệ thống quản lý sự kiện hiện đại, dựa trên Internet, được đề xuất nhằm giải quyết vấn đề này tại các trường đại học Những phương pháp và hệ thống này, tích hợp chương trình máy tính, không chỉ giúp tiết kiệm chi phí tổ chức mà còn cải thiện quản lý sự kiện trên cả điện thoại di động và máy tính Điều này giúp dễ dàng kiểm tra thống kê người tham gia và nâng cao mức độ giao tiếp và tương tác của sinh viên Mục đích chính của dự án này là tạo ra một nền tảng nơi sinh viên có thể tìm thấy tất cả các sự kiện, hoạt động khoa, câu lạc bộ của trường và biết được tin tức, thông báo cập nhật Ngược lại, người tổ chức sự kiện có thể quản lý thông tin của sinh viên đã tham gia các sự kiện trước đó của họ và hơn thế nữa
Đối tượng và phạm vi đề tài
• Phạm vi đề tài
nơi các sự kiện của trường, khoa và câu lạc bộ của họ thường xuyên tổ chức • Đối tượng
học để tìm kiếm, theo dõi tham gia, đề xuất các sự kiện giáo dục được tổ chức bởi câu lạc bộ trong trường
người tổ chức sự kiện trong việc quản lý thông tin, đăng thông báo, và tổ chức sự kiện một cách hiệu quả
trường đại học, cung cấp công cụtheo dõi và đánh giá hoạt động của các câu lạc bộ…, tối ưu hóa quy trình quản lý toàn bộ hệ thống, tiếp nhận các ý tưởng mới được gợi ý từ sinh viên
Trang 8Chương 2: Tổng quan
Phân tích hướng quy trình cũ trong quản lý sự kiện, hoạt động
2.1.1 Quy trình tổng hợp sự kiện tại UIT
Nhóm tác giả đặt ra bài toán về việc tổng hợp lại các sự kiện được tổ chức tại trường đại học Công nghệ Thông tin nhằm mục đích hỗ trợ sinh viên có một nền tảng chung cho việc tổng hợp các sự kiện hoạt động
Giảm thiểu sự phức tạp trong các quy trình xét duyệt các danh hiệu tại trường Đối với việc đăng ký xét danh hiệu, quy trình cũ còn nhiều bất cập và bất tiện dành cho sinh viên như sinh viên khó nắm bắt được các sự kiện cần thiết tham gia để hỗ trợ xét các danh hiệu, không nắm rõ được những sự kiện mình đã tham gia, không hiểu rõ được các danh hiệu đang và sắp mở xét duyệt
2.1.2 Quyền đóng góp ý tưởng của sinh viên
Đối với sinh viên không thuộc các tổ chức như BCH đoàn khoa, CLB đội nhóm,… Thì thường sẽ bị hạn chế và không có cơ hội đề xuất các hoạt động, sự kiện mà những sinh viên này biết tới cho nhà trường Những đóng góp ý kiến và ý tưởng của sinh viên sẽ giúp tăng tỉ lệ thành công cũng như sự phù hợp của các sự kiện sắp được tổ chức trong nhà trường
2.1.3 Quy trình cập nhật các loại chứng chỉ dùng để xét danh hiệu
Cập nhật các loại chứng chỉ ngoài khi xét danh hiệu hiện đang được thực hiện thủ công Khi các đợt xét danh hiệu được mở, sinh viên có nhu cầu thường sẽ phải cập nhật các chứng chỉ này bằng Forum, một cách cập nhật bất tiện và không đảm bảo
Rút kinh nghiệm và đề xuất hướng xây dựng phần mềm
2.2.1 Website tổng hợp sự kiện
Xây dựng Website dành riêng cho việc tổng hợp sự kiện, hoạt động tại trường, có sự phân chia theo các nhóm sự kiện từ sự kiện cấp trường, khoa cho đến cấp câu lạc bộ Hỗ trợ sinh viên tìm kiếm và tìm hiểu thông tin của các sự kiện một cách dễ dàng
2.2.2 Xây dựng tính năng gợi ý xét thưởng
Hệ thống mới sẽ cung cấp các gợi ý hỗ trợ xuyên suốt quá trình giúp sinh viên có thể nắm được các điều kiện còn thiếu đối với các loại danh hiệu được mở xét thưởng trong năm, từ đó tạo định hướng giúp sinh viên dễ dàng hơn trong việc đăng ký xét danh hiệu
2.2.3 Cập nhật trực tiếp chứng chỉ lên hệ thống
Sinh viên có thể thực hiện cập nhật, xem, xóa các chứng chỉ mình đã cung cấp, hệ thống sẽ lưu trữ đầy đủ thông tin của các chứng chỉ Khi nhà trường tiến hành xét danh hiệu đối với các sinh viên đăng ký thì có thể dễ dàng kiểm tra các chứng chỉ sinh viên cung cấp, điều này hạn chế sự thiếu sót, tính xác thực và một số điều khác trong quy trình xét thưởng
2.2.4 Đóng góp ý tưởng
Tất cả sinh viên trường đều có cơ hội được đóng góp ý tưởng của bản thân cho việc phát triển các sự kiện hoạt động tại trường Ngoài ra, dựa vào hệ thống phân tích và
Trang 9xử lý dữ liệu có thể tiến hành tổng hợp các ý tưởng của các bạn sinh viên để xây dựng một kinh bản sự kiện hoạt động mới mẻ
Các vấn đề cần giải quyết
2.3.1 Thu thập và xử lý dữ liệu đáng tin cậy
Tiến hành khảo sát quy trình hoạt động, nội dung các sự kiện tại UIT, thu thập một số hình ảnh, nội dung,… để tiến hành xây dựng bộ dữ liệu mẫu cho việc phát triển ứng dụng.
2.3.2 Cải thiện tính năng hiển thị thông tin
Tính năng hiển thị thông tin một cách rõ ràng, phân chia các loại sự kiện rõ ràng, theo các cấp bậc, tạo hệ thống lọc sự kiện hợp lý giúp người dùng dễ dàng tìm kiếm sự kiện mong muốn
2.3.3 Xây dựng quy trình hoạt động của hệ thống
Xây dựng một quy trình sử dụng hệ thống hợp lý, sát với thực tế, nâng cao tối đa sự tiện lợi dành cho người dùng, đồng thời rút ngắn các quy trình không cần thiết
2.3.4 Thiết kế giao diện người dùng tương tác
Nghiên cứu về cách thiết kế giao diện người dùng thân thiện, trực quan và dễ sử dụng Tìm hiểu về cách sắp xếp thông tin, tạo hiệu ứng tương tác và cung cấp trải nghiệm người dùng tốt hơn sẽ đem lại lợi ích cho ứng dụng bản đồ quán nước
Yêu cầu chức năng và phân quyền
• cập nhật danh sách sinh viên tham gia hoạt động sự kiện • Thêm mới các hoạt động sự kiện
• Xóa các hoạt động sự kiện • Sửa các hoạt động sự kiện
• Trích xuất danh sách đăng ký khen thưởng
• Tải sự kiện nổi bật nhất trên trang Web sự kiện chính • Kiểm tra các chứng chỉ sinh viên đã cập nhật
Yêu cầu phi chức năng
Trang 102.5.5 Chạy Trên Nền Tảng Đa Nền Tảng:
Hỗ trợ nền tảng và trình duyệt khác nhau để đảm bảo sự linh hoạt và tiện ích cho người dùng
2.5.6 Khả Năng Mở Rộng:
Dự án có khả năng mở rộng để đáp ứng nhu cầu tăng cường và sự mở rộng của hệ thống
2.5.7 Tuân Thủ Luật Pháp:
Tuân thủ các quy định và luật pháp liên quan đến bảo mật và quản lý dữ liệu
2.5.8 Hiệu Năng Cao:
Đảm bảo ứng dụng hoạt động mượt mà và có hiệu suất cao, đặc biệt là trong những tình huống tải lớn
2.5.9 Tích Hợp Dễ Dàng:
Cung cấp API và giao diện kết nối dễ tích hợp với các hệ thống bên ngoài
2.5.10 Thân Thiện Với Người Dùng:
Cung cấp giao diện người dùng thân thiện và dễ sử dụng để tăng cường trải nghiệm người dùng
2.5.11 Quản Lý Lỗi:
Cung cấp cơ chế quản lý lỗi hiệu quả và thông báo rõ ràng cho người dùng khi có lỗi xảy ra
2.5.12 Dự Phòng và Khôi Phục:
Đảm bảo có kế hoạch dự phòng và khôi phục dữ liệu và hệ thống khi có sự cố
2.5.13 Quản Lý Đăng Nhập và Bảo Mật:
Hỗ trợ quản lý đăng nhập an toàn, bảo vệ thông tin đăng nhập và mật khẩu
Trang 11Chương 3: Cơ sở lí thuyết Nodejs
3.1.1 Khái niệm
Javascript Runtime của Chrome mà chúng ta có thể xây dựng được các ứng dụng mạng một cách nhanh chóng và dễ dàng mở rộng
trụ sở tại California, Hoa Kỳ
lý và hiệu năng khá cao
thực
cần đổi mới công nghệ, hoặc tạo ra các dự án Startup nhanh nhất có thể
3.1.2 Những ứng dụng nên được viết bằng Nodejs
Websocket server [2]: Các máy chủ web socket như là Online Chat, Game Server…
Các máy chủ quảng cáo
thông qua API (Application Programing Interface)
độ thời gian thực Micro Services: Ý tưởng của micro services là chia nhỏ một ứng dụng lớn thành các dịch vụ nhỏ và kết nối chúng lại với nhau Nodejs có thể làm tốt điều này
3.1.3 Lí do nên sử dụng nodejs
khá thông dụng Theo tác giả của ngôn ngữ Javascript, Ryan Dahl: “Javascript có những đặc tính mà làm cho nó rất khác biệt so với các ngôn ngữ lập trình động còn lại, cụ thể là nó không có khái niệm về đa luồng, tất cả là đơn luồng và hướng sự kiện.”
Trang 12- Nodejs chạy đa nền tảng phía Server, sử dụng kiến trúc hướng sự kiện Eventdriven, cơ chế non-blocking I/O làm cho nó nhẹ và hiệu quả
hơn nữa cộng đồng Nodejs rất lớn và hoàn toàn miễn phí Các bạn có thể thấy cộng đồng Nodejs lớn như thế nào tại đây, các package đều hoàn toàn
free:https://www.npmjs.com/
bị
tiếng khác nữa Theo như Paypal thì sử dụng Nodejs làm giảm thời gian đáp ứng lên tới 35%
3.1.4 Cài đặt Server
• Các Package được sử dụng
cách xem các tệp đã thay đổi và tự động khởi động lại máy chủ
• Thiết lập một Express Server
- Thiết lập tập tin app.js với code sau:
Hình 3 1 Thiết lập tập tin app.js
Hình 3 2 Khởi động server
• Thêm Middleware Body Parsing
Trang 13Để dễ dàng sử dụng các request POST, PUT cho API, chúng ta cần thêm Middleware Body Parsing Đây là nơi body-parser phát huy tác dụng, body-parser sẽ trích xuất toàn bộ phần body của một yêu cầu đến và phân tích nó thành đối tượng JSON (Java Script Object Notation) mà chúng ta có thể làm việc với nó Vì vậy ta cần thêm nó vào tập tin app.js
Hình 3 3 Thêm Middleware Body Parsing
API
3.2.1 Khái niệm
kết nối với các thư viện và ứng dụng khác API có khả năng truy xuất đến một tập hợp các hàm Và từ đó có thể trao đổi dữ liệu giữa các ứng dụng
Hình 3 4 Sơ lược API
Transfer) và HTTP (HyperText Transfer Protocol), tạo sự thân thiện dễ sử dụng với nhà phát triển Giúp người dùng dễ truy cập, dễ hiểu hơn
Trang 14- API thường sử dụng mã nguồn mở, sử dụng được với mọi client hỗ trợ XML, JSON API có khả năng đáp ứng đầy đủ các thành phần HTTP: URI (Uniform Resource Identifier), request/response headers, caching, version, content forma…
thông bị giới hạn như smartphone, tablet…
3.2.2 Ưu điểm của API
vậy các thông tin rất đáng tin cậy
đơn giản
3.2.3 Nhược điểm của API
MongoDB
3.3.1 NOSQL
triển Javascript Framework với kiểu dữ liệu là Json và dạng dữ liệu là kiểu key và value NoSQL ra đời như một mảnh vá cho những khuyết điểm và thiếu xót cũng như hạn chế của mô hình dữ liệu RDBMS (Relational Database
Management System - Hệ quản trị cơ sở dữ liệu quan hệ) về tốc độ, tính năng, khả năng mở rộng, memory cache…
khóa ngoại, khóa chính, kiểm tra ràng buộc, … NoSQL bỏ qua tính toàn vẹn của dữ liệu và transaction để đổi lấy hiệu suất nhanh và khả năng mở rộng NoSQL còn có khả năng lưu trữ dữ liệu với lượng cực lớn, truy vấn dữ liệu với tốc độ cao mà
và tăng khả năng chịu lỗi
Trang 15- Ngày nay NoSQL được sử dụng ở rất nhiều công ty, tập đoàn lớn, ví dụ như Facebook sử dụng Cassandra do Facebook phát triển, Google phát triển và sử dụng BigTable, …
3.3.2 MongoDB
hàng đầu, được hàng triệu người sử dụng MongoDB được thiết kế theo kiểu hướng đối tượng, các bảng trong MongoDB được cấu trúc rất linh hoạt, cho phép các dữ liệu lưu trữ trên bảng không cần tuân theo một cấu trúc nhất định nào cả
trong document kiểu JSON thay vì dạng bảng như CSDL (Cơ sở dữ liệu) quan hệ nên truy vấn sẽ rất nhanh
niệm Collection và Document, nó cung cấp hiệu suất cao, tính khả dụng cao và khả năng mở rộng dễ dàng
MySQL hay SQL Server ) sử dụng các bảng để lưu dữ liệu thì với MongoDB chúng ta sẽ dùng khái niệm là collection thay vì bảng
ứng với row, MongoDB sẽ dùng các document thay cho row trong RDBMS
liệu lưu trữ không cần tuân theo một cấu trúc nhất định
qua ngôn ngữ truy vấn MongoDB