1. Trang chủ
  2. » Luận Văn - Báo Cáo

đồ án 1 website quản lý môn đồ án

40 2 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Website quản lý môn đồ án
Tác giả Võ Hữu Vũ, Huy Hoàng
Người hướng dẫn Th.S Huỳnh Hồ Thị Mộng Trinh
Trường học Trường Đại học Công nghệ Thông tin, Đại học Quốc gia TP. Hồ Chí Minh
Chuyên ngành Công nghệ phần mềm
Thể loại Đồ án 1
Năm xuất bản 2023
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 40
Dung lượng 837,12 KB

Cấu trúc

  • Chương 1 Mở đầu (7)
    • 1. Lý do chọn đề tài (7)
    • 2. Mục đích (7)
    • 3. Đối tượng và phạm vi nghiên cứu (8)
    • 4. Kết quả đạt được (8)
  • Chương 2 Tổng quan (9)
    • 1. Công nghệ sử dụng (9)
    • 1. ASP.NET Core Web API 7 (9)
    • 2. ReactJS (10)
    • 3. Docker (11)
    • 4. Spring Cloud Gateway (12)
    • 5. MongoDB (12)
    • 2. Kiến trúc sử dụng (13)
    • 3. Thiết kế hệ thống (16)
  • Chương 3 Kết quả (18)
    • 1. Phân tích nghiệp vụ (18)
    • 1. Quy trình (18)
    • 1. Danh sách Actor (20)
    • 2. Sơ đồ Use case (20)
    • 2. Danh mục Use case (22)
    • 3. Đặc tả Use case (22)
    • 1. Use case 01 - Config number of student enroll in a project (23)
    • 2. Use case 02 - Allow students registration (24)
    • 3. Use case 03 – Modify Project (25)
    • 4. Use case 04 – Add Project (26)
    • 5. Use case 05 – Delete Project (27)
    • 6. Use case 06 – Add Course (28)
    • 7. Use case 07 – Create Notification (29)
    • 8. Use case 08 – Export Grade (30)
    • 9. Use case 09 – Insert Grade (31)
    • 10. Use case 10 – Comment (32)
    • 11. Use case 11 – Submit project (33)
    • 12. Use case 12 – Register for consideration (34)
    • 13. Use case 13 – Login (35)
    • 14. Use case 14 – Add Student to a course (36)
    • 4. Xây dựng hệ thống (37)
    • 1. Data model (37)
    • 2. Data transfer object (37)
  • Chương 5 Kết luận (39)
    • 1. Kết quả đạt được (39)
    • 2. Nhận xét (39)
    • 1. Thuận lợi (39)
    • 2. Khó khăn (39)
    • 3. Hướng phát triển (40)
  • Chương 6 Tài liệu tham khảo (40)
  • Hinh 2.3 Sơ đồ kiến trúc hệ thống (0)

Nội dung

Vì vậy, nhóm chúng em quyết định chọn đề tài Website quản lý môn đồ án làm đồ án 1 để có thể tối ưu, hỗ trợ quy trình quản lý, giám sát và thực hiện đồ án của giáo vụ, giảng viên và sinh

Tổng quan

ASP.NET Core Web API 7

ASP.NET Core là một framework mã nguồn mở, đa nền tảng, hiệu suất cao, dùng để xây dựng các ứng dụng hiện đại, hỗ trợ kết nối với cloud

Với ASP.NET Core, bạn có thể:

- Xây dựng ứng dụng web và dịch vụ, ứng dụng Internet of Things (IoT) và backend cho di động

- Sử dụng các công cụ phát triển ưa thích trên Windows, macOS và Linux

- Triển khai trên cloud hoặc on-premises

ASP.NET Core mang lại các lợi ích sau:

- Một cách tiếp cận thống nhất để xây dựng giao diện người dùng web và web API

- Thiết kế cho khả năng kiểm thử

- Razor Pages giúp lập trình các kịch bản tập trung vào trang dễ dàng và hiệu quả hơn

