3.2.1.2 Yêu cầu tiến hóa STT Nghiệp vụ Tham số cần thay đổi Miền giá trị cần thay đổi 3.2.1.3 Yêu cầu hiệu quả lưu trữ Ghi chú 3 Quản lý thông tin cá nhân Ngay tức thì 7 Xem danh sách
Trang 1Copyright © 2020 by HOMIES team
ĐẠ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
-🙞🙜🕮🙞🙜 -BÁO CÁO ĐỒ ÁN 2
ĐỀ TÀI:
XÂY DỰNG WEBSITE HỖ TRỢ DẠY HỌC TIẾNG ANH CHO
TRUNG TÂM NGOẠI NGỮ WEBSITE: MR.SMITH
GVHD: Nguyễn Thị Thanh Trúc
Sinh viên thực hiện:
TP.Thủ Đức, tháng 6 năm 2021
Trang 2LỜI CẢM ƠN
Lời đầu tiên, nhóm tác giả xin chân thành cảm ơn quí thầy cô khoa Công nghệ Phần mềm, trường Đại Học Công Nghệ Thông Tin, ĐHQG TP.HCM, đã tận tình hướng dẫn nhóm trong suốt thời gian qua Những kiến thức mà thầy cô đã truyền đạt là nền tảng quan trọng để nhóm có thể hoàn thành đề tài này
Nhóm tác giả xin gửi lời cảm ơn chân thành và lòng biết ơn sâu sắc đến ThS Nguyễn Thị Thanh Trúc, cảm ơn cô đã tận tình hướng dẫn và tạo điều kiện tốt nhất cho nhóm hoàn thành đề tài này Những lời động viên, góp ý chân tình của cô là động lực quí báu để nhóm vượt qua những khó khăn khi tìm hiểu và thực hiện đề tài Trong thời gian hơn 3 tháng thực hiện đề tài, nhóm tác giả đã cố gắng vận dụng những kiến thức nền tảng đã học, kết hợp học hỏi và tìm hiểu công nghệ mới để ứng dụng xây dựng đề tài môn học Tuy nhiên trong quá trình thực hiện, do kiến thức và kinh nghiệm còn nhiều hạn chế, khó tránh khỏi những thiếu sót Chính vì vậy, nhóm tác giả rất mong nhận được sự góp ý từ quí thầy cô để nhóm hoàn thiện thêm những kiến thức mà nhóm đã học tập, làm hành trang quí báu cho nhóm trong công việc sau này
Sau cùng, nhóm tác giả xin kính chúc quý thầy cô ở khoa Công nghệ phần mềm
và cô Nguyễn Thị Thanh Trúc thật dồi dào sức khỏe, niềm tin để tiếp tục thực hiện
sứ mệnh cao đẹp của mình là truyền đạt kiến thức cho thế hệ mai sau
Xin chân thành cảm ơn quí thầy cô !
Nhóm tác giả
Trang 3NHẬN XÉT (Của giáo viên hướng dẫn)
Trang 4
DANH SÁCH THÀNH VIÊN NHÓM
Trang 5MỤC LỤC
TỔNG QUAN VỀ ĐỀ TÀI 1
1.1 Đặt vấn đề 1
1.2 Giải pháp 1
1.3 Mục tiêu đề tài 1
1.4 Phạm vi đề tài 2
1.5 Công cụ sử dụng 2
1.6 Đối tượng nghiên cứu 2
CƠ SỞ LÝ THUYẾT 3
2.1 Kiến trúc Client-Server 3
2.2 NestJS 4
2.3 PostgreSQL 4
2.4 JWT … 8
2.5 NextJS 9
2.6 Axios … 10
KHẢO SÁT VÀ PHÂN TÍCH ĐẶC TẢ YÊU CẦU 12
3.1 Khảo sát hiện trạng 12
3.2 Danh sách yêu cầu 14
Yêu cầu khách hàng 14
Bảng trách nhiệm cho từng yêu cầu 17
Yêu cầu phần cứng 23
3.3 Quy tắc nghiệp vụ 25
3.4 Báo cáo khả thi 25
Báo cáo tóm tắt đề tài 25
Nền tảng dự án 26
Chi tiết dự án 26
Đánh giá 27
3.5 Usecase, Đặc tả usecase và sơ đồ hoạt động 27
Usecase tổng quát 29
Trang 6Usecase cho Khách 29
Usecase cho Thành viên 35
Usecase cho Giảng viên 42
Usecase cho Học viên 54
Usecase cho Quản lý 62
3.6 Sơ đồ tuần tự 79
Sơ đồ tuần tự việc xem khóa học 79
Sơ đồ tuần tự cho việc đăng ký khóa học 80
Sơ đồ tuần tự cho việc nhập thêm thông báo mới 80
Sơ đồ tuần tự cho việc thêm tài khoản 80
Sơ đồ tuần tự cho việc thêm khóa học 82
Sơ đồ tuần tự cho việc lập báo cáo 82
3.7 Sơ đồ trạng thái 83
Sơ đồ trạng thái cho Đăng nhập 83
Sơ đồ trạng thái cho Thêm tài khoản 84
Sơ đồ trạng thái cho đăng ký khóa học 84
Sơ đồ trạng thái cho Tạo khóa học 86
Sơ đồ trạng thái cho Tạo thông báo 86
State Diagram cho bình luận 87
3.8 Sơ đồ lớp 89
Mô hình thực thể ERD hoàn thiện 89
Sơ đồ lớp 90
Mô tả sơ đồ lớp 90
THIẾT KẾ HỆ THỐNG 96
4.1 Sơ đồ logic 96
Thiết kế sơ đồ logic 96
Mô tả sơ đồ logic 97
4.2 Thiết kế kiến trúc 102
Kiến trúc tổng quan 102
Trang 74.3 Thiết kế giao diện 103
Đăng nhập 103
Đăng ký 104
Trang chủ 104
Khóa học 105
Đăng ký lớp 106
4.4 Triển khai 106
Môi trường phát triển ứng dụng 106
Môi trường triển khai ứng dụng 106
Kiểm thử 106
Kết luận và hướng phát triển 108
5.1 Kết luận 108
Kết quả đạt được 108
Điểm đặc sắc của đề tài 108
5.2 Hướng phát triển 108
Trang 8TỔNG QUAN VỀ ĐỀ TÀI
1.1 Đặt vấn đề
Để bám kịp tốc độ phát triển chóng mặt của nền giáo dục thế giới nói chung và Việt Nam nói riêng, các hoạt động giáo dục dần được “số hoá”, đặc biệt là trong thời kì covid-
19, học sinh không thể đến trường vì vậy việc học qua trực tuyến là vô cùng cấp thiết
Thấy được nhu cầu trên, nhóm quyết định chọn đề tài “XÂY DỰNG WEBSITE HỖ TRỢ DẠY HỌC TIẾNG ANH CHO TRUNG TÂM NGOẠI NGỮ” (đồ án được ThS Nguyễn Thị Thanh Trúc nắm vai trò giảng viên hướng dẫn)
Với tiềm năng rộng mở của dự án dành cho dạy học như hiện nay, các khóa học trực tuyến dần nổi lên như một hiện tượng và phát triển rộng khắp trên các nước, và nay, học trực tuyến đã đặt chân đến Việt Nam
Mr Smith mô phỏng một trung tâm ngoại ngữ dựa trên nhu cầu thực tế hiện nay một
số trung tâm chưa được tiếp cận nhiều với công nghệ Mr Smith hứa hẹn sẽ là trung web đắc lực cho không chỉ học viên mà còn là quản lý trung tâm, mở rộng tiềm năng, tiếp cận thêm với nhiều đối tượng học viên và giảng viên Rút ngắn rất nhiều thời gian trong việc vận hành giảng dạy, quản lý và mang lại trải nghiệm tuyệt vời hơn với công việc hiện tại
1.2 Giải pháp
Để có thể hoàn thành được đề tài thì cần phải nghiên cứu những nội dung như sau:
• Tìm hiểu cách thức vận hành quản lý của trung tâm ngoại ngữ
• Nghiên cứu nhu cầu của từng đối tượng người sử dụng (học viên, giảng viên
và quản lý) để có giải pháp thích hợp
• Tìm hiểu một vài các trung tâm ngoại ngữ
• Nghiên cứu phương pháp dạy và học tiếng anh
1.3 Mục tiêu đề tài
Mục tiêu cơ bản là thực hiện hóa kiến thức đã học trong quá trình triển khai đồ án
Đó là xây dựng một website hoàn thiện về mặt giao diện và trải nghiệm của người dùng xử
lý dữ liệu
Xây dựng website Mr Smith
Trang 9• Thực hiện được các chức năng cơ bản của một website dạy học
• Trang dashboard giúp trung tâm có thể quản lý, cập nhật thông tin
• Tìm kiếm hỗ trợ người dùng
1.4 Phạm vi đề tài
Do thời gian thực hiện đề tài có giới hạn, cũng như những kiến thức của nhóm về trung tâm ngoại ngữ chưa hoàn toàn sâu sắc, nên trong phạm vi khóa luận này nhóm tác giả chỉ tập trung làm những chức năng cơ bản của website, đánh giá những ưu khuyết điểm nổi bật nhất của website Về mặt hiệu năng hệ thống khi triển khai trong thời gian dài
và các điều kiện hạ tầng khác, do không có điều kiện kiểm chứng thực tế, nhóm chỉ trình bày lại theo một số nguồn tài liệu tham khảo
Về việc xây dựng website quản lý trung tâm ngoại ngữ , sẽ tập trung vào việc hỗ trợ công tác Quản lý các khóa học, Quản lý các kỳ thi, Quản lý các lớp học,…
1.5 Công cụ sử dụng
Công cụ dùng để phân tích, thiết kế: draw.io, Astah, Adobe XD
Công cụ chạy thử API: Postman, Swagger UI
Công cụ xây dựng website: Visual Studio Code, Node package manager
Công cụ quản lý dự án: Github, Messenger Group, Microsoft Teams
Công cụ soạn thảo: Excel, Word, Notepad
1.6 Đối tượng nghiên cứu
Công nghệ xây dựng back-end: NestJS
Công nghệ xây dựng cơ sở dữ liệu: PostgreSQL
Công nghệ bảo mật: JWT
Công nghệ xây dựng font-end: NextJS
Công nghệ kết nối dữ liệu: Axios
Trang 10CƠ SỞ LÝ THUYẾT
2.1 Kiến trúc Client-Server
Figure 1Kiến trúc client-server
Mô hình Client-Server là một mô hình nổi tiếng trên mạng máy tính, phổ biến và
được áp dụng rộng rãi ở trên các trang Web hiện nay
Ý tưởng của mô hình này như sau: Client (máy khách) sẽ gửi yêu cầu (request) đến Server (máy chủ, cung ứng các dịch vụ cho các máy khách) Server sẽ xử lý dữ liệu và gửi kết quả về cho Client
Lý do nhóm chọn Client-Server:
– Client-Server có khả năng chống quá tải mạng
– Client-Server đảm bảo toàn vẹn dữ liệu khi có sự cố xảy ra
Trang 112.2 NestJS
Nest (NestJS) là một framework để xây dựng các ứng dụng bằng Node.js hiệu
quả, và dể mở rộng Nó sử dụng ngôi ngữ bậc cao của javascrip là TypeScript (nhưng vẫn cho phép các nhà phát triển sử dụng JavaScript thuần túy) và kết hợp các tính chất của OOP (Lập trình hướng đối tượng), FP (Lập trình chức năng) và FRP (Lập trình phản ứng chức năng)
Về bản chất Nest sử dụng các framework máy chủ HTTP mạnh mẽ như là Express (mặc định) và có thể tùy chọn cấu hình để sử dụng Fastify
Nest cung cấp một tầng trừu tượng trên các framework Node.js phổ biến này (Express / Fastify), nhưng cũng hỗ trợ API của họ trực tiếp cho nhà phát triển Điều này cho phép các nhà phát triển tự do sử dụng vô số các mô-đun của bên thứ ba có sẵn cho nền tảng cơ bản Có thể hiểu là tất cả các package mà chúng ta cài thêm khi sử dụng Express / Fastify đều có thể tích hợp dể dàng vào Nestjs
Lý do nhóm chọn NestJS:
NestJS là một dự án mà tác giả muốn wapper lại mã nguồn, tối ưu và sắp xếp mã nguồn dựa trên NodeJS và ExpressJS Nhờ đó mà mã nguồn dự án của bạn gọn gàng hơn,
dễ bảo trì và tốc độ phát triển, xây dựng ứng dụng cũng nhanh hơn
Với ưu điểm nổi bật là tính hiệu quả, đáng tin cậy và dễ mở rộng, hỗ trợ
Typescript Đặc biệt là lớp bên dưới sử dụng ExpressJS nên nó kế thừa toàn bộ sức mạnh của framework phổ biến này
2.3 PostgreSQL
PostgreSQL là một hệ quản trị cơ sở dữ liệu quan hệ – đối tượng, được phát triển
bởi Khoa Điện toán, Đại học California – Hoa Kỳ dựa trên Postgres bản 4.2 Chương trình này đã mở đường cho nhiều khái niệm về hệ quản trị dữ liệu thương mại sau này
Trang 12Ban đầu, hệ quản trị được thiết kế để chạy trên các nền tảng tương tự như Unix Sau này, PostgreSQL được điều chỉnh trở nên linh động và chạy trên nhiều nền tảng khác nhau như Windows, Mac OS X, Solaris với nhiều tính năng và đặc điểm nổi bật
PostgreSQL là mã nguồn mở miễn phí, được xây dựng theo chuẩn SQL99 Người dùng có thể tự do sử dụng, chỉnh sửa và phân bổ PostgreSQL theo nhiều hình thức khác nhau
So với nhiều hệ quản trị cơ sở dữ liệu khác, PostgreSQL không quá yêu cầu về công tác bảo trì bởi tính ổn định cao, có thể phát triển nhiều ứng dụng khác nhau với chi phí tương đối thấp
Non-blocking
trong DDL
– PostgreSQL sẽ tùy thuộc vào những cậu lệnh thực thi thao tác DDL nào
– Thao tác write, chẳng hạn như thêm cột, nó sẽ phát sinh block đến bảng, khiến bạn không thể tham chiếu thêm nữa
– Có thể thấy, PostgreSQL thao tác DDL là Alter table không phải non – blocking Để sử dụng được, bạn cần sự hỗ trợ của các tool Ví dụ như pg_repack, tool này chuyên dùng cho maintain, giúp thực thi các thao tác alter table một phần hoặc tiến hành reindex bằng cách block tối thiểu
– Thực thi thao tác nhiều DDL bằng Non – blocking (Tức là, dù trong transaction nhưng không
có block đến bảng.) – Chức năng Non – Blocking có
từ phiên bản MySQL 5.6
– Trong trường hợp Alter table (thay đổi, điều chỉnh cột, hàng,… trong bảng), chỉ những cột đối tượng cần xử lý thì không tạo bảng từ con số không Bởi vậy, tốc độ xử lý nhanh, kéo thiểu việc giảm tải cho máy chủ server
– Chậm hơn
– MySQL có thuật toán sort không tốt bằng PostgreSQL Bởi vậy MySQL sẽ bị chậm hơn – MySQL chuyên về use case
Ví dụ, lấy da 10 hay 100 dữ liệu
Trang 13– PostgreSQL khi update sẽ xử
lý tương tự như insert Tức là
nó sẽ đánh dấu flag như delete vào dòng trước khi thay đổi, rồi thêm dòng mới có dữ liệu sau khi thay đổi
– Delete nhanh hơn
đầu tiền (như cách của Twitter)
sẽ nhanh hơn so với PostgreSQL
– UPDATE thì performance của MySQL tốt hơn so với
PostgreSQL Bởi MySQL ghi đè đối tượng được update, đúng nghĩa cập nhật
– MySQL delete chậm do sau khi xóa dữ liệu nó sẽ thực hiện đánh lại secondary index xử lý đồng bộ nên tốn thời gian hơn
Từ phiên bản 5.5 trở lên sẽ cải thiện tình trạng này tốt hơn Thuật toán JOIN – PostgreSQL support cả 3 loại
Hash Join, Nested Loop Join, Sort Merge Join
Trong đó:
• Sử dụng dữ liệu cần join nhiều thì dùng Hash Join
và Sort Merge join
• Dữ liệu đã được sort thì
sử dụng Sort Merge Join
• Dữ liệu của các bảng được Join ít hoặc bảng ít bảng nhiều, bạn có thể dùng Nested Loop Join
– MySQL chủ yếu sử dụng thuật toán Support Nested Loop Join, bởi hệ quản trị cơ sở dữ liệu này thiết kế đúng theo tiêu chí thuật toán đơn giản
Xử lý transaction – PostgreSQL có tính năng
Read – committed, hình thức này có khả năng xảy ra vấn đề phantom-read hoặc non – repeatable – read (hiện tượng
– MySQL mặc định xử lý transaction là repeatable-read Phương thức này giúp giữ nguyên dữ liệu đọc, không lo thay đổi, mất ở một transaction
Trang 14cùng một transaction đọc cùng
dữ liệu mà giá trị thay đổi)
– Trường hợp đổi sang Repeatable – read sẽ không có next key locking nên tránh được tình trạng phantom – read Bởi vậy PostgreSQL dễ tránh conflict ngon hơn MySQL
khác
– Trong trường hợp thêm dữ liệu bởi transaction khác sẽ được thấy khi chạy transaction với phantom-read Để cải thiện tình trạng này, khi sử dụng MySQL cần dùng Next Key Locking
– Bản MySQL 5.6 có điểm yếu
là mỗi một bảng chỉ gán được tối
đa 6 trigger Nếu không thì chúng chỉ có for each row Dạng logic và vật
lý của replication
– MySQL có replication dạng logic và vật lý Dạng logic được setting mặc định Từ phiên bản 5.7 về sau thì dạng vật lý là mặc định
– PostgreSQL chỉ có dạng vật lý ( copy image dòng sau khi thay đổi) Nhưng từ phiên bản release beta version 10 có thể sử dụng được cả dạng logic (copy câu SQL)
Chức năng tiện
lợi
– PostgreSQL có hàm window,
có thể apply hàm tổng, hợp thành set kết quả và phân chia thành từng phần
Mệnh đề With có thể subquery trước khi select Bởi vậy, chức năng tiện lợi của postgreSQL mạnh hơn
– Chức năng Query song song giúp tăng tốc độ xử lý bằng
– MySQL chưa có chức năng này
– MySQL thì có backup vật online còn Xtrabackup hoặc enterprise backup không thực hiện được base backup online hay trên remote
Trang 15cách sử dụng nhiều CPU để chạy query PostgreSQL có đa dạng các tool từ OSS,
PostGIS,…
– Chức năng Pg_basebackup có thể sử dụng online hoặc dùng trên remote đều được
Lý do nhóm chọn PostgreSQL
PostgreSQL sở hữu một hệ tính năng đa dạng giúp hỗ trợ các nhà phát triển xây dựng app, các nhà quản trị bảo vệ toàn vẹn dữ liệu, và tạo ra một môi trường chịu lỗi fault-tolerant giúp quản lý dữ liệu bất kể tập dữ liệu lớn hay nhỏ Bên cạnh hệ thống nguồn mở
và miễn phí, PostgreSQL cũng có khả năng mở rộng tuyệt vời Ví dụ, có thể định nghĩa các kiểu dữ liệu riêng, xây dựng các hàm tùy chỉnh, hay viết mã từ các ngôn ngữ lập trình khác nhau mà không cần biên dịch lại cơ sở dữ liệu
2.4 JWT
JWT (JSON Web Token) là một phương tiện đại diện cho các yêu cầu chuyển giao
giữa hai bên Client – Server, các thông tin trong chuỗi JWT được định dạng bằng JSON Trong đó chuỗi Token phải có 3 phần là header, phần payload và phần signature được ngăn bằng dấu “.”
Trang 16Authentication: Đây là trường hợp phổ biến nhất thường sử dụng JWT Khi người dùng đã đăng nhập vào hệ thống thì những request tiếp theo từ phía người dùng sẽ chứa thêm mã JWT Điều này cho phép người dùng được cấp quyền truy cập vào các url, service, và resource mà mã Token đó cho phép Phương pháp này không bị ảnh hưởng bởi Cross-Origin Resource Sharing (CORS) do nó không sử dụng cookie
Lý do nhóm chọn JWT
JWT là một công nghệ tuyệt vời để xác thực API và ủy quyền từ máy chủ đến máy chủ Nó có thể đảm bảo dữ liệu mà nó chứa có thể được tin cậy bởi vì nó đã được xác thực với chữ ký đã được lưu trữ Không yếu tố trung gian nào có thể sửa đổi JWT sau khi
nó được gửi
2.5 NextJS
Trang 17NextJS là một framework được xây dựng từ React.js, Node.js, webpack và Babel.js
Nó được tạo ra để giúp các devs tạo React App có tính năng SSR (Server-Side Render) và/hoặc web app tỉnh
Next.js được đóng góp bởi Vercel (cung cấp hosting chuyên cho JS dev, họ có gói free "unlimited" rất tốt) Next.js cung cấp giải phảp lập trình web sử dụng một hosting bao trọn cả backend lẫn frontend
So sánh công nghệ khác ( Fetch )
reject tất cả các promise của request
nếu một trong các mã lỗi trên được trả
về
khi server trả về các mã lỗi 4xx hay 5xx, thì hàm catch() của bạn sẽ không được gọi đến và người lập trình viên sẽ có nhiệm
vụ phải tự kiểm tra trạng thái của mã trả
về để xác định xem liệu request đó có thành công hay không
không cần phải truyền một cách trực
tiếp các option để cho cookies có thể
được include
không tự động gủi trả cookies về cho server khi tạo một request Ta sẽ cần phải truyền một cách trực tiếp các option để cho cookies có thể được include
được xây dựng dựa trên các XHR API
cũ hơn, bạn có thể khai báo các hàm
callback cho onUploadProgress và
onDownloadProgress để hiện thị phần
trăm thành công tại giao diện cho app
vẫn chưa hỗ trợ khai báo các hàm callback cho onUploadProgress và onDownloadProgress để hiển thi thành công tại giao diện app
Trang 18Lý do nhóm chọn Axios
Thư viện này có một API rõ ràng, với các method hữu dụng quen thuộc với bất kì
ai đã từng sử dụng jQuery trước đây Sự phổ biến của nó và việc có sẵn các thư viện bên thứ 3 khiến Axios trở thành lựa chọn chắc chắn cho ứng dụng của bạn cho dù là front-end hay back-end hay cả hai
Trang 19KHẢO SÁT VÀ PHÂN TÍCH ĐẶC TẢ YÊU CẦU
3.1 Khảo sát hiện trạng
Phương pháp phỏng vấn: Nhóm thực hiện soạn ra loạt câu hỏi sau đó thành viên trong nhóm đi phỏng vấn trực tiếp tại một trung tâm ngoại ngữ lựa chọn trước để đưa ra hiện trạng tin học, hiện trạng nghiệp vụ Những khó khăn gặp phải khi quản lý các chức năng, Song chủ yếu hỏi về trình độ tin học, yêu cầu về giao diện và chức năng
Người được khảo sát: Quản lý trung tâm ngoại ngữ
Bảng câu hỏi:
• Trung tâm có bao nhiêu nhân sự, nhiệm vụ của mỗi người là gì?
o Trung tâm có người
▪ 3 người quản lý
▪ 2 nhân viên tư vấn
▪ 15 giảng viên
▪ 1 nhân viên thu ngân/nhập liệu
o Nhiệm vụ của mỗi người
▪ Quản lý:
− Thường xuyên có mặt ở văn phòng của trung tâm, giám sát việc giảng dạy, nhân viên, giảng viên và học sinh thông qua phần mềm
− Là người chịu trách nhiệm cuối cùng cho mọi vấn đề của trung tâm,
▪ Nhân viên tư vấn:
− Người trực tiếp có mặt ở trung tâm để làm việc trực tiếp với học viên
− Tư vấn cho học viên mới
− Xuất hoá đơn đăng ký
− Lưu trữ thông tin học viên
− Lập báo cáo
• Phương pháp điểm danh?
o Điểm danh theo phương hướng thủ công, khi đến đến trung tâm các nhân viên thực hiện ký tên vào bảng chấm công Còn đối với học viên thì giảng viên sẽ gọi tên đánh dấu vào danh sách.
• Học viên đến trung tâm:
Trang 20o Học viên khi đến trung tâm, sẽ được nhân viên tư vấn sẽ hướng dẫn đăng ký các khóa học, đưa ra các sự lựa chọn phù hợp với học viên
o Sau khi đã chốt đăng ký khóa, nhân viên thu ngân sẽ tiến hành lập hoá đơn, lưu trữ/cập nhật mọi thông tin của học viên - tuỳ thuộc vào
đó là học viên cũ hay mới để thi học phí
• Trung tâm có bao nhiêu khóa học?
o Trung tâm có 7 khóa học:
▪ Luyện thi Toeic 2 kỹ năng
▪ Luyện thi Toeic 4 kỹ năng
▪ Luyện thi VNU-EPT
▪ Luyện thi IELTS
▪ Tiếng Anh Giao tiếp
▪ Tiếng Anh căn bản cho người mất gốc
▪ Tiếng Anh Thiếu nhi
• Nhân sự trong doanh nghiệp được trả lương như thế nào?
o Đối với nhân viên quản lý:
o Lương = Lương cơ bản * Hệ số lương + Lương thưởng
o Đối với nhân viên tư vấn:
o Lương = Lương cơ bản * Hệ số lương + Lương phụ cấp * Số ngày làm việc
o Đối với giảng viên:
o Lương = Số giờ dạy * Hệ số lương + Lương phụ cấp * Số giờ dạy
• Trung tâm có trang bị Internet không?
• Các nhân viên có máy tính cá nhân không? Được trang bị ở đâu?
o 1 máy ở bộ phận tiếp tân của nhân viên thu ngân
o 1 máy ở phòng làm việc của quản lý
• Trung tâm có nhu cầu sử dụng phần mềm quản lý trung tâm không?
• Hệ điều hành đang dùng tại trung tâm
o Windows 10
• Nếu có một phần mềm hỗ trợ dạy học, thì anh/ chị muốn nó có thể làm gì?
☒Quản lý và theo dõi quá trình học của các học viên
Trang 21☒ Giảng viên có thể theo dõi và hỗ trợ học viên
☒ Giảng viên có thể thông báo đến lớp học của mình
☒ Có chức năng giao bài tập và hạn nộp
☒ Thống kê, báo biểu
• Nếu được có một phần mềm/trang web, anh/chị muốn giao diện của nó như thế nào?
3.2 Danh sách yêu cầu
Yêu cầu khách hàng
3.2.1.1 Yêu cầu nghiệp vụ
3.2.1.1.1 Danh sách các yêu cầu
6 Xem thông tin lớp học
7 Xem danh sách học viên của lớp học
8 Đăng thông báo cho lớp học
9 Bình luận thông báo của lớp học
10 Theo dõi quá trình học
Trang 223.2.1.2 Yêu cầu tiến hóa
STT Nghiệp vụ Tham số cần thay đổi Miền giá trị cần thay đổi
3.2.1.3 Yêu cầu hiệu quả
lưu trữ
Ghi chú
3 Quản lý thông tin cá nhân Ngay tức thì
7 Xem danh sách học viên của lớp
học
Ngay tức thì
8 Đăng thông báo cho lớp học Ngay tức thì
9 Bình luận thông báo của lớp học Ngay tức thì
13 Tạo lịch biểu cho học viên Ngay tức thì
3.2.1.4 Yêu cầu tiện dụng
STT Nghiệp vụ Mức độ dễ học Mức độ dễ sử
dụng
Ghi chú
Dễ thao tác, xử lý đúng các thông tin được nhập
Trang 232 Đăng ký 5 phút hướng dẫn
Dễ thao tác, xử lý đúng các thông tin được nhập
3 Quản lý thông tin cá nhân 2 phút hướng dẫn
Dễ thao tác, xử lý đúng các thông tin được nhập
6 Xem thông tin lớp học 2 phút hướng dẫn Dễ thao tác
7 Xem danh sách học viên
8 Đăng thông báo cho lớp
Dễ thao tác, xử lý đúng các thông tin được nhập
9 Bình luận thông báo của
Dễ thao tác, xử lý đúng các thông tin được nhập
10 Theo dõi quá trình học 5 phút hướng dẫn Dễ thao tác
Dễ thao tác, xử lý đúng các thông tin được nhập
Dễ thao tác, xử lý đúng các thông tin được nhập
Trang 2413 Tạo lịch biểu cho học viên 5 phút hướng dẫn
Dễ thao tác, xử lý đúng các thông tin được nhập
Dễ thao tác, xử lý đúng các thông tin được nhập
Dễ thao tác, xử lý đúng các thông tin được nhập
Dễ thao tác, xử lý đúng các thông tin được nhập
Bảng trách nhiệm cho từng yêu cầu
3.2.2.1 Yêu cầu nghiệp vụ
Cho phép hủy
đăng ký
Kiểm tra hợp lệ, ghi nhận
Cho phép hủy, cập nhật
3 Quản lý thông tin
thị khóa học
Cho phép hủy
5 Đăng ký khóa học Lựa chọn khóa học Kiểm tra hợp lệ, ghi
nhận
Cho phép cập nhật
6 Xem thông tin
Kiểm tra hợp lệ, hiển thị lớp học
Cho phép hủy
7 Xem danh sách Lựa chọn lớp học Kiểm tra hợp lệ, hiển Cho phép
Trang 2510 Theo dõi quá
thị so sanh
Cho phép cập nhật, hủy
11 Tạo bài tập Cung cấp thông tin bài
tập
Kiểm tra hợp lệ, ghi nhận
Cho phép cập nhật, hủy
12 Nộp bài tập Cung cấp thông tin bài
tập
Kiểm tra hợp lệ, ghi nhận
Cho phép cập nhật, hủy
13 Tạo lịch biểu cho
14 Quản lý khóa học Cung cấp thông tin
Cho phép cập nhật, hủy
15 Quản lý lớp học Cung cấp thông tin lớp
Cho phép cập nhật, hủy
Trang 263.2.2.2 Yêu cầu tiến hóa
1 Đăng nhập
Chuẩn bị thông tin nhập vào
Thực hiện đúng theo yêu cầu
2 Đăng ký
Chuẩn bị thông tin nhập vào
Thực hiện đúng theo yêu cầu
3 Quản lý thông tin
cá nhân
Chuẩn bị thông tin nhập vào
Thực hiện đúng theo yêu cầu
Thực hiện đúng theo yêu cầu
8 Đăng thông báo
cho lớp học
Chuẩn bị thông tin nhập vào
Thực hiện đúng theo yêu cầu
Trang 2710 Theo dõi quá trình
Thực hiện đúng theo yêu cầu
12 Nộp bài tập
Chọn lớp học, Chuẩn bị thông tin nhập vào
Thực hiện đúng theo yêu cầu
13 Tạo lịch biểu cho
học viên
Chuẩn bị thông tin nhập vào
Thực hiện đúng theo yêu cầu
14 Quản lý khóa học
Chuẩn bị thông tin nhập vào
Thực hiện đúng theo yêu cầu
15 Quản lý lớp học
Chuẩn bị thông tin nhập vào
Thực hiện đúng theo yêu cầu
3.2.2.3 Yêu cầu hiệu quả
1 Đăng nhập
Chuẩn bị thông tin nhập vào
Thực hiện đúng theo yêu cầu
2 Đăng ký
Chuẩn bị thông tin nhập vào
Thực hiện đúng theo yêu cầu
Trang 283 Quản lý thông tin
cá nhân
Chuẩn bị thông tin nhập vào
Thực hiện đúng theo yêu cầu
Thực hiện đúng theo yêu cầu
8 Đăng thông báo
cho lớp học
Chuẩn bị thông tin nhập vào
Thực hiện đúng theo yêu cầu
10 Theo dõi quá trình
Thực hiện đúng theo yêu cầu
12 Nộp bài tập
Chọn lớp học, Chuẩn bị thông tin nhập vào
Thực hiện đúng theo yêu cầu
Trang 2913 Tạo lịch biểu cho
học viên
Chuẩn bị thông tin nhập vào
Thực hiện đúng theo yêu cầu
14 Quản lý khóa học
Chuẩn bị thông tin nhập vào
Thực hiện đúng theo yêu cầu
15 Quản lý lớp học
Chuẩn bị thông tin nhập vào
Thực hiện đúng theo yêu cầu
3.2.2.4 Yêu cầu tiện dụng
dụng
Thực hiện đúng theo yêu cầu
dụng
Thực hiện đúng theo yêu cầu
3 Quản lý thông tin cá nhân Đọc hướng dẫn sử
dụng
Thực hiện đúng theo yêu cầu
dụng
Thực hiện đúng theo yêu cầu
dụng
Thực hiện đúng theo yêu cầu
6 Xem thông tin lớp học Đọc hướng dẫn sử
dụng
Thực hiện đúng theo yêu cầu
Trang 307 Xem danh sách học viên
của lớp học
Đọc hướng dẫn sử dụng
Thực hiện đúng theo yêu cầu
8 Đăng thông báo cho lớp
học
Đọc hướng dẫn sử dụng
Thực hiện đúng theo yêu cầu
9 Bình luận thông báo của
lớp học
Đọc hướng dẫn sử dụng
Thực hiện đúng theo yêu cầu
10 Theo dõi quá trình học Đọc hướng dẫn sử
dụng
Thực hiện đúng theo yêu cầu
dụng
Thực hiện đúng theo yêu cầu
dụng
Thực hiện đúng theo yêu cầu
13 Tạo lịch biểu cho học viên Đọc hướng dẫn sử
dụng
Thực hiện đúng theo yêu cầu
dụng
Thực hiện đúng theo yêu cầu
dụng
Thực hiện đúng theo yêu cầu
dụng
Thực hiện đúng theo yêu cầu
Yêu cầu phần cứng
• Người dùng
o Phần cứng
▪ Máy vi tính
• CPU: 2-core hoặc hơn
• RAM: 512 MB hoặc hơn
▪ Điện thoại thông minh
Trang 31• CPU: 2-core hoặc hơn
• RAM: 2GB hoặc hơn
o Phần mềm
▪ Điện thoại thông minh
• Hệ điều hành: Android 4.4, IOS
• Trình duyệt: Any browser with Cookies
• Hệ thống máy chủ
o Hardware
▪ CPU: 4-Core hoặc hơn
▪ RAM: 8GB hoặc hơn
o Software
▪ Hệ điều hành: Windows Server 2008, CentOS7 …
▪ Môi trường: Microsoft NET Core 3.0
▪ Hệ quản trị Cơ sở dữ liệu: Microsoft SQL Server 2019
▪ Máy chủ Web: Internet Information Services (IIS)
Trang 32BR-2 Người dùng đã đăng nhập vào hệ thống Ràng buộc Tĩnh
BR-3 Số lượng học viên đăng ký phải nhỏ hơn
số lượng học viên đề ra
Ràng buộc Tĩnh
BR-4 Người dùng nhập đầy đủ thông tin Ràng buộc Tĩnh
BR-6 Chỉ có học viên trong lớp mới có thể tham
gia vào lớp học
3.4 Báo cáo khả thi
Báo cáo tóm tắt đề tài
3.4.1.1 Mô tả đề tài
Theo cách quản lý và thông báo của trung tâm tiếng anh thông thường, những người
có nhu cầu học, kiểm tra trình độ và cập nhật thông tin mới nhất của trung tâm tiếng anh phải tốn nhiều công sức trong việc tìm hiểu tới trung tâm mới có thể biết được thông tin mới nhất Mặt khác, những người quản lý trung tâm cũng như giảng viên cũng rất khó kiểm soát học sinh, giao bài tập, hoặc thông báo cho học sinh của mình
Nhận thấy điều này, website Mr.Smith cung cấp cho phép người dùng chia sẻ các thông tin thông tin các khóa học tiếng anh, các kỳ thi kiểm tra trình độ tiếng anh cũng như quản lý các bài tập về nhà, các sự kiện và thông báo của trung tâm Đặc biệt, các thông tin quan trọng về trung tâm đều được thể hiện một cách rõ ràng tạo điều kiện thuận lợi nhất
• Đề tài: Xây dựng website hỗ trợ dạy học tiếng anh cho trung tâm ngoại ngữ
• Framework: NestJS, NextJS
• Môi trường phát triển: Visual Studio Code
• Công cụ quản lý dự án: Trello, Google Drive
• Yêu cầu chất lượng: phần mềm đơn giản, hiệu quả, thân thiện và đảm bảo tính thẩm
mỹ tạo cảm hứng cho người dùng
Trang 33• Điều kiện, căn cứ pháp lý: mang tính hợp pháp
• Thời gian tiến hành: từ 29/09/2021 đến 01/12/2021
3.4.1.2 Thời gian hoàn thiện
Dự kiến phát hành 2 phiên bản với các mốc thời gian như sau:
• Phiên bản 1 vào cuối tháng 11 năm nay
• Phiên bản 2 vào đầu tháng 12 năm nay
3.4.1.3 Địa điểm triển khai
Dự án sau khi xây dựng xong sẽ áp dụng thử nghiệm tại trung tâm ngoại ngữ của nơi đã thực hiện khảo sát
đa dạng các loại hình công tác nghiệp vụ từ tư vấn, quản lý, kế toán… đòi hỏi nhiều chi phí về nhân lực lẫn tài lực
Một hệ thống quản lý trung tâm thân thiện, bắt mắt với đa nhiệm các tính năng dành cho cả trung tâm lẫn hỗ trợ học viên đến tìm kiếm, tra cứu thông tin là điều mà nhóm chúng em/tôi hướng đến, nhất trong thời kì covid hoành hành thì giảng dạy trực tuyến là miền đất hứa đáng để khai thác
3.4.2.2 Lợi ích của dự án
Đối với trung tâm ngoại ngữ: việc tiến hành áp dụng số hoá các quy trình quản lý sẽ tiết kiệm được rất nhiều chi phí, nhân công, giúp các nhà quản lý có thể đầu tư thời gian hiệu quả hơn Từ đó nâng cao doanh thu của trung tâm
Đối với học viên đến với trung tâm: có được một môi trường tra cứu, tìm kiếm thông tin; tiết kiệm thời gian, công sức; nâng cao trải nghiệm và hứng thú tìm đến trung tâm nhiều hơn
Chi tiết dự án
3.4.3.1 Quy mô
• Phù hợp với quy mô trung tâm: 1000 học viên
Trang 34• Đối tượng hướng đến: trung tâm ngoại ngữ vừa và nhỏ
3.4.3.2 Nền tảng công nghệ
Hiện tại chỉ có thể truy cập bằng localhost nhưng nếu thành công và có nguồn kinh phí hỗ trợ, người dùng có thể truy cập vào website bằng web browser Xây dựng hệ thống online với cấu trúc client-server trong đó client sử dụng Framework NextJS còn server sử dụng Framework NestJS để tạo các RESTful API kết nối với cơ sở dữ liệu PostgreSQL
Mức độ cạnh tranh với các đối thủ lớn vì có nhiều phần mềm quản lý cửa hàng xuất hiện trên thị trường cùng với tốc phát triển của các công ty phần mềm
3.4.4.2 Financial Benefits
Mang lại hiệu quả kinh tế cao: tiết kiệm nhân công, thời gian, chi phí
Hứa hẹn cho độ phủ sóng của phần mềm trong địa bàn nông thôn, nơi chưa được tiếp cận những hệ thống website chi phí lớn
3.5 Usecase, Đặc tả usecase và sơ đồ hoạt động
Khách 1 Đăng ký
2 Đăng nhập
3 Xem khóa học
Thành viên 4 Quản lý thông tin cá nhân
5 Xem thông tin lớp học
6 Đăng ký khóa học
Giảng viên 7 Quản lý thông báo lớp học
Trang 358 Xem thông tin lương
9 Tạo bài tập
Học viên 10 Nộp bài tập
11 Xem thông báo
12 Bình luận thông báo
Trang 36Usecase tổng quát
Usecase cho Khách
3.5.2.1 UC-1 Đăng ký
Trang 37STT - tên: UC-1 Đăng ký
Actors:
Hệ thống
Mô tả: Người dùng đăng ký tài khoản để đăng nhập vào hệ thống
Mục đích: Cấp tài khoản cho người dùng truy cập vào hệ thống
Điều kiện tiên
quyết:
PRE-1 Thiết bị của người dùng phải kết nối internet khi thực hiện đăng
ký Điều kiện lúc
Người dùng nhập các thông tin đăng ký
Ngoại lệ: 1.0.E1 Người dùng đã có có tài khoản
Business rule: Không có
Trang 383.5.2.2 UC-2 Đăng Nhập
Actors:
Hệ thống
Mô tả: Người dùng đăng nhập tài khoản để truy cập vào hệ thống
Mục đích: Hệ thống cho phép người dùng truy cập
Điều kiện tiên
quyết:
PRE-1 Thiết bị của người dùng phải kết nối internet khi thực hiện đăng nhập
PRE-2 Người dùng đã có tài khoản
Điều kiện lúc POST-1 Người dùng đăng nhập thành công
Trang 39sau:
Quy trình cơ
bản:
2.0 Đăng nhập hệ thống thành công Người dùng truy cập vào trang đăng nhập
Người dùng nhập tài khoản và mật khẩu
Ngoại lệ: 2.0.E2 Đăng nhập hệ thống không thành công
Hệ thống xác thực thông tin đăng nhập không thành công và hiển thị thông báo
Business rule: BR-1
Trang 403.5.2.3 UC-3 Xem khóa học
Actors:
Hệ thống
Mô tả: Người dùng xem các khóa học được đăng trên hệ thống Mục đích: Hệ thống cho phép xem các khóa học đã được phê duyệt Điều kiện tiên
Ngoại lệ: 3.0.E2 Đăng nhập hệ thống không thành công
Thiết bị không kết nối internet
Business rule: Không có