Tên đề tài: Xây dựng ứng dụng Quản lý sự kiện cho đại học Đà Nẵng.Sinh viên thực hiện: Nguyễn Trọng Nhân MSV: 1811505310137 Lớp: 18T1 đã phẩn nào giải quyết được các vấn đề như thông báo
Trang 1ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
Người hướng dẫn: THS TRẦN BỬU DUNG Sinh viên thực hiện: NGUYỄN TRỌNG NHÂN[1]
HỒ DUY KHOA[2]
Mã sinh viên: [1] 1811505310137
[2] 1811505310219 Lớp: [1] 18T1
Trang 2TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
Người hướng dẫn: THS TRẦN BỬU DUNG Sinh viên thực hiện: NGUYỄN TRỌNG NHÂN[1]
HỒ DUY KHOA[2]
Mã sinh viên: [1] 1811505310137
[2] 1811505310219 Lớp: [1] 18T1
[2] 18T2
Đà Nẵng, tháng 01 năm 2022
Trang 5Tên đề tài: Xây dựng ứng dụng Quản lý sự kiện cho đại học Đà Nẵng.
Sinh viên thực hiện: Nguyễn Trọng Nhân MSV: 1811505310137 Lớp: 18T1
đã phẩn nào giải quyết được các vấn đề như thông báo sự kiện mới trên điện thoạingười dùng, cho phép đăng ký sự kiện online qua điện thoại, tạo sự kiện mới đơn giản,điểm danh sự kiện bằng QR code, quản lý sự kiện đã tổ chức… Với mong muốn đưaứng dụng phổ biến rộng rãi đến mọi người dùng, ứng dụng hỗ trợ cả 2 ngôn ngữ tiếngViệt và tiếng Anh nhóm đã đưa ứng dụng có mặt trên các nền tảng Android và IOS, rấtmong nhận được sự ủng hộ, đón nhận và góp ý từ phía người dùng
Bài báo cáo ngoài các nội dung gồm phần mở đầu và kết thì có bố cục 3 chương:CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
Chương này trình bày tổng quan về việc sử dụng các phần mềm hỗ trợ xây dựngứng dụng, các công cụ thường xuyên sử dụng để xây dựng nền tảng cho bài toán Mô
tả một số công nghệ mới hỗ trợ phát triển ứng dụng
CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ HỆ THỐNG
Chương này trình bày một hướng tiếp cận trong việc phân tích hệ thống Trìnhbày những hướng chức năng cơ bản cho người dùng, sơ đồ cơ sở dữ liệu…
CHƯƠNG 3: TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ
Trên cơ sở tìm hiểu và phân tích bài toán liên quan, đặc biệt là các chức năng hệthống Từ các phân tích hệ thống và dữ liệu có được, ứng dụng được triển khai và cậpnhật trên CH Play và App Store
Trang 6KHOA CÔNG NGHỆ SỐ Độc lập - Tự do - Hạnh phúc
NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
Giảng viên hướng dẫn: Ths Trần Bửu Dung
Sinh viên thực hiện: Nguyễn Trọng Nhân Mã SV: 1811505310137
1 Tên đề tài: Xây dựng ứng dụng Quản lý sự kiện áp dụng cho Đại học Đà Nẵng.
2 Các số liệu, tài liệu ban đầu:
- Quy trình tổ chức sự kiện
- Ngôn ngữ JavaScript, công nghệ NodeJS, ReactJS và React Native
- Công nghệ QR Code
3 Nội dung chính của đồ án:
Xây dựng một ứng dụng Quản lý sự kiện áp dụng cho Đại học Đà Nẵng, chophép người tổ chức sự kiện lên kế hoạch và điều hành hội nghị, họp mặt và ra mắt cácchương trình, hội thảo và sản phẩm chuyên nghiệp, có hiệu quả và gây ấn tượng chongười tham dự Cho phép người dùng đăng ký tham gia sự kiện, tương tác, đặt câu hỏivới diễn giả, check in sự kiện và đánh giá sự kiện, tạo sự kết nối giữa người dùng với
sự kiện, góp phần đem lại sự thành công cho sự kiện
Trang 7Nhìn vào thực trạng ngành công nghệ thông tin tại Việt Nam hiện nay, có thểthấy lĩnh vực này đã trở thành ngành kinh tế quan trọng hàng đầu Ngành công nghệthông tin có tốc độ phát triển nhanh, mạnh, đóng góp to lớn vào sự tăng trưởng GDPcủa cả nước trong nhiều năm qua Ngành công nghệ thông tin ở Việt Nam đã có nhữngchuyển biến tích cực hơn khi triển khai ứng dụng công nghệ thông tin trong đời sống,
xã hội người dân và doanh nghiệp Việt Nam trở thành nước có lượng người sử dụngmạng internet thuộc top cao nhất thế giới Các hoạt động cá nhân đến tập thể đều sửdụng mạng internet trên các nền tảng kết nối khác nhau Các doanh nghiệp, tổ chứcđều ứng dụng hệ thống phần mềm quản lý, điều hành hiệu quả Do đó, việc nghiêncứu, xây dựng ứng dụng phục vụ các nhu cầu của doanh nghiệp, tổ chức được quantâm rất nhiều Đề tài: “Xây dựng ứng dụng quản lý sự kiện cho đại học Đà Nẵng”được thực hiện dựa trên mong muốn tìm tòi, học hỏi, sáng tạo và đem lại giá trị chocộng đồng của nhóm chúng em đối với nhu cầu cấp thiết trên
Đề tài: “Xây dựng ứng dụng Quản lý sự kiện cho đại học Đà Nẵng” được thựchiện bởi nhóm chúng em gồm Nguyễn Trọng Nhân và Hồ Duy Khoa dưới sự hướngdẫn, giúp đỡ tận tình của cô Trần Bửu Dung Sản phẩm phần mềm là thành quả, côngsức và là sự cố gắng trong dạy và học, tìm tòi, sáng tạo của thầy/cô và nhóm chúngem
Qua đây, nhóm chúng em xin tỏ lòng biết ơn sâu sắc đến cô Trần Bửu Dung đãtận tình hướng dẫn, giúp đỡ nhóm trong suốt quá trình làm đồ án tốt nghiệp
Em xin chân thành cảm ơn quý thầy cô toàn trường nói chung và quý thầy côtrong Bộ môn Công nghệ thông tin nói riêng đã tận tình, tâm huyết truyền đạt nhữngkiến thức, những kỹ năng cho chúng em trong suốt quá trình học tập tại trường Vớivốn kiến thức được tiếp thu trong quá trình học tập không chỉ là nền tảng để hoànthành đồ án tốt nghiệp này mà còn là hành trang quý báu để chúng em bước vào đời,làm việc với doanh nghiệp một cách vững chắc và tự tin
Sau cùng, chúng em xin kính chúc quý thầy cô luôn dồi dào sức khoẻ, luôn tâmhuyết để tiếp tục thực hiện sứ mệnh cao đẹp của mình là dẫn dắt, truyền đạt kiến thứccho những thế hệ mai sau Chúng em rất tự hào và vinh hạnh khi được làm học trò củaquý thầy cô, khi được là sinh viên của Đại học Sư phạm Kỹ thuật – Đại học Đà Nẵng
Em xin chân thành cảm ơn!
Trang 8Chúng em xin cam đoan đồ án này là sự đúc kết, tổng quát lại quá trình tìmtòi, học hỏi và xây dựng ứng dụng của chúng em Các số liệu, hình ảnh, thông tintrong đồ án đều trung thực, do chúng em tự tìm hiểu, tham khảo từ nhiều nguồn tư liệukhác nhau Đồ án này không sao chép từ các đồ án có trước.
Nếu phát hiện có bất kì gian lận nào chúng em xin chịu hoàn toàn trách nhiệm
về nội dung đề tài của mình Trường Đại học Sư phạm Kỹ thuật – Đại học Đà Nẵngkhông liên quan đến những vi phạm tác quyền, bản quyền do chúng em gây ra trongquá trình thực hiện (nếu có)
Sinh viên thực hiện {Chữ ký, họ và tên sinh viên}
Trang 9Nhận xét của người hướng dẫn
Nhận xét của người phản biện
Tóm tắt
Nhiệm vụ đồ á
LỜI CẢM ƠN i
LỜI CAM ĐOAN ii
MỤC LỤC i
MỞ ĐẦU 1
CHƯƠNG 1 CƠ SỞ LÝ THUYẾT 3
1.1 Phần mềm 3
1.1.1 Visual Studio Code 3
1.1.2 Android Studio 4
1.1.3 XCode 6
1.1.4 Postman 7
1.1.5 Xampp 8
1.2 Công nghệ 9
1.2.1 React Native 9
1.2.2 NodeJS 11
1.2.3 MySQL 12
1.2.4 QR Code 13
1.3 Kết luận chương 1 13
CHƯƠNG 2 PHÂN TÍCH THIẾT KẾ HỆ THỐNG 14
2.1 Phân tích đối tượng sử dụng hệ thống 14
2.1.1 Quản trị hệ thống 14
2.1.2 Người dùng 14
2.2 Phân tích chức năng 14
Trang 102.2.2 Đăng nhập 14
2.2.3 Tìm kiếm sự kiện 15
2.2.4 Đăng ký tham gia sự kiện 15
2.2.5 Cập nhật sự kiện 15
2.2.6 Cập nhật thông tin cá nhân 15
2.2.7 Checkin và đánh giá sự kiện 16
2.2.8 Duyệt sự kiện 16
2.2.9 Quản lý tài khoản 16
2.3 Sơ đồ USECASE 17
2.3.1 Danh sách các Actor và hành động của từng Actor 17
2.3.2 Sơ đồ USECASE của hệ thống 18
2.3.3 Mô tả các USECASE chính 19
2.4 Sơ đồ hệ thống tuần tự 22
2.4.1 Usecase cập nhật sự kiện 22
2.4.2 Usecase duyệt sự kiện 22
2.4.3 Usecase đăng ký tham gia sự kiện 23
2.4.4 Usecase checkin sự kiện 24
2.5 Sơ đồ quan hệ 25
2.6 Thiết kế cơ sở dữ liệu 26
2.6.1 Bảng sự kiện 26
2.6.2 Bảng thể loại sự kiện 26
2.6.3 Bảng tài khoản 26
2.6.4 Bảng phân quyền 27
2.6.5 Bảng theo dõi tác giả 27
2.6.6 Bảng thành viên tham gia 27
2.6.7 Bảng trạng thái sự kiện 27
Trang 112.6.9 Bảng theo dõi sự kiện 28
2.6.10 Bảng thông báo 28
2.6.11 Bảng lịch sử thông báo 28
2.6.12 Bảng cập nhật sự kiện 28
2.6.13 Bảng đánh giá 29
2.7 Kết luận chương 2 29
CHƯƠNG 3 TRIỂN KHAI ỨNG DỤNG 30
3.1 Kết quả triển khai 30
3.1.1 Màn hình Đăng ký 30
3.1.2 Màn hình nhập 30
3.1.3 Màn hình quên mật khẩu 31
3.1.4 Màn hình trang chủ 31
3.1.5 Màn hình tìm kiếm 32
3.1.6 Màn hình sự kiện đang theo dõi 33
3.1.7 Màn hình vé đăng ký tham gia sự kiện 34
3.1.8 Màn hình chi tiết vé tham gia sự kiện 35
3.1.9 Màn hình hồ sơ cá nhân 35
3.1.10 Màn hình chi tiết sự kiện 36
3.1.11 Màn hình quét mã QR 38
3.1.12 Màn hình thêm sự kiện 38
3.1.13 Màn hình quản lý sự kiện 39
3.1.14 Màn hình phê duyệt sự kiện 41
3.1.15 Màn hình gửi câu hỏi cho sự kiện 42
3.1.16 Màn hình đánh giá sự kiện 42
3.1.17 Màn hình danh sách thông báo 43
3.1.18 Màn hình thông báo đẩy 43
Trang 123.1.20 Màn hình quản lý sự kiện 44
3.1.21 Màn hình quản lý thể loại 45
3.1.22 Hình ảnh ứng dụng đã được triển khai trên AppStore 45
3.2 Đánh giá kết quả 46
3.3 Kết luận chương 3 46
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 47
Trang 13Hình 1-1 Giao diện Visual Studio Code 3
Hình 1-2 Giao diện Android Studio 4
Hình 1-3 Giao diện máy ảo Android trên Android Studio 5
Hình 1-4 Giao diện Xcode 6
Hình 1-5 Giao diện máy ảo IOS trên Xocde 7
Hình 1-6 Giao diện Postman 8
Hình 1-7 Giao diện Xampp 9
Hình 1-8 Minh hoạ React Native 10
Hình 1-9 Minh hoạ NodeJS 11
Hình 1-10 Minh hoạ MySQL 12
Hình 2-1 Bảng mô tả USECASE 17
Hình 2-2 Sơ đồ USECASE hệ thống 18
Hình 2-3 Bảng mô tả usecase cập nhật sự kiện 19
Hình 2-4 Bảng mô tả usecase đăng ký tham gia sự kiện 20
Hình 2-5 Bảng mô tả usecase checkin sự kiện 20
Hình 2-6 Bảng mô tả usecase duyệt sự kiện 21
Hình 2-7 Bảng mô tả usecase quản lý tài khoản 21
Hình 2-8 Sơ đồ hệ thống tuần tự cập nhật sự kiện 22
Hình 2-9 Sơ đồ hệ thống tuần tự duyệt sự kiện 23
Hình 2-10 Sơ đồ hệ thống tuần tự đăng ký tham gia sự kiện 23
Hình 2-11 Sơ đồ hệ thống tuần tự checkin sự kiện 24
Hình 2-12 Sơ đồ quan hệ dữ liệu 25
Hình 2-13 Bảng sự kiện 26
Hình 2-14 Bảng thể loại sự kiện 26
Hình 2-15 Bảng tài khoản 27
Trang 14Hình 2-17 Bảng theo dõi tác giả 27
Hình 2-18 Bảng thành viên tham gia 27
Hình 2-19 Bảng trạng thái sự kiện 27
Hình 2-20 Bảng câu hỏi 28
Hình 2-21 Bảng theo dõi sự kiện 28
Hình 2-22 Bảng theo dõi sự kiện 28
Hình 2-23 Bảng lịch sử thông báo 28
Hình 2-24 Bảng lịch sử thông báo 29
Hình 2-25 Bảng đánh giá 29
Hình 3-1 Màn hình đăng ký 30
Hình 3-2 Màn hình đăng nhập 30
Hình 3-3 Màn hình quên mật khẩu 31
Hình 3-4 Màn hình trang chủ ngôn ngữ tiếng Việt 31
Hình 3-5 Màn hình trang chủ ngôn ngữ tiếng Anh 32
Hình 3-6 Màn hình tìm kiếm bằng giọng nói 32
Hình 3-7 Màn hình tìm kiếm bằng từ khoá 33
Hình 3-8 Màn hình sự kiện đang theo dõi 33
Hình 3-9 Màn hình bỏ theo dõi sự kiện 34
Hình 3-10 Màn hình vé đăng ký tham gia sự kiện 34
Hình 3-11 Màn hình chi tiết vé đăng ký tham gia sự kiện 35
Hình 3-12 Màn hình hồ sơ cá nhân 35
Hình 3-13 Màn hình cập nhật thông tin cá nhân 36
Hình 3-14 Màn hình chi tiết sự kiện tiếng Việt 36
Hình 3-15 Màn hình chi tiết sự kiện tiếng Anh 37
Hình 3-16 Màn hình yêu cầu đăng nhập khi bấm đăng ký tham gia nhưng chưa đăng nhập 37
Hình 3-17 Màn hình quét mã QR 38
Trang 15Hình 3-19 Màn hình chọn ngày trong thêm sự kiện 39
Hình 3-20 Màn hình các chức năng trong quản lý sự kiện 39
Hình 3-21 Màn hình bản cập nhật sự kiện 40
Hình 3-22 Màn hình tổng quan đánh giá sự kiện 40
Hình 3-23 Màn hình danh sách câu hỏi cho sự kiện 41
Hình 3-24 Màn hình phê duyệt sự kiện 42
Hình 3-25 Màn hình gửi câu hỏi cho sự kiện 42
Hình 3-26 Màn hình đánh giá sự kiện 42
Hình 3-27 Màn hình danh sách thông báo 43
Hình 3-28 Màn hình thông báo đẩy 43
Hình 3-29 Màn hình quản lý người dùng 44
Hình 3-30 Màn hình quản lý sự kiện 44
Hình 3-31 Màn hình quản lý thể loại 45
Hình 3-32 Hình ảnh ứng dụng đã được triển khai trên AppStore 45
Trang 16MỞ ĐẦU
1 Tổng quan
Quản lý sự kiện là phần mềm ứng dụng công nghệ thông tin vào công tác quản lýgiúp cơ quan, trường học thay thế việc quản lý sự kiện truyền thống mất thời gian vàkém hiệu quả chính vì lý do đó ứng dụng sẽ được đưa vào áp dụng rộng rãi ở Đại học
Đà Nẵng và các trường thành viên
Quản lý sự kiện áp dụng cho Đại học Đà Nẵng là phần mềm cho phép người tổchức sự kiện lên kế hoạch và điều hành hội nghị, họp mặt và ra mắt các chương trình,hội thảo và sản phẩm chuyên nghiệp, có hiệu quả và gây ấn tượng cho người tham dự.Cho phép người dùng đăng ký tham gia sự kiện, tương tác, đặt câu hỏi với diễn giả,check in sự kiện và đánh giá sự kiện, tạo sự kết nối giữa người dùng với sự kiện, gópphần đem lại sự thành công cho sự kiện Một trong những vấn đề cần nghiên cứu vàtriển khai là quy trình tổ chức sự kiện và ứng ụng QR Code để điểm danh, checkinhoạt động, chia sẻ thông tin cá nhân Từ đó thống kê, đưa ra kết quả thực hiện, danhsách thành viên tham gia sự kiện một cách tự động và hiệu quả, thuận tiện trong côngtác quản lý
2 Tính cấp thiết khi chọn đề tài
Hiện nay tại trường Đại học Đà Nẵng chưa có hệ thống quản lý sự kiện, tham gia
sự kiện online Việc tổ chức các sự kiện, hoạt động, workshop… chưa được phổ biếnrộng rãi đến sinh viên và cán bộ Đại học Đà Nẵng, thêm vào đó khi có hoạt động mớicần sinh viên tham gia thì ban tổ chức phải gửi văn bản về từng đơn vị, từng phòngban, phòng ban và đơn vị phải chọn và báo lại số lượng danh sách tham gia gây mấtthời gian và hiệu quả thấp Việc quản lý, điểm danh hoạt động với số lượng sinh viênlớn vẫn còn dùng cách thủ công là ghi vào bản cứng sau đó chuyển thành file Excel
Do đó, nhóm chọn đề tài : “Xây dựng ứng dụng Quản lý sự kiện cho đại học ĐàNẵng”
3 Mục tiêu của đề tài
Xây dựng một ứng dụng quản lý sự kiện áp dụng cho Đại học Đà Nẵng, cho phépngười tổ chức sự kiện lên kế hoạch và điều hành hội nghị, họp mặt và ra mắt cácchương trình, hội thảo và sản phẩm chuyên nghiệp, có hiệu quả và gây ấn tượng chongười tham dự Cho phép người dùng đăng ký tham gia sự kiện, tương tác, đặt câu hỏivới diễn giả, check in sự kiện và đánh giá sự kiện, tạo sự kết nối giữa người dùng với
sự kiện, góp phần đem lại sự thành công cho sự kiện
Trang 174 Đối tượng và phạm vi đề tài
Đối tượng của đề tài là cán bộ, nhân viên, giáo viên, sinh viên trong Đại học ĐàNẵng
Phạm vi nghiên cứu tại khu hành chính Đại học Đà Nẵng
5 Đặc tả phần mềm
Tất cả cán bộ, nhân viên, giáo viên, sinh viên đều có thể sử dụng phần mềm bằngcách tải từ CH Play đối với thiết bị chạy hệ điều hành Android và AppStore đối vớithiết bị chạy hệ điều hành IOS Phần mềm hỗ trợ cả hai ngôn ngữ tiếng Việt và tiếngAnh
Ứng dụng được xây dựng với công nghệ chính là React Native với API xây dựng
từ NodeJS và hệ quản trị Cơ sở dữ liệu MySQL
6 Nội dung và kết cấu báo cáo
Bài báo cáo ngoài các nội dung gồm phần mở đầu và kết thì có bố cục 3 chương:CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
Chương này trình bày tổng quan về việc sử dụng các phần mềm hỗ trợ xây dựngứng dụng, các công cụ thường xuyên sử dụng để xây dựng nền tảng cho bài toán Mô
tả một số công nghệ mới hỗ trợ phát triển ứng dụng
CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ HỆ THỐNG
Chương này trình bày một hướng tiếp cận trong việc phân tích hệ thống Trìnhbày những hướng chức năng cơ bản cho người dùng, sơ đồ cơ sở dữ liệu…
CHƯƠNG 3: TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ
Trên cơ sở tìm hiểu và phân tích bài toán liên quan, đặc biệt là các chức năng hệthống Từ các phân tích hệ thống và dữ liệu có được, ứng dụng được triển khai và cậpnhật trên CH Play và App Store
Trang 18CHƯƠNG 1 CƠ SỞ LÝ THUYẾT
1.1 Phần mềm
1.1.1 Visual Studio Code
Visual Studio Code là một trong những trình soạn thảo mã nguồn phổ biếnnhất hiện nay được sử dụng bởi các lập trình viên Nhanh, nhẹ, hỗ trợ đa nền tảng,nhiều tính năng và là mã nguồn mở chính là những ưu điểm vượt trội khiến VisualStudio Code ngày càng chứng tỏ ưu thế vượt trội của mình so với những phần mềmkhác và được ứng dụng rộng rãi
Hình 1-1 Giao diện Visual Studio Code
Visual Studio Code hỗ trợ chức năng Debug, đi kèm với Git, có SyntaxHighlighting, tự hoàn thành mã thông minh, snippets, và cải tiến mã nguồn Nhờtính năng tùy chỉnh, Visual Studio Code cũng cho phép người dùng thay đổiTheme, phím tắt, và các tùy chọn khác
Một số tính năng vượt trội của Visual Studio Code:
- Hỗ trợ nhiều ngôn ngữ lập trình
- Hỗ trợ đa nền tảng
- Cung cấp kho tiện ích mở rộng
- Kho lưu trữ an toàn
- Hỗ trợ web
Trang 19- Lưu trữ dữ liệu dưới dạng phân cấp.
- Hỗ trợ nhắc Code
- Hỗ trợ thiết bị đầu cuối
- Intellisense chuyên nghiệp
là Java và được cài đặt riêng trên thiết bị Android Studio rất đơn giản, chỉ cần viết,chỉnh sửa và lưu các dự án của mình và các file trong dự án đó Đồng thời, AndroidStudio sẽ cấp quyền truy cập vào Android SDK
Android Studio còn hỗ trợ một loạt các giả lập để xem trước ứng dụng, vì vậyngay cả khi không có thiết bị thử nghiệm, chúng ta vẫn có thể chạy thử nghiệm ứngdụng để chắc chắn rằng mọi thứ đều hoạt động trơn tru Google đã nỗ lực rất nhiều
để làm cho Android Studio trở nên mạnh mẽ và hữu ích nhất có thể
Hình 1-2 Giao diện Android Studio
Trang 20Các tính năng nổi bật của Android Studio:
- Một hệ thống xây dựng Gradle linh hoạt
- Trình mô phỏng nhanh và tính năng phong phú
- Một môi trường phù hợp nhất nơi chúng ta có thể phát triển cho tất cả cácthiết bị Android
- Instant Run để đẩy các thay đổi vào ứng dụng đang chạy của bạn mà khôngcần xây dựng một APK mới
- Tích hợp GitHub để giúp xây dựng các tính năng ứng dụng phổ biến và nhập
mã mẫu
- Các công cụ và khuôn khổ thử nghiệm mở rộng
Hình 1-3 Giao diện máy ảo Android trên Android Studio
Trang 211.1.3 XCode
Xcode là bộ phát triển phần mềm tích hợp được Apple phát triển chạy trên hệđiều hành Mac để các lập trình viên có thể phát triển phần mềm chạy trên hệ điềuhành Mac và IOS
Xcode còn tích hợp cả máy ảo để cho các lập trình viên thử nghiệm các sảnphẩm không cần thiết bị thật và môi trường ảo của bên thứ 3
Không chỉ hỗ trợ viết mã, gỡ lỗi hay chạy máy ảo XCode còn có thể thựchiện rất nhiều tác vụ như hợp nhất mã nguồn, trích xuất IPA hay đẩy bản dựng lênApple Store
Hình 1-4 Giao diện Xcode
Đây là một ứng dụng hoàn toàn miễn phí của Apple nhằm hỗ trợ cho các lậptrình viên có thể phát triển các ứng dụng và game dành cho hệ sinh thái của Apple.XCode có hiệu năng tốt, quy trình phát triển nhanh, tốn ít bộ nhớ hơnkhi sử dụng thư viện động Tuy nhiên Xcode chỉ chạy trên hệ điều hànhMac và muốn đưa ứng dụng/game lên trên AppStore thì chúng ta cần phải trả phí100$/năm
Trang 22Hình 1-5 Giao diện máy ảo IOS trên Xocde
1.1.4 Postman
Postman là một công cụ cho phép chúng ta thao tác với API, phổ biến nhất làREST Postman hiện là một trong những công cụ phổ biến nhất được sử dụng trongthử nghiệm các API Với Postman, ta có thể gọi Rest API mà không cần viết dòngcode nào
Postman có sẵn nhiều phiên bản cho các hệ điều hành và môi trường khácnhau Đó cùng là điểm khiến nó trở nên phổ biến hơn
Trang 23Postman hỗ trợ tất cả các phương thức HTTP (GET, POST, PUT, PATCH,DELETE, …) Bên cạnh đó, nó còn cho phép lưu lại lịch sử các lần request, rất tiệncho việc sử dụng lại khi cần.
Hình 1-6 Giao diện Postman
Những lợi ích khi sử dụng Postman:
- Sử dụng Collections (Bộ sưu tập) – Postman cho phép người dùng tạo bộ sưutập cho các lệnh gọi API của họ Mỗi bộ sưu tập có thể tạo các thư mục con
và nhiều yêu cầu (request) Điều này giúp việc tổ chức các bộ thử nghiệm
- Collaboration – Collections và environment có thể được import hoặc exportgiúp chia sẻ tệp dễ dàng
- API Testing – Test trạng thái phản hồi HTTP
- Gỡ lỗi – Bảng điều khiển Postman giúp kiểm tra dữ liệu nào đã được truyxuất giúp dễ dàng gỡ lỗi kiểm tra
1.1.5 Xampp
Xampp là phần mềm Web Server thuộc bản quyền của GNU General PublicLicence, XAMPP do Apache Friends phân phối và phát triển Đây là chương trìnhtạo máy chủ Web được tích hợp sẵn Apache, PHP, MySQL, FTP Server, MailServer và các công cụ như phpMyAdmin
XAMPP chính là một phần mềm cho phép chúng ta giả lập môi trường ServerHosting Nhờ server Hosting giả định này, chúng ta có thể chạy thử một website
Trang 24ngay trên chiếc máy vi tính của mình mà không cần thiết phải mua Hosting hayVPS.
Hình 1-7 Giao diện Xampp
Ưu điểm của Xampp:
- Tích hợp nhiều tính năng như Apache, PHP, MySQL…
- Mã nguồn mở
Nhược điểm của Xampp:
- Không được hỗ trợ cấu hình Module
- Dung ượng Xampp tương đối nặng
- Không có nhiều phiên bản cho từng thành phần của server như Apache, PHP,MySQL…
1.2 Công nghệ
1.2.1 React Native
React Native là một framework được tạo bởi Facebook, cho phép các lậptrình viên sử dụng JavaScript để làm Mobile Apps trên cả Android và IOS với cótrải nghiệm và hiệu năng như native React Native vượt trội ở chỗ chỉ cần viết mộtlần là có thể build ứng dụng cho cả IOS lẫn Android
Trang 25Chúng ta sẽ build được ứng dụng Native, và chúng ta cũng có thể build ứngdụng đó một cách đa nền tảng chứ không chỉ build trên IOS hay Android mà chúng
ta build và chạy được cả hai hệ sinh thái
Một trong những điểm mạnh của React Native là giảm chi phí biên dịch lạicủa Native bằng cách sử dụng Hot-Loading tức là chúng ta không cần phải build lạiứng dụng từ đầu nên việc chỉnh sửa diễn ra rất nhanh chóng Giúp cho lập trìnhviên có thể thấy được những chỉnh sửa của họ một cách nhanh chóng trực quan,không còn phải bỏ quá nhiều thời gian trong việc build và run ứng dụng nữa
- Xây dựng cho nhiều hệ điều hành khác nhau với ít native code nhất
- Trải nghiệm người dùng tốt hơn là hybrid app
Nhược điểm:
- Vẫn đòi hỏi native code
- Hiệu năng sẽ thấp hơn với app thuần native code
- Bảo mật không cao do dựa trên JavaScript
- Khả năng tùy biến cũng không thực sự tốt đối với một vài module
Hình 1-8 Minh hoạ React Native
Trang 261.2.2 NodeJS
NodeJS là một mã nguồn được xây dựng dựa trên nền tảng Javascript V8Engine, nó được sử dụng để xây dựng các ứng dụng web như các trang video clip,các forum và đặc biệt là trang mạng xã hội phạm vi hẹp NodeJS là một mã nguồn
mở được sử dụng rộng bởi hàng ngàn lập trình viên trên toàn thế giới
Hình 1-9 Minh hoạ NodeJS
NodeJS có thể chạy trên nhiều nền tảng hệ điều hành khác nhau từ Windowcho tới Linux, MacOS nên đó cũng là một lợi thế NodeJS cung cấp các thư việnphong phú ở dạng Javascript Module khác nhau giúp đơn giản hóa việc lập trình vàgiảm thời gian ở mức thấp nhất
Các đặc tính của NodeJS:
- Không đồng bộ: Tất cả các API của NodeJS đều không đồng bộ blocking), nó chủ yếu dựa trên nền của NodeJS Server và chờ đợi Server trả dữliệu về Việc di chuyển máy chủ đến các API tiếp theo sau khi gọi và cơ chếthông báo các sự kiện của Node.js giúp máy chủ để có được một phản ứng từcác cuộc gọi API trước
(none Chạy rất nhanh: NodeJS được xây dựng dựa vào nền tảng V8 Javascript Enginenên việc thực thi chương trình rất nhanh
- Đơn luồng nhưng khả năng mở rộng cao: NodeJS sử dụng một mô hình luồngduy nhất với sự kiện lặp Cơ chế tổ chức sự kiện giúp các máy chủ để đáp ứngmột cách không ngăn chặn và làm cho máy chủ cao khả năng mở rộng như tráingược với các máy chủ truyền thống mà tạo đề hạn chế để xử lý yêu cầu.NodeJS sử dụng một chương trình đơn luồng và các chương trình tương tự cóthể cung cấp dịch vụ cho một số lượng lớn hơn nhiều so với yêu cầu máy chủtruyền thống như Apache HTTP Server
Trang 27- Không đệm: NodeJS không đệm bất kì một dữ liệu nào và các ứng dụng nàychủ yếu là đầu ra dữ liệu.
- Có giấy phép: NodeJS đã được cấp giấy phép bởi MIT License
Có 2 NodeJS framework được sử dụng phổ biến là Express và SocketIO, đồ
án này sử dụng Express
1.2.3 MySQL
MySQL là một hệ thống quản trị cơ sở dữ liệu mã nguồn mở (RelationalDatabase Management System, viết tắt là RDBMS) hoạt động theo mô hình client-server RDBMS là một phần mềm hay dịch vụ dùng để tạo và quản lý các cơ sở dữliệu (Database) theo hình thức quản lý các mối liên hệ giữa chúng
MySQL là hệ quản trị cơ sở dữ liệu tự do nguồn mở phổ biến nhất thế giới vàđược các nhà phát triển rất ưa chuộng trong quá trình phát triển ứng dụng VìMySQL là hệ quản trị cơ sở dữ liệu tốc độ cao, ổn định và dễ sử dụng, có tính khảchuyển, hoạt động trên nhiều hệ điều hành cung cấp một hệ thống lớn các hàm tiệních rất mạnh Với tốc độ và tính bảo mật cao, MySQL rất thích hợp cho các ứngdụng có truy cập CSDL trên internet Người dùng có thể tải về MySQL miễn phí từtrang chủ MySQL có nhiều phiên bản cho các hệ điều hành khác nhau: phiên bảnWin32 cho các hệ điều hành dòng Windows, Linux, Mac OS X, Unix, FreeBSD,NetBSD, Novell NetWare, SGI Irix, Solaris, SunOS…
Hình 1-10 Minh hoạ MySQL
Trang 281.2.4 QR Code
QR Code (mã QR) là viết tắt của Quick response code (Tạm dịch: Mã phảnhồi nhanh), hoặc có thể gọi là Mã vạch ma trận (Matrix-barcode) hay Mã vạch 2chiều (2D) Đây là một dạng thông tin được mã hóa để hiển thị sao cho máy có thểđọc được
QR Code xuất hiện lần đầu tiên vào năm 1994, được tạo ra bởi Denso Wave(công ty con của Toyota) QR Code bao gồm những chấm đen và ô vuông mẫu trênnền trắng, có thể chứa những thông tin như URL, thời gian, địa điểm của sự kiện,
mô tả, giới thiệu một sản phẩm nào đó,
QR Code cho phép quét và đọc mã nhanh hơn bằng các thiết bị như máy đọc
mã vạch hoặc điện thoại có camera với ứng dụng cho phép quét mã, vô cùng tiệnlợi cho người dùng
1.3 Kết luận chương 1
Trình bày tổng quan về các phần mềm hỗ trợ xây dựng ứng dụng và các côngnghệ được sử dụng, ưu nhược điểm của từng phần mềm và công nghệ
Trang 29CHƯƠNG 2 PHÂN TÍCH THIẾT KẾ HỆ THỐNG
2.1 Phân tích đối tượng sử dụng hệ thống
Ứng dụng Quản lý sự kiện cho đại học Đà Nẵng gồm những đối tượng sửdụng như sau:
2.1.1 Quản trị hệ thống
Là người trực tiếp tham gia quản lý các sự kiện hoạt động, quản lý tài khoảnngười dùng Người quản trị hệ thống sẽ duyệt những sự kiện được đăng ký, xoá, ẩnbớt các sự kiện đã được tổ chức, khoá các tài khoản vi phạm Ngoài ra còn xemđược báo cáo hệ thống, thống kê danh sách sự kiện đã và đang diễn ra
2.1.2 Người dùng
Là người trực tiếp tham gia sử dụng ứng dụng Người dùng có thể đăng kýtham gia sự kiện, checkin sự kiện bằng mã QR, đánh giá sự kiện, đặt câu hỏi chodiễn giả nếu có Ngoài ra người dùng cũng có thể đăng ký tổ chức sự kiện bằngcách cung cấp các thông tin cần thiết về sự kiện Người dùng có thể theo dõi ngườidùng khác để nhận thông báo từ hệ thống nếu có sự kiện mới do người đó tổ chức.Nhận các thông báo nếu sự kiện mình đã đăng ký sắp diễn ra hoặc có sự thay đổi.Người dùng còn có thể chia sẻ thông tin cá nhân với nhau bằng mã QR
Trang 30Nhấn nút đăng nhập để thực hiện đăng nhập
2.2.3 Tìm kiếm sự kiện
Gồm các chức năng:
- Tìm kiếm sự kiện bằng văn bản
- Tìm kiếm sự kiện bằng giọng nói
- Tìm kiếm nâng cao (lọc sự kiện)
2.2.4 Đăng ký tham gia sự kiện
Gồm các chức năng:
- Xem chi tiết sự kiện cần tham gia
- Đăng ký tham gia
- Đặt câu hỏi cho diễn giả (nếu có)
2.2.5 Cập nhật sự kiện
Gồm các chức năng:
- Đăng ký tổ chức sự kiện Người dùng có thể đăng ký tổ chức sự kiện bằng việcnhập đầy đủ các thông tin cần thiết, sự kiện sẽ được công khai cho người khácđăng ký sau khi được quản trị viên duyệt, gồm các trường dữ liệu sau:
2.2.6 Cập nhật thông tin cá nhân
Phải cập nhật đầy đủ thông tin cá nhân mới được phép đăng ký tham gia sựkiện, gồm các chức năng:
Trang 31- Sửa thông tin cá nhân.
- Chia sẻ name-card điện tử
2.2.7 Checkin và đánh giá sự kiện
Sau khi đăng ký tham gia sự kiện, khi sự kiện được diễn ra thì tại sự kiện sẽ
có mã QR của sự kiện, dùng ứng dụng quét mã QR của sự kiện để checkin sự kiện,đánh dấu là đã tham dự sự kiện Sau khi tham dự sự kiện có thể đánh giá sự kiện đểxem sự thành công của sự kiện
2.2.8 Duyệt sự kiện
Đối với quản trị viên thì có thêm tính năng này Quản trị viên sẽ dựa trênnhững thông tin người dùng đã đăng ký tổ chức sự kiện để xét duyệt sự kiện Saukhi duyệt thì sự kiện được công khai cho tất cả người dùng đăng ký
2.2.9 Quản lý tài khoản
Đối với quản trị viên thì có thêm tính năng này Quản trị viên có thể cập nhậtthông tin tài khoản, quản lý số lượng tài khoản đang sử dụng ứng dụng, cấp lại mậtkhẩu cho người dùng, có thể khoá các tài khoản vi phạm do đăng ký tham gia sựkiện nhiều lần nhưng không đến dự
Trang 32- Xem thông tin sự kiện.
- Đăng ký tham gia sự kiện
- Đặt câu hỏi cho diễn giả (nếu có)
- Checkin sự kiện bằng mã QR
- Đánh giá sự kiện
- Đăng ký tổ chức sự kiện
- Cập nhật thông tin sự kiện
- Cập nhật thông tin cá nhân
- Theo dõi người dùng
- Chia sẻ name-card điện tử
Admin
- Đăng nhập, đăng xuất, đổi mật khẩu
- Xem thông tin sự kiện
- Duyệt sự kiện
- Quản lý tài khoản
Hình 2-11 Bảng mô tả USECASE