



!"#$%&' (
)*+,#-./01($2345
,6"78,9":;<"7=>"# Ths. Trần Hồng Nghi
$<?#
NT106.N22.ANTT
:@AB,":8,9"#
22520643 NGUYỄN KIM KHÁNH
22520937 TRẦN THU NGÂN
22521057 LĂNG THỊ CẨM NHUNG
22520701 TRẦN ANH KHÔI
CDECD
LỜI CẢM ƠN......................................................................................................................4
Chương 1: TỔNG QUAN ĐỀ TÀI......................................................................................5
1. Lý do chọn đề tài.........................................................................................................5
2. Mục tiêu nghiên cứu:...................................................................................................5
3. Đối tượng và phạm vi nghiên cứu:..............................................................................6
3.1. Đối tượng:.............................................................................................................6
3.2. Phạm vi:................................................................................................................6
4. Khảo sát:......................................................................................................................6
5. Nội dung, phương pháp thực hiện đề tài:....................................................................6
6. Kế hoạch làm việc:......................................................................................................7
7. Phân chia công việc:....................................................................................................8
Chương 2: CƠ SỞ LÝ THUYẾT........................................................................................9
1. Tổng quan về công nghệ sử dụng:...............................................................................9
2. Giới thiệu về Firebase:.................................................................................................9
3. Realtime Database của Firebase:.................................................................................9
3.1. Tại sao nên sử dụng Realtime Database của Firebase:.........................................9
3.2. Áp dụng Realtime Database vào xây dựng phần mềm quản lý sinh viên:...........9
4. Firebase Storage:.........................................................................................................9
4.1. Tại sao nên sử dụng Firebase Storage:.................................................................9
4.2. Áp dụng Firebase Storage vào xây dựng phần mềm quản lý sinh viên:...............9
5. Firestore:....................................................................................................................10
5.1. Tại sao nên sử dụng Firestore:............................................................................10
5.2. Áp dụng Firestore vào xây dựng phần mềm quản lý sinh viên:.........................10
Chương 3: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG.....................................................11
1. Kiến trúc hệ thống:....................................................................................................11
2. Mô hình phân rã chức năng:......................................................................................11
3. Mô hình usercase:......................................................................................................12
4. Sơ đồ phân lớp...........................................................................................................14
5. Lượt đồ Sequence:.....................................................................................................15
7. Thiết kế cơ sở dữ liệu................................................................................................15
2
Chương 4: XÂY DỰNG ỨNG DỤNG.............................................................................18
1. Tương quan giữa mục tiêu lý thuyết và thực tế:........................................................18
2. Các giao diện chính của ứng dụng.............................................................................18
3. Kết quả đề tài:............................................................................................................25
Chương 5. Kiểm thử ứng dụng..........................................................................................26
1. Khả năng chịu tải.................................................................................................26
2. Độ trễ....................................................................................................................26
3. Các tác động môi trường......................................................................................26
4. Kết luận................................................................................................................26
Chương 6 Kết luận và hướng phát triển............................................................................27
1. Kết luận................................................................................................................27
2. Ưu điểm................................................................................................................27
3. Nhược điểm..........................................................................................................27
4. Hướng phát triển..................................................................................................27
TÀI LIỆU THAM KHẢO.............................................................................................28
3
$(F
Trước tiên, với tất cả lòng biết ơn sự kinh trọng, chúng em xin gửi lời cảm ơn, tri ân
chân thành sâu sắc đến Ths. Trần Hồng Nghi người hướng dẫn đã hết sức tận
tâm, nhiệt tình hỗ trợ hết lòng giúp đỡ cho nhóm chúng em trong suốt quá trình thực
hiện đồ án môn học này. Những định hướng, bổ sung, góp ý của kim chỉ nam
nền tảng sở góp phần giúp chúng em những bước đi đúng đắn, đạt được kết quả tốt
nhất trong việc xây dựng, phát triển ứng dụng và hoàn thiện đồ án môn học.
Tiếp theo, chúng em xin được phép gửi lời cảm ơn đặc biệt đến gia đình người thân.
Gia định luônchỗ dựa tinh thần vững chắc, nguồn động lực lớn giúp chúng em vượt
qua mọi khó khăn, phấn đấu hoàn thành tốt đề tài này.
Cuối cùng, chúng em xin gửi lời cảm ơn đến các anh, chị và các bạn sinh viên trường Đại
học Công nghệ Thông tin đã nhiệt tình hỗ trợ, chịu sẽ ý kiến, góp ý giúp em trong suốt
thời gian thực hiện đồ án. Một lần nữa, chúng em xin chân thành cảm ơn xin gửi lời
chúc sức khỏe đến Ths. Trần Hồng Nghi. Kính chúc luôn luôn tiến tới thành công
trong sự nghiệp theo đuổi tri thức của mình.
TP. Hồ Chí Minh, 6 tháng 7 năm 2024
4
:;G"7H#I
HJ$K=LD:M"N)*+,
Trải qua rất nhiều năm, phương pháp quản đào tạo theo kiểu truyền thống cho thấy
sự đóng góp rất lớn trong việc quản giảng dạy học tập. Cùng với xu hướng phát
triển của công nghệ thông tin các phương tiện truyền thông, việc ứng dụng công nghệ
thông tin vào công tác quản hiện đang một nhu cầu cấp thiết nhằm tiết kiệm công
sức thời gian, nâng cao chất lượng dạy học. Theo đó việc áp dụng nhiều phương
pháp đào tạo mới, cũng như liên kết đào tạo giữa các trường đòi hỏi công tác quản lý phải
thường xuyên sự thay đổi, như quản đào tạo, quản tuyển sinh, quản điểm. Đặc
biệt, quản điểm đã đang một vấn đề nan giải trong việc đào tạo của các trường.
Nhận thấy được nhu cầu đó, em quyết định chọn đề tài “Xây dựng phần mềm quản
điểm sinh viên bằng”, với mục đích giảm tải chi phí trong công tác quản lý, tiết kiệm thời
gian nhằm nâng cao hiệu quả trong công tác quản lý dạy và học.
OJCD*,9P"7:,9"DQP#
- Phần mềm dễ sử dụng, có tính khả thi, đầy đủ thông tin, tránh dư thừa thông tin.
- Hỗ trợ cho công tác quản lý giáo viên, sinh viên một cách thuận lợi.
- Hỗ trợ cho công tác quản trong việc cập nhật, sửa đổi, tra cứu, tra cứu thông tin liên
quan đến sinh viên về điểm của sinh viên.
- Tiết kiệm thời gian, công sức thay thế các công việc làm bằng thủ công dựa trên giấy tờ.
:QD"R"7 !*6
Đăng nhập Phân quyền Giảng viên / Sinh viên để đăng nhập vào ứng dụng
,6"78,9"
Nhập điểm Giảng viên thể nhập điểm cho sinh viên bằng cách nhập tay
(đối với từng cá nhân) hoặc bằng file Excel (đối với lớp).
Thống kê Giảng viên thể xem theo điểm của từng lớp (tỉ lệ đậu/
môn)
Giao bài tập Giảng viên tạo bài tập và có Deadline cho Sinh viên làm.
Thông báo Giảng viên có thể thông báo đến lớp mình phụ trách
Quản lí danh sách lớp Giảng viên có thể thêm/xóa/sửa/tìm kiếm một sinh viên.
Nhắn tin Nhắn tin giữa các người dùng với nhau.
Thông tin giảng viên Xem thông tin cá nhân
4,":8,9"
Thời khóa biểu Xem lịch học
Xem điểm Sinh viên xem kết quả học tập của mình.
Làm bài tập Sinh viên nhận bài tập nộp bài trực tiếp trên ứng dụng (bằng
cách up file)
Thông báo Sinh viên nhận thông báo từ giảng viên
5
Nhắn tin Nhắn tin giữa các người dùng với nhau
Thông tin sinh viên Xem thông tin cá nhân
6"7HJH Tổng hợp các chức năng có trong phần mềm
SJT,*;U"78+?:VA8,"7:,9"DQP#
SJHJT,*;U"7#
- Kỹ thuật lập trình socket, sử dụng các giao thức mạng TCP/IP, UDP để kết nối
người dùng qua mạng LAN
- Tìm hiểu về Windows Forms .NET, ASP.NET Core Web API, để xây dựng giao
diện, các chức năng cho phần mềm.
- Tìm hiểu về Firebase để thực hiện database lưu trữ dữ liệu người dùng.
SJOJ:VA8,#
Đề tài được xây dựng cho máy tính / laptop chạy hệ điều hành windows. Đề tài được
thực hiện, hoàn thiện một sản phẩm cụ thể và được kiểm tra, thử nghiệm ở quy mô nhỏ.
WJ:6LBX*#
Hiện nay, trên thị trường đã không ít phần mềm hỗ trợ quán giáo dục, cụ thể
sinh viên, đầu rất tốt về mặc giao diện, tính năng. Thậm chí, còn hỗ trợ trao đổi trực
tiếp giữa các người dùng. Vì vậy, mục tiêu chúng em chọn đề tài này không phải là để cải
tiến, phát triển ra sản phẩm mới thị trường chưa có. để rèn luyện kỹ năng, vận
dụng kiến thức đã học vào thực tiễn.
YJZ,=P"7[?:;G"7?:X?*:\D:,]"N)*+,#
Z,=P"7H# Xác định các đối tượng cần trong ứng dụng. Lên ý tưởng thiết kế
giao diện.
- CDN^D:#Để thiết kế các giao diện cho ứng dụng. Xây dựng hình quan
hệ cho các đối tượng từ đó đi đến giai đoạn code.
- :;G"7?:X?#Xác định các đối tượng cần trong ứng dụng, làm đồ
quan hệ vận dụng kiến thức đã học từ môn OOP. Phân tích các yêu cầu giao
diện, xác định được chức năng, thành phần của từng giao diện, xác định tông
màu chủ đạo, font chủ đạo, sử dụng công cụ sẵn để bổ trợ xây dựng
giao diện trên winform.
- _*`P6*:\D:,]"# Xây dựng đồ quan hệ của các đối tượng. Hoàn thành
các giao diện đăng nhập, trang chủ, thống kê, giao bài tập, quản lý sinh viên,
nhắn tin, quản lý điểm, thông báo, thông tin người dùng cho phía giảng viên.
Hoàn thành giao diện trang chủ, xem điểm, làm bài tập, thông báo, nhắn tin,
6
thông tin người dùng cho phía sinh viên.
Z,=P"7O# Kiến thức để xây dựng, hiện thực ứng dụng.
- CDN^D:# Xác định hiểu các công nghệ cần sử dụng như Windows
Form.NET, C# và Firebase để có thể bắt đầu xây dựng ứng dụng.
- :;G"7?:X?#Tìm hiểu và đọc tài liệu trên các trang chính thống.
- _*`P6*:\D:,]"# Nắm được nội dung, cách thức để thực hiện code.
aJ_:LVD:E+A8,]D#
:b,7,c" Z,=P"7
19/2 – 15/3/2024 Chọn đề tài
Thiết kế giao diện
Phân chia đối tượng và tạo sơ đồ OOP cho game
15/3 – 31/3/2024 Code chức năng: đăng nhập, nhập điểm, xem danh sách, thông
báo (ở phía người dùng là giảng viên)
1/3 – 22/4/2024 Chuẩn bị báo giữa kì
Ghi nhận những nhận xét và yêu cầu của giảng viên
23/4 – 10/5/2024 Code các chức năng Chat, tạo deadline giao bài tập, xem thời
khóa biểu.
Thực hiện đồng bộ hóa các chức năng cũng như dữ liệu ở 2
phía.
11/5 – 18/5/2024 Thực hiện chỉnh sửa giao diện, thêm các chức năng theo yêu
cầu của giảng viên.
19/5 – 31/5/2024 Fix bugs lỗi
1/6 – 15/6/2024 Tạo server bằng công nghệ mới (ASP.NET Core Web API)
15/6 – 30/6/ 2024 Fix bugs
1/7 – 5/7/2024 Chuẩn bị báo cáo cuối kỳ
6/7/2024 Báo cáo cuối kì
7
dJ:e"D:,cD!"78,]D#
:+":8,9" :,]A8C
Nguyễn Kim Khánh Code tính năng quản lí điểm, quản lí sinh
viên, fix chat.
Trần Thu Ngân Code tính năng quên mật khẩu, chat,
thông báo, thông tin giảng viên, sinh
viên, thời khóa biểu.
Lăng Thị Cẩm Nhung Chỉnh sửa giao diện, code deadline, giao
task
Trần Anh Khôi Kết nối firebase, tạo git, code thống kê,
fix lỗi.
f/g
(Họ tên và chữ ký)
..........................
TP.HCM, ngày 6 tháng 7 năm 2024
45
(Họ tên và chữ ký)
.....................
8
:;G"7O#F4h$2i
HJj"7`Pc"8)D!"7"7:]Bk=C"7#
Phần mềm quản điểm sinh viên được phát triển bằng cách sử dụng các công nghệ hiện
đại tiên tiến. Phía người dùng (client) được xây dựng trên nền tảng Windows
Forms .NET với ngôn ngữ lập trình C#. Phía server cũng sử dụng Windows Forms .NET
C#, ASP.NET Core Web API để đảm bảo tính đồng nhất tối ưu hóa hiệu suất. Giao
diện được thiết kế bằng Canva Guna.UI2.WinForms để tạo ra một trải nghiệm người
dùng thân thiện trực quan. Dữ liệu được lưu trữ quản bởi Firebase, một nền tảng
mạnh mẽ và linh hoạt cho phát triển ứng dụng.
OJ,<,*:,]P8)l,mnocBn#
Firebase một nền tảng phát triển ứng dụng được Google hỗ trợ, giúp các nhà phát triển
xây dựng và phát triển các ứng dụng và trò chơi. Được thành lập vào năm 2011 và sau đó
được Google mua lại vào năm 2014, Firebase đã trở thành một công cụ chủ lực trong việc
phát triển ứng dụng với nhiều tính năng mạnh mẽ linh hoạt, được hàng triệu doanh
nghiệp trên toàn thế giới tin tưởng.
SJncE*,An/c*cocBnDpcl,mnocBn#
SJHJV,BcL"9"Bk=C"7ncE*,An/c*cocBnDpcl,mnocBn#
Realtime Database của Firebase cung cấp một giải pháp lưu trữ dữ liệu theo thời gian
thực, cho phép đồng bộ hóa dữ liệu ngay lập tức trên tất cả các thiết bị kết nối. Một số
khả năng chính của Realtime Database bao gồm:
Thời gian thực: Dữ liệu được đồng bộ hóa ngay lập tức mỗi khi sự thay đổi, đảm bảo
mọi thiết bị kết nối đều nhận được cập nhật trong vòng mili giây.
Ngoại tuyến: Ứng dụng vẫn hoạt động ngay cả khi không kết nối mạng, nhờ vào việc
Realtime Database duy trì dữ liệu trên thiết bị. Khi kết nối được khôi phục, dữ liệu sẽ
được đồng bộ hóa lại với máy chủ.
Truy cập từ các thiết bị khách: Realtime Database thể được truy cập trực tiếp từ các
thiết bị di động hoặc trình duyệt web, không cần máy chủ ứng dụng. Bảo mật và xác thực
dữ liệu được đảm bảo thông qua các quy tắc bảo mật của Firebase.
SJOJ?=C"7ncE*,An/c*cocBn8+Lqer=\"7?:s"A)A`P6"EKB,":8,9"#
Trong đề tài này, Realtime Database của Firebase được sử dụng để lưu trữ lịch sử tin
nhắn giữa các người dùng. Điều này giúp đảm bảo rằng mọi tin nhắn đều được đồng bộ
hóa ngay lập tức thể truy cập từ bất kỳ thiết bị nào, mang lại trải nghiệm người
dùng tốt nhất.
WJl,mnocBn4*Lmc7n#
WJHJV,BcL"9"Bk=C"7l,mnocBn4*Lmc7n#
Firebase Storage cung cấp khả năng lưu trữ an toàn, hiệu quả thể mở rộng. Đây
một lựa chọn tưởng cho việc lưu trữ dữ liệu không cấu trúc như hình ảnh tài liệu,
nhờ vào tính năng bảo mật và tích hợp sâu với các dịch vụ khác của Firebase.
WJOJ?=C"7l,mnocBn4*Lmc7n8+Lqer=\"7?:s"A)A`P6"EKB,":8,9"#
9
Trong đề tài này, Firebase Storage được sử dụng để lưu trữ các tệp lớn như ảnh đại diện
của người dùng các file bài tập do sinh viên nộp cho giáo viên. Điều này giúp việc
quản lý và truy cập các tệp này trở nên dễ dàng và hiệu quả hơn.
YJl,mnB*Lmn#
YJHJV,BcL"9"Bk=C"7l,mnB*Lmn#
Firestore một sở dữ liệu NoSQL linh hoạt thể mở rộng, cung cấp khả năng
truy vấn mạnh mẽ hỗ trợ đồng bộ hóa dữ liệu theo thời gian thực. Firestore giúp đơn
giản hóa việc quản lý dữ liệu phức tạp và cung cấp hiệu suất cao cho các ứng dụng.
YJOJ?=C"7l,mnB*Lmn8+Lqer=\"7?:s"A)A`P6"EKB,":8,9"#
Firestore được sử dụng để lưu trữ các thông tin cấu trúc của hệ thống quản điểm sinh
viên, bao gồm:
UserData: Lưu trữ thông tin người dùng như tên đăng nhập, mật khẩu, email, loại
người dùng (giảng viên hoặc sinh viên).
InfoTeacher: Lưu trữ thông tin chi tiết về giảng viên như tên, email, các lớp học
phụ trách.
InfoStudent: Lưu trữ thông tin chi tiết về sinh viên như tên, email, mã số sinh viên,
các lớp học tham gia.
InfoClasses: Lưu trữ thông tin về các lớp học như tên lớp, lớp, giảng viên phụ
trách, danh sách sinh viên.
Deadlines: Lưu trữ thông tin về các thời hạn nộp bài tập.
Submissions: Lưu trữ các bài tập do sinh viên nộp cho giáo viên.
Firestore cung cấp khả năng quản dữ liệu hiệu quả dễ dàng mở rộng, đảm bảo hệ
thống thể xử một lượng lớn dữ liệu đáp ứng các yêu cầu truy vấn phức tạp từ
phía người dùng.
10
:;G"7S#.ii
HJ,_"*mtD:]*:T"7#
4GNuSJH Sơ đồ kiến trúc hệ thống
Sơ đồ thể hiện rõ ba thành phần chính của hệ thống :
- Client : Đây các máy tính chạy ứng dụng quản lý sinh viên. Ứng dụng kết nối với
server qua socket với phương thức TCP/IP port 8080. Truy xuất thông tin lưu
thông tin trên FireBase.
- Server: Trong hình này server chức năng nơi trung gian giao tiếp giữa các
client với nhau, quản danh sách sinh viên trung gian lưu trữ tin nhắn giữa client
và database.
- sở dữ liệu : Sử dụng Realtime Database của Firebase. Dùng để lưu các thông tin
như đã đề cập ở trên.
OJ!:v":?:e"mwD:QD"R"7#
hình phân chức năng cho phép xác định phạm vi các chức năng được xây dựng
phát triển trong ứng dụng, cho phép người chơi một cái nhìn tổng thể về các
chức năng trong ứng dụng thông qua việc biểu diễn phân thứ bậc đơn giản
các chức năng của ứng dụng.
11
4GNuSJO Sơ đồ phân rã chức năng
SJ!:v":PBnmDcBn#
User case tả sự tương tác đặc trưng giữa người dùng và hệ thống. thể hiện ứng
xử của hệ thống đối với bên ngoài, trong một hoàn cảnh nhất định, xét từ quan điểm
của người sử dụng.
12
4GNuSJW Sơ đồ Usecase
wBn
DcBn
9"BnDcBn !*6
1 Đăng nhập
Sinh viên đăng nhập vào tài khoản ứng
dụng
2 Đăng xuất
Sinh viên đăng xuất khỏi tài khoản đang sử
dụng
3 Xem điểm
Sinh viên xem điểm theo từng môn hoặc
từng kì
4 Thông báo
Sinh viên có thể nhận thông báo từ các
giảng viên
5 Thông tin sinh viên
Các thông tin về sinh viên
6"7SJHBảng mô tả use case chức năng Sinh viên
wBnDcBn 9"BnDcBn !*6
1 Đăng nhập
Giảng viên đăng nhập vào tài khoản
ứng dụng
2 Đăng xuất
Giảng viên đăng xuất khỏi tài khoản
đang sử dụng
3 Quản lý danh sách lớp
Giảng viên có thể xem danh sách lớp
và chỉnh sửa thành viên
13
4 Tìm kiếm Giảng viên tìm kiếm tên lớp
5 Nhập/ Xuất điểm
Giảng viên nhập và xuất điểm cho sinh
viên theo lớp
6 Thống kê
Thống kê và đánh giá dựa trên kết quả
học tập theo từng lớp
7 Thông báo
Giảng viên có thể gửi thông báo tới các
sinh viên
8 Thông tin giảng viên Các thông tin về giảng viên
6"7SJOBảng mô tả use case chức năng Giảng viên
WJ4GNu?:e"E<?
4GNuSJY Sơ đồ phân lớp
14
YJ$;U*Nu4n`Pn"Dn#
4GNuSJa4GNuNR"7":x?
yD*6DXDo;<D*mL"7D:QD"R"7NR"7":x?#
- Người dùng yêu cầu giao diện đăng nhập, nhập các thông tin tài khoản mật khẩu
được yêu cầu để đăng nhập.
- bước giao diện sẽ kiểm tra xem đã nhập hợp lệ hay chưa (có bị bỏ trống hay điền
thiếu …) nếu kiểm tra hợp lệ thì kiểm tra trong database xem tồn tại tài khoản đó
không, nếu có thì dăng nhập thành công ngược lại thì thất bại
dJ:,_*z_DGB{=|E,]P
Có 4 loại dữ liệu được lưu trên database:
- Thông tin đăng nhập:
15
- Thông tin giảng viên:
- Thông tin sinh viên:
16
17
- Thông tin lớp:
- Thông tin Deadline:
- Thông tin bài nộp:
18
:;G"7W#-./0}/~
HJ;G"7`Pc"7,|cACD*,9PEK*:Pr_*8+*:\D*_#
Ứng dụng đã áp dụng hết các mục tiêu đã đề ra ở mục tiêu lý thuyết.
OJXD7,cL=,]"D:^":DpcQ"7=C"7
- Giao diện đăng nhập
- Giao diện các chức năng
v":WJH Giao diện đăng nhập
19
v":WJO Giao diện nhập điểm (giảng viên)
v":WJS Giao diện thống kê điểm số của sinh viên theo môn học (giảng viên)
20

