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

đồ án 1 xây dựng ứng dụng quản lý sinh viên

82 1 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

Nội dung

Ứng dụng sẽ được kiểm soát bởi những admin, kiểm tra bài đăng của các người dùng có hợp lệ hay không, từ đó đưa đến những bài chia sẻ có chất lượng tốt nhất để người sử dụng ứng dụng, ho

Trang 1

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

BÁO CÁO ĐỒ ÁN 1 SE121.M21.PMCL

ĐỀ TÀI: XÂY DỰNG ỨNG DỤNG QUẢN LÝ SINH VIÊN Giảng viên hướng dẫn:

Th.S Huỳnh Tuấn Anh Sinh viên thực hiện

19521649– Nguyễn Thanh Huỳnh

Tp Hồ Chí Minh, 12/2023

Trang 2

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

BÁO CÁO ĐỒ ÁN 1 SE121.M21.PMCL

ĐỀ TÀI: XÂY DỰNG ỨNG DỤNG QUẢN LÝ SINH VIÊN Giảng viên hướng dẫn:

Th.S Huỳnh Tuấn Anh Sinh viên thực hiện

19521649 – Nguyễn Thanh Huỳnh

Tp Hồ Chí Minh, 12/2023

Trang 3

LỜI CẢM ƠN

Lời đầu tiên, cho nhóm chúng em gửi lời cảm ơn trực tiếp đến các quý thầy cô của Trường Đại học Công nghệ Thông tin – Đại học Quốc gia Thành phố Hồ Chí Minh nói chung và quý thầy cô của Khoa Công nghệ Phần mềm đã giảng dạy và giúp đỡ chúng em có những kiến thức quý báu, để xây dựng nền tảng thực hiện đồ án lần này

Điều thứ hai, chúng em muốn gửi lời cảm ơn trực tiếp đến thầy Lê Thanh Trọng, là giáo viên hướng dẫn trực tiếp đến nhóm Những lời tư vấn, góp ý và hướng dẫn tận tính của thầy là những điều quý báu giúp nhóm chúng em thực hiện và hoàn thành được đồ án báo cáo của mình

Trong quá trình thực hiện đồ án, nhóm chúng em đã áp dụng những kiến thức nền tảng đã học và tích lũy được đồng thời kết hợp với những kiến thức mới trong quá trình làm đồ án Do kiến thức và kinh nghiệm khi thực hiện của nhóm còn nhiều hạn chế, khó khăn ở từng giai đoạn thực hiện, từ đó có thể dẫn đến các sai sót Vì vậy, chúng em mong nhận được những lời góp ý, ý kiến quý báu từ quý thầy cô để nhóm chúng em ngày càng hoàn thiện hơn không chỉ là về đồ án hiện tại, mà còn những đồ án môn học sắp tới Đây cũng chính là hành trang để chúng em định hướng, phát triển và hoàn thiện bản than trong tương lai

Một lần nữa nhóm chúng em xin chân thành cảm ơn ạ

Trang 4

NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN

(Kí và ghi rõ họ tên)

Trang 5

MỤC LỤC

Trang 6

4.4ĐẶC TẢ CÁC USE-CASE 27

4.4.1Đặc tả Use-case “View list of existed user / User listing screen” 27

4.4.4Đặc tả Use-case “Allow super admin to add permission to user account” 28

4.4.7Đặc tả Use-case “View list of existed syllabus / Syllabus listing screen ” 30

1.4.11Đặc tả Use-case “Read all detail information of the syllabus” 32

1.4.13Đặc tả Use-case “Import syllabus/ syllabus importing screen” 33

1.4.15Đặc tả Use-case “View list of existed training program / Training program listing screen ” 34

1.4.18Đặc tả Use-case “Update training program information” 36

Trang 8

CHƯƠNG 1: GIỚI THIỆU CHUNG 1.1 Giới thiệu đề tài

Ngày nay, với sự phát triển vượt bậc của công nghệ, tất cả mọi thứ của con người ngày càng trở nên tiện ích hơn và nhanh chóng hơn Nhu cầu khám phá, web không chỉ phát triển ở giới trẻ, mà gần như tất cả mọi người đều có quan tâm đến, dễ tiệm cận hơn với mọi độ tuổi Các trang web khám phá dần trở nên là một chủ đề hot trong gần như các cuộc nói chuyện của mọi người Cùng lúc với đó thì nó cũng sẽ ảnh hưởng đến quá trình tư duy và nghiên cứu của các tập đoàn trên thế giới không chỉ riêng ở bất cứ quốc gia nào đang phát triển hay đang trên đà phát triển

Mọi người có thể tìm kiếm địa điểm du lịch bây giờ dễ dàng với công cụ tìm kiếm Google và các ứng dụng khác, nhưng không chỉ dừng lại ở việc tìm kiếm tham khảo về trang web mà phù hợp với mọi người còn quan tâm đến các vấn đề khác về địa điểm đó qua những hình chia sẻ thực tế, đánh giá từ những người đã đến,kinh nghiệm từ những người đi trước, chất lượng của hình ảnh như thế nào? Đặc biệt, với nhu cầu (trong nước) sau đợt dịch đang ngày càng cao, khi mọi người đã ở nhà quá lâu, mọi người cần nơi tổng hợp những thông tin, những địa điểm mà họ quan tâm, những nhu cầu thiết yếu để mình thuyết phục các nhà đầu tư Nhưng cốt lõi của việc làm web là vẫn phải giữ được giá trị cốt lõi của khách hàng đó là nhanh, đẹp, trình duyệt xử lí cao, tốc độ phản hổi không giới hạn, mở trang miễn phí và các phản hồi khác Tuy nhiên những phát sinh nó vẫn luôn tồn tại trong cuộc sống lẫn trong đời thường

Hiểu được vấn đề đó, nhóm chúng em quyết định xây dựng một ứng quản lý danh sách sinh viên để trở thành cầu nối giữa những con người yêu thích môn web, mong

muốn sẻ chia các địa điểm mới, những thông tin tương quan đến những người có chung sở thích chung chí hướng, hoặc đơn giản muốn góp phần đóng góp cho sự phát triển du lịch địa phương, trong nước Cùng với sự hiện đại của công nghệ thì nó sẽ có sự phân tán doanh nghiệp, cơ sở, thông tin chuyên ngành, sức khỏe chuyên môn, đạo đức nghề nghiệp, mở rộng tầm hiểu biết và sẽ quan tâm hơn tới việc nâng cao nhận thức về định hướng sau này cũng như hiệu suất của quá trình làm việc Song song với đó, những thứ phức tạp thì nó luôn đòi hỏi thời gian trong khi những việc đơn giản nó đỡ tốn công sức và tiền bạc hơn là những việc thông dụng, bởi vì nó đã bào mòn những kiến thức và thông tin chúng ta thu thập được trong suốt quá trình ta học hỏi Nhưng mà chuyện thực hành thì vô cùng khó khăn do số lượng nhận lực chất lượng cao ngày càng khan hiếm mà đi đôi với việc đó thì có hơn một nửa nhân lực thấp bị đào thải do các hiệu ứng xã hội và các vấn đề chính liên quan đến ngành, những giá trị kinh tế, những thành phần ngoại giao và các vấn đề phát sinh khác

Trang 9

1.2 Mô tả đề tài

Ứng dụng quản lí sinh viên là một ứng dụng chia sẻ các dịch vụ phục vụ trong các doanh nghiệp trong nước bao gồm các trường đại học, mang đến một nơi chia sẻ du lịch cho tất cả mọi người thích khám phá, tìm kiếm những địa điểm du lịch

