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

Đồ án xây dựng website cho trung tâm tư vấn và phát triển giáo dục

78 4 0

Đ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 đề Xây Dựng Website Cho Trung Tâm Tư Vấn Và Phát Triển Giáo Dục
Tác giả Lê Hoàng Quý
Người hướng dẫn TS. Đỗ Thị Thanh Tuyền
Trường học Đại Học Quốc Gia TP. Hồ Chí Minh - Trường Đại Học Công Nghệ Thông Tin
Chuyên ngành Công Nghệ Phần Mềm
Thể loại Đồ án
Năm xuất bản 2023
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 78
Dung lượng 4,2 MB

Cấu trúc

  • Chương 1. TỔNG QUAN (0)
    • 1.1. Tổng quan về đồ án (17)
    • 1.2. Trung tâm tư vấn và phát triển giáo dục (17)
    • 1.3. Những vấn đề tồn tại và cần nghiên cứu (18)
    • 1.4. Khảo sát (18)
      • 1.4.1. daykemtainha.vn (18)
      • 1.4.2. lopmoi.giasutrithuc.net (19)
      • 1.4.3. giasubaochau.net (19)
      • 1.4.4. trungtamdaykem.com (20)
  • Chương 2. CƠ SỞ LÝ THUYẾT (0)
    • 2.1. ASP.NET CORE 7 (21)
      • 2.1.1. ASP.NET Core là gì? (21)
      • 2.1.2. Lịch sử (21)
    • 2.2. Entity Framework Core (22)
      • 2.2.1. Entity Framework Core là gì? (22)
      • 2.2.2. Lịch sử ra đời và các phiên bản (22)
      • 2.2.3. Tại sao lại sử dụng Entity Framework Core? (23)
    • 2.3. Microsoft SQL Server (23)
    • 2.4. Kiến trúc Clean Architecture (24)
      • 2.4.1. Kiến trúc Clean Architecture là gì? (24)
      • 2.4.2. Mô hình Clean Architecture và các thành phần cấu tạo (24)
        • 2.4.2.1. Entities (26)
        • 2.4.2.2. Use Cases (26)
        • 2.4.2.3. Interface Adapters (26)
        • 2.4.2.4. Frameworks & Drivers (27)
  • Chương 3. PHÂN TÍCH THIẾT KẾ HỆ THỐNG (0)
    • 3.1. Đối tượng và phạm vi nghiên cứu và lựa chọn giải pháp công nghệ (28)
      • 3.1.1. Đối tượng nghiên cứu (28)
      • 3.1.2. Phạm vi nghiên cứu (28)
      • 3.1.3. Lựa chọn giải pháp công nghệ (28)
    • 3.2. Kiến trúc hệ thống (29)
      • 3.2.1. Domain.Shared (29)
      • 3.2.2. Domain (29)
      • 3.2.3. Application.Contracts (29)
      • 3.2.4. Application (30)
      • 3.2.5. Infrastructure (30)
      • 3.2.6. WebApi/WebMvc (30)
    • 3.3. Mô hình Use Case (31)
      • 3.3.1. Sơ đồ Use Case (31)
      • 3.3.2. Phân rã và đặc tả Use Case (32)
        • 3.3.2.1. Use Case “Xem thông tin lớp và gia sư” (32)
        • 3.3.2.2. Use Case “Đăng nhập” (39)
        • 3.3.2.3. Use Case “Đăng ký nhận lớp” (45)
        • 3.3.2.4. Use Case “Yêu cầu tạo lớp mới” (50)
    • 3.4. Sơ đồ mối quan hệ giữa các thực thể (55)
    • 3.5. Mô tả dữ liệu (56)
      • 3.5.1. Bảng User (56)
      • 3.5.2. Bảng Subject (57)
      • 3.5.3. Bảng Tutor (57)
      • 3.5.4. Bảng ClassInformation (58)
      • 3.5.5. Bảng TutorMajor (59)
      • 3.5.6. Bảng TutorVerificationInfo (59)
      • 3.5.7. Bảng Subscriber (59)
      • 3.5.8. Bảng TutorReview (60)
      • 3.5.9. Bảng RequestGettingClass (60)
  • Chương 4. TRIỂN KHAI ỨNG DỤNG (0)
    • 4.1. Giao diện của Khách hàng (61)
      • 4.1.1. Trang chủ (61)
      • 4.1.2. Trang danh sách các lớp mới (62)
      • 4.1.3. Trang chi tiết thông tin lớp học (63)
      • 4.1.4. Trang danh sách các gia sư (64)
      • 4.1.5. Trang chi tiết thông tin gia sư (65)
      • 4.1.6. Trang đăng nhập (66)
      • 4.1.7. Trang đăng ký (66)
      • 4.1.8. Trang yêu cầu tạo lớp (67)
      • 4.1.9. Trang đăng ký làm gia sư (68)
    • 4.2. Giao diện của Quản lý (69)
      • 4.2.1. Trang đăng nhập (69)
      • 4.2.2. Trang dashboard (70)
      • 4.2.3. Trang quản lý học viên (71)
      • 4.2.4. Trang quản lý thông tin chi tiết của học viên (71)
      • 4.2.5. Trang quản lý gia sư (72)
      • 4.2.6. Trang quản lý thông tin chi tiết của gia sư (72)
      • 4.2.7. Trang quản lý lớp học (73)
      • 4.2.8. Trang quản lý thông tin chi tiết của lớp học (73)
      • 4.2.9. Trang quản lý các môn học (74)
      • 4.2.10. Trang khái quát thông tin cá nhân (74)
      • 4.2.11. Trang chỉnh sửa thông tin cá nhân (75)
      • 4.2.12. Trang đổi mật khẩu (75)
  • KẾT LUẬN (76)
  • TÀI LIỆU THAM KHẢO (78)

Nội dung

TỔNG QUAN

Tổng quan về đồ án

1.1.1 Tên của đồ án: Xây dựng website cho trung tâm tư vấn và phát triển giáo dục theo Clean Architecture

1.1.2 Link Github quản lý mã nguồn: https://github.com/lehquy13/CED-ASP_NET_Core.DDD

Trung tâm tư vấn và phát triển giáo dục

Trung tâm tư vấn và phát triển giáo dục là các cơ sở dạy kèm chuyên nghiệp, tập trung vào việc tuyển chọn và đào tạo gia sư có chuyên môn từ các trường đại học sư phạm Những trung tâm này cung cấp nguồn nhân lực chất lượng, giúp học sinh tiếp cận với giáo viên có kinh nghiệm và kiến thức chuyên sâu.

Hiện nay, nhu cầu giáo dục ngày càng gia tăng, các trung tâm giáo dục không ngừng phát triển để đáp ứng yêu cầu học tập của học viên Đặc biệt sau đại dịch Covid-19, nhiều trung tâm đã chuyển sang mô hình giới thiệu gia sư và giảng viên dạy kèm 1-1 trực tuyến, trở thành cầu nối quan trọng đảm bảo chất lượng và hiệu quả cho lớp học.

Trung tâm tư vấn và phát triển giáo dục thường có các chức năng:

- Chịu trách nhiệm phỏng vấn, quản lý chuyên môn và phương pháp giảng dạy của người đi dạy

- Ghi danh nhu cầu học của học sinh và phụ huynh

- Điều phối, kết nối gia sư với phụ huynh học sinh

- Quản lý chất lượng, tiến độ hiệu quả, chất lượng của việc dạy và học

