Chương 3 : Kiến thức nền tảng
4.1.3. Phân tích yêu cầu người dùng
4.1.3.2. Danh sách các Actors
STT Tên Actors Ý nghĩa
1 Người dùng ứng dụng Những người có trách nhiệm tham gia quản lý, tổ chức các sự kiện. Đã được tạo tài khoản bởi quản lý.
2 Quản lý Người có quyền quản lý các thơng tin chung của hệ thống. Có tồn quyền thực thi các chức năng của ứng dụng Bảng 4-1: Danh sách các actor trong hệ thống
4.1.3.3. Danh sách các Use case
STT Tên Use Case Mô tả Use Case
1 Quản lý tài khoản Quản lý các thông tin liên quan đến tài khoản, thông tin người dùng
2 Đăng nhập Người dùng có thể đăng nhập vào hệ thống bằng
tài khoản đã được tạo bởi quản lý
3 Khôi phục mật khẩu Cho phép lấy lại mật khẩu thông qua email và số điện thoại của tài khoản
4 Cập nhật thông tin Cập nhật các thông tin về tài khoản, mật khẩu. 5 Quản lý biểu mẫu sự kiện Quản lý các thông tin liên quan đến biểu mẫu sự
kiện, bao gồm: Thêm, Xóa, Sửa thơng tin cơ bản của biểu mẫu sự kiện
6 Tạo sự kiện từ biểu mẫu Tạo sự kiện từ biểu mẫu sự kiện đã có sẵn với tất cả thơng tin có trong biểu mẫu
7 Quản lý sự kiện Quản lý các thông tin liên quan đến sự kiện, bao gồm: Thêm, Xóa, Sửa thông tin cơ bản của sự kiện 8 Quản lý nhóm liên lạc Là usecase mở rộng của quản lý biểu mẫu sự kiện và sự kiện. Bao gồm: Thêm, Xóa, Sửa nhóm liên lạc. Nhóm liên lạc là nhóm chat chung để ban tổ chức của sự kiện trao đổi thông tin
9 Quản lý loại khách mời Là usecase mở rộng của quản lý biểu mẫu sự kiện và sự kiện. Bao gồm: Thêm, Xóa, Sửa loại khách mời. Dùng để phân nhóm khách mời, dễ dàng theo dõi
10 Quản lý khách mời Là usecase mở rộng của quản lý biểu mẫu sự kiện và sự kiện. Bao gồm: Thêm, Xóa, Sửa, Theo dõi tình trạng tham gia của khách mời
11 Quản lý kịch bản Là usecase mở rộng của quản lý biểu mẫu sự kiện và sự kiện. Bao gồm: Thêm, Xóa, Sửa, Theo dõi kịch bản
Kịch bản là kịch bản thực thi chi tiết cho một cá nhân
12 Xem lịch sử thay đổi kịch bản Là usecase mở rộng của quản lý kịch bản. Dùng để xem lại lịch sử thay đổi tất cả các thông tin chi tiết của kịch bản
13 Xuất kịch bản Là usecase mở rộng của quản lý kịch bản. Dùng để xuất toàn bộ kịch bản ra file word để người dùng tiện theo dõi khi sự kiện diễn ra
14 Quản lý ban tổ chức Là usecase mở rộng của quản lý sự kiện. Bao gồm: Thêm, Xóa, Sửa thơng tin bản tổ chức
15 Phân nhóm ban tổ chức Là usecase mở rộng của Quản lý ban tổ chức. Phân ban tổ chức vào các ban với các chức vụ
16 Phân quyền ban tổ chức Là usecase mở rộng của Quản lý ban tổ chức. Quy định những quyền thực thi nhất định cho ban tổ chức
17 Tạo báo cáo Là usecase mở rộng của Quản lý sự kiện. Tạo thống kê, báo cáo về sự kiện, có những thơng tin như danh sách tài liệu, tổng cơng việc hồn thành, chưa hồn thành,…
18 Quản lý loại công việc Là usecase mở rộng của Quản lý sự kiện. Bao gồm: Thêm, Xóa, Sửa. Dùng để phân nhóm cơng việc 19 Quản lý cơng việc Là usecase mở rộng của Quản lý loại công việc.
Bao gồm: Thêm, Xóa sửa
20 Quản lý tài liệu Là usecase mở rộng của Quản lý công việc. Bao gồm: Thêm, Xóa, Sửa, Tải về tài liệu
21 Quản lý danh sách công việc cần làm
Là usecase mở rộng của Quản lý công việc. Bao gồm: Thêm, Xóa, Sửa.
22 Giao tiếp Là usecase mở rộng của Quản lý nhóm liên lạc và
cơng việc. Dùng để giao tiếp giữa các thành viên 23 Nhắn tin văn bản Là usecase mở rộng của Giao tiếp. Dùng để nhắn
tin dạng văn bản
24 Nhắn tin file tài liệu Là usecase mở rộng của Giao tiếp. Dùng để nhắn tin dạng file, có thể là hình ảnh, word,…
25 Video call Là usecase mở rộng của Giao tiếp. Dùng để gọi video nhóm
26 Tạo biểu mẫu sự kiện Là usecase mở rộng từ Quản lý Sự kiện. Dùng để tạo biểu mẫu với tất cả thông tin liên quan đến sự kiện. Dùng để lưu trữ để tiết kiệm thời gian cho lần tạo sự kiện tiếp theo với chủ để giống nhau
27 Xem lịch Là usecase dùng để theo dõi công việc lớn và danh
sách công việc con cần làm của người dùng
28 Quản lý người dùng Bao gồm: Thêm, Xóa, Sửa. Quản lý danh sách người dùng
29 Quản lý quyền hệ thống Bao gồm: Thêm, Xóa, Sửa. Phân biệt các loại user trong hệ thống
30 Quản lý tags sự kiện Bao gồm: Thêm, Xóa, Sửa. Là thơng tin cơ bản của sự kiện
31 Quản lý hình thức sự kiện Bao gồm: Thêm, Xóa, Sửa. Là thơng tin cơ bản của sự kiện
32 Quản lý quyền ban tổ chức Bao gồm: Thêm, Xóa, Sửa. Dùng để phân nhóm cho ban tổ chức trong sự kiện
33 Quản lý ban Bao gồm: Thêm, Xóa, Sửa. Dùng để phân nhóm cho ban tổ chức trong sự kiện
34 Quản lý quyền thực thi Bao gồm: Thêm, Xóa, Sửa. Dùng để Phân quyền ban tổ chức
35 Quản lý độ ưu tiên cơng việc Bao gồm: Thêm, Xóa, Sửa. Là thông tin cơ bản của công việc
36 Quản lý tags cơng việc Bao gồm: Thêm, Xóa, Sửa. Là thông tin cơ bản của công việc
Bảng 4-2: Danh sách các Use case trong hệ thống
4.1.3.4. Mô tả Use case Usecase: Quên mật khẩu Usecase: Quên mật khẩu
Tên Use-case Quản lý theo dõi
Mô tả Usecase được tạo ra để người dùng có thể cập nhật lại mật khẩu mới khi quên mật khẩu cũ.
Actor Người dùng ứng dụng
Tiền điều kiện Ứng dụng có kết nối internet
Hậu sự kiện Khơng có
Luồng sự kiện chính
1. Người dùng chọn chức năng quên mật khẩu ở trang đăng nhập 2. Hiển thị trang quên mật khẩu
3. Nhập email và số điện thoại. 4. Chọn cập nhật mật khẩu.
5. Mật khẩu mới được gửi về email
Luồng sự kiện phụ
1. Validate dữ liệu sai -> hệ thống hiển thị lỗi 2. So sánh dữ liệu sai với DB -> hệ thống báo lỗi
3. Có lỗi hệ thống trong quá trình cập nhật mật khẩu hay gửi mail -> hệ thống báo lỗi
Tên Use-case Quản lý theo dõi
Mô tả Usecase được tạo ra để người dùng có thể tạo sự kiện để quản lý bằng cách thủ công
Actor Quản lý
Tiền điều kiện Đăng nhập và có vai trị quản lý
Hậu điều kiện Tên sự kiện tạo mới chưa tồn tại
Luồng sự kiện chính 1. Người dùng chọn thêm sự kiện ở trang quản lý sự kiện 2. Nhập thông tin sự kiện
3. Nhấn tạo mới.
Luồng sự kiện phụ 1. Validate các trường dữ liệu sai -> hệ thống báo lỗi 2. Sự kiện đã tồn tại -> hệ thống báo lỗi
3. Có lỗi hệ thống trong quá trình tạo -> hệ thống báo lỗi 4. Tạo sự kiện từ biểu mẫu sự kiện
Bảng 4-4: Mô tả Usecase tạo sự kiện mới
Usecase: Tạo biểu mẫu sự kiện
Tên Use-case Quản lý theo dõi
Mô tả Usecase được tạo ra để người dùng có thể tạo biểu mẫu sự kiện sau này có thể tạo sự kiện tự động bằng cách thủ công
Actor Quản lý
Tiền điều kiện Đăng nhập và có vai trị quản lý
Hậu điều kiện Tên biểu mẫu sự kiện tạo mới chưa tồn tại
Luồng sự kiện chính 1. Người dùng chọn thêm biểu mẫu sự kiện ở trang quản lý biểu mẫu sự kiện
2. Nhập thông biểu mẫu sự kiện 3. Nhấn tạo mới.
2. Biểu mẫu đã tồn tại -> hệ thống báo lỗi
3. Có lỗi hệ thống trong quá trình tạo -> hệ thống báo lỗi 4. Tạo biểu mẫu sự kiện từ sự kiện
Bảng 4-5: Mô tả Usecase tạo biểu mẫu sự kiện
Usecase: Giao tiếp
Tên Use-case Quản lý theo dõi
Mô tả Usecase được tạo ra để người dùng có giao tiếp với nhau trực tuyến với nhau thơng qua các phịng giao tiếp của sự kiện, kịch bản, công việc
Actor Ban tổ chức của một sự kiện
Tiền điều kiện Đăng nhập và được phân công
Nếu ở trang sự kiện: phải có phịng do quản lý tạo
Hậu điều kiện Khơng có
Luồng sự kiện chính 1. Người dùng chọn phòng giao tiếp 2. Nhập nội dung tin nhắn
3. Bấm gửi.
Luồng sự kiện phụ Khơng có
Bảng 4-6: Mô tả usecase Giao tiếp
Usecase: Tạo công việc
Tên Use-case Quản lý theo dõi
Actor Quản lý hoặc người dùng được phân công quản lý công việc
Tiền điều kiện Đăng nhập và được phân công Phải có sự kiện để tạo cơng việc
Hậu điều kiện Tên công việc không bị trùng trong 1 sự kiện
Luồng sự kiện chính 1. Ở trang quản lý công việc, chọn sự kiện cần tạo 2. Chọn thêm công việc
3. Nhập thông tin công việc. 4. Chọn tạo mới
Luồng sự kiện phụ 1. Validate các trường dữ liệu sai -> hệ thống báo lỗi 2. Công việc đã tồn tại -> hệ thống báo lỗi
3. Có lỗi hệ thống trong q trình tạo -> hệ thống báo lỗi Bảng 4-7: Mô tả usecase tạo công việc
Usecase: Cập nhật chi tiết kịch bản
Tên Use-case Quản lý theo dõi
Mô tả Usecase được tạo ra để người dùng quản lý kịch bản
Tiền điều kiện Đăng nhập và được phân cơng Phải có sự kiện để tạo kịch bản
Hậu điều kiện Tên chị tiết kịch bản không bị trùng
Luồng sự kiện chính 1. Ở trang chỉnh sửa kịch bản • Thêm 2. Chọn thêm 3. Nhập thông tin 4. Chọn xác nhận • Sửa 2. Chọn sửa 3. Nhập thơng tin 4. Chọn xác nhận • Xóa 2. Chọn xóa 3. Xác nhận
Luồng sự kiện phụ 1. Validate các trường dữ liệu sai -> hệ thống báo lỗi
2. Có lỗi hệ thống trong q trình cập nhật -> hệ thống báo lỗi
4.2. Phân tích thiết kế hệ thống 4.2.1. Thiết kế cơ sở dữ liệu 4.2.1. Thiết kế cơ sở dữ liệu
4.2.1.1. Lược đồ cơ sở dữ liệu
4.3. Thiết kế kiến trúc hệ thống 4.3.1. Kiến trúc tổng thể 4.3.1. Kiến trúc tổng thể
Hình 4-4: Kiến trúc tổng thể hệ thống
Server: Máy chủ của ứng dụng, sử dụng Express framework 4.0 được viết bằng ngơn ngữ
nodejs và có thể chạy được trên nhiều hệ điều hành khác nhau :OS X, Microsoft Windows, Linux.
Expo Server:
Hình 4-5: Kiến trúc hệ thống Expo Sử dụng để tạo thông báo đẩy khi người dùng nhận thông báo.
SMTP Server: Máy chủ giao tiếp với SMTP server thông qua giao thức SMTP mỗi khi cần
gửi mail đến người dùng.
MongoAtlas: MongoDB Atlas là cloud database của MongoDB được ra mắt vào năm 2016
chạy trên AWS, Microsoft Azure và Google Cloud Platform
Websocket: Dùng để chuyển nhận dự liệu thời gian thực khi người dùng chuyển tin nhắn,
nhận thông báo, video-call
4.3.2. Kiến trúc ứng dụng
Hình 4-6: Kiến trúc ứng dụng Ứng dụng web sử dụng Reactjs và di động sử dụng React Native
App routing: sử dụng React-Router, dùng để định hướng giao diện thông qua URL. View: là giao diện diện người dùng nhìn thấy thơng qua 1 URL nhất định.
Component: giúp phân chia các UI (giao diện người dùng) thành các phân nhỏ để dễ dàng
quản lý và tái sử dụng. 1 View có thể được cấu thành từ nhiều component, và 1 component cũng có thể được cấu thành từ nhiều component nhỏ hơn
Component có thể liên kết trực tiếp với back-end server thông qua Api hay WebSocket services.
4.3.3. Thiết kế giao diện
4.3.3.1. Giao diện một số màn hình của ứng dụng a) Website
Hình 4-8: Trang chủ
Hình 4-10: Chi tiết sự kiện
Hình 4-11: Theo dõi kịch bản
Hình 4-12: Chi tiết kịch bản
Hình 4-14: Chi tiết sự kiện - Ban tổ chức
Hình 4-16: Thêm sự kiện
Hình 4-18: Tạo cơng việc mới
Hình 4-22: Bản sao sự kiện - cơng việc
Hình 4-24: Bản sao sự kiện - thơng tin chung
Hình 4-26: Xuất kịch bản
Hình 4-28: Trang admin - quản lý người dùng
b) Mobile
Hình 4-30: Đăng nhập Hình 4-31: Quên mật khẩu
Hình 4-33: Trang chủ Hình 4-32: Danh sách sự kiện
Hình 4-35: Chi tiết sự kiện - thơng tin chung
Hình 4-34: Chi tiết sự kiện - ban tổ chức
Hình 4-39: Theo dõi kịch bản Hình 4-38: Lịch sử thay đổi
Hình 4-41: Chi tiết sự kiện - Hội
Hình 4-43: Báo cáo - thống kê Hình 4-42: Báo cáo - tài ngun
Hình 4-46: Chi tiết cơng việc - Danh sách cần làm
Hình 4-47: Chi tiết cơng việc - Bình luận
Hình 4-59: Thơng tin người dùng Hình 4-50: Chỉnh sửa thơng tin
Chương 5: Triển khai hệ thống
5.1. Máy chủ và giao diện website của ứng dụng
Máy chủ và giao diện website của ứng dụng được triển khai trên hệ thống đám mây Heroku. Máy chủ là một RESTFUL API server phục vụ nhu cầu truy vấn, cập nhật dữ liệu. Cung cấp các API cần thiết khác để lắng nghe sự thay đổi dữ liệu thông qua WebSocket.
Ứng dụng được tạo và quản lý thông qua Heroku CLI, sử dụng trực tiếp trên terminal. Sử dụng gói triển khai miễn phí trên tài khoản đã xác thực, có thể hoạt động 1000 giờ mỗi tháng. Sau 30 phút khơng có truy cập hệ thống sẽ tự động chuyển về trạng thái ngủ và phải chờ một khoảng thời gian nhỏ đánh thức để sử dụng
Hình 5-2: Thơng tin hệ thống đã triển khai
5.2. Ứng dụng di động
Ứng dựng di động được phát triển dựa trên expo framework. Expo cung cấp một công cụ dịng lệnh có tên là Exp. Cơng cụ này cho phép các nhà phát triển bắt đầu quá trình build trên các máy chủ Expo. Khi đã hoàn tất, một URL sẽ được cung cấp để tải về tập tin .apk hoặc .ipa đáp ứng được đồng thời android và ios. Phiên bản tối thiểu expo hỗ trợ là Android 5+ and iOS 10+
Chương 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 6.1. Kết quả đạt được 6.1. Kết quả đạt được
Thông qua việc nghiên cứu và tìm hiểu các cơng nghệ, đặc biệt là các cơng nghệ mới, khóa luận đã phát triển được ứng dụng quản lý và theo dõi sự kiện hoàn chỉnh. Do giới hạn về kinh phí đăng ký tài khoản nhà phát triển, ứng dụng đang dừng lại ở giai đoạn chạy thử, chưa thể đẩy lên chợ ứng dụng Appstore và CH Play. Tuy nhiên kết quả chạy thử cho thấy hệ thống hoạt động tốt, và có thể mở rộng, phát triển thêm trong tương lai.
Về mặt kỹ thuật, khóa luận đã đạt được các kết quả như sau:
- Tìm hiểu được ReactJS và React Native, một cơng nghệ để lập trình giao diện website và mobile được phát triển bới Facebook, có cộng động phát triển trên khắp thế giới - Tìm hiểu được NodeJS, nền tảng xây dựng giúp xây dựng các ứng dụng web một cách
đơn giản và dễ dàng mở rộng.
- Tìm hiểu hiểu được MongoDb, một dạng phần mềm cơ sở dữ liệu sử dụng mã nguồn mở