- Phát triển ứng dụng với các chức năng đáp ứng đầy đủ yêu cầu người dùng và linh hoạt để phục vụ cho nhiều hệ thống hơn, gợi ý định hướng nghề nghiệp giúp bản thân sinh viên biết được t
Trang 1ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM
ĐỒ ÁN 1 PHÁT TRIỂN ỨNG DỤNG HỖ TRỢ QUẢN LÝ SINH VIÊN THỰC TẬP DOANH
NGHIỆP VÀ GỢI Ý ĐỊNH HƯỚNG NGHỀ NGHIỆP
GV HƯỚNG DẪN:
Nguyễn Thị Thanh Trúc
SV THỰC HIỆN:
Lê Thế Phúc – 20521764 Nguyễn Nhật Hoàng Quân – 20521790
TP HỒ CHÍ MINH, 2023
Trang 2rõ hơn về vấn đề mình đang cần phải giải quyết Trong suốt quá trình thực hiện, cô luôn theo dõi tiến độ thực hiện và đưa ra những góp ý bổ ích giúp cho công việc thực hiện của nhóm trở nên đơn giản hơn rất nhiều so với trước đó Mặc dù thời gian của môn học là không nhiều, nhưng những kiến thức mà chúng em nhận được
là rất lớn Qua đó, em xin thay mặt nhóm để gửi đến cô lời cảm ơn sâu sắc với những gì cô đã truyền đạt cho chúng em Em xin chân thành cảm ơn
TP.Hồ Chí Minh, tháng 7 năm 2023
Trang 3MỤC LỤC
Trang 5Chương 1: Tổng quan
1.1 Mục tiêu đề tài
- Xây dựng ứng dụng “Quản lý sinh viên thực tập doanh nghiệp và gợi ý định hướng nghề nghiệp” nhằm giúp sinh viên và nhà trường có thể quản lý, đồng
bộ thông tin, thuận tiện theo dõi quá trình thực tập, giấy tờ hay các bước đăng
ký thực tập tại doanh nghiệp Hỗ trợ giảng viên hướng dẫn thực tập đơn giản hóa các thao tác quản lý và tạo điều kiện tốt nhất cho sinh viên thực tập hiệu quả
- Phát triển ứng dụng với các chức năng đáp ứng đầy đủ yêu cầu người dùng và linh hoạt để phục vụ cho nhiều hệ thống hơn, gợi ý định hướng nghề nghiệp giúp bản thân sinh viên biết được thông tin những ngành mình có thể theo đuổi trong tương lai
1.2 Đối tượng nghiên cứu
Đối tượng được nghiên cứu chính trong đề tài là sinh viên đang trong giai đoạn phù hợp để đăng ký thực tập doanh nghiệp
Bên cạnh đó, đối tượng không thể thiếu là giảng viên hướng dẫn và người quản
lý Đây cũng là các đối tượng mà nhóm hướng đến trong quá trình nghiên cứu
và thực hiện đề tài
1.3 Hướng nghiên cứu
Tìm hiểu về quy trình thực tập của các trường Đại học, Cao đẳng hiện nay
Tìm hiểu về mô hình Quản lý sinh viên
Khảo sát sinh viên về những vấn đề thường gặp, gây khó khăn cho quá trình đăng ký thực tập
Tìm hiểu về các ứng dụng gợi ý hướng nghiệp hiện nay: JobWay, …
Trang 6 Xây dựng các yêu cầu cơ bản và cần thiết cho ứng dụng
Phân tích chi tiết cho từng yêu cầu bài toán
Tìm hiểu về kiến trúc phần mềm Client – Server
Tìm hiểu Figma để thiết kế UI cho ứng dụng
Phát triển ứng dụng trên nền tảng ElectronJS
Sử dụng Trello để quản lý tiến trình thực hiện
Sử dụng Google Drive để lưu trữ tài liệu
Cài đặt ứng dụng bằng IDE Visual Studio Code
Trang 7Chương 2: Cơ sở lý thuyết và Công nghệ sử dụng
2.1 Cơ sở lý thuyết
2.1.1 Thuật toán Tìm kiếm nhị phân (Binary Search)
a Ý tưởng thuật toán
Thuật toán tìm kiếm nhị phân hoạt động trên các mảng đã được sắp xếp Thuật toán bắt đầu bằng việc so sánh một phần tử đứng chính giữa mảng với giá trị cần tìm Nếu bằng nhau, vị trí của nó trong mảng sẽ được trả về Nếu giá trị cần tìm nhỏ hơn phần tử này, quá trình tìm kiếm tiếp tục ở nửa nhỏ hơn của mảng Nếu giá trị cần tìm lớn hơn phần tử ở giữa, quá trình tìm kiếm tiếp tục ở nửa lớn hơn của mảng Bằng cách này, ở mỗi phép lặp thuật toán có thể loại bỏ nửa mảng mà giá trị cần tìm chắc chắn không xuất hiện
b Các bước thực hiện
Giả sử mảng tìm kiếm bao gồm các phần tử nằm trong left (chỉ số của phần tử đầu mảng) và right (chỉ số của phần tử cuối mảng) Các bước của giải thuật như sau:
Bước 1 Gán left = 0; right = n – 1
Bước 2 mid = 𝑙𝑒𝑓𝑡+𝑟𝑖𝑔ℎ𝑡
2 (mid là chỉ số của phần tử giữa mảng)
Trang 8 So sánh a[mid] với x (giá trị cần tìm kiếm):
+ a[mid] = x Tìm thấy giá trị
Dừng thuật toán và trả về kết quả tìm thấy giá trị trong mảng
+ a[mid] > x Gán right = mid – 1 Tìm kiếm x trong mảng con a[left], …, a[mid – 1]
+ a[mid] < x Gán left = mid + 1 Tìm kiếm x trong mảng con a[mid + 1], …, a[right]
Bước 3 Nếu left ≤ right thì lặp lại bước 2
Ngược lại thì dừng thuật toán
c Độ phức tạp
Trường hợp Số lần so sánh
Trang 9Trung bình log2(𝑛
2)
2.1.2 Thuật toán Sắp xếp nhanh (Quick Sort)
a Ý tưởng thuật toán
Thuật toán sẽ chọn ra một phần tử trong mảng để làm điểm đánh dấu gọi là pivot Sau khi chọn được điểm đánh dấu, nó sẽ chia mảng đó thành hai mảng con bằng cách so sánh với pivot đã chọn Một mảng
sẽ bao gồm các phần tử nhỏ hơn hoặc bằng pivot và mảng còn lại luôn lớn hơn hoặc bằng pivot
Sau đó, quá trình này được lặp lại đủ số lần cho đến khi các mảng nhỏ có thể được sắp xếp một cách dễ dàng để tạo ra một tập dữ liệu được sắp xếp đầy đủ
b Các bước thực hiện
Bước 1 Gán left là vị trí đầu danh sách bên trái,
right là vị trí đầu danh sách bên phải
Bước 2
Nếu left ≥ right thì kết thúc (danh sách chỉ có 1 phần tử) Ngược lại thì:
Bước 2.1: Chọn tùy ý một phần tử a[k] trong danh sách (left ≤ k ≤ right) mà tại đó x = a[k]; i = left; j = right
Trang 10 Bước 2.2: Tìm kiếm và đổi chỗ cặp phần tử a[i], a[j] nằm sai chỗ:
Trang 112.1.3 Recommendation System
Recommendation System là hệ thống dựa vào “sở thích” của người dùng trong quá khứ, để dự đoán “sở thích” của người dùng trong tương lại và thực hiện gợi ý cho người dùng Để hệ thống hoạt động tốt thì việc trước tiên đó chính là phản hồi từ người dùng
Recommendation System được chia thành 2 nhóm lớn: Hệ thống dựa trên nội dung (Content – based system) và Hệ thống lọc cộng tác (Collaborative system)
Hệ thống dựa trên nội dung (Content – based system):
o Là một hệ thống gợi ý đề xuất các sản phẩm hoặc nội dung tương
tự với nội dung mà người đã thích hoặc tìm kiếm trước đó, dựa trên thuộc tính của các sản phẩm đó Quá trình thực hiện hệ thống gợi ý dựa trên nội dung được thực hiện theo các bước sau:
Bước 1
Thu thập dữ liệu: Thu thập thông tin về thuộc tính của các sản phẩm, bao gồm tên, mô tả, thể loại, tác giả, đạo diễn, đánh giá của người dùng, …
Bước 2
Xác định đặc trưng của sản phẩm:
Phân tích các thuộc tính của sản phẩm
để xác định các đặc trưng của sản phẩm đó, ví dụ thể loại, đạo diễn, diễn viên, …
Trang 12Bước 3
Xây dựng mô hình: Sử dụng các thuật toán máy học để xây dựng mô hình dựa trên các đặc trưng của sản phẩm Các thuật toán phổ biến được sử dụng trong hệ thống bao gồm Vector Space Model, Term Frequency-Inverse Document Frequency và Latent Semantic Analysis
Bước 4
Tạo các gợi ý: Sử dụng mô hình để đưa ra các gợi ý cho người dùng dựa trên các sản phẩm đã được người dùng thích hoặc tìm kiếm trước đó Các sản phẩm đó có các đặc trưng tương tự với các sản phẩm đã được người dùng thích hoặc tìm kiếm sẽ được đề xuất cho người dùng
Bước 5
Đánh giá và cải tiến: Đánh giá hiệu quả của hệ thống bằng cách sử dụng các phương pháp đánh giá như độ chính xác, độ phủ, độ đa dạng, … Sau
đó, cải tiến hệ thống bằng cách tối ưu hoaas các tham số của mô hình hoặc
bổ sung các thuộc tính mới của sản phẩm để tăng độ chính xác và hiệu quả của hệ thống
Trang 13o Minh họa:
Hình 2.1: Hình ảnh minh họa về Content – based system
- Hệ thống lọc cộng tác (Collaborative system):
o Là một hệ thống gợi ý đề xuất sản phẩm cho người dùng dựa trên
sự tương đồng giữa người dùng và lịch sử sử dụng sản phẩm của
họ Hệ thống lọc cộng tác gồm hai loại: Lọc dựa trên người dùng (User-based Collaborative) và Lọc dựa trên sản phẩm (Item-based Collaborative)
o Quá trình thực hiện hệ thống lọc cộng tác bao gồm các bước sau:
Bước 1
Xây dựng ma trận đánh giá: Tạo một
ma trận với người dùng ở hàng và sản phẩm ở cột, mỗi phần tử trong ma trận
là đánh giá của người dùng đó với sản phẩm tương ứng
Trang 14Similarity để tính toán độ tương đồng giữa các người dùng
Bước 3
Đưa ra các gợi ý: Sử dụng độ tương đồng giữa các người dùng để đưa ra các gợi ý sản phẩm cho người dùng
a Thư viện ReactJS
Trang 15 Là một thư viện mã nguồn mở được Facebook xây dựng và phát triển Thư viện này được sử dụng để tạo các ứng dụng trang Web hấp dẫn với hiệu quả cao, tốc độ tải trang nhanh
Các đặc trưng của ReactJS: JSX, Components, One-way Data Binding, Virtual DOM, Simplicity, Performance
Hình 2.3: Hình ảnh khái quát về các tính năng của
ReactJS
JSX: Viết tắt của Javascript XML Là phần cú pháp mở rộng của Javascript và được sử dụng bởi ReactJS
Components: Ứng dụng ReactJS được tạo ra từ các components
và mỗi component sẽ có logic, cách xử lý, điều khiển riêng biệt
Vì thế, nó có tính tái sử dụng và điều này giúp cho hệ thống dễ phát triển, bảo trì và rà soát lỗi trên các dự án lớn
Trang 16 One-way Data Binding: ReactJS được thiết kế theo luồng dữ liệu một chiều hay One-way Data Binding Flux là một mẫu kiến trúc giúp dữ liệu của chúng ta luôn giữ theo một chiều Điều này tạo tính linh hoạt và tính hiệu quả hơn cho ứng dụng
Virtual DOM: Là sự đại diện cho đối tượng DOM gốc và hoạt động theo cơ chế One-way Data Binding Người dùng không cần thao tác trực tiếp trên Real DOM mà vẫn có thể thấy được các sự thay đổi của nó Bởi vì Virtual DOM đóng vai trò như là một model và view nên sự thay đổi một trong hai sẽ kéo theo thành phần còn lại cũng sẽ thay đổi Bất cứ khi nào có một sự thay đổi trong ứng dụng, toàn bộ UI sẽ được re-rendered lại trong Virtual DOM và sau đó nó sẽ kiểm tra sự khác biệt giữa DOM trước đó và DOM mới vừa thay đổi Khi hoàn thành, Real DOM chỉ cập nhật lại những thành phần thực sự thay đổi và giữ nguyên phần còn lại
Simplicity: ReactJS sử dụng JSX để tạo cho ứng dụng trở nên đơn giản và việc code trở nên dễ hiểu hơn Như đã biết, ReactJS được phát triển dựa trên nền tảng component nê có thể tái sử dụng lại các component khi cần thiết Điều này giúp việc học và
sử dụng ReactJS trở nên đơn giản hơn
− Performance: ReactJS được biết đến với hiệu suất vô cùng tuyệt vời Đặc trưng này giúp nó trở nên hiệu quả hơn rất nhiều frameworks hiện nay Bởi vì ReactJS quản lý một Virtual DOM (tồn tại hoàn toàn trong bộ nhớ) Do đó, khi tạo mới một component, chúng ta không viết trực tiếp trên Real DOM mà
Trang 17thay vào đó là viết trên Virtual DOM Điều này giúp cho hiệu năng mượt mà và nhanh hơn rất nhiều
b ElectronJS Framework
ElectronJS là một runtime framework cho phép người dùng tạo ứng dụng chạy trên nền tảng máy tính sử dụng HTML, CSS và Javascript Đây là sự kết hợp giữa 2 công nghệ đang vô cùng phổ biến hiện nay là NodeJS và Chromium
Thành phần kiến trúc: Chromium, NodeJS và Custom APIs
Hình 2.5: Hình ảnh mô tả thành phần kiến trúc của
Electron + Chromium: Chịu trách nhiệm tạo và hiển thị các trang của Web Nội dung Web được hiển thị trong Rendering process của ElectronJS và nhờ môi trường Chromium, chúng ta có quyền truy cập đến tất cả APIs của trình duyệt và công cụ phát triển
+ NodeJS: Cho phép truy cập vào vùng hệ thống ElectronJS chạy trên nền tảng NodeJS trong chính Main
Trang 18process của nó Điều đó giúp chúng ta truy cập vào toàn
bộ chức năng của NodeJS như tương tác với file hệ thống, hệ điều hành, …
+ Custom APIs: Cho phép các nhà phát triển tạo những trải nghiệm trên máy tính một cách đơn giản và làm việc
dễ dàng với các chức năng có sẵn ElectronJS có một API dễ dàng để có thẻ sử dụng các thư viện mà giúp thực hiện các công việc như tạo và hiển thị menu, hiển thị các thông báo, làm việc với bàn phím, …
Cách hoạt động: ElectronJS bao gồm 2 tiến trình là main process và rendering process
+ Main process: Chịu trách nhiệm gửi và nhận các yêu cầu từ phía Client, chuyển đổi dữ liệu giữa các cửa sổ khác nhau và là nơi quản lý tất cả bộ nhớ trong hệ thống
Có thể nói đây là trung tâm trao đổi dữ liệu của mọi cửa
sổ trong ứng dụng
+ Rendering process: Chịu trách nhiệm hiển thị giao diện của ứng dụng, tương tác trực tiếp với người dùng, xử lý các sự kiện và gửi yêu cầu tới Main Process
Trang 19Hình 2.6: Hình ảnh mô tả quy trình hoạt động của
+ Hiệu năng cao
+ Tiết kiệm chi phí và thời gian
+ Có sẵn Module để đóng gói ứng dụng
c NodeJS
NodeJS là một nền tảng hướng máy chủ được xây dựng trên
cơ chế Javascript của Chrome Nó giúp cho việc xây dựng ứng dụng trở nên nhanh và dễ dàng mở rộng hơn
Trang 20 Thành phần kiến trúc: Requests, NodeJS Server, Event Queue,
Thread Pool, Event Loop, External Resources
Các thành phần quan trọng của NodeJS được mô tả qua sơ đồ
dưới đây:
Hình 2.7: Hình ảnh khái quát các thành phần quan trọng trong
NodeJS
Các đặc trưng của NodeJS:
+ Asynchronous and Event Driven: Tất cả APIs của thư viện NodeJS đều bất đồng bộ NodeJS dựa trên máy chủ và không đợi cho tới khi một API trả về dữ liệu Máy chủ chuyển đến API tiếp theo sau khi gọi nó và sẽ
có một cơ chế thông báo sự kiên của NodeJS giúp máy chủ nhận được phản hồi từ API trước đó đã gọi
Trang 21+ Single Threaded, Highly Scalable: NodeJS sử dụng mô hình đơn luồng với các sự kiện lặp Cơ chế sự kiện giúp máy chủ phản hồi và tạo tính mở rộng cao cho máy chủ NodeJS sử dụng chương trình đơn luồng và các chương trình tương tự để cung cấp dịch vụ với số lượng lớn các yêu cầu hơn so với nhiều máy chủ truyền thống như Apache HTTP
+ No Buffering: Các ứng dụng NodeJS không bao giờ sử dụng bộ đệm cho dữ liệu
d MySQL
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 ứng dụ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 sử dụng cho việc bổ trợ Node.js, PHP, Perl, và nhiều ngôn ngữ khác, làm nơi lưu trữ những thông tin trên các trang web viết bằng NodeJs, PHP hay Perl, …
Ưu điểm:
+ Linh hoạt và dễ dùng: Quá trình cài đặt tương đối đơn giản
Trang 22+ Hiệu năng cao: Dù dữ liệu của bạn lớn như thế nào thì MySQL cũng đáp ứng với tốc độ cao, mượt mà kể cả big data của các trang thương mại điện tử hoặc những hoạt động kinh doanh nặng nề liên quan đến công nghệ thông tin
+ An toàn: MySQL đảm bảo được tiêu chuẩn bảo mật rất cao
Nhược điểm:
+ MySQL có thể bị khai thác để chiếm quyền điều khiển + Dù có thể quản lí dữ liệu với số lượng lớn nhưng MySQL vẫn không đủ khả năng tích hợp quản lí dữ liệu khổng lồ và mang tính hệ thống cao như: hệ thống siêu thị trên toàn quốc, ngân hàng, quản lý thông tin dân số
cả nước, …
Tầm quan trọng:
+ Là cơ sở dữ liệu tốc độ cao, ổn định nhất hiện nay trên thị trường
+ Độ bảo mật thông tin cao
+ MySQL mặc dù có những tính năng cao nhưng sử dụng lại đơn giản, ít phức tạp
+ Hoàn toàn miễn phí vì đây là một mã nguồn mở Tuy nhiên, trong trường hợp bạn cần được hỗ trợ từ MySQL, bạn vẫn phải trả phí
+ Được hỗ trợ từ công đồng vì rất nhiều thành viên
Trang 23+ Hoạt động trên nhiều hệ điều hành
Trang 24Chương 3: Phân tích bài toán
3.1 Danh sách các yêu cầu phần mềm
Trang 263.2 Phân tích thiết kế
3.2.1 Use Cases Diagram
3.2.1.1 Use Case Đăng nhập
a Sơ đồ Use Case
b Đặc tả Use Case
trước khi sử dụng các chức năng
Điều kiện trước Người dùng có tài khoản hoặc là sinh
viên, giảng viên của trường
Điều kiện sau
Luồng sự kiện chính 1 Người dùng đăng nhập vào hệ
thống
Trang 272 Hệ thống kiểm tra và thông báo trạng thái đăng nhập
Luồng sự kiện thay thế
1 Hệ thống kiểm tra tài khoản có hợp lệ hay không
2 Nếu chưa có tài khoản, lên xin ban quản trị tạo tài khoản mới
3.2.1.2 Use Case Khôi phục tài khoản
b Sơ đồ Use Case
c Đặc tả Use Case
khoản khi quên mật khẩu hiện tại
Trang 28Điều kiện trước Người dùng đã có một tài khoản sử
dụng trong hệ thống
Điều kiện sau Cập nhật lại mật khẩu mới của người
dùng vào cơ sở dữ liệu
Luồng sự kiện chính
1 Người dùng chọn Quên mật khẩu để bắt đầu khôi phục tài khoản
2 Người dùng nhập Email của tài khoản khôi phục
3 Người dùng nhập mật khẩu mới
và xác nhận lại mật khẩu vừa nhập
4 Kết thúc
Luồng sự kiện thay thế
2.1 Hệ thống kiểm tra Email của
người dùng Thông báo
“Email không hợp lệ Vui lòng kiểm tra lại” cho người dùng khi Email không tồn tại trong hệ thống
3.1 Hệ thống kiểm tra mật khẩu
mới và mật khẩu xác nhận
có giống nhau không Thông
Trang 29báo “Kiểm tra lại mật khẩu xác nhận” khi mật khẩu nhập lại không chính xác
3.2.1.3 Use Case Đăng ký môn thực tập tốt nghiệp
a Sơ đồ Use Case
b Đặc tả Use Case
học thực tập tốt nghiệp
Trang 30Điều kiện trước Sinh viên cần đăng nhập vào hệ thống
Điều kiện sau Cập nhật thông tin thực tập của sinh
viên vào cơ sở dữ liệu
Luồng sự kiện thay thế
4.1 Hệ thống kiểm tra sinh viên đã chọn đăng ký môn học hay chưa Thông báo “Vui lòng chọn môn đăng ký” khi sinh viên chưa chọn đăng ký môn học
3.2.1.4 Use Case Tìm kiếm công việc thực tập
a Sơ đồ Use Case
Trang 31b Đặc tả Use Case
thực tập
Điều kiện trước Sinh viên cần đăng nhập vào hệ thống
Luồng sự kiện chính 1 Sinh viên đăng nhập vào hệ
thống
Trang 322 Sinh viên chọn thanh Tìm kiếm
và nhập thông tin công việc thực tập cần tìm kiếm
3 Sinh viên nhấn nút Tìm kiếm hoặc Enter để xem danh sách công việc hiện đang có sẵn
4 Kết thúc
Luồng sự kiện thay thế
3.1 Hệ thống kiểm tra tất cả công việc liên quan và hiển thị ra cho người dùng
3.2 Hệ thống sẽ hiển thị thêm danh sách Gợi ý công việc và Công việc xu hướng để sinh viên có thể tham khảo
3.2.1.5 Use Case Chọn, Lưu và Gỡ bỏ công việc khỏi danh sách
quan tâm
a Sơ đồ Use Case
b Đặc tả Use Case
Trang 33Use Case Quản lý công việc quan tâm
tâm
Điều kiện trước
Lọc các công việc quan tâm sau đó thêm vào danh sách công việc quan tâm
Điều kiện sau
Luồng sự kiện thay thế 1 Xóa công việc khỏi danh sách
các công việc quan tâm
3.2.1.6 Use Case Gửi yêu cầu thực tập
a Sơ đồ Use Case
Trang 34b Đặc tả Use Case
Điều kiện trước
Sinh viên cung cấp thông tin về nơi thực tập và gửi cho giảng viên để xác nhận
Điều kiện sau Giảng viên xác nhận và gửi lên hệ
Trang 35phải gửi lại thông tin công việc khác
3.2.1.7 Use Case Báo cáo tiến độ định kỳ
a Sơ đồ Use Case
b Đặc tả Use Case
Mô tả Sinh viên báo cáo tiến độ định kỳ để giảng viên
có thể theo dõi và đánh giá
Điều kiện trước Sinh viên cần đăng nhập vào hệ thống và đã đăng
ký môn thực tập tốt nghiệp
Trang 36Điều kiện sau Cập nhật lại tiến độ thực hiện vào cơ sở dữ liệu
Luồng sự kiện chính
1 Sinh viên đăng nhập vào hệ thống
2 Sinh viên chọn vào chức năng Thực tập
3 Sinh viên chọn vào mục Báo cáo
4 Sinh viên theo dõi các công việc đang được phân công Tick vào công việc khi
đã hoàn thành công việc
5 Kết thúc
Luồng sự kiện thay thế
4.1 Hệ thống sẽ highlight khi công việc sắp tới hạn hoặc hết hạn nhưng vẫn chưa được hoàn thành
3.2.1.8 Use Case Theo dõi thực tập
a Sơ đồ Use Case
Trang 37b Đặc tả Use Case
Mô tả
Sinh viên theo dõi thực tập qua các thông báo từ
hệ thống và đánh giá từ giảng viên hướng dẫn thực tập
Điều kiện trước Sinh viên cần đăng nhập vào hệ thống và đã đăng
ký môn thực tập tốt nghiệp
Trang 38Luồng sự kiện chính
1 Sinh viên đăng nhập vào hệ thống
2 Sinh viên chọn vào chức năng Thực tập
3 Sinh viên chọn mục Theo dõi
4 Sinh viên theo dõi các thông báo từ hệ thống và đánh giá từ giảng viên để hoàn thành công việc một cách tốt nhất
5 Kết thúc
Luồng sự kiện thay thế Không có
3.2.1.9 Use Case Trao đổi Chat
a Sơ đồ Use Case
b Đặc tả Use Case
viên
theo thời gian thực trực tiếp với nhau
Trang 39Tác nhân Sinh viên, giảng viên
Điều kiện trước Sinh viên và giảng viên phải có kết nối
mạng và đăng nhập trước khi sử dụng
Điều kiện sau
Luồng sự kiện chính
1 Nhập nội dung muốn trao đổi
2 Gửi thông tin đi
Luồng sự kiện thay thế
3.2.1.10 Use Case Nộp báo cáo cuối kỳ
a Sơ đồ Use Case
b Đặc tả Use Case
Trang 40Mô tả
Sau khi hoàn thành xong kỳ thực tập, nhà trường sẽ thông báo lịch báo cáo kết quả thực tập Sinh viên cần nộp các file trước khi đến báo cáo
Điều kiện trước
Sinh viên chuẩn bị trước đẩy đủ các file cần nộp Sau đó đăng nhập vào hệ thống để nộp các file báo cáo theo đúng link đính kèm
Điều kiện sau
Luồng sự kiện thay thế
1 Nếu như muốn chỉnh sửa(được phép trước hạn nộp) thì nhấn gỡ xuống
2 Đính kèm và gửi lên hệ thống lại