- Tư vấn và hướng dẫn các phụ huynh, học viên về phương pháp học tập và phát triển

Nhiệm vụ hàng đầu của trung tâm là đảm bảo sự trao đổi rõ ràng và minh bạch về các yêu cầu của phụ huynh đối với người gia sư, giúp họ đánh giá tính phù hợp và khả năng đáp ứng của gia sư.

12 khả năng để dạy, đặc biệt là trách nhiệm trong việc giao lớp, gãy lớp, xử lý trục trặc hoặc hoàn phí.

Những vấn đề tồn tại và cần nghiên cứu

Trong thời đại công nghệ thông tin phát triển mạnh mẽ, học viên ngày càng tìm kiếm môi trường học tập thuận tiện và chất lượng gia sư có chuyên môn sư phạm tốt Nhu cầu học tập đa dạng và gia tăng nhanh chóng đã buộc các trung tâm phải thay đổi để thích nghi với xu hướng mới.

Trong bốn năm qua, các trung tâm đã liên tục cập nhật và áp dụng công nghệ thông tin vào mô hình kinh doanh, bao gồm việc sử dụng fanpage trên mạng xã hội để quảng bá và chạy quảng cáo, cũng như tạo website giới thiệu và ứng dụng di động nhằm đáp ứng nhu cầu đa dạng của học viên Việc thay đổi và cập nhật phần mềm hệ thống là vô cùng quan trọng và cần được thiết kế một cách tỉ mỉ.

Việc phát triển hệ thống cho các trung tâm tư vấn và phát triển giáo dục cần đầu tư kỹ lưỡng về thiết kế, kiến trúc và cài đặt để tối ưu hóa khả năng mở rộng, phát triển và bảo trì Đồng thời, các yếu tố này cũng đảm bảo an toàn, bảo mật thông tin và giảm thiểu rủi ro về chi phí vận hành.

Khảo sát

Hiện nay, có nhiều trung tâm hoạt động trên toàn quốc, với Hà Nội và Thành phố Hồ Chí Minh là hai địa điểm tập trung nhiều trung tâm uy tín nhất.

Daykemtainha.vn là trung tâm uy tín tại Thành phố Hồ Chí Minh, chuyên cung cấp dịch vụ tư vấn và hỗ trợ cho phụ huynh và học viên về các môn học, ngành học, và phương pháp học tập Trung tâm cam kết đáp ứng nhu cầu thực tế của phụ huynh và học viên bằng cách đăng tải thông tin về các lớp học phù hợp.

13 tốt cho các người dùng có nhu cầu muốn đăng ký làm gia sư thông qua các thao tác và đăng ký đầu vào

Website Daykemtainha.vn thu hút lượng truy cập lớn hàng ngày với giao diện mới mẻ, dễ sử dụng Trang web quản lý người dùng như học viên, phụ huynh và gia sư thông qua việc đăng ký tài khoản, đặc biệt yêu cầu thông tin chuyên môn từ gia sư Ngày nào cũng có lớp học mới được cập nhật, người dùng có thể xem thông tin gia sư và truy cập nhiều blog bổ ích để chọn lựa lớp học phù hợp Trung tâm cung cấp dịch vụ tư vấn qua điện thoại, Zalo và trực tiếp tại văn phòng để hỗ trợ người dùng tốt nhất.

Trung tâm cung cấp một ứng dụng di động, khuyến khích người dùng tải về để cập nhật và sử dụng các dịch vụ một cách hiệu quả hơn.

Lopmoi.giasutrithuc.net, hay Gia sư tri thức, là một trung tâm uy tín và có ảnh hưởng lớn trên mạng xã hội Facebook, chuyên cung cấp dịch vụ cập nhật lớp học mới và tư vấn định hướng cho học viên Bạn có thể theo dõi hoạt động của trung tâm qua fanpage Facebook tại địa chỉ: facebook.com/lopdaykemcantimgiasutaitphcm.

Website lopmoi.giasutrithuc.net là một Landing Page mới, nhằm giới thiệu trung tâm và cập nhật thông tin về các lớp học mới hàng ngày Trước đây, trung tâm đã có một website tương tự nhưng hiện tại đã ngừng hoạt động.

Gia sư Bảo Châu là một trung tâm tư vấn và phát triển giáo dục hàng đầu tại Việt Nam, với nhiều cơ sở hoạt động tại các thành phố lớn như Thành phố Hồ Chí Minh, Khánh Hòa, Hà Nội, Đà Nẵng và Cần Thơ Trung tâm chú trọng vào việc tư vấn và hỗ trợ học viên, giúp nâng cao chất lượng giáo dục.

Trung tâm chú trọng đến xu hướng học tập và phát triển của 14 phụ huynh, đồng thời quản lý và hỗ trợ gia sư trong việc đăng ký và nhận lớp Các lớp học sẽ được cập nhật liên tục 24/7, đảm bảo uy tín và chất lượng giảng dạy luôn đạt mức tốt nhất.

Hiện nay, trung tâm hoạt động qua nhiều hình thức như trực tiếp tại văn phòng trên toàn quốc, tư vấn online qua Facebook, Zalo và điện thoại Trung tâm sử dụng website giasubaochau.net để quản lý và đăng tin các lớp học cần gia sư, đồng thời hỗ trợ đăng nhập và đăng ký làm gia sư Ngoài ra, trung tâm khuyến khích người dùng sử dụng ứng dụng di động để đảm bảo an toàn và nâng cao chất lượng hỗ trợ.

Gia sư Thăng Long, hay trungtamdaykem.com, là một trong những trung tâm lâu đời tại Thành phố Hồ Chí Minh, cung cấp đầy đủ dịch vụ tư vấn và phát triển giáo dục Tuy nhiên, website của trung tâm hiện nay chủ yếu chỉ cho phép xem thông tin các lớp học và giới thiệu về trung tâm, với giao diện cũ và tương tự như nhiều trung tâm nhỏ khác Việc sử dụng website gặp khó khăn do bộ lọc và tìm kiếm lớp học không tối ưu, dẫn đến trải nghiệm không thoải mái và có thể lọc thông tin sai.

CƠ SỞ LÝ THUYẾT

ASP.NET CORE 7

2.1.1 ASP.NET Core là gì?

ASP.NET Core là một framework mã nguồn mở đa nền tảng, lý tưởng cho việc phát triển các ứng dụng hiện đại dựa trên nền tảng NET Framework này cho phép ứng dụng chạy trên cả NET Core và phiên bản đầy đủ của NET Framework, được tối ưu hóa cho việc triển khai trên đám mây hoặc trên nền tảng on-premise.

ASP.NET Core là một framework được thiết kế theo mô hình module, giúp tối ưu hóa tài nguyên và giảm chi phí phát triển Điều này mang lại sự linh hoạt trong việc xây dựng giải pháp, cho phép phát triển và triển khai ứng dụng đa nền tảng trên các hệ điều hành Windows, Mac và Linux.

ASP.NET Core đã chuyển sang mô hình mã nguồn mở, đánh dấu một bước tiến quan trọng trong lĩnh vực phát triển phần mềm Sự thay đổi này không chỉ mang tính chất đáng chú ý mà còn mở ra xu hướng mới cho ngôn ngữ lập trình hiện đại.

ASP.NET Core đã ra đời và được phát triển như một sản phẩm của Net Framework, nhận được sự ủng hộ mạnh mẽ từ cộng đồng Sự xuất hiện của ASP.NET Core đã đánh dấu một bước chuyển mình mạnh mẽ với những đặc điểm nổi bật của công nghệ lập trình hiện đại.

