Tải bản đầy đủ (.pdf) (31 trang)

xây dựng hệ thống quản lý các hoạt động sự kiện và câu lạc bộ tại trường đại học công nghệ thông tin

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.97 MB, 31 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

<b>TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CƠNG NGHỆ PHẦN MỀM </b>

 Tp. Hồ Chí Minh, 09/2023 

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

<b>Lời cám ơn </b>

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 q 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 q 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à hồ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 ln nỗ lực đóng góp ý kiến và hỗ trợ lẫn nhau. Sự tích cực và tinh thần đồ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

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

<b>MỤC LỤC </b>

<b>Chương 1:Mở đầu ... 7</b>

1.1.1 Giới thiệu đề tài ... 7

<b>Chương 2:Tổng quan ... 8</b>

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

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

2.5.13 Quản Lý Đăng Nhập và Bảo Mật: ... 10

<b>Chương 3:Cơ sở lí thuyết ... 11</b>

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

<b>Chương 4:Quá trình thực hiện ... 23</b>

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

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

4.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

<b>Chương 5:Kết luận ... 30</b>

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

Mục lục hình ảnh

<small>Hình 3. 1 Thiết lập tập tin app.js ... 12</small>

<small>Hình 3. 2 Khởi động server ... 12</small>

<small>Hình 3. 3 Thêm Middleware Body Parsing ... 13</small>

<small>Hình 3. 4 Sơ lược API ... 13</small>

<small>Hình 3. 5 Các tính năng của MongoDB ... 16</small>

<small>Hình 3. 6 Hiệu năng của MongoDB ... 18</small>

<small>Hình 3. 7 Mongoose ... 19</small>

<small>Hình 3. 8 Mongoose ... 20</small>

<small>Hình 4. 1 Database Diagram NoSQL ... 23 </small>

<small>Hình 4. 2 Sơ đồ usecase ... 24 </small>

<small>Hình 4. 3 Giao diện chung khi khơng đăng nhập... 25 </small>

<small>Hình 4. 4 Giao diện đăng nhập ... 26 </small>

<small>Hình 4. 5 Giao diện đóng góp ý tưởng ... 26 </small>

<small>Hình 4. 6 Giao diện cập nhật chứng chỉ ... 27 </small>

<small>Hình 4. 7 Giao diện các sự kiện chờ duyệt ... 28 </small>

<small>Hình 4. 8 Giao diện lịch sử các sự kiện đã tham gia và đề xuất tham gia ... 29 </small>

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

<b>Chương 1: Mở đầu </b>

<b> Lí do chọn đề tài </b>

<i>1.1.1 Giới thiệu đề tài </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.

<b>Đối tượng và phạm vi đề tài </b>

• 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ý tồn bộ hệ thống, tiếp nhận các ý tưởng mới được gợi ý từ sinh viên.

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

<b>Chương 2: Tổng quan </b>

<b>Phân tích hướng quy trình cũ trong quản lý sự kiện, hoạt động </b>

<i>2.1.1 Quy trình tổng hợp sự kiện tại UIT </i>

Nhóm tác giả đặt ra bài tố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.

<i>2.1.2 Quyền đóng góp ý tưởng của sinh viên </i>

Đối với sinh viên không thuộc các tổ chức như BCH đồ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.

<i>2.1.3 Quy trình cập nhật các loại chứng chỉ dùng để xét danh hiệu </i>

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.

<b> Rút kinh nghiệm và đề xuất hướng xây dựng phần mềm </b>

<i>2.2.1 Website tổng hợp sự kiện </i>

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.

<i>2.2.2 Xây dựng tính năng gợi ý xét thưởng </i>

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.

<i>2.2.3 Cập nhật trực tiếp chứng chỉ lên hệ thống </i>

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.

<i>2.2.4 Đóng góp ý tưởng </i>

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à

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

xử 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ẻ.

<b> Các vấn đề cần giải quyết </b>

<i>2.3.1 Thu thập và xử lý dữ liệu đáng tin cậy </i>

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.

<i>2.3.2 Cải thiện tính năng hiển thị thơng tin </i>

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.

<i>2.3.3 Xây dựng quy trình hoạt động của hệ thống </i>

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.

<i>2.3.4 Thiết kế giao diện người dùng tương tác </i>

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.

<b> Yêu cầu chức năng và phân quyền </b>

• 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.

<b> Yêu cầu phi chức năng </b>

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

<i>2.5.5 Chạy Trên Nền Tảng Đa Nền Tảng: </i>

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.

<i>2.5.6 Khả Năng Mở Rộng: </i>

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.

<i>2.5.7 Tuân Thủ Luật Pháp: </i>

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.

<i>2.5.8 Hiệu Năng Cao: </i>

Đả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.

<i>2.5.9 Tích Hợp Dễ Dàng: </i>

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.

<i>2.5.10 Thân Thiện Với Người Dùng: </i>

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.

<i>2.5.11 Quản Lý Lỗi: </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.

<i>2.5.12 Dự Phịng và Khơi Phục: </i>

Đả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ố.

<i>2.5.13 Quản Lý Đăng Nhập và Bảo Mật: </i>

Hỗ trợ quản lý đăng nhập an tồn, bảo vệ thơng tin đăng nhập và mật khẩu.

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

<b>Chương 3: Cơ sở lí thuyết </b>

<b> Nodejs </b>

<i>3.1.1 Khái niệm </i>

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ể.

<i>3.1.2 Những ứng dụng nên được viết bằng Nodejs </i>

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.

<i>3.1.3 Lí do nên sử dụng nodejs </i>

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.”

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="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à hồn tồ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:

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%.

<i>3.1.4 Cài đặt Server </i>

<b>• Các Package được sử dụng </b>

cách xem các tệp đã thay đổi và tự động khởi động lại máy chủ

<small>• </small> <b>Thiết lập một Express Server</b>

<small>- </small> Thiết lập tập tin app.js với code sau:

<i><small>Hình 3. 1 Thiết lập tập tin app.js </small></i>

<i><small>Hình 3. 2 Khởi động server </small></i>

<small>• </small> <b>Thêm Middleware Body Parsing</b>

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="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 tồn bộ phần body của một 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

<i><small>Hình 3. 3 Thêm Middleware Body Parsing </small></i>

<b> API </b>

<i>3.2.1 Khái niệm </i>

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.

<i><small>Hình 3. 4 Sơ lược API</small></i>

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.

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="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…

<i>3.2.2 Ưu điểm của API </i>

vậy các thông tin rất đáng tin cậy.

đơn giản.

<i>3.2.3 Nhược điểm của API </i>

<b> MongoDB </b>

<i>3.3.1 NOSQL </i>

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 tồ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.

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

- Ngày nay NoSQL được sử dụng ở rất nhiều công ty, tập đồ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, …

<i>3.3.2 MongoDB </i>

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

</div>

×