Cùng với đó, ứng dụng còn là nơi mọi người có thể tương tác, chia sẻ với nhau để cùng sẻ chia các kinh nghiệm làm web Ứng dụng sẽ được kiểm soát bởi những admin, kiểm tra bài đăng của các người dùng có hợp lệ hay không, từ đó đưa đến những bài chia sẻ có chất lượng tốt nhất để người sử dụng ứng dụng, hoặc là hoạt động đăng nhập để khảo sát lại sinh viên hay là những việc như thêm, sửa, xóa, chỉnh sửa, chia sẻ, lượt tương tác, bài viết và các bình luận trên các dạng mạng xã hội, nhưng song song với đó có những mâu thuần trong việc vận hành những thao tác không người điều khiển này do sự phát triển chưa đồng nhất của AI, công nghệ hiện nay không có gì là đảm bảo hay chắc chắn nó sẽ hoạt động với công suất tối đa cả Những khoảnh khắc mà nó xảy ra nó sẽ làm cho chúng ta nhớ mãi, cho đến khi nào thành thục được hoặc là nó sẽ đem lại những ảnh hưởng khác so với các doanh nghiệp khác, những thứ mà chúng ta khó có thể so sánh được, thế nhưng các tác hại nó sẽ ảnh hưởng sâu sắc đến tất cả những quá trình chúng ta thực hiện song song đó nó cũng mang lại không ít những hình dung hay những yếu tố riêng tư cũng như các yếu tố cạnh tranh đối với các doanh nghiệp khác, nhưng những việc khác thì sẽ được giải quyết nhanh chóng trong thời gian nó được thực thi Chỉ cần có thời gian và làm ra trong những việc mà trong khả năng thì nó sẽ thực thi những việc mà máy nó làm ra được hoặc là khó có thể thực hiện

Ứng dụng lấy nền tảng người dùng là chính, khi những đóng góp của người dùng cho ứng dụng sẽ làm cho ứng dụng ngày càng phổ biến và phát triển hơn

1.3 Mục tiêu của đề tài

Xây dựng một Ứng dụng quản lý sinh viên trang web cung cấp các tính năng cơ bản cụ thể là thông tin của từng học sinh, Người dùng có thể tìm kiếm và thêm vào danh sách yêu thích những thông qua ứng dụng Thông qua ứng dụng người dùng sẽ có thêm những thông tin từ chính thống đến các thông tin bền lề về địa điểm mình đang quan tâm, cũng như các thông tin khác liên quan đến vấn đề lập trình và các nội dung liên quan song khi đó những thứ cần thiết sẽ được tiếp tục tiến hành vào các dự án sau hoặc doanh nghiệp cá nhân Sau đó những thành phần thiết yếu không được bảo toàn sẽ được thêm vào các đặc thù hình ành cũng như cái trạng thái cao siêu hơn Nhưng vẫn phải có tư tưởng bảo vệ các hình thức mà mình quản lí, bởi vì nó sẽ mất những tài nguyên cần thiết để hoàn thành thiết nhu yếu Trong đó các hệ thống phải được tính toán kĩ lưỡng về độ chính xác cũng như cơ cấu đẹp để có thể tiếp cận đến người dùng, người điều hành, nhà phát hành, trong những có yếu cụ thể song vẫn giữ được nét truyền thống văn hóa Đó là các vẫn nạn hiện tại chưa được đáp ứng

Trang 10

Ngoài ra, ứng dụng còn là nơi người dùng có thể mang những trải nghiệm của mình về một địa điểm mới nào đó, chia sẻ đến mọi người, những trải nghiệm, cảm xúc hay là những vấn đề tiêu cực trong xã hội cực đoan như hiện nay Nó giúp con người kết nối lại với nhau nhưng đồng thời cũng làm gia tăng các vấn nạn xã hội, những ý kiến trái chiều, những phản hồi tiêu cực trong suốt quá trình tìm hiểu, những việc mà chúng ta không đề cập đến Tuy nhiên việc bỏ thời gian ra để hoàn thành là một dấu chấm hỏi mà các nhà tuyển dụng quan tâm, bởi vì chất lượng đầu ra nó đem lại lợi ích cho toàn xã hội, không chỉ tính riêng cho một các nhân hay một doanh nghiệp, ảnh hưởng rất nhỏ đến nền kinh tế quốc dân nó sẽ làm thay đổi kinh tế của toàn nước so với các nước đang phát triển trong cùng khu vực, tùy vào tình hình chung của thực trạng kinh tế, nó sẽ làm chúng ta hồi tưởng đến những khu vực và trong các lĩnh vực thêm giá trị lợi nhuận hoặc các vấn đề tự nhiên Do đó, những thứ cần thiết cho việc này là do quá trình phức tạp của học thức cũng như giá trị của chuyên ngành học sau này quyết định đến nhận thức chung của xã hội

Song song với mục tiêu của ứng dụng, đề tài này còn giúp nhóm có thêm các kiến thức về lập trình, cách thức xử lý, xây dựng và phát triển một ứng dụng di động, nhằm mục đích cho việc học tập, cũng như định hướng phát triển Sự cống hiến cho một doanh nghiệp là sự cống hiến cần thiết cho một nền xã hội và chính trị phát triển, tuy nhiên nó chỉ ảnh hưởng gián tiếp đến một phần nhỏ trong tổng doanh thu toàn nước Chung quy lại là nó sẽ giúp tất cả doanh nghiệp phát triển chung theo một quy chuẩn chung cao hơn so với những gì mà mọi ngành trong chuyên môn này Tóm lại, những thành phố phát triển sẽ bao gồm những doanh nghiệp phát triển và cũng sẽ hỗ trợ tất cả dịch vụ mà các ứng dụng đó cần cái đặt trong những tài nguyên, môi trường, hệ thống, sự hưng thịnh và cả doanh thu nữa

1.4 Phương pháp nghiên cứu

● Nghiên cứu các tài liệu về nghiệp vụ có liên quan trực tiếp đến đề tài ● Tham khảo các ứng dụng quản lý khác hiện hành

● Nghiên cứu, tham khảo và tìm hiểu các tài liệu, video hướng dẫn liên quan đến các công nghệ sử dụng vào quá trình xây dụng phát triển ứng dụng

Trang 11

CHƯƠNG 2: CÔNG NGHỆ TRONG ỨNG DỤNG 2.1 TÌM HIỂU REACTJS

2.1.1 Khái niệm Reactjs

ReactJS là một thư viện JavaScript được phát triển bởi Facebook để xây dựng giao diện người dùng (UI) cho các ứng dụng web Nó được thiết kế để tối ưu hóa việc xây dựng các ứng dụng đơn trang (Single Page Applications - SPAs) thông qua việc quản lý trạng thái của ứng dụng và tái sử dụng các thành phần giao diện

Dưới đây là một số khái niệm quan trọng của ReactJS:

• Components (Thành phần): React ứng dụng được xây dựng từ các thành phần

Mỗi thành phần đại diện cho một phần của giao diện người dùng và có thể chứa mã HTML, CSS, và JavaScript để mô tả giao diện và xử lý sự kiện

• JSX (JavaScript XML): JSX là một phần quan trọng của React, nó cho phép

bạn viết mã HTML trong JavaScript JSX giúp dễ đọc và viết mã, cũng như giúp React hiểu được cấu trúc của ứng dụng

• Props (Thuộc tính): Thuộc tính được sử dụng để truyền dữ liệu từ một thành

phần cha đến một thành phần con Điều này giúp tái sử dụng thành phần và làm cho ứng dụng linh hoạt hơn

• State (Trạng thái): State đại diện cho dữ liệu và trạng thái của một thành phần