ASP.NET Core được phát triển dựa trên kinh nghiệm từ các framework khác, với mục tiêu chính là module hóa Nó sử dụng các gói module gọi là NuGet Packages, giúp tối ưu hóa thiết kế ứng dụng chỉ với những thành phần cần thiết Nhờ đó, ứng dụng xây dựng trên nền tảng ASP.NET Core có kích thước nhỏ hơn, bảo mật tốt hơn, hiệu suất cao hơn và tính ổn định vượt trội.

16 hơn Quá trình xây dựng cũng trở nên đơn giản hơn, giúp việc phát triển và bảo trì dễ dàng hơn nhiều

Khi làm việc với ASP.NET Core, người dùng được hưởng những cải tiến đáng kể, bao gồm [2]:

- Tương thích hệ thống xây dựng Web UI và Web APIs

- Tích hợp những client–side frameworks hiện đại và những luồng phát triển

- Hệ thống cấu hình dựa trên mô hình đám mây thật sự

- Dependency injection được xây dựng sẵn

- HTTP request được tối ưu nhẹ hơn

- Có thể host trên IIS hoặc self- host trong process của riêng mình

- Được xây dựng trên NET Core, hỗ trợ thực sự app versioning

- Chuyển thực thể, thành phần, module như những NuGet packages

- Các công cụ mới để đơn giản hóa quá trình phát triển web hiện đại

- Xây dựng và chạy đa nền tảng

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

Entity Framework Core

2.2.1 Entity Framework Core là gì?

Entity Framework Core (EF Core) là một framework ánh xạ cơ sở dữ liệu - đối tượng hiện đại dành cho NET, cho phép thực hiện các truy vấn LINQ, theo dõi thay đổi, và cập nhật cấu trúc cơ sở dữ liệu EF Core tương thích với nhiều hệ quản trị cơ sở dữ liệu như SQL Server, SQL Azure, SQLite, Azure Cosmos DB, MySQL, PostgreSQL và nhiều loại cơ sở dữ liệu khác thông qua mô hình plugin linh hoạt.

2.2.2 Lịch sử ra đời và các phiên bản

Entity Framework, ra mắt vào năm 2008, đã đơn giản hóa việc truy vấn cơ sở dữ liệu quan hệ, giúp dễ dàng học hỏi và giảm đáng kể thời gian phát triển dự án.

Lịch sử phiên bản EF Core:

- EF Core 2.0 tháng 8 năm 2017 NET Core 2.0, VS 2017

- Lõi EF 1.1 Tháng 11 năm 2016 NET Lõi 1.1

- EF Core 1.0 tháng 6 năm 2016 NET Core 1.0

2.2.3 Tại sao lại sử dụng Entity Framework Core?

Sử dụng Entity Framework mang đến những lợi ích sau đây:

Khi thực hiện truy vấn dữ liệu, việc sử dụng Linq to Entities cho phép thao tác trực tiếp với các đối tượng từ Entity Framework, giúp loại bỏ mã SQL và giảm độ phức tạp trong quản lý cơ sở dữ liệu, đồng thời tăng tính linh hoạt trong lập trình.

Việc cập nhật các lớp và câu lệnh trở nên dễ dàng hơn khi có sự thay đổi trong cơ sở dữ liệu, giúp tiết kiệm thời gian đáng kể và loại bỏ nhu cầu điều chỉnh thủ công mã mỗi khi cấu trúc cơ sở dữ liệu thay đổi.

Entity Framework tự động tạo ra các lớp và câu lệnh cho các thao tác chọn, chèn, cập nhật và xóa dữ liệu từ cơ sở dữ liệu quan hệ, giúp giảm thiểu công sức lập trình thủ công và đảm bảo tính nhất quán, chính xác trong quá trình xử lý dữ liệu.

Entity Framework cung cấp các lớp tự động để truy xuất cơ sở dữ liệu, giúp lập trình viên tiết kiệm thời gian viết mã Điều này hỗ trợ mạnh mẽ trong việc giảm thiểu công sức cần thiết khi thao tác với cơ sở dữ liệu.

Microsoft SQL Server

Microsoft SQL Server is a relational database management system (RDBMS) developed by Microsoft in 1988 It is designed for creating, maintaining, managing, and deploying RDBMS solutions.

Phần mềm SQL Server được ưa chuộng nhờ khả năng tối ưu cho môi trường cơ sở dữ liệu lớn lên đến Tera-Byte, phục vụ hàng ngàn người dùng đồng thời Ngoài ra, ứng dụng này còn cung cấp nhiều kiểu lập trình SQL đa dạng.

ANSI SQL (SQL truyền thống) đến SQL và cả T-SQL (Transaction-SQL) được sử dụng cho cơ sở dữ liệu quan hệ nâng cao

Microsoft SQL Server cung cấp nhiều dịch vụ và công cụ quản lý dữ liệu, bao gồm SQL Server Integration Services (SSIS), SQL Server Data Quality Services và SQL Server Master Data Services Để phát triển cơ sở dữ liệu, người dùng có thể sử dụng SQL Server Data, trong khi SQL Server Management Studio (SSMS) hỗ trợ quản lý, triển khai và giám sát cơ sở dữ liệu Đối với phân tích dữ liệu, SQL Server cung cấp các dịch vụ như SQL Server Analysis Services (SSAS), SQL Server Reporting Services (SSRS) và Machine Learning Services (R Services), giúp người dùng phân tích và báo cáo dữ liệu hiệu quả.

Kiến trúc Clean Architecture

2.4.1 Kiến trúc Clean Architecture là gì?

Clean Architecture là một kiến trúc ứng dụng nổi bật, tập trung vào việc loại bỏ sự phụ thuộc giữa các đối tượng và các lớp trong ứng dụng Nguyên lý này được phát triển từ Dependency Inversion, một trong những nguyên lý quan trọng trong SOLID.

2.4.2 Mô hình Clean Architecture và các thành phần cấu tạo

Kiến trúc Clean Architecture bao gồm bốn lớp được biểu diễn bằng các vòng tròn đồng tâm, trong đó các vòng tròn bên trong hoàn toàn không biết gì về các vòng tròn bên ngoài Nguyên tắc "hướng tâm" này tạo ra sự tách biệt rõ ràng giữa các lớp, giúp tối ưu hóa khả năng bảo trì và phát triển phần mềm.

Hình 2.1 The Clean Architecture By Robert C Martin (Uncle Bob) [3][4]

Hình 2.2 The Clean Architecture Cone By Robert C Martin (Uncle Bob) [3][4]

Về cơ bản các layer này sẽ làm việc qua thông qua các trừu tượng của nhau (interfaces) [3][4]

Entities are the foundational layer in a system and represent the most critical components They consist of specific objects and their associated business logic rules In Object-Oriented Programming (OOP), entities correspond to objects that encapsulate methods and properties, adhering to the principle of encapsulation.

- chỉ bên trong Object mới có thể thay đổi trạng thái (State) của chính nó [3]

Trong đối tượng Person, thuộc tính age không được nhỏ hơn 1 Để thay đổi giá trị của age, chúng ta cần tạo một hàm public setAge, hàm này cũng sẽ kiểm tra các điều kiện liên quan đến age.

Các business logic trong layer Entities hoàn toàn độc lập với các business logic ở các layer bên ngoài như Use Cases Ví dụ, quy tắc yêu cầu người dùng phải từ 18 tuổi trở lên để tạo tài khoản vẫn giữ nguyên giá trị của thuộc tính Age trong Entities.