- Blazor cho phép sử dụng C# trong trình duyệt cùng với JavaScript Chia sẻ logic ứng dụng phía máy chủ và phía máy khách viết bằng NET

- Khả năng phát triển và chạy trên Windows, macOS và Linux

- Mã nguồn mở và tập trung vào cộng đồng

- Tích hợp các framework và luồng làm việc phát triển phía khách hàng hiện đại

- Hỗ trợ việc lưu trữ các dịch vụ Remote Procedure Call (RPC) bằng cách sử dụng gRPC

- Hệ thống cấu hình dựa trên môi trường, sẵn sàng cho cloud

- Hỗ trợ dependency injection tích hợp

- Một pipeline HTTP nhẹ, hiệu suất cao và có khả năng tùy chỉnh

- Khả năng lưu trữ trên các nền tảng như:

- Hỗ trợ đa phiên bản song song

- Công cụ giúp đơn giản hóa phát triển web hiện đại

ASP.NET Core hỗ trợ hai phương pháp để tạo ra các API: phương pháp dựa trên controller và minimal APIs Trong một dự án API, các controller là các lớp mà thừa kế từ ControllerBase Minimal APIs xác định các điểm cuối với các xử lý logic trong các lambda hoặc phương thức Bài viết này chỉ ra sự khác biệt giữa hai phương pháp này

Thiết kế của minimal APIs mặc định ẩn lớp host và tập trung vào cấu hình và khả năng mở rộng thông qua các phương thức mở rộng nhận các hàm dưới dạng lambda expressions Controller là các lớp có thể nhận các dependency thông qua constructor injection hoặc property injection, và thường tuân theo các mẫu hướng đối tượng Minimal APIs hỗ trợ dependency injection thông qua các phương pháp khác như truy cập vào service provider.

ReactJS

ReactJS là một mã nguồn mở chứa JavaScript Nó được ra đời vào năm 2013 bởi Facebook Mục đích chính của việc tạo ra ReactJS là cải thiện các ứng dụng web hiệu quả và hấp dẫn hơn với nỗ lực viết mã tối thiểu Nhà phát triển ReactJS mong muốn rằng bất kỳ trang web nào sử dụng ReactJS cũng phải mượt mà, nhanh chóng và khả năng mở rộng cao, dễ thực hiện

Có 2 điểm đáng chú ý trong ReactJS

- Declarative: React giúp tạo các UI tương tác một cách dễ dàng Thiết kế các khung nhìn đơn giản cho từng trạng thái trong ứng dụng, và React sẽ cập nhật

11 và render đúng các thành phần phù hợp khi dữ liệu thay đổi Việc khai báo các khung nhìn tường minh sẽ khiến cho code dễ sử dụng hơn và dễ dàng gỡ lỗi hơn

- Component-Based: Xây dựng các component và quản lý các trạng thái của riêng chúng, sau đó kết hợp chúng để tạo các UI phức tạp Vì component logic được viết bằng JavaScript thay vì các template, lập trình viên có thể dễ dàng truyền dữ liệu đa dạng qua ứng dụng của mình và tránh thao tác với DOM (Document Object Model).

Docker

Docker là một nền tảng để cung cấp cách để building, deploying và running ứng dụng dễ dàng hơn bằng cách sử dụng các containers (trên nền tảng ảo hóa) Ngoài ra, còn có các công nghệ triển khai sử dụng Docker Swarm hoặc Kubernetes và các phương pháp phát triển sử dụng microservices và serverless

Docker mang lại những lợi ích sau đây:

- Môi trường đồng nhất và cô lập của Docker đảm bảo việc triển khai ứng dụng ổn định

- Quá trình triển khai diễn ra trong vài giây: với kích thước nhỏ và khả năng tái sử dụng của Docker image, quá trình phát triển được tăng tốc đáng kể Đồng thời, khả năng tự động hóa của Docker giúp loại bỏ lỗi và đơn giản hóa chu kỳ bảo trì

- Docker hỗ trợ các phương pháp Agile và CI/CD DevOps