Khi state thay đổi, React tự động cập nhật giao diện người dùng để phản ánh sự thay đổi đó

• Virtual DOM (DOM Ảo): React sử dụng một DOM ảo để theo dõi sự thay đổi

trong trạng thái và hiệu suất Thay vì cập nhật DOM trực tiếp, React tương tác với DOM ảo và sau đó cập nhật DOM thực tế một cách hiệu quả

• Lifecycle methods (Phương thức vòng đời): React cung cấp một số phương

thức vòng đời cho các thành phần, như componentDidMount, componentDidUpdate, và componentWillUnmount, giúp bạn thực hiện các hành động trong quá trình mount, update, và unmount của thành phần

• React Router: Thư viện giúp quản lý định tuyến trong ứng dụng React, cho

phép bạn chuyển đổi giữa các trang mà không cần tải lại toàn bộ trang web ReactJS giúp tạo ra các ứng dụng web hiệu quả, dễ duy trì và mở rộng, đặc biệt là khi xử lý các ứng dụng đơn trang và có nhu cầu cập nhật trạng thái linh hoạt

Trang 12

Ưu và nhược điểm của Reactjs: Ưu điểm:

• Hiệu suất cao với Virtual DOM: React sử dụng Virtual DOM để tối ưu

hóa quá trình cập nhật giao diện, giúp cải thiện hiệu suất ứng dụng

• Tái sử dụng thành phần: Có khả năng tái sử dụng các thành phần giúp

giảm độ phức tạp của mã nguồn và tăng khả năng duy trì

• Hỗ trợ cộng đồng lớn: React có một cộng đồng lớn và tích cực, điều này

giúp người phát triển dễ dàng tìm kiếm giải pháp cho vấn đề cụ thể và có nhiều tài nguyên học tập

• Thư viện mạnh mẽ: React không phải là một framework hoàn chỉnh mà

chỉ là một thư viện, điều này mang lại sự linh hoạt cho nhà phát triển để lựa chọn các thư viện và công nghệ khác

• JSX: JSX giúp tạo mã nguồn dễ đọc và viết, đồng thời giúp kiểm soát dễ

dàng hơn về cú pháp

• Cập nhật linh hoạt: Quản lý trạng thái và cập nhật giao diện người dùng

một cách hiệu quả, giúp ứng dụng React dễ dàng mở rộng và duy trì Nhược điểm:

• Học khái niệm mới: Việc làm quen với các khái niệm như JSX, Virtual

DOM, và các phương thức vòng đời có thể đòi hỏi một thời gian đối với người mới học React

• Phức tạp cho các ứng dụng lớn: Với các ứng dụng lớn, quản lý trạng thái

và luồng dữ liệu có thể trở nên phức tạp hơn và đòi hỏi việc sử dụng thư viện bổ sung hoặc quy trình quản lý trạng thái (state management) như Redux

• SEO: Mặc dù React có khả năng tạo ứng dụng đơn trang, nhưng điều này có

thể gây khó khăn trong việc tối ưu hóa cho công cụ tìm kiếm (SEO) Tuy nhiên, có các giải pháp như Server-Side Rendering (SSR) để giải quyết vấn đề này

• Có nhiều lựa chọn: Sự đa dạng của các lựa chọn và thư viện bên ngoài có

thể khiến người mới vào React cảm thấy bối rối khi cố gắng xây dựng ứng dụng

• Cần kết hợp với các thư viện khác: Đối với một ứng dụng hoàn chỉnh, bạn

có thể cần sử dụng các thư viện bổ sung như React Router, Redux, hoặc Axios, điều này có thể làm tăng độ phức tạp của dự án

Trang 13

2.1.2 Khái niệm JavaScript

JavaScript là một ngôn ngữ lập trình phổ biến được sử dụng chủ yếu để thêm tính năng tương tác động và động vào các trang web Dưới đây là một số khái niệm cơ bản về JavaScript:

1 Ngôn ngữ lập trình hướng sự kiện (Event-Driven Programming): JavaScript

thường được sử dụng để xử lý các sự kiện tương tác từ người dùng như nhấn nút, di chuột, và gửi biểu mẫu Điều này giúp tạo ra trải nghiệm người dùng động trên các trang web

2 Ngôn ngữ kịch bản (Scripting Language): JavaScript thường được sử dụng như

một ngôn ngữ kịch bản để điều khiển và tương tác với các thành phần HTML trong trình duyệt web

3 Chạy ở phía máy khách (Client-Side): JavaScript chủ yếu chạy trực tiếp trên trình

duyệt của người dùng, giúp thực hiện các tác vụ mà không cần gửi yêu cầu đến máy chủ

4 Biên dịch tại thời điểm chạy (Just-In-Time Compilation - JIT): JavaScript là một

ngôn ngữ thông dịch và thường được biên dịch tại thời điểm chạy bởi trình duyệt, giúp tối ưu hóa hiệu suất

5 Đối tượng (Object): JavaScript là một ngôn ngữ lập trình hướng đối tượng Hầu hết

mọi thứ trong JavaScript là một đối tượng hoặc có thể thao tác như một đối tượng

6 Biến (Variable): Biến được sử dụng để lưu trữ dữ liệu Trong JavaScript, bạn có

thể khai báo biến bằng từ khóa var, let, hoặc const

7 Hàm (Function): Hàm là một khối mã có thể được gọi để thực hiện một nhiệm vụ

cụ thể JavaScript hỗ trợ định nghĩa hàm bằng từ khóa function

8 Biểu thức điều kiện (Conditional Statements): Sử dụng if, else if, và else để kiểm

tra điều kiện và thực hiện các hành động tương ứng

JavaScript đóng vai trò quan trọng trong phát triển web và đã mở ra nhiều thư viện và framework như React, Angular và Vue.js để xây dựng ứng dụng web mạnh mẽ và linh hoạt

2.1.3 Tại sao chọn Reactjs

• Thành phần và Tái sử dụng: ReactJS sử dụng mô hình thành phần, giúp chia

giao diện người dùng thành các thành phần độc lập và có thể tái sử dụng Điều này giúp trong quản lý mã nguồn, gia tăng khả năng duy trì và giảm độ phức tạp của ứng dụng

• Virtual DOM và Hiệu suất: React sử dụng Virtual DOM để tối ưu hóa quá trình

cập nhật giao diện người dùng Thay vì cập nhật toàn bộ DOM, React chỉ cập nhật các phần thay đổi Điều này giúp cải thiện hiệu suất của ứng dụng

• Cộng đồng lớn và Hỗ trợ mạnh mẽ: React có một cộng đồng lớn và tích cực,

điều này có nghĩa là có nhiều tài nguyên, tư duy và các thư viện bổ sung sẵn có

Trang 14

Cộng đồng đóng vai trò quan trọng trong việc giải quyết vấn đề, cung cấp các gói mở rộng, và chia sẻ kiến thức

• JSX - Cú pháp dễ đọc và viết: JSX là một phần của React, cho phép viết mã

HTML bên trong JavaScript Cú pháp này giúp làm cho mã nguồn trở nên dễ đọc và viết, đồng thời giúp kiểm soát tốt hơn về cú pháp

• Hệ sinh thái của React: React không chỉ là một thư viện đơn lẻ, mà còn là một

phần của hệ sinh thái phong phú với nhiều công cụ hỗ trợ như React Router, Redux, Next.js, và nhiều thư viện khác để giải quyết các vấn đề khác nhau trong quá trình phát triển

• Phù hợp với ứng dụng đơn trang (SPA): React rất phù hợp với việc xây dựng