Use Cases là layer chứa các business logic ở cấp độ cụ thể từng Use Case (hay application)[3][4]

VD: Use Case đăng ký tài khoản (tạo mới một Person/Account) sẽ cần tổ hợp một hoặc nhiều Entities tuỳ vào độ phức tạp của Use Case

Business logic của Use Case không phụ thuộc vào nguồn dữ liệu, thư viện adapter hay cách thức hiển thị dữ liệu, vì những yếu tố này thuộc về nhiệm vụ của layer Interface Adapters.

Interface Adapters are responsible for converting data formats to suit specific Use Cases and Entities, ensuring compatibility for both internal and external application needs.

Thông tin người dùng bao gồm các dữ liệu nhạy cảm như Email, Số điện thoại và Địa chỉ Tuy nhiên, không phải lúc nào dữ liệu cũng đầy đủ để phục vụ cho giao diện người dùng (GUI) trên web.

App) Tương tự với tuỳ vào hệ thống Database mà các adapter phải format dữ liệu hợp lý

Như vậy dữ liệu đầu vào và ra ở tầng Interface Adapter chỉ cần đủ và hợp lý

Tầng Frameworks & Drivers đảm nhiệm việc thu thập và hiển thị dữ liệu, do đó người dùng không cần quan tâm đến cách thức cụ thể mà dữ liệu được xử lý.

Frameworks & Drivers là lớp ngoài cùng trong kiến trúc Clean Architecture, bao gồm các công cụ cụ thể đáp ứng nhu cầu của người dùng cuối như thiết bị, web, ứng dụng và cơ sở dữ liệu Tầng này được xem là "nhẹ" nhất trong kiến trúc, vì không yêu cầu viết quá nhiều mã nguồn.

Trên thực tế, đây là nơi "biết tất cả", đảm nhận vai trò khởi tạo các đối tượng cho các tầng bên trong, hay còn được gọi là Setup Dependencies.

PHÂN TÍCH THIẾT KẾ HỆ THỐNG

Đối tượng và phạm vi nghiên cứu và lựa chọn giải pháp công nghệ

- Phụ huynh / học sinh có nhu cầu tìm lớp học gia sư, tư vấn giáo dục

- Gia sư có nhu cầu tìm lớp dạy thêm

- Nhân viên trung tâm cần quản lý nhiều lớp học và tài khoản cá nhân của gia sư, học viên

- Phạm vi môi trường: Triển khai trên website

+ Quản lý các lớp học và xác thực các tài khoản

+ Tìm kiếm lớp dạy phù hợp với chuyên môn của người dùng

+ Phụ huynh / học viên được tư vấn, đăng tin tìm lớp học

3.1.3 Lựa chọn giải pháp công nghệ

- ASP.NET Core 7.0 following The Clean Architecture

- Database: EF Core 7.0, SQL Server

Kiến trúc hệ thống

Hình 3.1 Kiến trúc hệ thống

Domain.Shared là tầng cơ sở mà tất cả các tầng khác trong hệ thống có thể phụ thuộc, trực tiếp hoặc gián tiếp Các thành phần trong tầng này có khả năng được sử dụng linh hoạt ở mọi vị trí trong hệ thống.

Domain là tầng phụ thuộc vào Domain.Shared, vốn đã là phần của domain Tầng này tập hợp các lớp đối tượng quan trọng cho hệ thống doanh nghiệp, được gọi là thực thể (Entity), cùng với giao diện của các dịch vụ liên quan đến cơ sở dữ liệu.

Tầng Application.Contracts bao gồm nhiều lớp đối tượng gọi là DTO (Data Transfer Object), có cấu trúc tương tự với các thực thể trong miền, nhằm mục đích bảo mật thông tin Ngoài ra, tầng này còn chứa các interface cho các dịch vụ xử lý nghiệp vụ của hệ thống.

Tầng Application phụ thuộc trực tiếp vào lớp Application.Contracts, nơi cài đặt các interface được định nghĩa và sử dụng các DTO Đồng thời, tầng Application cũng liên kết với Domain, vì việc cài đặt các dịch vụ cần đến các thực thể của hệ thống.

Hạ tầng là tầng chứa và cài đặt các thành phần, dịch vụ bên thứ ba, phụ thuộc vào tầng Domain để triển khai các dịch vụ đã được định nghĩa Đây cũng là tầng chính thực hiện các thao tác liên quan đến cơ sở dữ liệu, có thể tích hợp thêm các framework ORM (Object Relational Mapping) để hỗ trợ xử lý dữ liệu Tầng hạ tầng có tính linh hoạt cao, dễ dàng thay thế và bảo trì do không phụ thuộc vào các lớp khác.

Tầng Presentation là lớp ngoài cùng, bao gồm các công cụ cụ thể đáp ứng nhu cầu của người dùng cuối như thiết bị, web, ứng dụng và cơ sở dữ liệu Tầng này có tính linh hoạt cao và dễ dàng thay đổi để phù hợp với yêu cầu sử dụng.

Mô hình Use Case

Hình 3.2 Sơ đồ Use Case mức tổng quát

3.3.2 Phân rã và đặc tả Use Case

3.3.2.1 Use Case “Xem thông tin lớp và gia sư”

Hình 3.3 Use case “Xem thông tin lớp và gia sư”

Bảng 3.1 Danh sách Use-case “Xem thông tin lớp và gia sư”

1 Xem các lớp đang cần gia sư

2 Xem thông tin chi tiết của lớp

3 Xem các gia sư của trung tâm

4 Xem thông tin chi tiết của gia sư

5 Chat với tư vấn viên

6 Quản lý các môn học

7 Quản lý thông tin các lớp học

● Đặc tả Use Case “Xem các lớp đang cần gia sư”

Bảng 3.2 Đặc tả Use-case “Xem các lớp đang cần gia sư”

Tên Use Case Xem các lớp đang cần gia sư

Sự kiện kích hoạt Người dùng muốn xem tất cả các lớp đang tìm gia sư

Luồng chính 1 Người dùng truy cập trang web

2 Người dùng bấm vào mục New Classes

Luồng thay thế Không Điều kiện trước Điện thoại / máy tính phải có kết nối mạng Điều kiện sau Người dùng xem được danh sách các lớp mới

● Đặc tả Use Case “Xem thông tin chi tiết của lớp”

Bảng 3.3 Đặc tả Use-case “Xem thông tin chi tiết của lớp”

Tên Use Case Xem thông tin chi tiết của lớp

Sự kiện kích hoạt Người dùng muốn xem thông tin chi tiết của một lớp

Luồng chính 1 Người dùng truy cập trang web

2 Người dùng bấm vào mục New Classes

3 Người dùng bấm vào một lớp bất kỳ Điều kiện trước Điện thoại / máy tính phải có kết nối mạng Điều kiện sau Người dùng xem được thông tin chi tiết của một lớp

● Đặc tả Use Case “Xem các gia sư của trung tâm”

Bảng 3.4 Đặc tả Use-case “Xem các gia sư của trung tâm”

Tên Use Case Xem các gia sư của trung tâm

Sự kiện kích hoạt Người dùng muốn xem thông tin tất cả gia sư

Luồng chính 1 Người dùng truy cập trang web

2 Người dùng bấm vào mục Tutors Điều kiện trước Điện thoại / máy tính phải có kết nối mạng Điều kiện sau Người dùng xem được danh sách các gia sư

● Đặc tả Use Case “Xem thông tin chi tiết của gia sư”