- Việc quản lý phiên bản dễ dàng của Docker giúp tăng tốc quá trình kiểm thử, quay trở lại phiên bản trước và triển khai lại Đối với việc phân đoạn ứng dụng để làm mới, dọn dẹp và sửa chữa, Docker đóng vai trò quan trọng Nhà phát triển có thể hợp tác để giải quyết vấn đề nhanh chóng và mở rộng các container khi cần thiết

- Docker image không phụ thuộc vào nền tảng, giúp đảm bảo tính di động cao

Tuy nhiên, Docker không phù hợp cho các ứng dụng có yêu cầu hiệu suất hoặc bảo mật cao, dựa trên kiến trúc Monolith, sử dụng các tính năng GUI phong phú hoặc thực hiện các chức năng tiêu chuẩn trên máy tính để bàn hoặc có hạn chế.

Spring Cloud Gateway

Spring Cloud Gateway nhằm cung cấp một cách đơn giản nhưng hiệu quả để định tuyến đến các API và cung cấp các vấn đề chung cho chúng như: bảo mật, giám sát/thống kê và resiliency

Các tính năng của Spring Cloud Gateway:

- Được xây dựng trên Spring Framework và Spring Boot

- Có thể khớp các route dựa trên bất kỳ thuộc tính yêu cầu nào

- Predicates và filters đặc thù cho từng route

- Tích hợp Spring Cloud DiscoveryClient

- Dễ dàng viết Predicates và Filters

- Giới hạn tần suất gửi request từ phía client

MongoDB

MongoDB là một hệ quản trị cơ sở dữ liệu phi quan hệ (NoSQL) phổ biến và mạnh mẽ Nó được thiết kế để lưu trữ và xử lý dữ liệu phi cấu trúc và linh hoạt, giúp đáp ứng nhanh chóng với các yêu cầu dữ liệu đa dạng

Dưới đây là một số đặc điểm và lợi ích chính của MongoDB:

- Cấu trúc dữ liệu linh hoạt: MongoDB không yêu cầu cấu trúc cố định cho dữ liệu, cho phép lưu trữ các tài liệu phi cấu trúc và có thể thay đổi theo thời gian Điều này rất hữu ích khi làm việc với dữ liệu không đồng nhất hoặc khi yêu cầu dữ liệu thay đổi linh hoạt

- Tính mở rộng dễ dàng: MongoDB hỗ trợ khả năng mở rộng ngang (horizontal scaling), cho phép tăng hiệu suất và khả năng chịu tải bằng cách thêm các node vào cụm MongoDB Điều này cho phép xử lý lượng dữ liệu lớn và mở rộng hệ thống một cách linh hoạt theo nhu cầu

- Truy vấn mạnh mẽ: MongoDB cung cấp một ngôn ngữ truy vấn linh hoạt và mạnh mẽ, cho phép tìm kiếm và truy xuất dữ liệu theo nhiều tiêu chí khác nhau Truy vấn trong MongoDB sử dụng cú pháp dễ hiểu và hỗ trợ các phép toán phức tạp như truy vấn theo điều kiện, phép kết hợp, sắp xếp và phân trang

- Hỗ trợ tốt cho lưu trữ dữ liệu lớn: MongoDB có khả năng xử lý và lưu trữ dữ liệu lớn, đồng thời hỗ trợ các tính năng như shard (chia nhỏ dữ liệu), replica set (chạy MongoDB với nhiều instance, đảm bảo tính tin cậy)

- Hệ sinh thái phong phú: MongoDB có một hệ sinh thái phong phú với các công cụ hỗ trợ phát triển, ví dụ như MongoDB Compass (giao diện đồ họa để thao tác với cơ sở dữ liệu), MongoDB Atlas (dịch vụ quản lý cơ sở dữ liệu dựa trên cloud).

Kiến trúc sử dụng