ứng dụng đơn trang, nơi mà việc tải lại trang web không cần thiết, và chỉ cần cập nhật các phần cần thiết của trang

• Hỗ trợ từ Facebook: React được Facebook phát triển và duy trì, điều này đồng

nghĩa với việc nó nhận được sự chú ý và phát triển liên tục từ một tổ chức lớn Tuy nhiên, lựa chọn giữa các công nghệ phụ thuộc vào nhiều yếu tố như yêu cầu cụ thể của dự án, kinh nghiệm của đội ngũ phát triển, và các yếu tố khác của dự án

2.2 TÌM HIỂU MYSQL

2.2.1 Khái niệm MySQL

MySQL là một hệ quản trị cơ sở dữ liệu (Database Management System - DBMS) phổ biến, mã nguồn mở và miễn phí Nó được sử dụng để quản lý và tổ chức dữ liệu trong các ứng dụng web và các hệ thống thông tin khác Dưới đây là một số khái niệm quan trọng liên quan đến MySQL:

• Cơ sở dữ liệu (Database): Là nơi lưu trữ dữ liệu theo cách có tổ chức và có

thể truy cập được Mỗi cơ sở dữ liệu có thể chứa nhiều bảng dữ liệu

• Bảng (Table): Là một tập hợp các dữ liệu được tổ chức theo cột và hàng

Mỗi bảng trong MySQL sẽ có một tên duy nhất và các cột có thể đại diện cho các thuộc tính khác nhau của dữ liệu

• Cột (Column): Là một trường trong bảng, đại diện cho một thuộc tính cụ

thể của dữ liệu Mỗi cột có một kiểu dữ liệu nhất định như INTEGER, VARCHAR, DATE,

• Dòng (Row): Là một bản ghi cụ thể trong bảng, chứa dữ liệu cho tất cả các

cột tương ứng với nó

• Khóa chính (Primary Key): Một cột hoặc một tập hợp các cột trong bảng

được sử dụng để định danh mỗi dòng một cách duy nhất Điều này giúp đảm bảo tính duy nhất của mỗi dòng trong bảng

Trang 15

• SQL (Structured Query Language): Là ngôn ngữ truy vấn cơ sở dữ liệu

được sử dụng để thực hiện các thao tác như truy vấn dữ liệu, cập nhật dữ liệu, chèn dữ liệu, và xóa dữ liệu

• Truy vấn (Query): Là một câu lệnh SQL được sử dụng để tương tác với cơ

sở dữ liệu, như lấy dữ liệu từ cơ sở dữ liệu hoặc thay đổi nó

• Quyền (Privilege): Là quyền hạn được cấp cho người dùng để thực hiện

các thao tác nhất định trên cơ sở dữ liệu, ví dụ như SELECT, INSERT, UPDATE, DELETE

Với việc sử dụng Firebase, developer có thể tập trung vào việc phát

triển application mà không cần lo về việc sản phẩm của mình sẽ hoạt động và được quản lý thể nào ở phía Backend

2.2.2 Ưu nhược điểm của MySQL Ưu điểm:

• Miễn phí và mã nguồn mở: MySQL là một hệ quản trị cơ sở dữ liệu mã

nguồn mở và miễn phí, giúp giảm chi phí triển khai và sử dụng

• Độ ổn định và độ tin cậy cao: MySQL đã được thử nghiệm và sử dụng

rộng rãi trên nhiều dự án lớn, đảm bảo độ ổn định và tin cậy cao

• Hiệu suất cao: MySQL cung cấp hiệu suất tốt, đặc biệt là đối với các ứng

dụng có lượng truy cập lớn

• Hỗ trợ khóa ngoại: MySQL hỗ trợ khóa ngoại, giúp duy trì tính toàn vẹn

của dữ liệu giữa các bảng

• Cộng đồng lớn và hỗ trợ mạnh mẽ: Có một cộng đồng lớn của các nhà

phát triển và người dùng MySQL, cung cấp nguồn lực hữu ích, tài liệu và sự hỗ trợ

• Hỗ trợ nhiều ngôn ngữ lập trình: MySQL tương thích với nhiều ngôn ngữ

lập trình, bao gồm PHP, Python, Java, và nhiều ngôn ngữ khác

• Dễ sử dụng và quản lý: MySQL có giao diện dễ sử dụng và các công cụ

quản lý cơ bản, giúp người quản trị dễ dàng thực hiện các tác vụ quản lý

Nhược điểm:

● Nhược điểm về extensibility: MySQL có thể gặp khó khăn khi cần mở rộng các

tính năng không nằm trong phạm vi cơ bản của nó Điều này có thể đòi hỏi sử dụng các công nghệ hoặc plugin bổ sung

● Khả năng mở rộng có hạn: Trong môi trường có lượng truy cập rất lớn, việc mở

rộng MySQL có thể trở thành thách thức, và mô hình mở rộng của nó không linh hoạt như một số hệ thống cơ sở dữ liệu khác

Trang 16

● Chưa hỗ trợ đầy đủ JSON: Mặc dù MySQL 5.7 và phiên bản mới hơn hỗ trợ một

số tính năng JSON, nhưng vẫn có một số hạn chế so với các hệ quản trị cơ sở dữ liệu khác

● Bản quyền và chủ quyền: Dù MySQL là một hệ quản trị cơ sở dữ liệu miễn phí,

nhưng có các phiên bản cao cấp và tính năng chưa đầy đủ trong bản miễn phí, điều này có thể tạo ra chi phí cho các doanh nghiệp muốn sử dụng các tính năng cao cấp

● Thời gian phát triển chậm: Một số tính năng mới có thể mất thời gian để được

thêm vào MySQL so với một số hệ quản trị cơ sở dữ liệu khác

2.3 TÌM HIỂU JAVA

2.3.1 Khái niệm Java

Java là một ngôn ngữ lập trình mạnh mẽ và đa nền tảng, được sử dụng rộng rãi trong nhiều lĩnh vực khác nha

2 Hướng Đối Tượng (Object-Oriented Programming - OOP):

• Java là ngôn ngữ hướng đối tượng, sử dụng các khái niệm như class, object, inheritance, encapsulation, và polymorphism

3 Máy Ảo Java (JVM - Java Virtual Machine):

• JVM là một môi trường thực thi độc lập với nền tảng, giúp chuyển đổi bytecode thành mã máy tương ứng và quản lý bộ nhớ

4 Biên Dịch và Thực Thi:

• Mã nguồn Java được biên dịch thành bytecode bởi trình biên dịch Java (javac) • Bytecode được thực thi trên JVM, giúp đảm bảo tính chất đa nền tảng của Java 5 Thư Viện và API (Application Programming Interface):

• Java có một thư viện mạnh mẽ và API, cung cấp nhiều công cụ và chức năng sẵn có giúp lập trình viên phát triển ứng dụng một cách nhanh chóng

6 Bảo Mật:

• Java có các tính năng bảo mật như quản lý bộ nhớ tự động, kiểm soát truy cập và cơ chế bảo mật để ngăn chặn các vấn đề như tràn bộ đệm và mã độc hại 7 Cộng Đồng Lập Trình Viên:

• Cộng đồng Java rộng lớn và tích cực, với nhiều diễn đàn, tài liệu, và nguồn tư vấn trực tuyến

8 Phát Triển Ứng Dụng Web:

• Java được sử dụng rộng rãi trong phát triển ứng dụng web thông qua các framework như Spring, Hibernate, và JavaServer Faces (JSF)

9 Phát Triển Ứng Dụng Mobile:

Trang 17

• Java được sử dụng trong phát triển ứng dụng di động trên nền tảng Android 10 Phát Triển Ứng Dụng Desktop:

• Java cung cấp các công cụ và thư viện để phát triển ứng dụng desktop sử dụng giao diện người dùng đồ họa (GUI)

11 Công Nghệ Mới:

• Java liên tục cập nhật và phát triển với các phiên bản mới, tích hợp các tính năng và cải thiện hiệu suất

2.3.2 Khái niệm Java spring boot

Spring Boot là một dự án con của Spring Framework, được thiết kế để giúp lập trình viên xây dựng ứng dụng Java một cách nhanh chóng và dễ dàng Dưới đây là một số điểm quan trọng khi tìm hiểu về Spring Boot:

• Spring Boot Starter là các dependency được đóng gói sẵn giúp bạn bắt đầu với các loại ứng dụng cụ thể như web, data, security một cách nhanh chóng 7 Spring Boot CLI:

• Command Line Interface cho Spring Boot giúp tạo và quản lý dự án một cách dễ dàng từ dòng lệnh

8 Spring Boot Actuator:

• Cung cấp các endpoint để giám sát và quản lý ứng dụng, ví dụ như /health, /metrics, /info

9 Spring Boot DevTools:

Trang 18

• Hỗ trợ trong quá trình phát triển bằng cách cung cấp tái khởi động tự động, tải lại trình duyệt, và các tính năng khác

10 Spring Boot và Microservices:

• Spring Boot thường được sử dụng trong kiến trúc microservices, giúp phát triển và triển khai các dịch vụ nhỏ và độc lập

11 Cộng Đồng Rộng Lớn:

• Spring Boot có một cộng đồng lớn với nhiều tài liệu, diễn đàn, và nguồn tư vấn trực tuyến

Trang 19

CHƯƠNG 3: PHÂN TÍCH - THIẾT KẾ CƠ SỞ DỮ LIỆU 3.1 SƠ ĐỒ LỚP

Trang 20

3.3 MÔ TẢ CHI TIẾT CÁC LỚP

3.3.1 User Permission

STT Tên thuộc tính Kiểu dữ liệu Ràng

buộc Ý nghĩa

1 Permission ID String Có Id phân quyền

2 Role String Có Phân quyền cho người đăng nhập 3 Syllabus String Không Phân loại user truy cập

quản trị

9 StartDate Datetime Có Thời gian bắt đầu học của class

Trang 21

10 EndDate Datetime Có Thời gian kết thúc học của Class

11 Created by String Có

Người tạo ra class (Supper_Admin hoặc

Admin) 12 Created date Datetime Có Ngày tạo ra class 13 Modified by String Có

Được update bởi ai (Supper_Admin hoặc

Admin) 14 Modified date Datetime Có Thời gian update

Được tạo bởi ai (Supper_Admin hoặc

Admin) 9 Created date Date Có Ngày tạo ra user 10 Modified by String Có

Được update bởi ai (Supper_Admin hoặc

Admin) 11 Modified date Datetime Có Thời gian update

Trang 22

4 Duration String Có

Thời gian học của các syllabus trong traning

program 5 Topic Code String Có Id của syllabus 6 Status String Có Trạng thái của traning

syllabus

6 Topcic outline String Không Id của kế hoạch syllabus 7 Training materials File Có Tài liệu dạy học 8 Public status String Có Trạng thái Outline

Trang 23

9 Created by String Có

Được tạo bởi ai (Supper_Admin hoặc

Admin) 10 Created date Date Có Ngày tạo ra traning

3.3.7 Traning program syllabuss

STT Tên thuộc tính Kiểu dữ liệu Ràng

Trang 24

CHƯƠNG 4: MÔ HÌNH USE-CASE 4.1 SƠ ĐỒ USE-CASE

Trang 25

4.2 DANH SÁCH CÁC ĐỐI TƯỢNG

STT Tên của đối tượng Mô tả ngắn về đối tượng

1 INSTRUCTOR Là trainer phụ trách các lớp học trong hệ thống quản lý

View list of existed user / User listing screen

Cho phép Admin xem danh sách người dùng hiện tại/Màn hình danh sách người dùng 2 Create user Cho phép Admin tạo mới người dùng 3 Update user Cho phép Admin cập nhật chi tiết người dùng

(thông tin người dùng) 4 Grant permission to user

View list of existed syllabus / Syllabus listing

screen

Cho phép Admin/Instructor xem danh sách màn hình danh sách giáo trình / giáo trình hiện có 8 Create syllabus general

Cho phép Admin/Instructor đọc toàn bộ thông tin chi tiết của giáo trình

12 Update/edit syllabus information

Cho phép Admin/Instructor cập nhật thông tin giáo trình hiện có

13 Import syllabus/ syllabus importing screen

Cho phép Admin tạo giáo trình mới thông qua nhập tệp CSV/excel

14 Duplicate syllabus Cho phép Instructor tạo phiên bản giáo trình mới bằng cách sao chép phiên bản hiện có

Trang 26

15

Training Program

View Training Program list Cho phép Admin xem danh sách Chương trình đào tạo

16 Create a Training Program Cho phép Admin tạo chương trình đào tạo mới 17 View detail Training

Program

Cho phép Admin/ BU lead/ Trainer/ Trainee xem chi tiết danh sách Chương trình đào tạo 18 Update Training Program Cho phép Admin cập nhật Chương trình đào tạo 19 Active/deactive training

View list of class Cho phép Admin xem danh sách lớp 21

Create class Cho phép Admin tạo lớp mới như training program, list of candidates, trainer, list of

Trang 27

4.4 ĐẶC TẢ CÁC USE-CASE

4.4.1 Đặc tả Use-case “View list of existed user / User listing screen” Tên use-case View list of existed user / User listing screen

Đối tượng chính Admin

Mô tả Admin xem danh sách người dùng hiện tại/Màn hình danh sách

AC1: Danh sách các trường sẽ được hiển thị là:

- Từ giáo trình: name, code, created_date, created_by, output_standards

- Từ Training_content: tổng(thời lượng) là thời lượng

AC2: Chế độ xem danh sách bảng với bộ lọc mặc định:

- Trạng thái giáo trình trong ("Active ", " Draft ") - Danh sách giáo trình được sắp xếp theo ngày tạo

- Danh sách giáo trình được giới hạn 10 mục trên mỗi trang (có thể điều chỉnh)

AC3: Trạng thái giáo trình bao gồm

- "Draft" nếu nó đang được lưu dưới dạng bản nháp - "Active" nếu nó được xuất bản

- "Inactive" nếu nó bị hủy kích hoạt

AC4: Tại màn hình danh sách giáo trình, Người dùng có thể sắp

xếp danh sách giáo trình bằng cách nhấn vào biểu tượng sắp xếp bên cạnh tên cột trường

4.4.2 Đặc tả Use-case “Create user” Tên use-case Create user

Đối tượng chính Admin

Mô tả Admin tạo mới người dùng

Điều kiện tiên

quyết 1 Người dùng phải đăng nhập được vào ứng dụng Điều kiện sau Ứng dụng sẵn sàn cho hoạt động tiếp theo

Luồng cơ bản AC1: Người dùng có thể điền vào tất cả các trường để tạo (Loại

người dùng, Tên, email, điện thoại, địa chỉ, Ngày sinh, Cấp độ)

Trang 28

AC2: Thông báo '<Tên trường> là bắt buộc' (màu: đỏ) sẽ được hiển thị nếu có bất kỳ trường trống nào

AC3: Tên người dùng và mật khẩu sẽ được gửi tới tài khoản người dùng qua email sau khi tạo thành công

+ Method: Gửi email realtime sau khi tạo tài khoản thành công + Title: “[FAMS] - Tài khoản được tạo thành công”