Bảng 3.5 Đặc tả Use-case “Xem thông tin chi tiết của gia sư”

Tên Use Case Xem thông tin chi tiết của gia sư

Sự kiện kích hoạt Người dùng muốn xem thông tin chi tiết của một gia sư

Luồng chính 1 Người dùng truy cập trang web

2 Người dùng bấm vào mục Tutors

3 Người dùng bấm vào một gia sư bất kỳ Điều kiện trước Điện thoại / máy tính phải có kết nối mạng Điều kiện sau Người dùng xem được thông tin chi tiết của một gia sư

● Đặc tả Use Case “Chat với tư vấn viên”

Bảng 3.6 Đặc tả Use-case “Chat với tư vấn viên”

Tên Use Case Chat với tư vấn viên

Sự kiện kích hoạt Người dùng cần được trung tâm tư vấn

Luồng chính 1 Người dùng truy cập trang web

2 Người dùng bấm vào icon Messenger góc dưới bên phải

3 Người dùng bấm vào nút Start Chat

4 Người dùng chọn Use Messenger

5 Hệ thống chuyển sang màn hình đăng nhập của Facebook

6 Người dùng nhập tài khoản Facebook và chọn lệnh đăng nhập

7 Facebook xác thực thông tin đăng nhập thành công

8 Người dùng nhập tin nhắn vào chat box

9 Hệ thống nhận được tin nhắn của người dùng

Luồng thay thế 4a Người dùng chọn Continue as Guest

Use Case tiếp tục bước 8

Luồng ngoại lệ 7a 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

Để sử dụng Use Case, trước tiên, điện thoại hoặc máy tính cần phải có kết nối mạng Sau khi đáp ứng điều kiện này, người dùng sẽ nhận được tư vấn thông qua chat box.

● Đặc tả Use Case “Quản lý các môn học”

Bảng 3.7 Đặc tả Use-case “Quản lý các môn học”

Tên Use Case Quản lý các môn học

Sự kiện kích hoạt Quản lý cần quản lý các môn học

Luồng chính 1 Quản lý truy cập trang web

2 Quản lý thực hiện Use Case “Đăng nhập” UC-2.2

3 Quản lý bấm vào mục Subject

4 Quản lý bấm vào Edit ở một môn bất kỳ cần chỉnh sửa

5 Quản lý nhập các thông tin cần chỉnh

6 Quản lý bấm chọn Submit

7 Hệ thống ghi nhận những thay đổi về thông tin môn học đó

Luồng thay thế 4a Quản lý bấm vào Details ở một môn bất kỳ cần để xem thông tin chi tiết

4a1 Hệ thống hiển thị thông tin chi tiết môn học

4b Quản lý bấm vào Delete ở một môn bất kỳ để xoá môn đó

4b1 Hệ thống hiển thị thông tin chi tiết môn học

4b2 Quản lý bấm vào Delete để xác nhận xoá

4b3 Hệ thống lưu lại thay đổi Điều kiện trước Điện thoại / máy tính phải có kết nối mạng

Quản lý cần có tài khoản quản lý để nhận thông tin mong muốn và hệ thống sẽ cập nhật các thay đổi liên quan đến môn học (nếu có).

● Đặc tả Use Case “Quản lý thông tin các lớp học”

Bảng 3.8 Đặc tả Use-case “Quản lý thông tin các lớp học”

Tên Use Case Quản lý thông tin các lớp học

Sự kiện kích hoạt Quản lý cần quản lý các lớp học

Luồng chính 1 Quản lý truy cập trang web

2 Quản lý thực hiện Use Case “Đăng nhập” UC-2.2

3 Quản lý bấm vào mục Subject

4 Quản lý bấm vào Edit ở một lớpbất kỳ cần chỉnh sửa

5 Quản lý nhập các thông tin cần chỉnh

6 Quản lý bấm chọn Submit

7 Hệ thống ghi nhận những thay đổi về thông tin lớp

Luồng thay thế 4a Quản lý bấm vào Details ở một lớp bất kỳ cần để xem thông tin chi tiết

4a1 Hệ thống hiển thị thông tin chi tiết lớp đó

4b Quản lý bấm vào Delete ở một lớp bất kỳ để xoá lớp đó 4b1 Hệ thống hiển thị thông tin chi tiết lớp học

4b2 Quản lý bấm vào Delete để xác nhận xoá

4b3 Hệ thống lưu lại thay đổi

3a Quản lý bấm vào mục Create để tạo lớp mới

3a1 Quản lý nhập các thông tin chi tiết của lớp

Use Case tiếp tục bước 6 Điều kiện trước Điện thoại / máy tính phải có kết nối mạng

Tài khoản quản lý được tạo sẵn Điều kiện sau Người dùng đăng nhập thành công vào tài khoản quản lý

Người dùng nhận được thông tin mong muốn & hệ thống cập nhật thông tin thay đổi về lớp (nếu có)

Hình 3.4 Use case “Đăng nhập”

Bảng 3.9 Danh sách Use Case “Đăng Nhập”

5 Quản lý thông tin cá nhân

● Đặc tả Use Case “Đăng ký”

Bảng 3.10 Đặc tả Use-case “Đăng ký”

Tên Use Case Đăng ký

Sự kiện kích hoạt Người dùng có nhu cầu tại tài khoản trên website trung tâm

Luồng chính 1 Người dùng truy cập trang web

2 Người dùng bấm chọn Sign in

3 Người dùng chọn Create a account

4 Người dùng nhập các thông tin yêu cầu và chọn Create Account

Luồng ngoại lệ 4a Người dùng nhập Email không đúng định dạng

4a1 Hệ thống hiển thị thông báo lỗi

Thực hiện lại bước 4 Điều kiện trước Điện thoại / máy tính phải có kết nối mạng

Người dùng phải có email Điều kiện sau Người dùng đăng ký tài khoản thành công

● Đặc tả Use Case “Đăng nhập”

Bảng 3.11 Đặc tả Use-case “Đăng nhập”

Tên Use Case Đăng nhập

Tác nhân Khách hàng, Quản lý

Sự kiện kích hoạt Người dùng có nhu cầu đăng nhập tài khoản trên website trung tâm

Luồng chính 1 Người dùng truy cập trang web

2 Người dùng bấm chọn Sign in

3 Người dùng nhập tài khoản, mật khẩu và chọn Login

4 Hệ thống xác thực thông tin đăng nhập thành công và cho phép người dùng truy cập tài khoản

Luồng ngoại lệ 4a 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

4a1 Người dùng chọn lệnh Forgot Password

Tiếp tục Use Case UC-2.3 Điều kiện trước Điện thoại / máy tính phải có kết nối mạng Điều kiện sau Người dùng đăng nhập thành công vào tài khoản

● Đặc tả Use Case “Quên mật khẩu”

Bảng 3.12 Đặc tả Use-case “Quên mật khẩu”

Tên Use Case Quên mật khẩu

Tác nhân Khách hàng, Quản lý

Sự kiện kích hoạt Người dùng quên mật khẩu khi đăng nhập

Luồng chính 1 Người dùng truy cập trang web

2 Người dùng bấm chọn Sign in

3 Người dùng chọn lệnh Forgot Password

4 Người dùng nhập email đăng ký tài khoản

5 Hệ thống xác thực email thành công và gửi email reset mật khẩu

Luồng ngoại lệ 4a Hệ thống xác thực email không thành công và hiển thị thông báo

Use Case thực hiện lại bước 4 Điều kiện trước Điện thoại / máy tính phải có kết nối mạng