Kiến trúc microservices là một mô hình kiến trúc phần mềm tiên tiến, trong đó ứng dụng được phân tách thành các service nhỏ và độc lập Mỗi service tương ứng với một chức năng cụ thể và có khả năng hoạt động độc lập với nhau Các service này giao tiếp với nhau thông qua các giao thức Internet như HTTP/REST/gRPC/Web Socket/Message Queue và thường có cơ sở dữ liệu riêng biệt Kiến trúc microservices giúp tách biệt các thành phần của ứng dụng, tăng tính mô-đun hóa, linh hoạt và khả năng mở rộng của hệ thống

Sự phổ biến của kiến trúc microservices đã tăng lên trong những năm gần đây

Mô hình này được ưa chuộng bởi khả năng chia nhỏ ứng dụng thành các dịch vụ nhỏ hơn, giúp tăng khả năng phát triển độc lập và đồng thời giảm sự phụ thuộc giữa các thành phần Nó cung cấp một cách tiếp cận linh hoạt và hiệu quả để xây dựng và triển

14 khai các ứng dụng phân tán (distributed system), đáp ứng nhanh chóng các yêu cầu thay đổi và khả năng mở rộng Kiến trúc microservices cũng tạo điều kiện thuận lợi cho việc sử dụng công nghệ mới như cloud và giao diện lập trình ứng dụng (API)

Sự phổ biến của kiến trúc microservices cũng đi đôi với sự phát triển của các công cụ và framework hỗ trợ, bao gồm C# và ASP.NET Core Web API C# là một ngôn ngữ lập trình mạnh mẽ và được phát triển bởi Microsoft, trong khi ASP.NET Core Web API là một framework cho phép xây dựng các dịch vụ web RESTful sử dụng ngôn ngữ C# Với sự kết hợp giữa C# và ASP.NET Core Web API, bạn có thể xây dựng các dịch vụ web độc lập và linh hoạt trong kiến trúc microservices

Sử dụng C# và ASP.NET Core Web API trong kiến trúc microservices cung cấp các tính năng mạnh mẽ như định tuyến (routing), middleware, dependency injection (DI) và xác thực (authentication), giúp bạn xây dựng các dịch vụ web an toàn, linh hoạt và dễ bảo trì Bạn có thể xử lý các yêu cầu HTTP và trả về dữ liệu dưới dạng JSON hoặc XML, tạo các endpoint API để cung cấp dữ liệu và chức năng cho các ứng dụng khác

Với việc sử dụng C# và ASP.NET Core Web API trong kiến trúc microservices, bạn có thể tận dụng các lợi ích của ngôn ngữ C# và framework ASP.NET Core để xây dựng các ứng dụng web đa nền tảng và dễ dàng mở rộng trong môi trường phân tán

Các lợi ích của kiến trúc microservices:

- Cho phép dễ dàng continuous delivery và deployment các ứng dựng lớn, phức tạp:

- Cải thiện khả năng bảo trì - mỗi service tương đối nhỏ do đó dễ hiểu và thay đổi hơn

- Khả năng testing dễ dàng hơn - các services nhỏ hơn và nhanh hơn để test

- Khả năng triển khai tốt hơn - các services có thể được triển khai độc lập

- Cho phép các services được phát triển bởi những team khác nhau Mỗi team có thể phát triển, thử nghiệm, triển khai và mở rộng quy mô dịch vụ của mình một cách độc lập với tất cả các team khác

- Giảm thiểu rủi ro: Nếu có lỗi trong một service thì chỉ có service đó bị ảnh hưởng Các services khác sẽ tiếp tục xử lý các yêu cầu Trong khi đó, một thành phần hoạt động sai của kiến trúc một khối có thể làm ảnh hưởng toàn bộ hệ thống

- Dễ dàng thay đổi sử dụng các công nghệ mới: Khi triển khai các services bạn có thể lựa chọn nhiều công nghệ mới Tương tự khi có thay đổi lớn đối với các services hiện có bạn có thể dễ dàng thay đổi công nghệ

Nhược điểm của kiến trúc microservices:

- Các nhà phát triển phải đối phó với sự phức tạp của việc tạo ra một hệ thống phân tán:

- Cần implement việc communication giữa các inter-services

- Handle partial failure là rất phức tạp vì một luồng xử lý cần đi qua nhiều services

- Việc thực hiện các requests trải rộng trên nhiều services khó khăn hơn, điều này cũng đòi hỏi sự phối hợp cẩn thận giữa các teams

- Khó khăn trong việc đảm bảo toàn vẹn CSDL nếu triển khai theo kiến trúc cơ sở dữ liệu phân vùng

- Triển khai và quản lý microservices nếu làm thủ công theo cách đã làm với ứng dụng một khối phức tạp hơn rất nhiều

- Phải xử lý sự cố khi kết nối chậm, lỗi khi thông điệp không gửi được hoặc thông điệp gửi đến nhiều đích đến vào các thời điểm khác nhau

Thiết kế hệ thống

Dựa trên kết quả phân tích, nhóm em nhận thấy rằng có nhiều chức năng không tương tác với nhau trong quá trình thao tác Do đó, nhóm em đã quyết định áp dụng kiến trúc Microservices cho phần Backend và kiến trúc Monolithic cho phần Frontend Phần Backend và Frontend sẽ được liên kết thông qua một API Gateway, giao tiếp với nhau thông qua giao thức RESTful Để đảm bảo tính bảo mật giữa Frontend và Backend, chúng tôi sẽ sử dụng JSON Web Tokens (JWT) như cơ chế bảo mật Hệ thống đề xuất như sau:

Với Backend, nhóm em chia làm các service nhỏ như sau:

- AuthService: Đảm nhiệm phần phần đăng nhập, đăng ký với hệ thống

- ProfileService: Đảm nhiệm phần thông tin của người dùng, phân cấp người dùng trong hệ thống

Hinh 2.3 Sơ đồ kiến trúc hệ thống

- CourseService: Đảm nhiệm thông tin lớp học (lớp đồ án) và điểm số, cũng như lưu trữ các thành viên và đề tài trong lớp

- ProjectService: Đảm nhiệm phần thông tin đề tài, thông tin sinh viên thực hiện, giảng viên hướng dẫn, tên và nội dung của đề tài đó

- SharedLibrary: Dùng để lưu trữ các model, connection string, configuration.

Kết quả

Quy trình

Qua quá trình trao đổi và thảo luận cùng giảng viên hướng dẫn – ThS Huỳnh Hồ Thị Mộng Trinh và tìm hiểu trên trang khoa Công nghệ phần mềm, nhóm em đã xác định được yêu cầu, cũng như phân tích quy trình thực hiện Đồ án 1 và Đồ án 2 Tổng kết lại theo sơ đồ sau:

- Bước 1 Thông báo và chuẩn bị đề tài: Giáo vụ thông báo đến giảng viên chuản bị đề tài và gửi lại đến giáo vụ Thời gian diễn ra là 1 tuần trước khi bắt đầu học kỳ

Hình 2.1 Sơ đồ nghiệp vụ [1]

- Bước 2 Đăng ký đề tài: Giáo vụ thông báo đến sinh viên các đề tài mà giảng viên đã giao Sinh viên đăng ký các đề tài đó trong vòng khoảng 1 tuần Thời gian diễn ra là tuần 1 của học kỳ

- Bước 3 Thông báo kết quả đăng ký đề tài

- Bước 4 Thực hiện đề tài và báo cáo: Sinh viên liên hệ giảng viên hướng dẫn khi đã có thông báo công bố danh sách đăng ký đề tà Thời gian diễn ra là từ tuần 2 đến tuần 18 của học kỳ

- Bước 5 Kết thúc đồ án: Sinh viên thực hiện nộp đồ án cho khoa, báo cáo đồ án cho giảng viên hướng dẫn Giảng viên chấm và gửi điểm đến giáo vụ để giáo vụ cập nhật điểm lên hệ thống Thời gian diễn ra là tuần thứ 19 của học kỳ.

Danh sách Actor

Hệ thống bao gồm các actor như sau:

- Giáo vụ: người có quyền quản lý những chức năng đặc biệt như tùy chỉnh số lượng sinh viên đăng ký vào 1 đề tài, cho phép sinh viên đăng ký đồ án và thu thập toàn bộ điểm số sinh viên

- Giảng viên: người có quyền tạo đề tài đồ án (có thể bao gồm cả sinh viên), cho điểm sinh viên và tạo thông báo cho các sinh viên đăng ký giáo viên đó

- Sinh viên là người có thể đăng ký 1 đề tài trong danh sách đề tài Có thể thấy các thông báo từ giáo vụ, giảng viên hướng dẫn và bình luận ở các bài thông báo đó (nếu bài đăng là của giảng viên hướng dẫn), nộp các báo cáo cần thiết khi thông báo yêu cầu nộp bài.

Sơ đồ Use case

Sơ đồ Use case định nghĩa các chức năng cần có:

21 Hình 3.1.2 Sơ đồ Use case

Danh mục Use case

UC Name Ministry Teacher Student Priority

Config number of student enroll in a project x Medium

UC-02 Allow students registration x High

UC-12 Register for consideration x Medium

UC-14 Add student to a course x High

Bảng 3.2 Danh mục Use case

Đặc tả Use case

Use case 01 - Config number of student enroll in a project

ID and Name: UC-01 - Config number of student enroll in a project

Primary Actor: Ministry Secondary Actors: None

Description: Ministry configs the number of student enroll in a project

(maximum and minimum) Trigger: The rule of the number of students enrolled in a project changes

Postconditions: Maximum and minimum number of students can enroll in a project changed Normal Flow: 1 The ministry clicks on the “Configuration”

2 The ministry navigates to the “Students in a project”

3 The ministry insert the maximum and the minimum number

Exceptions: 3.1: Maximum number < Minimum number

3.2: System tells the ministry to insert again with constraints: Maximum number >= Minimum number

Business Rules: Maximum number >= Minimum number

None Assumptions: This function is needed when the rule changed

Bảng 3.3.1 Use case 01 - Config number of student enroll in a project

Use case 02 - Allow students registration

ID and Name: UC-02 - Allow students registration

Primary Actor: Ministry Secondary Actors: None

Description: The ministry let the students to register projects, when close the registration, no more students can register a new project Trigger: The registration period has started or The registration period is over Preconditions: The transition of the registration period comes

Postconditions: The status of the registry permission changed

• Can register → Cannot register Normal Flow: 1 The ministry clicks on the “Configuration”

2 The ministry turns on/off the “Allow registry”

Business Rules: The transitions should happen during the semester and at the beginning of the semester Other

Assumptions: This function is necessary to prevent students from register the project late Bảng 3.3.2 Use case 02 - Allow students registration

Use case 03 – Modify Project

ID and Name: UC-03 - Modify Project

Primary Actor: Teacher Secondary Actors: Student

Description: • Modify Project description, requirement and needs for the output, or change student enrolled in

• Students who registered with none topic or unwanted topic can change it to a topic that they want

Trigger: • Teacher tries to change the information of the project

• Student who registered a project and try to change its information

Preconditions: Project that wanted to be changed has been created

Normal Flow: 1 User clicks on that project

Exceptions: 1.1 Student who doesn’t enroll in a project and want to change it 1.2 Teacher who doesn’t own a project and want to change it

Business Rules: • Only students enroll a project can modify their project

• Teacher only can change his/her student’s projects and his/her created project

Assumptions: Student, teacher can change the project information when needed Bảng 3.3.3 Use case 03 - Modify Project

Use case 04 – Add Project

ID and Name: UC-04 - Add Project

Primary Actor: Teacher Secondary Actors:

Description: Add a new project to list project for student to register

Trigger: Teacher has a list of topic projects or a project and tries to upload it for student registry Preconditions: Teacher has a formatted xlsx file or prepared project

Postconditions: Those topic projects has been uploaded or created

Normal Flow: 1 Teacher clicks on “Quản lý đồ án”