Đối tượng chính Admin

Mô tả Admin cập nhật chi tiết người dùng (thông tin người dùng)

Điều kiện tiên quyết

1 Người dùng phải đăng nhập được vào ứng dụng 2 Phải đảm bảo kết nối được Internet

Điều kiện sau Ứng dụng sẵn sàn cho hoạt động tiếp theo

Luồng cơ bản

AC1 Người dùng có thể cập nhật thông tin như user type, name, phone, DOB, Gender, Status Tất cả các trường là bắt buộc (không thể thay đổi email)

AC2 Khi người dùng nhấp vào lưu, vai trò sẽ được cập nhật với quyền mới và thông báo 'Tài khoản được cập nhật thành công' sẽ hiển thị

4.4.4 Đặc tả Use-case “Allow super admin to add permission to user account” Tên use-case Allow super admin to add permission to user account

Đối tượng chính Super_Admin

Mô tả Super_Admin thêm quyền vào tài khoản người dùng

Trang 29

Điều kiện tiên quyết

1 Người dùng phải đăng nhập được vào ứng dụng 2 Phải đảm bảo kết nối với Internet

Điều kiện sau Ứng dụng sẵn sàn cho hoạt động tiếp theo

Luồng cơ bản

User có thể chọn một tài khoản và một bản đồ vai trò cùng nhau Sau khi 'Lưu', tài khoản sẽ có quyền cụ thể theo vai trò của họ trong hệ thống

4.4.5 Đặc tả Use-case “View Permission” Tên use-case View Permission

Đối tượng chính Admin

Mô tả Admin có thể xem quyền người dùng

Điều kiện tiên quyết

1 Người dùng phải đăng nhập được vào ứng dụng 2 Phải đảm bảo kết nối với Internet

Điều kiện sau Ứng dụng sẵn sàn cho hoạt động tiếp theo

Đối tượng chính Admin

Mô tả Admin cập nhật quyền người dùng

Điều kiện tiên quyết

1 Người dùng phải đăng nhập được vào ứng dụng 2 Phải đảm bảo kết nối với Internet

Điều kiện sau Ứng dụng sẵn sàn cho hoạt động tiếp theo

Luồng cơ bản

AC1 Người dùng có quyền chỉnh sửa quyền trong vai trò khi người dùng truy cập tab quyền, sau đó người dùng có thể thấy tất cả các nhóm quyền tồn tại trong hệ thống, sau đó vai trò sẽ được cập nhật với quyền mới

AC2 Thông báo “Role are updated successfully” sẽ hiển thị khi

Người dùng cập nhật quyền thành công

Trang 30

4.4.7 Đặc tả Use-case “View list of existed syllabus / Syllabus listing screen” Tên use-case View list of existed syllabus / Syllabus listing screen

Đối tượng chính Admin/Instructor

Mô tả Admin/Instructor xem danh sách màn hình danh sách giáo trình /

- danh sách giáo trình được sắp xếp theo ngày tạo

- danh sách giáo trình được giới hạn 10 mục trên mỗi trang (có thể điều chỉnh)

AC3: Trạng thái giáo trình bao gồm

- "Draft" nếu nó đang được lưu dưới dạng bản nháp - "Active" nếu nó được xuất bản

- "Inactive" nếu nó bị hủy kích hoạt

AC4: Tại màn hình danh sách giáo trình, Người dùng có thể sắp xếp danh sách giáo trình bằng cách nhấn vào biểu tượng sắp xếp bên cạnh tên cột trường

4.4.8 Đặc tả Use-case “Create Syllabus (General Tab)” Tên use-case Create Syllabus (General Tab)”

Đối tượng chính Admin/Instructor

Mô tả Admin/Instructor điền thông tin chung vào giáo trình

Điều kiện tiên quyết

1 Người dùng phải đăng nhập được vào ứng dụng 2 Phải đảm bảo kết nối với Internet

Điều kiện sau Ứng dụng sẵn sàn cho hoạt động tiếp theo

Luồng cơ bản

AC1_Tại tab Chung

Người dùng GIVEN có quyền Tạo giáo trình AND người dùng đang ở trang giáo trình tạo

Trang 31

THEN người dùng sẽ có thể nhập tên giáo trình AND người dùng có thể chọn cấp độ

AND người dùng có thể nhập số người tham dự

AND người dùng có thể nhập các yêu cầu kỹ thuật dưới dạng văn bản miễn phí

AND người dùng có thể nhập mục tiêu khóa học dưới dạng vùng văn bản miễn phí

THEN người dùng có thể lưu giáo trình để chuyển sang tab tiếp theo

OR người dùng có thể lưu tác phẩm dưới dạng bản nháp AC2 Người dùng sẽ có thể xem thanh tiến trình dưới dạng tab hiện tại

AC3 Sau khi người dùng thêm mục tiêu thành công, mã Giáo trình sẽ được tạo tự động theo định dạng sau: <loại mục tiêu

A/S/K/H><sequence> Ví dụ A01, S01, K05

4.4.9 Đặc tả Use-case “Create Syllabus (Outline Screen)” Tên use-case Create Syllabus (Outline Screen)

Đối tượng chính Admin/Instructor

Mô tả Admin/Instructor điền thông tin đề cương giáo trình

Điều kiện tiên

quyết 1 Người dùng phải đăng nhập vào ứng dụng Điều kiện sau Ứng dụng sẵn sàn cho hoạt động tiếp theo

Luồng cơ bản

Màn hình này hiển thị phần thứ hai của thông tin giáo trình: đề cương, ngoài những thông tin cơ bản, nó tập trung vào việc tạo các mục lịch học như days, units, and contents

AC1: Hiển thị thanh tiến trình hiển thị bước hiện tại mà người dùng đang điền thông tin “outline” và các bước tiếp theo là gì, general phải có màu xanh để thông báo cho người dùng rằng bước này được đánh dấu là xong

AC2: Tại màn hình này, User có thể add/remove ngày mới (training_unit.day_number)

AC3: Trong mỗi day, người dùng có thể add/edit/remove đơn vị mới theo tên Training_unit.unit, unit_id sẽ được tạo tự động

Trang 32

AC4: Trong mỗi unit, người dùng có thể add/edit/remove new content/training material bằng cách tải tệp lên/đính kèm liên kết đến nội dung đó

AC5: Các trường bắt buộc để tạo nội dung mới bao gồm name, objective (chọn từ danh sách thả xuống các mã mục tiêu có sẵn cho giáo trình này trong Syl2.1 AC4), thời lượng (0 phút - 480 phút), hình thức đào tạo (online/offline) và phân phối kiểu

AC6: Hiển thị biểu đồ time allocation Time allocation được tự động tính toán lại mỗi khi nội dung đào tạo được

added/removed/edited

4.4.10 Đặc tả Use-case “Create Syllabus (Other Screen)” Tên use-case Create Syllabus (Other Screen)

Đối tượng chính Admin/Instructor

Mô tả Admin/Instructor điền thông tin đề cương giáo trình

Điều kiện tiên

quyết 1 Người dùng phải đăng nhập vào ứng dụng Điều kiện sau Ứng dụng sẵn sàn cho hoạt động tiếp theo

AC2: Người dùng có thể nhập sơ đồ đánh giá các môn gồm quiz, assignment, final theory test, and final practice test Tổng số là 100% khi tất cả các chương trình đánh giá được hoàn thành AC3: Người dùng có thể nhập tiêu chí đạt

AC4: Người dùng có thể nhập nguyên tắc phân phối đào tạo bằng công cụ soạn thảo

1.4.11 Đặc tả Use-case “Read all detail information of the syllabus” Tên use-case Read all detail information of the syllabus