Người dùng phải có sẵn tài khoản Điều kiện sau Người dùng reset mật khẩu thành công

● Đặc tả Use Case “Đổi mật khẩu”

Bảng 3.13 Đặc tả Use-case “Đổi mật khẩu”

Tên Use Case Đổi mật khẩu

Tác nhân Khách hàng, Quản lý

Sự kiện kích hoạt Người dùng có nhu cầu đổi mật khẩu

Luồng chính 1 Người dùng truy cập trang web

2 Người dùng thực hiện Use Case “Đăng nhập” UC-2.2

3 Người dùng bấm vào tên tài khoản được hiển thị ở góc trên bên phải

4 Người dùng bấm vào My Profile, chọn tab Change Password

5 Người dùng nhập mật khẩu hiện tại, mật khẩu mới và xác nhận mật khẩu; bấm Change Password

6 Hệ thống xác thực mật khẩu thành công và hiển thị thông báo

Luồng ngoại lệ 6a Hệ thống xác thực mật khẩu thất bại và hiển thị thông báo

Use Case thực hiện lại bước 5 Điều kiện trước Điện thoại / máy tính phải có kết nối mạng

Người dùng phải có sẵn tài khoản

Người dùng đã đăng nhập tài khoản Điều kiện sau Người dùng đổi mật khẩu thành công

● Đặc tả Use Case “Quản lý thông tin cá nhân”

Bảng 3.14 Đặc tả Use-case “Quản lý thông tin cá nhân”

Tên Use Case Quản lý thông tin cá nhân

Tác nhân Khách hàng, Quản lý

Sự kiện kích hoạt Người dùng có nhu cầu chỉnh sửa thông tin cá nhân

Luồng chính 1 Người dùng truy cập trang web

2 Người dùng thực hiện Use Case “Đăng nhập” UC-2.2

3 Người dùng bấm vào tên tài khoản được hiển thị ở góc trên bên phải

4 Người dùng bấm vào My Profile, chọn tab Edit Profile

5 Người dùng nhập mật khẩu hiện tại, mật khẩu mới và xác

38 nhận mật khẩu; bấm Change Password

6 Hệ thống xác thực mật khẩu thành công và hiển thị thông báo

Luồng ngoại lệ 6a Hệ thống xác thực mật khẩu thất bại và hiển thị thông báo

Use Case thực hiện lại bước 6 Điều kiện trước Điện thoại / máy tính phải có kết nối mạng

Người dùng phải có sẵn tài khoản

Người dùng đã đăng nhập tài khoản Điều kiện sau Người dùng đổi thông tin tài khoản cá nhân thành công

● Đặc tả Use Case “Đăng xuất”

Bảng 3.15 Đặc tả Use-case “Đăng xuất”

Tên Use Case Đăng xuất

Tác nhân Khách hàng, Quản lý

Sự kiện kích hoạt Người dùng có nhu cầu chỉnh sửa thông tin cá nhân

Luồng chính 1 Người dùng truy cập trang web

2 Người dùng thực hiện Use Case “Đăng nhập” UC-2.2

3 Người dùng bấm vào tên tài khoản được hiển thị ở góc trên bên phải và chọn Sign out Điều kiện trước Điện thoại / máy tính phải có kết nối mạng

Người dùng phải có sẵn tài khoản

Người dùng đã đăng nhập tài khoản

39 Điều kiện sau Người dùng đăng xuất thành công

3.3.2.3 Use Case “Đăng ký nhận lớp”

Hình 3.5 Use case “Đăng ký nhận lớp”

Bảng 3.16 Danh sách Use-case “Đăng ký nhận lớp”

1 Đăng ký làm gia sư

3 Xem thông tin các lớp đang dạy

4 Xác thực thông tin gia sư

● Đặc tả Use Case “Đăng ký làm gia sư ”

Bảng 3.17 Đặc tả Use-case “Đăng ký làm gia sư”

Tên Use Case Đăng ký làm gia sư

Sự kiện kích hoạt Người dùng có nhu cầu đăng ký làm gia sư

Luồng chính 1 Người dùng truy cập trang web

2 Người dùng thực hiện Use Case “Đăng nhập” UC-2.2

3 Người dùng bấm vào Tutor Register

4 Người dùng điền các thông tin yêu cầu và bấm chọn Submit

Luồng thay thế 2a Người dùng không có tài khoản, bấm chọn Tutor

3a Người dùng điền các thông tin yêu cầu

Người dùng cần tích chọn mục "Create an account", sau đó nhập mật khẩu cho tài khoản và nhấn "Submit" Trước khi thực hiện, điện thoại hoặc máy tính phải có kết nối mạng Sau khi hoàn tất, người dùng sẽ đăng ký thành công làm gia sư.

● Đặc tả Use Case “Yêu cầu nhận lớp”

Bảng 3.18 Đặc tả Use-case “Yêu cầu nhận lớp”

Tên Use Case Yêu cầu nhận lớp

Sự kiện kích hoạt Gia sư có nhu cầu nhận một lớp để dạy

Luồng chính 1 Gia sư truy cập vào trang web

2 Gia sư thực hiện Use Case “Đăng nhập” UC-2.2

3 Gia sư bấm xem chi tiết lớp muốn nhận và chọn Register this class

4 Gia sư tiến hành thanh toán phí nhận lớp, hệ thống xác thực giao dịch thành công,

5 Gia sư xem được số điện thoại người học và tiến hành liên hệ

Luồng ngoại lệ 4 Hệ thống xác thực giao dịch thất bại

Use Case dừng lại Điều kiện trước Điện thoại / máy tính phải có kết nối mạng

Người dùng đã thực hiện Use Case “Đăng ký làm gia sư” UC-3.1

Lớp chưa có ai nhận Điều kiện sau Người dùng nhận lớp thành công

● Đặc tả Use Case “Xem thông tin các lớp đang dạy”

Bảng 3.19 Đặc tả Use-case “Xem thông tin các lớp đang dạy”

Tên Use Case Xem thông tin các lớp đang dạy

Sự kiện kích hoạt Gia sư có nhu cầu xem các lớp đang dạy

Luồng chính 1 Người dùng truy cập vào trang web

2 Người dùng thực hiện Use Case “Đăng nhập” UC-2.2

3 Người dùng bấm vào tên tài khoản được hiển thị ở góc trên bên phải

4 Người dùng bấm vào My Profile, chọn tab Teaching Class Điều kiện trước Điện thoại / máy tính phải có kết nối mạng

Người dùng đã thực hiện Use Case “Đăng ký làm gia sư” UC-3.1 Điều kiện sau Người dùng xem được danh sách các lớp từng nhận thành công

● Đặc tả Use Case “Xác thực thông tin gia sư”

Bảng 3.20 Đặc tả Use-case “Xác thực thông tin gia sư”

Tên Use Case Xác thực thông tin gia sư

Sự kiện kích hoạt Nhận được thông tin đăng ký làm gia sư mới

Luồng chính 1 Người dùng truy cập vào trang web

2 Người dùng thực hiện Use Case “Đăng nhập” UC-2.2

3 Người dùng bấm chọn Tutor trong mục User Management

4 Người dùng chọn lệnh Edit ở gia sư muốn xác thực

5 Người dùng chọn check ở ô Is tutor verified và bấm Submit để lưu lại Điều kiện trước Điện thoại / máy tính phải có kết nối mạng Điều kiện sau Quản lý xác thực thành công gia sư mới

