Yêu cầu chức năng1 Chức năng đăng nhập: Giúp đảm bảo xác thực thông tin người dùng và an toànbảo mật hệ thống.2 Tạo phiên điểm danh: Cho phép người quản lý giáo viên hoặc người dẫn lớp t
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
BÁO CÁO DỰ ÁN CÔNG NGHỆ Ngành: Công nghệ thông tin
Phần mềm điểm danh lớp học
bằng QR Code
Người thực hiện
Mã sinh viên
Lớp
Giảng viên hướng dẫn
: Đào Quang Huy : 21020329 : INT3132 1 : Lê Khánh Trình
HÀ NỘI - 2023
Trang 2MỤC LỤC
I TỔNG QUAN
II XÁC ĐỊNH YÊU CẦU
1 Yêu cầu chức năng
2 Yêu cầu phi chức năng
III CƠ SỞ DỮ LIỆU
1 Mô tả cơ sở dữ liệu
2 Mô tả chi tiết
3 Yêu cầu chức năng
IV SƠ ĐỒ CHỨC NĂNG
1 Biểu đồ use case tổng quan
2 Use case đăng nhập
3 Use case tạo phiên điểm danh
4 Use case ghi nhận điểm danh
5 Use case báo cáo và thống kê
V GIAO DIỆN PHẦN MỀM
1 Giao diện trang Đăng nhập
2 Giao diện trang Tạo phiên điểm danh
3 Giao diện trang Quét mã QR
4 Demo
VI KẾT LUẬN, ĐÁNH GIÁ
1 Kết luận
2 Đánh giá
3 Đề xuất phát triển trong tương lai
Trang 3I TỔNG QUAN
Việc giảng dạy từ lâu đã là nhiệm vụ cao cả của những người giáo viên Nhưng đôi khi, một ngày đến trường của họ không đơn giản là việc dạy học Việc điểm danh, quản lý học sinh có thể có những khó khăn Đặc biệt là với những lớp học có đông người học Vì sĩ số đông, nên việc điểm danh truyền thống là gọi tên theo danh sách có thể mất nhiều thời gian, và hiệu quả chưa cao
Để cải thiện những vấn đề này, ta nên sử dụng các công nghệ hỗ trợ Trong đó phải kể đến QR Code QR Code là viết tắt của Quick response code (Tạm dịch: Mã phản hồi nhanh) là một mã vạch ma trận (hay mã vạch hai chiều) được phát triển bởi công ty Denso Wave (Nhật Bản) vào năm 1994 QR Code bao gồm những chấm đen và ô vuông mẫu trên nề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ã
Phần mềm điểm danh lớp học bằng QR Code không chỉ giảm bớt công đoạn thủ công mà còn cung cấp các ưu điểm về độ chính xác, nhanh chóng và tính bảo mật, tạo nên sự hiệu quả trong quá trình giảng dạy và quản lý giáo dục
II XÁC ĐỊNH YÊU CẦU
1 Yêu cầu chức năng
1) Chức năng đăng nhập: Giúp đảm bảo xác thực thông tin người dùng và an toàn bảo mật hệ thống
2) Tạo phiên điểm danh: Cho phép người quản lý (giáo viên hoặc người dẫn lớp tạo phiên điểm danh mới trên hệ thống cho mỗi buổi học
3) Tạo mã QR Code: Hỗ trợ tạo mã QR Code cho từng phiên điểm danh cụ thể 4) Ghi nhận điểm danh: Cho phép người học quét mã QR code để ghi nhận việc điểm danh Cập nhật trạng thái điểm danh (có mặt hoặc vắng mặt) vào phiên điểm danh hiện tại
5) Báo cáo và thống kê: Cung cấp báo cáo tổng hợp về việc điểm danh cho mỗi phiên điểm danh hoặc tổng hợp cho toàn bộ khóa học, giúp giáo viên dễ dàng theo dõi sự tham gia của người học và phòng quản lý người học phân tích dữ liệu 6) Tích hợp cơ sở dữ liệu: Liên kết với cơ sở dữ liệu người học và khóa học để tự động cập nhật thông tin với phần mềm điểm danh
2 Yêu cầu phi chức năng
1) Hiệu suất: Đảm bảo thời gian phản hồi khi người dùng thực hiện các chức năng là hợp lý
1
Trang 42) Tương tác người dùng: Giao diện người dùng được thiết kế để đảm bảo sự thuận tiện với người dùng
3) Thiết bị truy cập: Yêu cầu thiết bị kết nối internet ổn định để truy cập và sử dụng dịch vụ điểm danh Thiết bị của sinh viên phải có camera có thể quét mã QR để điểm danh
4) Cơ sở dữ liệu: Sử dụng cơ sở dữ liệu để lưu trữ thông tin về danh sách lớp, thông tin sinh viên, và lịch sử điểm danh Ở đây ta sử dụng cơ sở dữ liệu quan hệ
III CƠ SỞ DỮ LIỆU
1 Mô tả cơ sở dữ liệu
Sử dụng cơ sở dữ liệu quan hệ cho phần mềm điểm danh để dễ dàng truy xuất thông tin người dùng Ở đây em chọn supabase để thực hiện việc thiết kế cơ sở dữ liệu
Sơ đồ ER cho cơ sở dữ liệu trong phần mềm điểm danh:
2 Mô tả chi tiết
● Bảng Student:
- MSV: mã số của sinh viên, là khóa chính
- FullName: Họ và tên của sinh viên
Trang 5- birthday: Ngày sinh của sinh viên.
● Bảng StudentAccount:
- UserName: Tên đăng nhập của tài khoản sinh viên (thường sử dụng luôn
mã sinh viên làm tên đăng nhập), vừa là khóa chính vừa là khóa ngoại liên kết với MSV của bảng Student
- Password: Mật khẩu của tài khoản sinh viên
● Bảng Teacher:
- ID: Mã số của giáo viên, là khóa chính
- FullName: Họ và tên của giáo viên
- UserName: Tên đăng nhập của tài khoản giáo viên, không có UserName giống nhau trong bảng Teacher
- Password: Mật khẩu của tài khoản giáo viên
● Bảng Class:
- ClassID: Mã số lớp học, là khóa chính
- NameClass: Tên của lớp học
- TeacherID: Mã số của giáo viên giảng dạy lớp học đó, là khóa ngoại liên kết với ID của bảng Teacher
- Lessons: Số tuần học của lớp
● Bảng QRcode:
- ClassID: Mã số lớp học, vừa là khóa chính vừa là khóa ngoại trong liên kết với ClassID của bảng Class
- Tuan_1, … : Lưu trữ thông tin phiên điểm danh các tuần học của mỗi lớp
● Bảng ClassID: Đây là danh sách sinh viên trong mỗi lớp học hiện có trong bảng
Class Vậy nên sẽ có nhiều các bảng ClassID với tên bảng là mã số lớp học đã có trong bảng
- STT: Số thứ tự mỗi sinh viên trong lớp học, là khóa chính
- MSV: Mã số của sinh viên, là khóa ngoại liên kết với MSV của bảng Student
- Tuan_1, … : Là các tuần học của lớp, lưu trữ thời gian điểm danh của sinh viên trong mỗi tuần học
3 Yêu cầu chức năng
- Quản lý danh sách lớp học: Lưu trữ thông tin về lớp học và sinh viên liên quan
- Ghi lịch sử điểm danh: Lưu trữ lịch sử điểm danh để theo dõi sự có mặt của sinh viên theo thời gian
Trang 6- Truy vấn dữ liệu: Sử dụng các câu lệnh truy vấn để lấy danh sách điểm danh của một lớp
IV SƠ ĐỒ CHỨC NĂNG
1 Biểu đồ use case tổng quan
Hình 1: Use case tổng quan
Trong biểu đồ use case tổng quan, có hai khối chức năng chính bao gồm ghi nhận điểm danh và tạo phiên điểm danh
Các tác nhân tham gia sử dụng phần mềm điểm danh:
- Người học: Là những người sử dụng phần mềm để điểm danh
- Giáo viên: Là người chịu trách nhiệm chính trong việc giảng dạy lớp học Các tác nhân trên sẽ có tài khoản đăng nhập với mỗi cá nhân
Ngoài ra cũng có phòng quản lý sinh viên chịu trách nhiệm về việc cập nhật danh sách giáo viên, lớp học và sinh viên trên hệ quản trị cơ sở dữ liệu để phần mềm có thể sử dụng
2 Use case đăng nhập
Use Case Name Đăng nhập
Description Là người dùng, cần đăng nhập vào ứng dụng để sử dụng các
dịch vụ của ứng dụng
Trang 7Actor Giáo viên, người học.
Priority Phải có
Trigger Người dùng muốn đăng nhập vào ứng dụng
Pre-Condition ● Tài khoản người dùng đã được tạo sẵn
● Thiết bị của người dùng đã được kết nối internet khi thực hiện đăng nhập
Post-Condition ● Người dùng đăng nhập ứng dụng thành công
● Hệ thống chuyển hướng khi đã đăng nhập thành công
Basic Flow 1 Người dùng truy cập phần mềm điểm danh, hệ thống chuyển
đến màn hình đăng nhập
2 Người dùng nhập tài khoản và chọn vai trò (giáo viên hay người học) sau đó nhấn đăng nhập
3 Hệ thống thông qua cơ sở dữ liệu đã có để xác thực thông tin đăng nhập thành công và cho phép người dùng truy cập ứng dụng
4 Hệ thống chuyển hướng theo vai trò của người dùng
Exception Flow 3a Hệ thống xác thực thông tin đăng nhập không thành công và
ở lại trang đăng nhập
3 Use case tạo phiên điểm danh
Use Case Name Tạo phiên điểm danh
Description Giáo viên tạo phiên điểm danh trên phần mềm khi bắt đầu một
tuần học
Priority Có thể có
Trigger Giáo viên muốn bắt đầu điểm danh trong lớp
Pre-Condition Giáo viên đã đăng nhập thành công Lớp bắt đầu điểm danh
Post-Condition ● Bắt đầu một phiên điểm danh, tạo thành công mã QR để điểm
danh
● Hệ thống lưu lại mã QR vừa tạo
Basic Flow 1 Giáo viên đã đăng nhập thành công, hệ thống chuyển hướng
sang trang dành cho giáo viên để thực hiện việc tạo phiên điểm danh
Trang 82 Trên màn hình hiển thị trang tạo phiên điểm danh, giáo viên chọn mã lớp học mà mình đang chủ nhiệm, tuần học hiện tại
và thời gian của một phiên điểm danh
3 Sau khi chọn xong, giáo viên nhấn nút “Bắt đầu phiên điểm danh”, thông tin của phiên điểm danh sẽ được gửi về server
và lưu vào cơ sở dữ liệu
4 Màn hình hiển thị mã QR được tạo từ các thông tin mà giáo viên vừa lựa chọn, người học quét mã và thực hiện điểm danh
Exception Flow 4a Nếu phiên điểm danh được tạo từ trước, mã QR hiển thị sẽ là
mã QR của phiên điểm danh đó
4 Use case ghi nhận điểm danh
Use Case Name Ghi nhận điểm danh
Description Người học muốn thực hiện điểm danh
Priority Có thể có
Trigger Người học muốn thực hiện việc điểm danh
Pre-Condition ● Tài khoản người học đã đăng nhập thành công
● Giáo viên đã tạo phiên điểm danh mới, có mã QR để thực hiện điểm danh
● Thiết bị được sử dụng để truy cập vào tài khoản của người học phải có camera có thể quét mã QR
Post-Condition ● Người học điểm danh thành công
● Hệ thống đã ghi nhận và lưu trữ lịch sử điểm danh trong cơ sở
dữ liệu
Basic Flow 1 Người học đã đăng nhập thành công, hệ thống chuyển hướng
sang trang dành cho người học để thực hiện quét mã QR để điểm danh
2 Người học cho phép phần mềm sử dụng camera của thiết bị
và bắt đầu quét mã QR mà giáo viên đã tạo
3 Sau khi thực hiện việc quét mã, hệ thống ghi nhận điểm danh cho người học tại thời điểm quét mã Sau đó hệ thống thông báo cho người học rằng điểm danh thành công
Exception Flow 3a Hệ thống điểm danh không thành công
3a1 Hệ thống thông báo: "Bạn không ở lớp này!", người học cần phải ở đúng lớp như trong danh sách của phòng quản lý
Trang 9người học.
3a2 Hệ thống thông báo: "Bạn đã điểm danh!" nếu người học thực hiện việc điểm danh nhiều lần trong một phiên điểm danh 3a3 Hệ thống thông báo: "Đã hết thời gian điểm danh!" nếu người học thực hiện việc điểm danh khi đã quá thời gian điểm danh
5 Use case báo cáo và thống kê
Use Case Name Báo cáo và thống kê
Description Giáo viên muốn xem danh sách lớp để theo dõi sự tham gia của
người học
Priority Có thể có
Trigger Giáo viên muốn xem danh sách lớp sau phiên điểm danh
Pre-Condition ● Giáo viên đã đăng nhập tài khoản thành công
● Sau khi phiên điểm danh bắt đầu, giáo viên có thể xuất dữ liệu về danh sách lớp từ database
Post-Condition Giáo viên đã xuất ra thành công danh sách lớp trong file Excel
Basic Flow 1 Sau khi tạo phiên điểm danh, giáo viên nhấn vào “Export
excel file” trong thanh menu ở góc trên bên phải màn hình
2 Hệ thống lấy dữ liệu từ database để xuất danh sách lớp trong
đó có thông tin của người học và lịch sử điểm danh
3 Giáo viên tải về file excel vừa xuất để xem danh sách lớp
Exception Flow 1a Phiên điểm danh chưa được tạo, việc xuất file sẽ không xảy
ra vì hệ thống vẫn chưa biết lớp cần được xuất dữ liệu
Trang 10V GIAO DIỆN PHẦN MỀM
1 Giao diện trang Đăng nhập
2 Giao diện trang Tạo phiên điểm danh
3 Giao diện trang Quét mã QR
Trang 11
4 Demo
Các bạn có thể truy cập vào đường link sau: duancongnghe-production.up.railway.app
để sử dụng phần mềm Sau đó đăng nhập vào tài khoản giáo viên:
● Username: hails123
● Password: 1
Hoặc tài khoản người học:
● Username: 22027553
● Password: 1
Để thực hiện thao tác tạo phiên điểm danh, xuất dữ liệu lớp học, điểm danh bằng mã QR Cũng có thể xem source code ở đây: https://github.com/Daohuy2409/DuAnCN.git
VI KẾT LUẬN, ĐÁNH GIÁ
1 Kết luận
Phần mềm điểm danh lớp học bằng mã QR đã được phát triển và triển khai với mục đích cung cấp một giải pháp hiệu quả và thuận tiện cho quá trình điểm danh trong lớp học Thông qua báo cáo này, chúng ta đã có cái nhìn tổng quan về các chức năng, hiệu suất, và khả năng mở rộng của phần mềm
Phần mềm đã đáp ứng tốt các yêu cầu chức năng của một phần mềm điểm danh với hiệu suất ổn định Nó cũng thể hiện khả năng mở rộng tốt, có thể tích hợp các tính năng mở rộng trong tương lai Điều này làm cho phần mềm trở thành một công cụ linh hoạt và thích hợp với nhiều môi trường học tập
Trang 122 Đánh giá
Trong quá trình đánh giá, chúng ta nhận thấy những điểm sau:
- Hệ thống đã cho thấy hiệu suất ổn định, với thời gian phản hồi nhanh chóng Tuy nhiên chưa được thực nghiệm trong tình huống xử lý số lượng người dùng đồng thời lớn
- Giao diện người dùng dễ sử dụng, nhưng vẫn còn khá sơ sài
- Hệ thống có khả năng mở rộng tốt
3 Đề xuất phát triển trong tương lai
Vì phần mềm điểm danh bằng mã QR vẫn còn khá đơn giản, nên em có một số đề xuất phát triển để cải tiến như sau:
● Tích hợp tính năng theo dõi điểm danh thực tế: Phát triển khả năng theo dõi vị
trí thực tế của sinh viên thông qua các công nghệ như GPS để đảm bảo tính chính xác trong quá trình điểm danh
● Phát triển ứng dụng trên di động: Phát triển ứng dụng di động đa nền tảng để
hỗ trợ các hệ điều hành di động, từ đó có thể tải ứng dụng về thiết bị thay vì sử dụng trên web như hiện nay
● Hỗ trợ tương tác thông minh: Cung cấp tính năng thông báo thông minh để
thông báo cho sinh viên và giảng viên các sự kiện quan trọng như, sắp điểm danh hoặc thông báo thời khóa biểu
● Giao diện người dùng thân thiện: Thiết kế giao diện người dùng một cách thông
minh và dễ sử dụng, tạo trải nghiệm tích cực cho người dùng
● Cải tiến về hiệu suất: Nâng cấp hệ thống để có hiệu suất ổn định, thời gian phản
hồi nhanh chóng và có thể xử lý số lượng người dùng đồng thời lớn
● Cải tiến về cơ sở dữ liệu: Thiết kế cơ sở dữ liệu với lượng dữ liệu lớn (thông tin
về giáo viên, người học, lớp học) để có thể truy xuất dữ liệu nhanh chóng
● An toàn và bảo mật: Các dữ liệu về người dùng, thông tin lớp học và phiên điểm
danh cần được bảo mật để tránh những cuộc tấn công gây lộ hoặc mất thông tin