2 Teacher clicks on “Thêm đề tài”

3 Teacher uploads a formatted file or inserts by hand

4 System scans or checks every project

5 Teacher saves all the topic projects into a collection

6 Teacher publishes the collection(s) when needed

Exceptions: 5.1 Teacher published more project than maximum number of project that a teacher can guide that is registered Priority: High

Business Rules: Number of topics published by teacher that is registered < maximum number of project that a teacher can guide Other

Assumptions: Teacher can create and publish the project for student to register Bảng 3.3.4 Use case 04 - Add Project

Use case 05 – Delete Project

ID and Name: Delete Project

Primary Actor: Teacher Secondary Actors:

Description: Teacher can delete a project under his guidance

Trigger: Teacher tries to delete a project

Preconditions: Teacher has permission to delete the project (project under his guidance) Postconditions: Project deleted

Normal Flow: 1 Teacher clicks on “Quản lý đồ án”

3 Teacher clicks on delete project

Alternative Flows: 5.1 Teacher doesn’t have access to this project

None Assumptions: This features allows teacher delete his guidance project

Bảng 3.3.5 Use case 05 - Delete Project

Use case 06 – Add Course

ID and Name: Add Course

Primary Actor: Ministry Secondary Actors: None

Description: Ministry add course when new semester coming

Trigger: Ministry tries to add a new course

1 Ministry clicks on “Cài đặt”

2 Ministry clicks on “Thêm lớp”

5 System saves that course Alternative Flows: None

Assumptions: Course has lots of project and needs to be created before project Bảng 3.3.6 Use case 06 - Add Course

Use case 07 – Create Notification

ID and Name: Create Notification

Primary Actor: Teacher,Ministry Secondary

Description: Creating post for students & teachers

Trigger: Ministry or teacher wants to create notification

Normal Flow: 1 User clicks on “Create Notification” icon

3 User chooses if this notification can be commented

User can stop creating a post by close the create pannel

Business Rules: Only students under a teacher’s guidance can see that teacher notification Other

None Assumptions: This is a critial function of the app

Bảng 3.3.7 Use case 07 - Create Notification

Use case 08 – Export Grade

ID and Name: Export Grade

Description: Teacher can export list of grade of his guidance’ students

Ministry can export list of grade of a course Trigger: Ministry or teacher tries to export grade

Postconditions: A file created an can be downloaded

1 Chooses the course wanting to export

Business Rules: Teacher can only export the grades of his under guidance’s students Other Information: None

Assumptions: Teacher or ministry can exports grade through this function

Bảng 3.3.8 Use case 08 - Export Grade

Use case 09 – Insert Grade

ID and Name: Insert Grade

Primary Actor: Teacher Secondary Actors: None

Description: Teacher insert student’s grade

Trigger: Teacher has student’s grades and tries to insert them into the system Preconditions: None

Postconditions: Grades of student have been saved into the system

Normal Flow: 1 Teacher clicks on the course list

3 Teacher clicks on insert grade

Business Rules: Teacher can only insert grade for who under his guidance right now Other Information: None

Assumptions: Insert grade is one of the key features of this system

Bảng 3.3.9 Use case 09 - Insert Grade

Use case 10 – Comment

Description: 3 types of user can comment on a notification

Trigger: user tries to comment something on a notification

Normal Flow: 1 User goes to the notification

2 User writes down the comment

4 System saves and displays the comment

Alternative Flows: 2 User can attach a file to notification if the notification enable for send file

Business Rules: Student can only comment on his guidance teacher’s notifications Other Information: None

Assumptions: Comment is also a way to send report

Use case 11 – Submit project

ID and Name: Submit project

Description: Student submit report or anything to teacher through this feature Trigger: Student tries to submit the project to the notification

Preconditions: Notification is able to send attach file

Postconditions: Created a comment with the attached file

Normal Flow: 1 Student goes to the notifications

2 Students writes down the comment

Assumptions: Submitting report is one of the key features of the system