3.3.2.4 Use Case “Yêu cầu tạo lớp mới”

Hình 3.6 Use case “Yêu cầu tạo lớp mới”

Bảng 3.21 Danh sách Use-case “Yêu cầu tạo lớp mới”

1 Yêu cầu tạo lớp mới

2 Yêu cầu gia sư cụ thể

3 Xem thông tin các lớp đang học

4 Xác thực thông tin lớp học

● Đặc tả Use Case “Yêu cầu tạo lớp mới”

Bảng 3.22 Đặc tả Use-case “Yêu cầu tạo lớp mới”

Tên Use Case Yêu cầu tạo lớp mới

Sự kiện kích hoạt Khách hàng có nhu cầu tạo lớp mới

Luồng chính 1 Người dùng truy cập vào trang web

2 Người dùng bấm chọn Get Started

3 Người dùng nhập thông tin liên hệ, yêu cầu về lớp học và gia sư

4 Người dùng bấm chọn Create

Luồng thay thế 2a Người dùng thực hiện Use Case “Chat với tư vấn viên”

UC-1.5 và nhớ nhân viên tạo lớp

Use Case kết thúc Điều kiện trước Điện thoại / máy tính phải có kết nối mạng Điều kiện sau Khách hàng yêu cầu tạo lớp mới thành công

● Đặc tả Use Case “Yêu cầu gia sư cụ thể”

Bảng 3.23 Đặc tả Use-case “Yêu cầu gia sư cụ thể”

Tên Use Case Yêu cầu gia sư cụ thể

Sự kiện kích hoạt Khách hàng có muốn chọn một gia sư cụ thể

Luồng chính 1 Người dùng truy cập vào trang web

2 Người dùng bấm vào mục Tutors

3 Người dùng bấm vào xem chi tiết một gia sư mình muốn và chọn “Create a request”

4 Người dùng nhập thông tin liên hệ, yêu cầu về lớp học và bấm Create

Luồng thay thế 2a Người dùng thực hiện Use Case “Chat với tư vấn viên”

UC-1.5 và nhớ nhân viên liên hệ gia sư

Để sử dụng tính năng tạo lớp mới với gia sư chỉ định, khách hàng cần đảm bảo rằng điện thoại hoặc máy tính của mình có kết nối mạng ổn định Sau khi đáp ứng điều kiện này, khách hàng sẽ thành công trong việc tạo lớp mới.

● Đặc tả Use Case “Xem thông tin các lớp đang học”

Bảng 3.24 Đặc tả Use-case “Xem thông tin các lớp đang học”

Tên Use Case Xem thông tin các lớp đang học

Sự kiện kích hoạt Người dùng muốm xem các lớp từng tạo

Luồng chính 1 Người dùng truy cập vào trang web

2 Người dùng thực hiện Use Case “Đăng nhập” UC-2.2

3 Người dùng bấm vào tên tài khoản được hiển thị ở góc trên bên phải

4 Người dùng bấm vào My Profile, chọn tab Learning Class Điều kiện trước Điện thoại / máy tính phải có kết nối mạng Điều kiện sau Xem được các lớp đã và đang học

● Đặc tả Use Case “Xác thực thông tin lớp học”

Bảng 3.25 Đặc tả Use-case “Xác thực thông tin lớp học”

Tên Use Case Xác thực thông tin lớp học

Sự kiện kích hoạt Quản lý cần xác thực thông tin lớp học

Luồng chính 1 Người dùng truy cập vào trang web

2 Người dùng thực hiện Use Case “Đăng nhập” UC-2.2

3 Người dùng bấm chọn Class Informations

4 Người dùng chọn Edit ở lớp muốn xác thực

5 Người dùng xác thực thông tin chính xác và set Current status thành Available

6 Người dùng chọn Submit để lưu lại

Luồng ngoại lệ 5 Người dùng xác thực thông tin gia sư không chính xác

Use Case dừng lại Điều kiện trước Điện thoại / máy tính phải có kết nối mạng Điều kiện sau Người dùng xác thực thông tin gia sư thành công

Sơ đồ mối quan hệ giữa các thực thể

Hình 3.7 Tổng quan cơ sở dữ liệu

Mô tả dữ liệu

Bảng 3.26 Mô tả bảng dữ liệu User

STT Tên thuộc tính Kiểu Ràng buộc Ý nghĩa/Ghi chú

1 Id uniqueidentifier PK Khóa chính của bảng

2 FirstName nvarchar Not-null Tên của người dùng

3 LastName nvarchar Not-null Họ (và tên lót) của người dùng

4 Email nvarchar Not-null Email dùng để đăng nhập

5 Address nvarchar Địa chỉ người dùng

6 BirthYear int Not-null Năm sinh của người dùng

7 CreationTime datetime2 Thời gian tạo tài khoản

8 Description nvarchar Mô tả bản thân của người dùng

9 Gender int Not-null Giới tính người dùng

10 IsDeleted bit Tài khoản này đã xóa hay chưa

11 IsEmailConfirmed bit Email của tài khoản này được xác thực chưa

12 PhoneNumber nvarchar Not-null Số điện thoại của người dùng

13 Role int Not-null Vai trò của người dùng

14 Image nvarchar Not-null Ảnh đại điện của người dùng

Bảng 3.27 Mô tả bảng dữ liệu Subject

STT Tên thuộc tính Kiểu Ràng buộc Ý nghĩa/Ghi chú

1 Id uniqueidentifier PK Khóa chính của bảng

2 Name nvarchar Not-null Tên của môn học

3 Description nvarchar Not-null Mô tả môn học

4 CreationTime datetime2 Not-null Thời gian tạo môn học

5 IsDeleted bit Môn học này đã xóa hay chưa

Bảng 3.28 Mô tả bảng dữ liệu Tutor

STT Tên thuộc tính Kiểu Ràng buộc Ý nghĩa/Ghi chú

1 Id uniqueidentifier PK,FK Khóa chính của bảng

2 AcademicLevel int Not-null Trình độ học vấn của gia sư

3 IsVerified bit Not-null Gia sư đã được xác nhận chưa?

4 Rate smallint Not-null Số sao đánh giá của gia sư

Bảng 3.29 Mô tả bảng dữ liệu ClassInformation

STT Tên thuộc tính Kiểu Ràng buộc Ý nghĩa/Ghi chú

1 Id uniqueidentifier PK Khóa chính của bảng

2 Title nvarchar Not-null Tiêu đề của môn học

3 Description nvarchar Not-null Mô tả lớp học

4 CreationTime nvarchar Not-null Thời gian tạo lớp học

5 IsDeleted nvarchar Lớp học này đã xóa hay chưa

6 Status int Not-null Tình trạng của lớp học

7 LearningMode int Not-null Thể thức học của lớp

8 Fee real Not-null Phí dạy từng buổi

9 ChargeFee real Not-null Phí nhận lớp

10 GenderRequireme nt int Not-null Yêu cầu giới tính

11 AcademicLevelRe quirement int Not-null Yêu cầu trình độ học vấn

12 NumberOfStudent int Not-null Tổng số lượng học viên

13 MinutePerSession int Not-null Thời gian học mỗi buổi

14 SessionPerWeek int Not-null Số buổi mỗi tuần

15 Address nvarchar Địa chỉ học

16 SubjectId uniqueidentifier FK, Not- null

Mã của môn học được dạy

17 StudentId uniqueidentifier FK Mã tài khoản của học viên

18 TutorId uniqueidentifier FK Mã tài khoản của gia sư