Đối tượng chính Admin/Instructor

Mô tả Admin/Instructor đọc toàn bộ thông tin chi tiết của giáo trình

Trang 33

Điều kiện tiên

quyết 1 Người dùng phải đăng nhập vào ứng dụng Điều kiện sau Ứng dụng sẵn sàn cho hoạt động tiếp theo

Luồng cơ bản

AC1: Tại màn hình Syllabus, Người dùng có thể đọc thông tin giáo trình bằng cách nhấp vào ode or name trên danh sách giáo trình để chuyển đến màn hình thông tin chi tiết giáo trình

AC2: Với giáo trình soạn thảo, màn hình thông tin chi tiết giáo trình giống như màn hình soạn thảo

AC3: Với giáo trình đã được xuất bản, người dùng có thể đọc toàn bộ thông tin giáo trình nhưng không thể chỉnh sửa, nếu người dùng muốn chỉnh sửa, sao chép, hủy kích hoạt giáo trình thì phải nhấn vào nút quản lý giáo trình

AC4: Tại màn hình thông tin chi tiết giáo trình, mặc định phiên bản hiển thị của giáo trình là phiên bản mới nhất Người dùng có thể chọn một phiên bản trong danh sách phiên bản để xem các phiên bản khác của giáo trình

1.4.12 Đặc tả Use-case “Update/edit syllabus information” Tên use-case Update/edit syllabus information

Đối tượng chính Admin/Instructor

Mô tả Admin/Instructor cập nhật thông tin giáo trình hiện có

Điều kiện tiên

quyết 1 Người dùng phải đăng nhập vào ứng dụng Điều kiện sau Ứng dụng sẵn sàn cho hoạt động tiếp theo

Luồng cơ bản

AC1: Tại màn hình thông tin chi tiết giáo trình, Người dùng có thể chỉnh sửa thông tin giáo trình giống như cách tạo thông tin bằng cách nhấp vào nút "Edit " nằm bên trong nút quản lý giáo trình AC2: Các trường được tạo tự động bao gồm topic

code,time_allocation không thể cập nhật (phiên bản có thể)

1.4.13 Đặc tả Use-case “Import syllabus/ syllabus importing screen” Tên use-case Import syllabus/ syllabus importing screen

Đối tượng chính Admin

Mô tả Admin tạo giáo trình mới thông qua nhập tệp CSV/excel

Điều kiện tiên

quyết 1 Phải đảm bảo kết nối Internet

Trang 34

Điều kiện sau Ứng dụng sẵn sàn cho hoạt động tiếp theo

Luồng cơ bản

AC1: Tại màn hình danh sách giáo trình, Người dùng có thể tải lên tệp Excel/CSV để tạo giáo trình theo 3 tùy chọn kiểm soát trùng lặp bao gồm allow, replace, and skip bằng cách nhấp vào nút nhập AC2: Tệp được nhập phải đáp ứng tất cả các điều kiện xác thực như khi tạo giáo trình mới nếu không sẽ thông báo lỗi cho người dùng

AC3: Tại màn hình nhập giáo trình, Người dùng có thể tải xuống mẫu của tệp nhập

1.4.14 Đặc tả Use-case “Duplicate Syllabus” Tên use-case Duplicate Syllabus

Đối tượng chính Instructor

Mô tả Instructor tạo phiên bản giáo trình mới bằng cách sao chép phiên

bản hiện có

Điều kiện tiên

quyết Phải đảm bảo kết nối Internet

Điều kiện sau Ứng dụng sẵn sàn cho hoạt động tiếp theo

Luồng cơ bản

AC1: Tại màn hình thông tin chi tiết giáo trình, khi người dùng nhấp vào nút quản lý giáo trình, Người dùng có thể sao chép giáo trình từ phiên bản đang xem Sau khi sao chép, hãy chuyển đến màn hình Danh sách giáo trình với một giáo trình mới được thêm vào (được sắp xếp theo ngày tạo trong DESC và giáo trình tương ứng ở chế độ “Drafting”

AC2: Người dùng có thể xem lại thông tin giáo trình trước khi gửi bản sao

AC3: Bản sao được coi là bản soạn thảo của giáo trình

1.4.15 Đặc tả Use-case “View list of existed training program / Training program listing screen”

Tên use-case View list of existed training program / Training program listing

screen

Đối tượng chính Admin/Trainer

Mô tả Admin/Trainer xem danh sách Chương trình đào tạo

Điều kiện tiên quyết

1 Phải đảm bảo kết nối Internet 2 Đăng nhập thành công

Điều kiện sau Ứng dụng sẵn sàn cho hoạt động tiếp theo

Trang 35

Luồng cơ bản

AC1: Danh sách các trường sẽ được hiển thị là:

- Từ chương trình đào tạo: Name, created_date, created_by, duration, status

AC2: Chế độ xem danh sách bảng với bộ lọc mặc định:

- Trạng thái chương trình đào tạo trong ("Active ", "Drafting ") - Danh sách chương trình đào tạo được sắp xếp theo ngày create_date desc

- Danh sách chương trình đào tạo bị giới hạn 10 mục trên mỗi trang (có thể điều chỉnh)

AC3: Trạng thái chương trình đào tạo bao gồm

- "Drafting" nếu nó đang được lưu dưới dạng bản nháp (chỉ dành cho quản trị viên xem)

- "Active " nếu nó được xuất bản (dành cho chế độ xem của quản trị viên / huấn luyện viên / học viên)

- "Inactive " nếu nó không hoạt động (chỉ dành cho chế độ xem của quản trị viên)

AC4: Tại màn hình danh sách chương trình đào tạo, Người dùng có thể sắp xếp danh sách chương trình đào tạo bằng cách nhấn vào biểu tượng sắp xếp bên cạnh tên cột trường

2.4.16 Đặc tả Use-case “Create training program” Tên use-case Create training program

Đối tượng chính Admin

Mô tả Admin tạo chương trình đào tạo mới

Điều kiện tiên quyết

3 Phải đảm bảo kết nối Internet 4 Đăng nhập thành công

Điều kiện sau Ứng dụng sẵn sàn cho hoạt động tiếp theo

Luồng cơ bản

AC1: Các trường bắt buộc: program name, General information, estimated duration, list of syllabuses

AC2: Thông tin chung: free inputs

AC3: Người dùng có thể tìm kiếm và chọn ít nhất một giáo trình hiện có để thêm vào chương trình Sau khi thêm vào, hiển thị đề cương giáo trình các chương trình chi tiết của chương trình đào tạo Tự động nhận lớp được chỉ định cho chương trình đào tạo này AC4: Người dùng có thể chọn và xóa giáo trình đã thêm khỏi chương trình Sau khi xóa, giáo trình sẽ biến mất khỏi chi tiết chương trình đào tạo

Trang 36

AC5: Người dùng có thể lưu chương trình đào tạo dưới dạng bản nháp ngay cả khi chưa điền đầy đủ thông tin bắt buộc Chương trình đào tạo soạn thảo sẽ có trạng thái = "Drafting "

AC6: Sau khi tạo thành công, trạng thái không hoạt động

1.4.17 Đặc tả Use-case “View detail training program list” Tên use-case View detail training program list

Đối tượng chính Admin

Mô tả Admin/ BU lead/ Trainer/ Trainee xem chi tiết danh sách Chương

AC2: Với chương trình đào tạo soạn thảo thì chỉ có admin mới xem được

AC3: Các trường hiển thịprogram name, General information, estimated duration, list of syllabuses, status, list of classes of training program (đối với danh sách các lớp, chỉ xem trạng thái "Active " cho học viên và giảng viên xem, tất cả trạng thái cho quản trị viên)

1.4.18 Đặc tả Use-case “Update training program information” Tên use-case Update training program information

Đối tượng chính Admin

Mô tả Admin cập nhật Chương trình đào tạo

Điều kiện tiên quyết

1 Phải đảm bảo kết nối Internet 2 Đăng nhập thành công

Điều kiện sau Ứng dụng sẵn sàn cho hoạt động tiếp theo

Trang 37

AC3: Mỗi lần người dùng add/removesyllabus in training program, chương trình đào tạo cụ thể sẽ nâng cấp phiên bản mới với danh sách giáo trình mới

AC4: Những thay đổi trong chương trình đào tạo phải được lưu lại và phản ánh trên hệ thống (Thêm trường khác: ngày giờ sửa đổi lần cuối)

1.4.19 Đặc tả Use-case “Acticve/Deactive training program” Tên use-case Acticve/Deactive training program

Đối tượng chính Instructor

Mô tả Instructor tạo phiên bản chương trình đào tạo mới bằng cách sao

Điều kiện sau Ứng dụng sẵn sàn cho hoạt động tiếp theo

Luồng cơ bản AC1: Active/inactive trong màn hình chi tiết chương trình đào tạo

1.4.20 Đặc tả Use-case “View list of class” Tên use-case View list of class

Đối tượng chính Admin

Mô tả Admin xem danh sách lớp

Điều kiện tiên quyết

1 Phải đảm bảo kết nối Internet 2 Đăng nhập thành công

Điều kiện sau Ứng dụng sẵn sàn cho hoạt động tiếp theo

Luồng cơ bản

AC1: Danh sách các trường cần hiển thị là : Class code, Class name, Created On (Created date), Created By (Created Username), Duration (No of days from start date to end date), Status,

Location, FSU

AC2: Danh sách sẽ hiển thị mặc định theo các quy tắc sau: • Default filter status (Planning, Scheduled, Opening) • Sắp xếp mặc định theo ngày sửa đổi lần cuối

Trang 38

AC6: Người dùng có thể chọn trang tiếp theo hoặc trang trước của danh sách lớp

AC7: Người dùng có thể chọn trang cụ thể để xem danh sách lớp

1.4.21 Đặc tả Use-case “Create class” Tên use-case Create class

Đối tượng chính Admin Mô tả

Admin tạo lớp mới như training program, list of candidates, trainer, list of syllabuses

Điều kiện tiên quyết

1 Phải đảm bảo kết nối Internet 2 Đăng nhập thành công

Điều kiện sau Ứng dụng sẵn sàn cho hoạt động tiếp theo

Luồng cơ bản

AC1: Khi lớp được lưu, Mã lớp sẽ được tạo theo quy tắc: <<Location Code>>+<<Current Year(yy)>>+<<Incremental Number (01-99)>>

AC2: Người dùng có thể chọn những thông tin này • Class name

• Training program + Syllabus (reference user story)

• General information (Class time from, to of each Session, Location, Trainer, Admin, FSU)

• Training calendar by day

• No of Attendees (Planned, Accepted, Actual) AC3: Thông tin bên dưới là bắt buộc: lass name, General

information (Class time from to of each Session, Admin, Trainer, FSU, location), Training calendar by day

AC4: Lớp đã tạo có thể được lưu dưới dạng draft (Status = Planning)) và có thể truy cập để cập nhật lần cuối trong tương lai

