TRƯỜNG ĐẠI HỌC TÀI NGUYÊN VÀ MÔI TRƯỜNG TP.HCM KHOA: HỆ THỐNG THÔNG TIN VÀ VIỄN THÁMBÁO CÁO CÔNG NGHỆ PHẦN MỀM ỨNG DỤNG GHI NHẬN VI PHẠM GIẢNG VIÊN ……… Giáo viên hướng dẫn : ThS... Ứng d
Trang 1TRƯỜNG ĐẠI HỌC TÀI NGUYÊN VÀ MÔI TRƯỜNG TP.HCM KHOA: HỆ THỐNG THÔNG TIN VÀ VIỄN THÁM
BÁO CÁO CÔNG NGHỆ PHẦN MỀM
ỨNG DỤNG GHI NHẬN VI PHẠM GIẢNG VIÊN
………
Giáo viên hướng dẫn : ThS Hoàng Công Trình
Người thực hiện : Ngô Trường Thanh 0750080030
Lớp : 07_ĐHCNTT1
Khóa : 07
TP Hồ Chí Minh, Ngày 09 tháng 1 năm 2022
Trang 2Thế kỷ 21 là một kỷ nguyên toàn cầu, với sự phát minh ra internet trái đất đã không còn là hình tròn mà đã là một đường thẳng kết nối những ý nghĩ của con người Cùng với quá trình toàn cầu hoá, nhu cầu chia sẽ thông tin, học tập làm việc trực tuyến từ
đó thúc đẩy sự ra đời của các ứng dụng học trực tuyến Bên cạnh đó để đảm bảo chất lượng dạy học, hay đơn thuần là quản lý vi phạm của giảng viên khi dạy trực tuyến Ứng dụng ghi nhận vi phạm của giảng viên là một úng dựng cho phép giảng viên
có thể báo cáo được cho bên thanh tra để quản lý việc nghỉ, bù cho tiết học Ngoài ra, thanh tra còn có thể đánh giá tiết học xem có vi phạm hay không ngay trên ứng dụng Trong vài năm trở lại đây, các thiết bị di động ngày càng phát triển rộng rãi và đa dạng với các nền tảng lớn như Android và IOS Vì vậy nên các ứng dụng cũng phải phát triển để đáp ứng xu thế đó Để phát triển các ứng dụng đó người ta thường xây dựng chúng bằng các framework đa nền tảng khác nhau như react native, flutter… Trong đó flutter là một framework được phát triển bởi google và có sự phát triển tốc hành Ngày nay, với sự phát triển nhanh chóng của xã hội , nhu cầu trao đổi thông tin với nhau lại càng cần thiết, vì vậy em chọn đề tài “Xây dựng ứng dụng ghi nhận vi phạm của giảng viên bằng flutter”
Trang 3Trong thời gian làm đồ án, em đã nhận được nhiều sự giúp đỡ, đóng góp ý kiến và chỉ bảo nhiệt tình của thầy cô và bạn bè.
Em xin gửi lời cảm ơn chân thành đến ThS Hoàng Công Trình, người đã tận tình hướng dẫn, trực tiếp chỉ bảo và tạo mọi điều kiện giúp đỡ em trong suốt quá trình làm đồ án.
Trang 4(Của giảng viên hướng dẫn)
………
………
………
………
………
………
………
………
………
………
Trang 5CHƯƠNG 1: GIỚI THIỆU 1
1.1 Tổng quan 1
1.2 Phương pháp, kết quả 1
1.3 Cấu trúc đồ án 1
CHƯƠNG 2: NGHIÊM CỨU TỔNG QUAN 3
2.1 Phân tích hệ thống 3
2.1.1.Xác định yêu cầu 3
2.1.2 Lược đồ Use Case 3
2.1.3 Đặc tả use-case 4
2.1.4 Lược đồ sequence 7
2.1.5 Giao Diện 11
2.2 Các công nghệ hỗ trợ cho phát triển hệ thống 16
2.2.1 SQLite 16
2.2.2 Flutter là gì? 17
CHƯƠNG 3 : TRIỂN KHAI ỨNG DỤNG 19
3.1 Xây dựng cơ sở dữ liệu trên SQLite 19
3.2 Giao diện ứng dụng 22
CHƯƠNG 4 : KẾT LUẬN 32
4.1 Kết luận 32
4.2 Hướng phát triển 33
Trang 6CHƯƠNG 2: NGHIÊM CỨU TỔNG QUAN
Hình 2 1:L ược đồồ Use Case 3
Hình 2 2:L ược đồồ tuầồn t đăng nh pự ậ 7
Hình 2 3: L ược đồồ tuầồn t xemự tn t cứ 7
Hình 2 4: L ược đồồ tuầồn t saiự ph m gi ng d yạ ả ạ 8
Hình 2 5: L ược đồồ tuầồn tự nh n xét tếết h cậ ọ 9
Hình 2 6: L ược đồồ tuầồn t ự báo nghỉ 9
Hình 2 7: L ược đồồ tuầồn báo cáo bù tếết h cọ 10
Hình 2 8: L ược đồồ tuầồn t thếm khóa h cự ọ 10
Hình 2 9 : Giao di n đăng nh pệ ậ 11
Hình 2 10:Giao di n chi tếếtệ 12
Hình 2 11:Giao di n l ch khóa bi uệ ị ể 12
Hình 2 12:Giao di n l ch ngh ,bùệ ị ỉ 13
Hình 2 13:Giao di n sai ph m gi ng d yệ ạ ả ạ 13
Hình 2 14:Giao di n cá nhần và đ i m t kh uệ ổ ậ ẩ 14
Hình 2 15: Giao di n thanhệ tra 15
Hình 2 16: Giao di n đánhệ giá sai ph mạ 15
Hình 2 17: Giao di n ph nệ ả hồồi vi ph mạ 16
Hình 2 18:Dashboard 昀椀rebase trến web 17
Hình 2 19:Framework Flu琀琀er 18
CHƯƠNG 3 : TRIỂN KHAI ỨNG DỤNG Hinh 3 1:Giao di n đăng nh pệ ậ 19
Hinh 3 2: Giao di n đăng nh pệ ậ 23
Hinh 3 3: Trang chủ 24
Hinh 3 4: Giao di n chi tếếtệ 24
Hinh 3 5:Giao di n xem tầết c thồng tnệ ả 25
Hinh 3 6:Giao di n l ch khóa bi uệ ị ể 25
Hinh 3 7:Giao di n l ch khóa bi u cho t ng ngàyệ ị ể ừ 26
Hinh 3 8:Giao di n h iệ ỏ 26
Hinh 3 9:Giao di n th i gian nghệ ờ ỉ 27
Hinh 3 10:Form Báo bù trướ 27c Hinh 3 11:Giao di n l ch khóa bi uệ ị ể 28
Hinh 3 12:Giao di n sai ph m gi ng d yệ ạ ả ạ 29
Hinh 3 13:Giao di n ph n hồồi vi ph mệ ả ạ 29
Hinh 3 14:Giao di n tài kho nệ ả 30
Hinh 3 15:Giao di n thanh traệ 30
Hinh 3 16:Giao di n danh sách gi ng viếnệ ả 31
Hinh 3 17:T ng h p giao di n danh sách gi ng viếnổ ợ ệ ả 32
Hinh 3 18:Form báo cáo vi ph mạ 33
Hinh 3 19:Giao di n ph n hồồi vi ph mệ ả ạ 33
Trang 8CHƯƠNG 1: GIỚI THIỆU
1.1 Tổng quan
Sự phát triển của cuộc cách mạng công nghiệp 4.0 cùng với sự phổ biến rộng rải của điện thoại di động và internet, nhu cầu chia sẽ thông tin, học tập làm việc trực tuyến từ đó thúc đẩy sự ra đời của các ứng dụng học trực tuyến Bên cạnh đó để đảm bảo chất lượng dạy học, hay đơn thuần là quản lý vi phạm của giảng viên khi dạy trực tuyến.
Áp dụng kiến thức đã học để phát triển ứng dụng như trên là cần thiết Bởi vì điều này cho phép học thêm các công nghệ mới, rèn luyện kỹ năng lập trình, đồng thời nâng cao kinh nghiệm và học thêm các kỹ năng quan trọng khác Chính vì thế, em chọn đề tài xây dựng ứng dụng ghi nhận vi phạm giảng viên bằng flutter.
Xây dựng một ứng dụng ghi nhận vi phạm giảng viên có thể giảng viên và thanh tra có thể thuận tiện hơn việc báo cáo ngày nghỉ, vi phạm
1.2 Phương pháp, kết quả
Phương pháp xây dựng ứng dụng sẽ bao gồm các bước sau:
- Ôn lại các kiến thức cơ bản về các học phần đã học như cơ sở dữ liệu, lập trình
di động …
- Xây dựng cơ sỡ dữ liệu bằng sqlite.
- Tìm hiểu framework flutter và các thư viện phục vụ cho các sản phẩm.
- Phác thảo sơ bộ giao diện cho sản phẩm và tiến hành xây lập trình giao diện cho sản phẩm.
- Tiến hành xây dựng backend cho sản phẩm.
- Chạy sản phẩm và tiến hành kiểm thử độ ổn định của sản phẩm trong thực tế.
- Tiến hành viết báo cáo word và chuẩn bị slide powerpoint phục vụ cho việc bảo
vệ khi thi kết thúc học phần.
1.3 Cấu trúc đồ án
Phần tiếp theo của báo cáo bao gồm:
Chương 2: Nghiên cứu tổng quan
1
Trang 9Trong chương này, em sẽ giới thiệu về các ứng dụng đã có sẵn tương tự với hệ thống của em Tiếp theo em sẽ giới thiệu tổng quát về các công nghệ và phần mềm em
sử dụng để xây dựng ứng dụng ghi nhận vi phạm giảng viên.
Chương 3: Triển khai xây dựng
Trong chương này, em sẽ trình bày vê mô hình tổng quan của ứng dụng và giới thiệu về cách triển khai xây dựng ghi nhận vi phạm giảng viên.
Chương 4: Kết luận và hướng phát triển
Trong chương này, em sẽ chia thành 2 phần Phần 1 kết luận sẽ giới thiệu về những gì mà ứng dụng đã được và hạn chế của nó Phần 2 hướng phát triển sẽ đưa ra những hướng đi sau này của ứng dụng.
Trang 10CHƯƠNG 2: NGHIÊM CỨU TỔNG QUAN
Trang 112.1.2 Lược đồ Use Case
Hình 2 1:Lược đồ Use Case2.1.3 Đặc tả use-case
Đặc tả use case đăng nhập.
Tóm tắt: Use-case này cho phép người dùng đăng nhập vào ứng dụng
Dòng sự kiện:
Dòng sự kiện chính:
- Use-case này bắt đầu khi người dùng muốn sử dụng ứng dụng
- Hệ thống yêu cầu người dùng nhập tên đăng nhập, mật khẩu và chọn quyền để đăng nhập
- Hệ thống sẽ kiểm tra thông tin :
+ Nếu chưa nhập dữ liệu thì hệ thống sẽ thông báo “Vui lòng nhập tài khoản” và yêu cầu nhập lại
+ Nếu nhập sai thì hệ thống sẽ thông báo “Tài khoản, mật khẩu sai hoặc quyền bị sai” và yêu cầu nhập lại
Trang 12+ Nếu tên đăng nhập, mật khẩu và quyền đúng thì cho phép người dùng vào ứng dụng.
Đặc tả Use-Case xem tin tức
Tóm tắt: Use-Case cho phép giảng viên xem được tin tức
Dòng sự kiện:
Dòng sự kiện chính:
- Use-case này bắt đầu khi giảng viên muốn xem 1 tinh tức nào đó
- Giảng viên nhấn vào 1 tin tức bất kì ở tab home
-Hệ thống sẽ đưa giảng viên vào phần thông tin của tin tức để xem
-Sau khi xem xong có thể nhấn nút quay lại ở trên appbar để quay lại màn hình home
Đăc tả Use Case báo nghỉ tiết học
Tóm tắt: Use-Case cho phép giảng viên báo nghỉ tiết học
Dòng sự kiện:
Dòng sự kiện chính:
- Use-case này bắt đầu khi giáo viên muốn báo nghỉ tiết học
- Giảng viên nhấn vào tab lịch góc dưới
- Hệ thống sẽ hiển thị ra lịch khóa biểu
- Giảng viên cần chọn vào ngày cần báo nghỉ ở trên lịch
- Hệ thống sẽ thông báo tới người dùng có muốn chắn chắn báo hủy
+ Nếu chọn có hệ thống sẽ add thêm 1 card báo nghỉ
+ Nếu chọn không hệ thống sẽ trả về lịch
Dòng sự kiện khác:
- Hệ thống cho phép chọn từng ngày để xem từng lịch khóa biểu khác nhau
Đặt tả Use-Case báo bù tiết học
Tóm tắt: Use-case cho phép giảng viên báo bù tiết học
Dòng sự kiện
Dòng sự kiện chính:
- Use-case này bắt đầu khi giáo viên muốn báo bù tiết học
- Hệ thống sẽ hiển thị ra lịch khóa biểu
Trang 13- Giảng viên cần chọn vào ngày cần báo nghỉ ở trên lịch
- Giảng viên sẽ chọn vào “Báo bù”
- Hệ thống sẽ thể hiện 1 form để giảng viên nhập
+ Nếu chọn có hệ thống sẽ add thêm 1 card báo bù
+ Nếu chọn không hệ thống sẽ trả về lịch
Dòng sự kiện khác:
- Hệ thống cho phép chọn từng ngày để xem từng lịch khóa biểu khác nhau
Đặc tả Use-case phản hồi nhận xét tiết học
Tóm tắt : Use-case này cho phép giảng viên phản hồi nhận xét tiết học khi có chỗ sai Dòng sự kiện:
Dòng sự kiện chính:
- Use case này bắt đầu khi giảng viên muốn phản hồi nhận xét tiết học khi có chỗ sai
- Giảng viên chọn vào nút phản hồi sai phạm
- Hệ thống sẽ hiển thị ra 1 form để người dùng có thể phản hồi tới thanh tra
- Sau khi phản hồi thành công thì từ trạng thái vi phạm chuyển thành trạng thái chờ kiểm duyệt
Đặc tả Use-Case nhận xét tiết học
Tóm tắt : Use-case này cho phép thanh tra nhận xét tiết học
Dòng sự kiện chính:
- Use-case này bắt đầu khi thanh tra muốn nhận xét tiết học
- Hệ thống sẽ hiển thị ra danh sách giảng viên
- Thanh tra sẽ chọn giảng viên cần nhận xét
- Thanh tra chọn tới tiết của giảng viên đó sau đó chọn nhận xét.
- Hệ thống sẽ hiển thị ra 1 form để thanh tra có thể nhận xét vi phạm của giảng viên + Nếu chọn có hệ thống sẽ add thêm 1 card vi phạm hay không tới tài khoản của giảng viên
+ Nếu chọn không hệ thống sẽ trả về lịch
Đặc tả Use-Case xử lý phản hồi sai phạm
Tóm tắt : Use-case này cho phép thanh tra xử lý các phản hồi sai phạm được báo cáo
Trang 14Dòng sự kiện chính:
- Use-case này bắt đầu khi thanh tra xử lý các phản hồi sai phạm được báo cáo
- Hệ thống sẽ hiển thị ra các sai phạm đang được báo cáo
- Thanh tra sẽ xem xét nếu không vi phạm thì chọn nút không vi phạm còn vi phạm sẽ chọn nút vi phạm
2.1.4 Lược đồ sequence
Đăng nhập
Hình 2 2:Lược đồ tuần tự đăng nhậpXem tin tức
Trang 15Hình 2 3: Lược đồ tuần tự xem tin tức
Phản hồi sai phạm giảng dạy
Trang 16Hình 2 4: Lược đồ tuần tự sai phạm giảng dạyNhận xét vi phạm
Trang 17Hình 2 5: Lược đồ tuần tự nhận xét tiết học
Báo nghỉ tiết học
Hình 2 6: Lược đồ tuần tự báo nghỉ
Trang 192.1.5 Giao Diện
Đăng nhập
Hình 2 9 : Giao diện đăng nhập
Trang 20Chi tiết
Lịch khóa biểu
Lịch nghỉ, bù
Ngồ Trường Thanh 13
Hình 2 10:Giao diện chi tiết
Hình 2 11:Giao diện lịch khóa biểu
Trang 21Sai phạm giảng dạy
Hình 2 13:Giao diện sai phạm giảng dạy
Cá nhân và đổi mật khẩu
Trang 22Hình 2 14:Giao diện cá nhân và đổi mật khẩu
Thanh tra
Trang 232 15: Giao diện thanĐá
Hình 2 16: Giao diện đánh giá sai phạm
Trang 24Phản hồi vi phạm
Hình 2 17: Giao diện phản hồi vi phạm
Trang 252.2 Các công nghệ hỗ trợ cho phát triển hệ thống
2.2.1 SQLite
SQLite là một hệ quản trị cơ sở dữ liệu hay còn gọi là hệ thống cơ sở dữ liệu quan hệ nhỏ gọn, khác với các hệ quản trị khác như MySQL, SQL Server, Ocracle, PostgreSQL… SQLite là một thư viện phần mềm mà triển khai một SQL Database Engine truyền thống, không cần mô hình client-server nên rất nhỏ gọn SQLite được sử dụng vào rất nhiều chương trình từ desktop đến mobile hay là website.
SQLite không cần mô hình client – server để hoạt động.SQLite không cần phải cấu hình tức là bạn không cần phải cài đặt.Với SQLite database được lưu trữ trên một tập tin duy nhất.SQLite hỗ trợ hầu hết các tính năng của ngông ngữ truy vấn SQL theo
chuẩn SQL92.SQLite rất nhỏ gọn bản đầy đủ các tính năng nhỏ hơn 500kb, và có thể nhỏ
hơn nếu lược bớt một số tính năng.Các thao tác dữ liệu trên SQLite chạy nhanh hơn so với các hệ quản trị cơ sở dữ liệu theo mô hình client – server.SQLite rất đơn giản và dễ dàng sử dụng
Ngoài những ưu điểm đã kể ra ở trên SQLite cũng có một số mặt hạn chế nếu đem so sánh với các hệ quản trị khác.
Do sử dụng cơ chế coarse-gained locking nên trong cùng một thời điểm SQLite có thể
hỗ trợ nhiều người đọc dữ liệu, nhưng chỉ có 1 người có thể ghi dữ liệu.
SQLite không phải là lựa chọn hoàn hảo để đáp ứng các nhu cầu xử lý trên một khối lượng dữ liệu lớn, phát sinh liên tục.
Hình 2 18:Dashboard firebase trên web.
Trang 262.2.2 Flutter là gì?
Flutter là nền tảng phát triển ứng dụng đa nền tảng cho iOS và Android, web do Google phát triển Flutter sử dụng ngôn ngữ Dart cũng do Google phát triển và flutter cũng đã được sử dụng để tạo ra các ứng dụng native cho Google.
Hình 2 19:Framework Flutter
Ưu điểm của flutter:
Mạnh về hiệu ứng, hiệu suất ứng dụng rất cao.
Giao tiếp gần như trực tiếp với hệ thống
Ngôn ngữ kiểu tĩnh nhưng với cú pháp hiện đại (tương tự JS, Python, Java), compiler linh động khi dùng AOT (cho sản phẩm cuối) và JIT (cho quá trình phát triển với hot reload)
Có thể chạy được giả lập mobile ngay trên web, tiện cho việc phát triển Các bộ đo lường chỉ số hiệu suất được hỗ trợ sẵn giúp lập trình viên kiểm soát tốt hiệu suất của ứng dụng Có thể dùng để xây dựng các nền tảng gắn vào ứng dụng native để tăng hiệu suất.
Trang 27CHƯƠNG 3 : TRIỂN KHAI ỨNG DỤNG 3.1 Xây dựng cơ sở dữ liệu trên SQLite
Ta sẽ tiến hành xây dựng cơ sỡ dữ liệu trên Firebase Firestore Dữ liệu ở trên này sẽ được lưu trữ dưới dạng NoSQL Khi lấy dữ liệu, ta sẽ đọc hàm để ánh xạ vào các trường chứa
dữ liệu.
Hinh 3 1:Giao diện đăng nhập
Trang 303.2 Giao diện ứng dụng
Khi vừa vào ứng dụng thì hệ thống sẽ yêu cầu người dùng đăng nhập để có thể vào ứng dụng và học tập Giảng viên sẽ chọn quyền là giảng viên, còn thanh tra sẽ chọn quyền là thanh tra
Hinh 3 2: Giao diện đăng nhập
Khi bắt đầu giao diện ứng dụng sẽ hiển thị trang chủ với hình ảnh và tin tức Ở dưới thì hiển thị 6 thanh tab: Trang chủ, lịch, lịch nghỉ, lịch bù, sai phạm và người dùng
Trang 31Hinh 3 3: Trang chủ
Khi chọn vào tin tức thì hệ thống sẽ hiển thị thông tin về tin tức người dùng muốn xem
Hinh 3 4: Giao diện chi tiết
Ngoài ra còn đ tếồn cho vi c có th xem nhiếồu nhiếồu tn t c Ngể ệ ể ứ ười dùng có th nhầếp vào xem tầết cể ả
Trang 32Hinh 3 5:Giao diện xem tất cả thông tin
Nhấn vào tab lịch hệ thống sẽ hiển thị cho người dùng về lịch khóa biểu của bản thân
Hinh 3 6:Giao diện lịch khóa biểu
Ngoài ra người dùng còn có thể chọn vào ngày để xem lịch
Trang 33Hinh 3 7:Giao diện lịch khóa biểu cho từng ngày
Khi giảng viên muốn báo nghỉ thì nhấp vào nút báo nghỉ màu đỏ Khi đó hệ thống sẽ hiện lên thông báo kiểm tra lại cho giáo viên chắc chắn có muốn nghỉ không
Hinh 3 8:Giao diện hỏi
Trang 34Khi chọn có 1 tiết nghỉ được thêm vào tab lịch nghỉ
Hinh 3 9:Giao diện thời gian nghỉ
Cũng giống như việc báo nghỉ, khi báo bù giảng viên cần báo nhấn vào nút báo bù Khi
đó hệ thống sẽ hiện lên 1 form để cho giáo viên điền vào.
Hinh 3 10:Form Báo bù trước
Trang 35Sau khi xác nhận thì 1 tiết báo bù trước được hiện trên tab lịch bù
Hinh 3 11:Giao diện lịch khóa biểu
Trang 36Ở tab sai phạm giảng dạy sẽ thể hiện lên các tiết đã được thanh tra đánh giá Nếu không
có vi phạm thì trạng thái sẽ là màu xanh Còn có vi phạm là màu đỏ.
Hinh 3 12:Giao diện sai phạm giảng dạy
Ở đây niếu giảng viên có thắc mắc gì hay muốn phản hồi tới thanh tra do sai sót thì bấm vào nút phản hồi sai phạm Khi đó sẽ hiện lên 1 form để cho giảng viên
Hinh 3 13:Giao diện phản hồi vi phạm