19 ContactNumber nvarchar Số điện thoại để liên quan đến học viên

Bảng 3.30 Mô tả bảng dữ liệu TutorMajor

STT Tên thuộc tính Kiểu Ràng buộc Ý nghĩa/Ghi chú

1 Id uniqueidentifier PK Khóa chính của bảng

2 SubjectId uniqueidentifier FK, Not- null

Mã của môn học chuyên môn của gia sư

3 TutorId uniqueidentifier FK, Not- null

Mã tài khoản của gia sư

Bảng 3.31 Mô tả bảng dữ liệu TutorVerificationInfo

STT Tên thuộc tính Kiểu Ràng buộc Ý nghĩa/Ghi chú

1 Id uniqueidentifier PK Khóa chính của bảng

2 Image uniqueidentifier nvarchar Ảnh xác thực của gia sư

3 TutorId uniqueidentifier FK, Not- null

Mã tài khoản của gia sư

Bảng 3.32 Mô tả bảng dữ liệu Subscriber

STT Tên thuộc tính Kiểu Ràng Ý nghĩa/Ghi chú

1 Id uniqueidentifier PK Khóa chính của bảng

2 TutorId uniqueidentifier FK, Not- null

Mã tài khoản của gia sư đăng ký nhận mail

Bảng 3.33 Mô tả bảng dữ liệu TutorReview

STT Tên thuộc tính Kiểu Ràng buộc Ý nghĩa/Ghi chú

PK Khóa chính của bảng

Mã lớp học được đánh giá

4 Rate smallint Not-null Số sao đánh giá gia sư

5 Description nvarchar Not-null Nhận xét chi tiết

Bảng 3.34 Mô tả bảng dữ liệu RequestGettingClass

STT Tên thuộc tính Kiểu Ràng buộc Ý nghĩa/Ghi chú

1 Id uniqueidentifier PK Khóa chính của bảng

2 TutorId uniqueidentifier FK, Not- null

Mã tài khoản của gia sư được đăng ký nhận lớp

3 LearnerId uniqueidentifier FK, Not- null

Mã tài khoản của học viên đánh giá

4 RequestStatus int Not-null Trạng thái của yêu cầu

5 Description nvarchar Not-null Ghi chú cho yêu cầu

TRIỂN KHAI ỨNG DỤNG

Giao diện của Khách hàng

4.1.2 Trang danh sách các lớp mới

Hình 4.2 Trang danh sách các lớp học mới

4.1.3 Trang chi tiết thông tin lớp học

Hình 4.3 Trang chi tiết thông tin lớp học

4.1.4 Trang danh sách các gia sư

Hình 4.4 Trang danh sách gia sư

4.1.5 Trang chi tiết thông tin gia sư

Hình 4.5 Trang chi tiết thông tin gia sư

4.1.8 Trang yêu cầu tạo lớp

Hình 4.8 Trang tạo yêu cầu lớp học mới

4.1.9 Trang đăng ký làm gia sư

Hình 4.9 Trang đăng ký làm gia sư

Giao diện của Quản lý

Hình 4.10 Trang đăng nhập (Admin)

4.2.3 Trang quản lý học viên

Hình 4.12 Trang quản lý học viên

4.2.4 Trang quản lý thông tin chi tiết của học viên

Hình 4.13 Trang thông tin chi tiết của học viên

4.2.5 Trang quản lý gia sư

Hình 4.14 Trang danh sách gia sư

4.2.6 Trang quản lý thông tin chi tiết của gia sư

Hình 4.15 Trang thông tin chi tiết của gia sư

4.2.7 Trang quản lý lớp học

Hình 4.16 Trang danh sách các lớp học

4.2.8 Trang quản lý thông tin chi tiết của lớp học

Hình 4.17 Trang thông tin chi tiết lớp học

4.2.9 Trang quản lý các môn học

Hình 4.18 Trang quản lý các môn học

4.2.10 Trang khái quát thông tin cá nhân

Hình 4.19 Trang khái quát thông tin cá nhân

4.2.11 Trang chỉnh sửa thông tin cá nhân

Hình 4.20 Trang chỉnh sửa thông tin cá nhân

Hình 4.21 Trang đổi mật khẩu

Ngày đăng: 04/09/2023, 20:29

HÌNH ẢNH LIÊN QUAN

Hình 2.1 The Clean Architecture By Robert C. Martin (Uncle Bob) [3][4]. - Đồ án xây dựng website cho trung tâm tư vấn và phát triển giáo dục
Hình 2.1 The Clean Architecture By Robert C. Martin (Uncle Bob) [3][4] (Trang 25)
Hình 2.2 The Clean Architecture Cone By Robert C. Martin (Uncle Bob) [3][4]. - Đồ án xây dựng website cho trung tâm tư vấn và phát triển giáo dục
Hình 2.2 The Clean Architecture Cone By Robert C. Martin (Uncle Bob) [3][4] (Trang 25)
Hình 3.1 Kiến trúc hệ thống - Đồ án xây dựng website cho trung tâm tư vấn và phát triển giáo dục
Hình 3.1 Kiến trúc hệ thống (Trang 29)
Hình 3.2 Sơ đồ Use Case mức tổng quát - Đồ án xây dựng website cho trung tâm tư vấn và phát triển giáo dục
Hình 3.2 Sơ đồ Use Case mức tổng quát (Trang 31)
Bảng 3.12 Đặc tả Use-case “Quên mật khẩu” - Đồ án xây dựng website cho trung tâm tư vấn và phát triển giáo dục
Bảng 3.12 Đặc tả Use-case “Quên mật khẩu” (Trang 41)
Hình 3.6 Use case “Yêu cầu tạo lớp mới” - Đồ án xây dựng website cho trung tâm tư vấn và phát triển giáo dục
Hình 3.6 Use case “Yêu cầu tạo lớp mới” (Trang 50)
Hình 3.7 Tổng quan cơ sở dữ liệu - Đồ án xây dựng website cho trung tâm tư vấn và phát triển giáo dục
Hình 3.7 Tổng quan cơ sở dữ liệu (Trang 55)
Hình 4.1 Trang chủ - Đồ án xây dựng website cho trung tâm tư vấn và phát triển giáo dục
Hình 4.1 Trang chủ (Trang 61)
Hình 4.6 Trang đăng nhập - Đồ án xây dựng website cho trung tâm tư vấn và phát triển giáo dục
Hình 4.6 Trang đăng nhập (Trang 66)
Hình 4.9 Trang  đăng ký làm gia sư - Đồ án xây dựng website cho trung tâm tư vấn và phát triển giáo dục
Hình 4.9 Trang đăng ký làm gia sư (Trang 68)
Hình 4.11 Trang Home / Dashboard - Đồ án xây dựng website cho trung tâm tư vấn và phát triển giáo dục
Hình 4.11 Trang Home / Dashboard (Trang 70)
Hình 4.14 Trang danh sách gia sư - Đồ án xây dựng website cho trung tâm tư vấn và phát triển giáo dục
Hình 4.14 Trang danh sách gia sư (Trang 72)
Hình 4.18 Trang quản lý các môn học - Đồ án xây dựng website cho trung tâm tư vấn và phát triển giáo dục
Hình 4.18 Trang quản lý các môn học (Trang 74)
Hình 4.20 Trang chỉnh sửa thông tin cá nhân - Đồ án xây dựng website cho trung tâm tư vấn và phát triển giáo dục
Hình 4.20 Trang chỉnh sửa thông tin cá nhân (Trang 75)
w