Preview text:

ĐAI HỌC QUỐC GIA THÀNH PHÓ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA MẠNG MÁY TÍNH VÀ TRUYỀN THỐNG BÁO CÁO ĐỒ ÁN
Môn: LẬP TRÌNH MẠNG CĂN BẢN
Đề tài: XÂY DỰNG PHẦN MỀM QUẢN LÝ ĐIỂM SINH VIÊN
Giảng viên hướng dẫn: Ths. Trần Hồng Nghi Lớp: NT106.N22.ANTT Nhóm sinh viên: 22520643 NGUYỄN KIM KHÁNH 22520937 TRẦN THU NGÂN 22521057 LĂNG THỊ CẨM NHUNG 22520701 TRẦN ANH KHÔI Mục lục
LỜI CẢM ƠN......................................................................................................................4
Chương 1: TỔNG QUAN ĐỀ TÀI......................................................................................5
1. Lý do chọn đề tài.........................................................................................................5
2. Mục tiêu nghiên cứu:...................................................................................................5
3. Đối tượng và phạm vi nghiên cứu:..............................................................................6
3.1. Đối tượng:.............................................................................................................6
3.2. Phạm vi:................................................................................................................6
4. Khảo sát:......................................................................................................................6
5. Nội dung, phương pháp thực hiện đề tài:....................................................................6
6. Kế hoạch làm việc:......................................................................................................7
7. Phân chia công việc:....................................................................................................8
Chương 2: CƠ SỞ LÝ THUYẾT........................................................................................9
1. Tổng quan về công nghệ sử dụng:...............................................................................9
2. Giới thiệu về Firebase:.................................................................................................9
3. Realtime Database của Firebase:.................................................................................9
3.1. Tại sao nên sử dụng Realtime Database của Firebase:.........................................9
3.2. Áp dụng Realtime Database vào xây dựng phần mềm quản lý sinh viên:...........9
4. Firebase Storage:.........................................................................................................9
4.1. Tại sao nên sử dụng Firebase Storage:.................................................................9
4.2. Áp dụng Firebase Storage vào xây dựng phần mềm quản lý sinh viên:...............9
5. Firestore:....................................................................................................................10
5.1. Tại sao nên sử dụng Firestore:............................................................................10
5.2. Áp dụng Firestore vào xây dựng phần mềm quản lý sinh viên:.........................10
Chương 3: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG.....................................................11
1. Kiến trúc hệ thống:....................................................................................................11
2. Mô hình phân rã chức năng:......................................................................................11
3. Mô hình usercase:......................................................................................................12
4. Sơ đồ phân lớp...........................................................................................................14
5. Lượt đồ Sequence:.....................................................................................................15
7. Thiết kế cơ sở dữ liệu................................................................................................15 2
Chương 4: XÂY DỰNG ỨNG DỤNG.............................................................................18
1. Tương quan giữa mục tiêu lý thuyết và thực tế:........................................................18
2. Các giao diện chính của ứng dụng.............................................................................18
3. Kết quả đề tài:............................................................................................................25
Chương 5. Kiểm thử ứng dụng..........................................................................................26 1.
Khả năng chịu tải.................................................................................................26 2.
Độ trễ....................................................................................................................26 3.
Các tác động môi trường......................................................................................26 4.
Kết luận................................................................................................................26
Chương 6 Kết luận và hướng phát triển............................................................................27 1.
Kết luận................................................................................................................27 2.
Ưu điểm................................................................................................................27 3.
Nhược điểm..........................................................................................................27 4.
Hướng phát triển..................................................................................................27
TÀI LIỆU THAM KHẢO.............................................................................................28 3 LỜI CẢM ƠN
Trước tiên, với tất cả lòng biết ơn và sự kinh trọng, chúng em xin gửi lời cảm ơn, tri ân
chân thành và sâu sắc đến Ths. Trần Hồng Nghi – người cô hướng dẫn đã hết sức tận
tâm, nhiệt tình hỗ trợ và hết lòng giúp đỡ cho nhóm chúng em trong suốt quá trình thực
hiện đồ án môn học này. Những định hướng, bổ sung, góp ý của cô là kim chỉ nam và
nền tảng cơ sở góp phần giúp chúng em có những bước đi đúng đắn, đạt được kết quả tốt
nhất trong việc xây dựng, phát triển ứng dụng và hoàn thiện đồ án môn học.
Tiếp theo, chúng em xin được phép gửi lời cảm ơn đặc biệt đến gia đình và người thân.
Gia định luôn là chỗ dựa tinh thần vững chắc, là nguồn động lực lớn giúp chúng em vượt
qua mọi khó khăn, phấn đấu hoàn thành tốt đề tài này.
Cuối cùng, chúng em xin gửi lời cảm ơn đến các anh, chị và các bạn sinh viên trường Đại
học Công nghệ Thông tin đã nhiệt tình hỗ trợ, chịu sẽ ý kiến, góp ý giúp em trong suốt
thời gian thực hiện đồ án. Một lần nữa, chúng em xin chân thành cảm ơn và xin gửi lời
chúc sức khỏe đến Ths. Trần Hồng Nghi. Kính chúc Cô luôn luôn tiến tới và thành công
trong sự nghiệp theo đuổi tri thức của mình.
TP. Hồ Chí Minh, 6 tháng 7 năm 2024 4
Chương 1: TỔNG QUAN ĐỀ TÀI
1. Lý do chọn đề tài
Trải qua rất nhiều năm, phương pháp quản lý đào tạo theo kiểu truyền thống cho thấy
sự đóng góp rất lớn trong việc quản lý giảng dạy và học tập. Cùng với xu hướng phát
triển của công nghệ thông tin và các phương tiện truyền thông, việc ứng dụng công nghệ
thông tin vào công tác quản lý hiện đang là một nhu cầu cấp thiết nhằm tiết kiệm công
sức và thời gian, nâng cao chất lượng dạy và học. Theo đó là việc áp dụng nhiều phương
pháp đào tạo mới, cũng như liên kết đào tạo giữa các trường đòi hỏi công tác quản lý phải
thường xuyên có sự thay đổi, như quản lý đào tạo, quản lý tuyển sinh, quản lý điểm. Đặc
biệt, quản lý điểm đã và đang là một vấn đề nan giải trong việc đào tạo của các trường.
Nhận thấy được nhu cầu đó, em quyết định chọn đề tài “Xây dựng phần mềm quản lý
điểm sinh viên bằng”, với mục đích giảm tải chi phí trong công tác quản lý, tiết kiệm thời
gian nhằm nâng cao hiệu quả trong công tác quản lý dạy và học.
2. Mục tiêu nghiên cứu:
- Phần mềm dễ sử dụng, có tính khả thi, đầy đủ thông tin, tránh dư thừa thông tin.
- Hỗ trợ cho công tác quản lý giáo viên, sinh viên một cách thuận lợi.
- Hỗ trợ cho công tác quản lý trong việc cập nhật, sửa đổi, tra cứu, tra cứu thông tin liên
quan đến sinh viên về điểm của sinh viên.
- Tiết kiệm thời gian, công sức thay thế các công việc làm bằng thủ công dựa trên giấy tờ. Chức năng Mô tả Đăng nhập
Phân quyền Giảng viên / Sinh viên để đăng nhập vào ứng dụng Giảng viên Nhập điểm
Giảng viên có thể nhập điểm cho sinh viên bằng cách nhập tay
(đối với từng cá nhân) hoặc bằng file Excel (đối với lớp). Thống kê
Giảng viên có thể xem theo kê điểm của từng lớp (tỉ lệ đậu/ môn) Giao bài tập
Giảng viên tạo bài tập và có Deadline cho Sinh viên làm. Thông báo
Giảng viên có thể thông báo đến lớp mình phụ trách Quản lí danh sách lớp
Giảng viên có thể thêm/xóa/sửa/tìm kiếm một sinh viên. Nhắn tin
Nhắn tin giữa các người dùng với nhau. Thông tin giảng viên Xem thông tin cá nhân Sinh viên Thời khóa biểu Xem lịch học Xem điểm
Sinh viên xem kết quả học tập của mình. Làm bài tập
Sinh viên nhận bài tập và nộp bài trực tiếp trên ứng dụng (bằng cách up file) Thông báo
Sinh viên nhận thông báo từ giảng viên 5 Nhắn tin
Nhắn tin giữa các người dùng với nhau Thông tin sinh viên Xem thông tin cá nhân
Bảng 1.1 Tổng hợp các chức năng có trong phần mềm
3. Đối tượng và phạm vi nghiên cứu: 3.1. Đối tượng:
- Kỹ thuật lập trình socket, sử dụng các giao thức mạng TCP/IP, UDP để kết nối người dùng qua mạng LAN
- Tìm hiểu về Windows Forms .NET, ASP.NET Core Web API, để xây dựng giao
diện, các chức năng cho phần mềm.
- Tìm hiểu về Firebase để thực hiện database lưu trữ dữ liệu người dùng. 3.2. Phạm vi:
Đề tài được xây dựng cho máy tính / laptop chạy hệ điều hành windows. Đề tài được
thực hiện, hoàn thiện một sản phẩm cụ thể và được kiểm tra, thử nghiệm ở quy mô nhỏ. 4. Khảo sát:
Hiện nay, trên thị trường đã có không ít phần mềm hỗ trợ quán lý giáo dục, cụ thể là
sinh viên, đầu tư rất tốt về mặc giao diện, tính năng. Thậm chí, còn hỗ trợ trao đổi trực
tiếp giữa các người dùng. Vì vậy, mục tiêu chúng em chọn đề tài này không phải là để cải
tiến, phát triển ra sản phẩm mới mà thị trường chưa có. Mà là để rèn luyện kỹ năng, vận
dụng kiến thức đã học vào thực tiễn.
5. Nội dung, phương pháp thực hiện đề tài:
Nội dung 1: Xác định các đối tượng cần có trong ứng dụng. Lên ý tưởng thiết kế giao diện.
- Mục đích: Để thiết kế các giao diện cho ứng dụng. Xây dựng mô hình quan
hệ cho các đối tượng từ đó đi đến giai đoạn code.
- Phương pháp: Xác định các đối tượng cần có trong ứng dụng, làm sơ đồ
quan hệ vận dụng kiến thức đã học từ môn OOP. Phân tích các yêu cầu giao
diện, xác định được chức năng, thành phần của từng giao diện, xác định tông
màu chủ đạo, font chủ đạo, sử dụng công cụ có sẵn để bổ trợ và xây dựng giao diện trên winform.
- Kết quả thực hiện: Xây dựng sơ đồ quan hệ của các đối tượng. Hoàn thành
các giao diện đăng nhập, trang chủ, thống kê, giao bài tập, quản lý sinh viên,
nhắn tin, quản lý điểm, thông báo, thông tin người dùng cho phía giảng viên.
Hoàn thành giao diện trang chủ, xem điểm, làm bài tập, thông báo, nhắn tin, 6
thông tin người dùng cho phía sinh viên.
Nội dung 2: Kiến thức để xây dựng, hiện thực ứng dụng.
- Mục đích: Xác định và hiểu rõ các công nghệ cần sử dụng như Windows
Form.NET, C# và Firebase để có thể bắt đầu xây dựng ứng dụng.
- Phương pháp: Tìm hiểu và đọc tài liệu trên các trang chính thống.
- Kết quả thực hiện: Nắm được nội dung, cách thức để thực hiện code.
6. Kế hoạch làm việc: Thời gian Nội dung 19/2 – 15/3/2024 Chọn đề tài Thiết kế giao diện
Phân chia đối tượng và tạo sơ đồ OOP cho game 15/3 – 31/3/2024
Code chức năng: đăng nhập, nhập điểm, xem danh sách, thông
báo (ở phía người dùng là giảng viên) 1/3 – 22/4/2024 Chuẩn bị báo giữa kì
Ghi nhận những nhận xét và yêu cầu của giảng viên 23/4 – 10/5/2024
Code các chức năng Chat, tạo deadline giao bài tập, xem thời khóa biểu.
Thực hiện đồng bộ hóa các chức năng cũng như dữ liệu ở 2 phía. 11/5 – 18/5/2024
Thực hiện chỉnh sửa giao diện, thêm các chức năng theo yêu cầu của giảng viên. 19/5 – 31/5/2024 Fix bugs lỗi 1/6 – 15/6/2024
Tạo server bằng công nghệ mới (ASP.NET Core Web API) 15/6 – 30/6/ 2024 Fix bugs 1/7 – 5/7/2024
Chuẩn bị báo cáo cuối kỳ 6/7/2024 Báo cáo cuối kì 7
7. Phân chia công việc: Thành viên Nhiệm vụ Nguyễn Kim Khánh
Code tính năng quản lí điểm, quản lí sinh viên, fix chat. Trần Thu Ngân
Code tính năng quên mật khẩu, chat,
thông báo, thông tin giảng viên, sinh viên, thời khóa biểu. Lăng Thị Cẩm Nhung
Chỉnh sửa giao diện, code deadline, giao task Trần Anh Khôi
Kết nối firebase, tạo git, code thống kê, fix lỗi.
TP.HCM, ngày 6 tháng 7 năm 2024 NGƯỜI HƯỚNG DẪN SINH VIÊN
(Họ tên và chữ ký)
(Họ tên và chữ ký) .......................... ..................... 8
Chương 2: CƠ SỞ LÝ THUYẾT
1. Tổng quan về công nghệ sử dụng:
Phần mềm quản lý điểm sinh viên được phát triển bằng cách sử dụng các công nghệ hiện
đại và tiên tiến. Phía người dùng (client) được xây dựng trên nền tảng Windows
Forms .NET với ngôn ngữ lập trình C#. Phía server cũng sử dụng Windows Forms .NET
C#, ASP.NET Core Web API để đảm bảo tính đồng nhất và tối ưu hóa hiệu suất. Giao
diện được thiết kế bằng Canva và Guna.UI2.WinForms để tạo ra một trải nghiệm người
dùng thân thiện và trực quan. Dữ liệu được lưu trữ và quản lý bởi Firebase, một nền tảng
mạnh mẽ và linh hoạt cho phát triển ứng dụng.
2. Giới thiệu về Firebase:
Firebase là một nền tảng phát triển ứng dụng được Google hỗ trợ, giúp các nhà phát triển
xây dựng và phát triển các ứng dụng và trò chơi. Được thành lập vào năm 2011 và sau đó
được Google mua lại vào năm 2014, Firebase đã trở thành một công cụ chủ lực trong việc
phát triển ứng dụng với nhiều tính năng mạnh mẽ và linh hoạt, được hàng triệu doanh
nghiệp trên toàn thế giới tin tưởng.
3. Realtime Database của Firebase:
3.1. Tại sao nên sử dụng Realtime Database của Firebase:
Realtime Database của Firebase cung cấp một giải pháp lưu trữ dữ liệu theo thời gian
thực, cho phép đồng bộ hóa dữ liệu ngay lập tức trên tất cả các thiết bị kết nối. Một số
khả năng chính của Realtime Database bao gồm:
Thời gian thực: Dữ liệu được đồng bộ hóa ngay lập tức mỗi khi có sự thay đổi, đảm bảo
mọi thiết bị kết nối đều nhận được cập nhật trong vòng mili giây.
Ngoại tuyến: Ứng dụng vẫn hoạt động ngay cả khi không có kết nối mạng, nhờ vào việc
Realtime Database duy trì dữ liệu trên thiết bị. Khi kết nối được khôi phục, dữ liệu sẽ
được đồng bộ hóa lại với máy chủ.
Truy cập từ các thiết bị khách: Realtime Database có thể được truy cập trực tiếp từ các
thiết bị di động hoặc trình duyệt web, không cần máy chủ ứng dụng. Bảo mật và xác thực
dữ liệu được đảm bảo thông qua các quy tắc bảo mật của Firebase.
3.2. Áp dụng Realtime Database vào xây dựng phần mềm quản lý sinh viên:
Trong đề tài này, Realtime Database của Firebase được sử dụng để lưu trữ lịch sử tin
nhắn giữa các người dùng. Điều này giúp đảm bảo rằng mọi tin nhắn đều được đồng bộ
hóa ngay lập tức và có thể truy cập từ bất kỳ thiết bị nào, mang lại trải nghiệm người dùng tốt nhất. 4. Firebase Storage:
4.1. Tại sao nên sử dụng Firebase Storage:
Firebase Storage cung cấp khả năng lưu trữ an toàn, hiệu quả và có thể mở rộng. Đây là
một lựa chọn lý tưởng cho việc lưu trữ dữ liệu không cấu trúc như hình ảnh và tài liệu,
nhờ vào tính năng bảo mật và tích hợp sâu với các dịch vụ khác của Firebase.
4.2. Áp dụng Firebase Storage vào xây dựng phần mềm quản lý sinh viên: 9
Trong đề tài này, Firebase Storage được sử dụng để lưu trữ các tệp lớn như ảnh đại diện
của người dùng và các file bài tập do sinh viên nộp cho giáo viên. Điều này giúp việc
quản lý và truy cập các tệp này trở nên dễ dàng và hiệu quả hơn. 5. Firestore:
5.1. Tại sao nên sử dụng Firestore:
Firestore là một cơ sở dữ liệu NoSQL linh hoạt và có thể mở rộng, cung cấp khả năng
truy vấn mạnh mẽ và hỗ trợ đồng bộ hóa dữ liệu theo thời gian thực. Firestore giúp đơn
giản hóa việc quản lý dữ liệu phức tạp và cung cấp hiệu suất cao cho các ứng dụng.
5.2. Áp dụng Firestore vào xây dựng phần mềm quản lý sinh viên:
Firestore được sử dụng để lưu trữ các thông tin cấu trúc của hệ thống quản lý điểm sinh viên, bao gồm:
 UserData: Lưu trữ thông tin người dùng như tên đăng nhập, mật khẩu, email, loại