Bảng 3.3.11 Use case 11 - Submit project

Use case 12 – Register for consideration

ID and Name: Register for consideration

Primary Actor: Student Secondary Actors: None

Description: Student registers a project to a teacher

Trigger: Student tries to register a new project not in the list

Preconditions: Still in registration project period

Postconditions: Student created a project and send request to teacher

Normal Flow: 1 Student gathers information about project and recruit team

2 Student fills in the registration form

3 Student hit the “Đăng ký” button

4 System send the request to teacher

Assumptions: This feature allows student register project out of the list provided by teacher Bảng 3.3.12 Use case 12 - Register for consideration

Use case 13 – Login

Description: Login function authorizes user

Trigger: User trying to access the system

Normal Flow: 1 User browses the web

2 User inserts username and password

4.1 Wrong user name or password 5.1 The system tells user that wrong data provided 6.1 User logs in again

None Assumptions: This function is crucial for user to access the system

Use case 14 – Add Student to a course

ID and Name: Add Student to a course

Primary Actor: Ministry Secondary Actors: None

Description: Ministry after create a course, they have to add student to that course Trigger: Ministry creates a course and tries to add students to that course

Preconditions: Students must registered the course so ministry can add them to the course Postconditions: Students added to the course

Normal Flow: 1 Ministry creates a course, fills in the information of that course

2 Ministry inserts students to the course using their userId

4 System creates course included students

Alternative Flows: 1.1 Ministry clicks on a course

1.2 Ministry clicks on “Thêm sinh viên”

1.3 Ministry inserts student id in the box 1.4 Ministry clicks “Thêm”

1.5 System finds the students, if found, add student to the course

• Pops up an error tell ministry that no student found

Assumptions: When student added to a course, student can register or join in project in that course Bảng 3.3.14 Use case 14 - Add Student to a course

Data model

Các Data model cần thiết trong hệ thống:

Data transfer object

Các object để truyền tải thông tin giữa Frontend và Backend:

+Password +Name +UserType +Class +TeacherProfileId

+StartDate +EndDate +StartRegisterDate +EndRegisterDate +MaxStudentRegister +MinStudentRegister +Quality

Add or modify student’s point

Create new notification or modify old one

Create a course linked to a project

+IsApproved approve a project by teacher

Ngày đăng: 15/05/2024, 09:30

HÌNH ẢNH LIÊN QUAN

Hình 2.1 Sơ đồ nghiệp vụ  [1] - đồ án 1 website quản lý môn đồ án
Hình 2.1 Sơ đồ nghiệp vụ [1] (Trang 19)
Bảng 3.3.1 Use case 01 - Config number of student enroll in a project - đồ án 1 website quản lý môn đồ án
Bảng 3.3.1 Use case 01 - Config number of student enroll in a project (Trang 23)
Bảng 3.3.3 Use case 03 - Modify Project - đồ án 1 website quản lý môn đồ án
Bảng 3.3.3 Use case 03 - Modify Project (Trang 25)
Bảng 3.3.4 Use case 04 - Add Project - đồ án 1 website quản lý môn đồ án
Bảng 3.3.4 Use case 04 - Add Project (Trang 26)
Bảng 3.3.6 Use case 06 - Add Course - đồ án 1 website quản lý môn đồ án
Bảng 3.3.6 Use case 06 - Add Course (Trang 28)
Bảng 3.3.7 Use case 07 - Create Notification - đồ án 1 website quản lý môn đồ án
Bảng 3.3.7 Use case 07 - Create Notification (Trang 29)
Bảng 3.3.14 Use case 14 - Add Student to a course - đồ án 1 website quản lý môn đồ án
Bảng 3.3.14 Use case 14 - Add Student to a course (Trang 36)
Hình 3.1.2 Data model - đồ án 1 website quản lý môn đồ án
Hình 3.1.2 Data model (Trang 37)
Bảng 3.1.4 Data transfer object - đồ án 1 website quản lý môn đồ án
Bảng 3.1.4 Data transfer object (Trang 38)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w