1.4.22 Đặc tả Use-case “View class detail” Tên use-case View class detail

Đối tượng chính Admin

Mô tả Admin xem chi tiết lớp như training program, list of candidates,

trainer, list of syllabuses

Điều kiện tiên quyết

1 Phải đảm bảo kết nối Internet 2 Đăng nhập thành công

Điều kiện sau Ứng dụng sẵn sàn cho hoạt động tiếp theo

Luồng cơ bản AC1: Người dùng có thể xem thông tin này của lớp:

Trang 39

- Class name

- Training program + Syllabus (tham khảo user story)

- General information (Class time “from, to” of each Sesson, Location, Trainer, Admin, FSU)- Lịch đào tạo theo ngày - No.of Attendees (No of Planned, No of Accepted, No of Actual)

AC2: Người dùng có thể chọn “Edit” để cập nhật thông tin (Status = "Planning" or "Scheduled")

1.4.23 Đặc tả Use-case “Update class” Tên use-case Update class

Đối tượng chính Admin

Mô tả Admin cập nhật lớp như training program, list of candidates,

trainer, list of syllabuses

Điều kiện tiên quyết

3 Phải đảm bảo kết nối Internet 4 Đăng nhập thành công

Điều kiện sau Ứng dụng sẵn sàn cho hoạt động tiếp theo

Luồng cơ bản

AC1: Người dùng có thể xem thông tin này của lớp: - Class name

- Training program + Syllabus (tham khảo user story)

- General information (Class time “from, to” of each Sesson, Location, Trainer, Admin, FSU)- Lịch đào tạo theo ngày - No.of Attendees (No of Planned, No of Accepted, No of Actual)

AC2: Người dùng có thể chọn “Edit” để cập nhật thông tin (Status = "Planning" or "Scheduled")

AC3: Ở chế độ tạo hoặc chỉnh sửa lớp, khi thay đổi chương trình đào tạo, hệ thống sẽ hiển thị pop-up EM47

AC4: Nếu Người dùng chọn "OK" khi thông báo bật lên trong AC3, hệ thống sẽ xóa danh sách giáo trình cũ và thêm giáo trình mới theo chương trình đào tạo mới

Trang 40

CHƯƠNG 6: THIẾT KẾ KIẾN TRÚC HỆ THỐNG

Hình 6.1: Mô hình kiến trúc được áp dụng vào ứng dụng

Phần mềm được xây dựng theo mô hình Three Layers và MVC, bao gồm:

● Lớp GUI (Presentation Layer): Hiển thị giao diện và các chức năng để người

dùng sử dụng

● Business Logic Layer: Nhận yêu cầu từ lớp GUI và truy cập vào lớp Dữ liệu để

lấy thông tin và trả về GUI Kiểm tra các yêu cầu nghiệp vụ trước khi cập nhật dữ liệu

● Data Access Layer:Truy cập vào cơ sở dữ liệu, chỉ lớp này mới có thể hoạt động

với cơ sở dữ liệu

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

HÌNH ẢNH LIÊN QUAN

3.1  SƠ ĐỒ LỚP  19 - đồ án 1 xây dựng ứng dụng quản lý sinh viên
3.1 SƠ ĐỒ LỚP 19 (Trang 5)
3.1  SƠ ĐỒ LỚP - đồ án 1 xây dựng ứng dụng quản lý sinh viên
3.1 SƠ ĐỒ LỚP (Trang 19)
4.1  SƠ ĐỒ USE-CASE - đồ án 1 xây dựng ứng dụng quản lý sinh viên
4.1 SƠ ĐỒ USE-CASE (Trang 24)
Hình 6.1: Mô hình kiến trúc được áp dụng vào ứng dụng - đồ án 1 xây dựng ứng dụng quản lý sinh viên
Hình 6.1 Mô hình kiến trúc được áp dụng vào ứng dụng (Trang 40)
Hình hình7.2.17.1 - đồ án 1 xây dựng ứng dụng quản lý sinh viên
Hình h ình7.2.17.1 (Trang 77)
9.3  BẢNG PHÂN CÔNG CÔNG VIỆC - đồ án 1 xây dựng ứng dụng quản lý sinh viên
9.3 BẢNG PHÂN CÔNG CÔNG VIỆC (Trang 81)
w