người dùng (giảng viên hoặc sinh viên).
 InfoTeacher: Lưu trữ thông tin chi tiết về giảng viên như tên, email, các lớp học phụ trách.
 InfoStudent: Lưu trữ thông tin chi tiết về sinh viên như tên, email, mã số sinh viên, các lớp học tham gia.
 InfoClasses: Lưu trữ thông tin về các lớp học như tên lớp, mã lớp, giảng viên phụ trách, danh sách sinh viên.
 Deadlines: Lưu trữ thông tin về các thời hạn nộp bài tập.
 Submissions: Lưu trữ các bài tập do sinh viên nộp cho giáo viên.
Firestore cung cấp khả năng quản lý dữ liệu hiệu quả và dễ dàng mở rộng, đảm bảo hệ
thống có thể xử lý một lượng lớn dữ liệu và đáp ứng các yêu cầu truy vấn phức tạp từ phía người dùng. 10
Chương 3: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
1. Kiến trúc hệ thống:
Sơ đồ 3.1 Sơ đồ kiến trúc hệ thống
Sơ đồ thể hiện rõ ba thành phần chính của hệ thống :
- Client : Đây là các máy tính chạy ứng dụng quản lý sinh viên. Ứng dụng kết nối với
server qua socket với phương thức TCP/IP port 8080. Truy xuất thông tin và lưu thông tin trên FireBase.
- Server: Trong mô hình này server có chức năng là nơi trung gian giao tiếp giữa các
client với nhau, quản lý danh sách sinh viên và trung gian lưu trữ tin nhắn giữa client và database.
- Cơ sở dữ liệu : Sử dụng Realtime Database của Firebase. Dùng để lưu các thông tin
như đã đề cập ở trên.
2. Mô hình phân rã chức năng:
Mô hình phân rã chức năng cho phép xác định phạm vi các chức năng được xây dựng
và phát triển trong ứng dụng, cho phép người chơi có một cái nhìn tổng thể về các
chức năng có trong ứng dụng thông qua việc biểu diễn phân rã có thứ bậc đơn giản
các chức năng của ứng dụng. 11
Sơ đồ 3.2 Sơ đồ phân rã chức năng 3. Mô hình usercase:
User case mô tả sự tương tác đặc trưng giữa người dùng và hệ thống. Nó thể hiện ứng
xử của hệ thống đối với bên ngoài, trong một hoàn cảnh nhất định, xét từ quan điểm của người sử dụng. 12
Sơ đồ 3.4 Sơ đồ Usecase Mã Use Tên Use case Mô tả case
Sinh viên đăng nhập vào tài khoản ứng 1 Đăng nhập dụng
Sinh viên đăng xuất khỏi tài khoản đang sử 2 Đăng xuất dụng
Sinh viên xem điểm theo từng môn hoặc 3 Xem điểm từng kì
Sinh viên có thể nhận thông báo từ các 4 Thông báo giảng viên 5 Thông tin sinh viên
Các thông tin về sinh viên
Bảng 3.1 Bảng mô tả use case chức năng Sinh viên Mã Use case Tên Use case Mô tả
Giảng viên đăng nhập vào tài khoản 1 Đăng nhập ứng dụng
Giảng viên đăng xuất khỏi tài khoản 2 Đăng xuất đang sử dụng
Giảng viên có thể xem danh sách lớp 3 Quản lý danh sách lớp và chỉnh sửa thành viên 13 4 Tìm kiếm
Giảng viên tìm kiếm tên lớp
Giảng viên nhập và xuất điểm cho sinh 5 Nhập/ Xuất điểm viên theo lớp
Thống kê và đánh giá dựa trên kết quả 6 Thống kê học tập theo từng lớp
Giảng viên có thể gửi thông báo tới các 7 Thông báo sinh viên 8 Thông tin giảng viên
Các thông tin về giảng viên
Bảng 3.2 Bảng mô tả use case chức năng Giảng viên
4. Sơ đồ phân lớp
Sơ đồ 3.5 Sơ đồ phân lớp 14
5. Lượt đồ Sequence:
Sơ đồ 3.6 Sơ đồ đăng nhập
Đặc tả các bước trong chức năng đăng nhập:
- Người dùng yêu cầu giao diện đăng nhập, nhập các thông tin tài khoản mật khẩu
được yêu cầu để đăng nhập.
- Ở bước giao diện sẽ kiểm tra xem đã nhập hợp lệ hay chưa (có bị bỏ trống hay điền
thiếu …) nếu kiểm tra hợp lệ thì kiểm tra trong database xem có tồn tại tài khoản đó
không, nếu có thì dăng nhập thành công ngược lại thì thất bại
7. Thiết kế cơ sở dữ liệu
Có 4 loại dữ liệu được lưu trên database: - Thông tin đăng nhập: 15 - Thông tin giảng viên: - Thông tin sinh viên: 16 17 - Thông tin lớp: - Thông tin Deadline: - Thông tin bài nộp: 18
Chương 4: XÂY DỰNG ỨNG DỤNG
1. Tương quan giữa mục tiêu lý thuyết và thực tế:
Ứng dụng đã áp dụng hết các mục tiêu đã đề ra ở mục tiêu lý thuyết.
2. Các giao diện chính của ứng dụng - Giao diện đăng nhập
- Giao diện các chức năng
Hình 4.1 Giao diện đăng nhập 19
Hình 4.2 Giao diện nhập điểm (giảng viên)
Hình 4.3 Giao diện thống kê điểm số của sinh viên theo môn học (giảng viên) 20