1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Báo cáo nhóm 5 đề tài phần mềm quản lý đào tạo

47 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 đề Phần Mềm Quản Lý Đào Tạo
Tác giả Ngô Quang Hiếu - 20182514, Nguyễn Đức Bình - 20182380, Nguyễn Đức Thắng - 20182779
Thể loại báo cáo
Định dạng
Số trang 47
Dung lượng 2,48 MB

Nội dung

Trang 1 Báo cáo nhóm 5:Đề tài: Phần Mềm Quản lý đào tạo Trang 2 I Giới thiệu đề tài Thiết kế phần mềm đăng ký khóa học giúp quản lý đăng ký khóa học online, điểm Giảng viên có thể tra

Trang 1

Báo cáo nhóm 5:

Đề tài: Phần Mềm Quản lý đào tạo

NGÔ QUANG HIẾU - 20182514

NGUYỄN ĐỨC BÌNH - 20182380

NGUYỄN ĐỨC THẮNG - 20182779

Trang 2

I Giới thiệu đề tài

 Thiết kế phần mềm đăng ký khóa học giúp quản lý đăng ký khóa học online, điểm

 Giảng viên có thể tra cứu lịch học, nhập điểm cho sinh viên

 Sinh viên có thể xem lịch học, xem kết quả học tập và đăng ký khóa học của mình

Trang 3

2 các công nghệ sử dụng

 1 Git để quản lý dự án

 2 Backend: sử dụng spring boot java thiết kế quản lý cơ sở dữ liệu, phần mềm intelliJ để code, datagrip -> quản lý cơ sở dữ liệu, postman -> test api

 3 frontend: visual code -> code frontend, sử dụng reactjs

 Frontend gọi dữ liệu tới backend thông qua api

 Link sản phẩm: http://45.13.132.247:3000/

Tk admin: admin, password:1

Tk giảng viên: giangvien, password:1

Tk sinh viên: sinhvien, password:1

Trang 4

3 Phần giao diện với reactjs

 Các framework: ant-design, react-router(để chuyển hướng các url), redux(lưu trữ

dữ liệu chung giữa các component), toast ( hiện thông báo)

Trang 7

3.1.1 Quản lý khóa học

- Khóa học gồm các trường thông tin:

ID, Mã khóa học, Tên khóa học, Tên cơ sở, Học phí, Số lượng đăng ký, Giới hạn đăng ký, Số tiết, Trạng thái(Thời gian đăng ký, đang học, hoàn thành), Ngày tạo,

Trang 8

Giao diện

Trang 9

3.1.1.1 Tìm kiếm theo các tiêu chí

Trang 10

3.1.1.2 Tạo mới

Trang 11

3.1.1.3 Xem chi tiết

Trang 12

3.1.1.4 Chỉnh sửa

Trang 13

3.1.1.5 Xóa

Trang 14

3.1.2 Quản lý Môn học

 Môn học gồm các trường thông

tin: ID, mã môn học, tên môn

học, ngày tạo, ngày sửa

 Các chức năng: tìm kiếm môn

học qua các trường thông tin,

tạo mới môn học, xem chi tiết,

chỉnh sửa môn học, xóa môn

học

Form môn học

Trang 15

3.1.3 Quản lý địa điểm

 Gồm các trường thông

tin: id, địa điểm, cơ sở,

ngày tạo, ngày sửa

 Các chức năng: Tìm kiếm

qua các trường id, tạo mới

địa điểm, xem chi tiết,

chỉnh sửa địa điểm, xóa

địa điểm

Form địa điểm

Trang 16

3.1.4 Quản lý cơ sở

 Gồm các trường thông tin: id,

tên cơ sở, ngày tạo, ngày sửa

 Chức năng: Tìm kiếm qua các

trường thông tin, xem chi tiết,

tạo mới cơ sở, chỉnh sửa cơ

sở, xóa cơ sở

Form cơ sở

Trang 17

3.1.5 Xếp lịch

 Gồm các trường

thông tin: mã môn, tên môn , Thứ, thời gian, địa điểm, giảng viên

 Tính năng: chọn khóa cần xếp lịch, tạo lịch mới, sửa lịch, xóa lịch

Trang 18

 Chọn khóa cần xếp lịch

Giao diện xếp lịch

Trang 19

Form xếp lịch

Trang 20

3.1.6 Quản lý tài khoản

 Gồm các trường thông tin: ID, Họ tên, tên đăng nhập, trạng thái(hoạt động, khóa), loại tài khoản, Giới tính, tuổi ,địa chỉ, SĐT, email, Ngày tạo, ngày sửa

 Các tính năng: xem chi tiết, chỉnh sửa, khóa, cấp quyền giảng viên với tài khoản sinh viên, chỉnh sửa môn giảng dạy với tài khoản là giảng viên, xóa tài khoản

Trang 21

Form tài khoản

Trang 22

 Form cấp quyền giảng viên và chỉnh sửa các môn giảng dạy cho giảng viên

Trang 23

3.2 Giảng viên

 Xem chi tiết khóa học

 Xem danh sách các lớp được phân công giảng dạy

 Điểm danh cho sinh viên

 Nhập điểm cho sinh viên

 Xem lịch giảng dạy

Trang 24

Xem chi tiết khóa học

Trang 25

 Có thể điểm danh hoặc nhập điểm cho sinh viên

Trang 26

Form nhập điểm

Trang 28

Xem kết quả học tập

Trang 29

4 Thiết kế phần cơ sở dữ liệu phía Backend

 Phần mềm gồm 3 vai trò sử dụng:

 Admin

 Giảng viên

 Sinh viên

Trang 30

4 Thiết kế backend

 Sử dụng spring boot java

 Viết các api để frontend gọi lấy dữ liệu Sau khi frontend gọi yêu cầu lấy dữ liệu Backend sẽ xử lý và trả về dữ liệu dưới dạng json tương ứng Frontend sẽ sử dụng dữ liệu này để render lên cho người dùng

 Bảo mật hệ thống thông qua jwt (json web token) Sau khi thực hiện login, backend sẽ trả về chuỗi

token Chuỗi này sẽ được sử dụng để xác thực Frontend sẽ gửi chuỗi token này tới backend mỗi lần có yêu cầu từ máy khách

 Database sử dụng trong dự án là postgres

Trang 31

Số tiếtLoại

3 Địa điểmId

Địa điểm

Id Cơ sở

4 Cơ sởId

TênCâp cơ sở

Trang 32

Id sinh viên

Id khóa họcTrạng tháiTổng kếtXếp loại

7 Kết quảId

8 Thông tin người dùng Id

Tên Username Password Tuổi

Giới tính Vai trò Sđt Địa chỉ email

Id khóa học hiện tại Ảnh đại diện

Trạng thái

Trang 33

Id người hỏiNội dung

9 Câu hỏi khảo sátId

Câu hỏi

Id Đáp số

Trang 34

Tất cả các bảng ngoài các thông tin trên đều có chung 5 trường sau:

+ Ngày tạo(createdAt): chứa thông tin về ngày tạo bản ghi

+ Id người tạo(createdBy): sẽ sử dụng id này để map tới bảng tài khoản để xem thông tin người tạo bản ghi

+ ngày sửa(updatedAt): chứa thông tin ngày thay đổi thông tin bản ghi

+ id người sửa(updatedBy): sẽ được mối tới bảng tài khoản để xem thông tin người sửa

+ deleted: chứa 2 giá trị 0= chưa xóa, 1 = đã xóa Khi thực hiện thao tác xóa không hoàn toàn xóa bản ghi này ra khỏi database mà khi đó ta update giá trị này = 1 và các lần query bảng chỉ việc kèm điều kiện trong where ( where deleted = 0) Việc này sẽ tránh rủi ro trong việc xóa nhầm Giúp khôi phục dữ liệu

Trang 35

4.2 Tổ chức dự án

Trang 36

4.2.1 Viết lớp chung kế thừa

Vì các bảng đều có các chức năng xem, thêm, sửa, xóa

Các tính năng này là tương đương nhau Việc code đi code lại các bảng giống nhau nhiều

có thể dẫn tới việc sai sót trong xử lý Để giải quyết vấn đề này, ta viết template sẵn từ một project riêng Sau đó cho các lớp con kế thừa

từ từ lớp mẫu đó Khi đó code sẽ thuận tiện hơn Đỡ lỗi hơn và ổn định hơn

Trang 37

4.2.1 Viết lớp chung kế thừa

Config: là nơi chứa các file cấu hình cho hệ thống

- Mục Audit gồm các class có nhiệm vụ khi ta thao tác sửa dữ liệu Thông tin người sửa và tạo

sẽ được các lớp này quản lý vào lưu lại vào database

- Mục dto chứa class baseDTO: DTO là viết tắt của data transfer object Là lớp được map với với json Được sử dụng trên tầng controller

- Mục filter chứa các class có nhiệm cụ xác nhận token (jwt) gửi từ phía máy khách sử dụng stateless

- Log chứa các class ghi lại lỗi phục vụ dev khi bug xảy ra

- Security: chứa các lớp cấu hình, các Bean khởi tạo cho dự án

- Storage: chứa cấu hình phục vụ cho upload, download các file lên hệ thống

- Userdetail: là đối tượng chứa thông tin xác nhận người dùng

- controller: chứa class BaseController, lớp này là lớp sẽ đc các lớp con kế thừa Trong nó gồm

5 hàm: search, detail ,post, put, delete là các điều hướng request

- Exception: chứa BaseException Phục vụ ném lỗi trở về máy khách khi có ngoại lệ

Trang 38

4.2.1 Viết lớp chung kế thừa

- Map: chứa các class phục vụ map dữ liệu giữa dto và entity

- Msg: chứa lớp Messag, lớp này có nhiệm vụ trả các thông điệp bằng tiếng anh hoặc tiếng việt tùy yêu cầu người dùng

- Service gồm baseService(là một interface định nghĩa các thao tác) và BaseAbstractService( là lớp implement BaseService, chứa các xử lý logic)

- Util: gồm các lớp static chứa các hàm được sử dụng nhiều trong dự án

Trang 39

4.2.2 Triển khai dự án kế thừa từ các lớp chung

Sau khi đã viết được các lớp chung Ta đi triển khai kế thừa từ các lớp chung đó vào dự án chính

Spring boot gồm các tầng:

- Security: nơi xác thực token từ các request

- Controller: điều hướng request

- Service: xử lý logic

- Repository: là tầng tạo các transaction tương tác với databasa

Trang 40

Các bảng đều có chức năng xem thêm sửa xóa như nhau Riêng với một số tính năng sẽ có xử lý logic khác một chút như sau:

A, Khóa học sẽ có 3 trạng thái: thời gian đăng ký, đang học, hoàn thành(trường trạng thái trong bảng khóa học)

Khi admin tạo mới khóa học Khóa học đó sẽ ở trạng thái thời gian đăng ký

Hệ thống được lên lịch 1 tuần 1 lần sẽ kiểm tra xem thời gian hiện tại nếu nằm sau khai giảng sẽ đổi trạng thái khóa học từ thời gian đăng ký -> đang học Nếu thời gian hiện tại sau thời gian kết thúc và trạng thái là đang học -> hoàn thành

Trong thời gian đăng ký, sinh viên chỉ có thể đăng ký và hủy đăng ký trong thời gian này.

B, Sinh viên chỉ có thể học 1 khóa học mỗi lần và phải hoàn thành hoặc hủy đăng ký thì mới có thể đăng ký các khóa khác.

Khi đăng ký khóa học một bản ghi đăng ký sẽ được tạo ra đồng thời trường id khóa học hiện tại trong bảng tài khoản của

sinh viên sẽ được gắn với khóa học mà sinh viên đó đăng ký Khi đó hệ thống sẽ sử dụng giá trị này để check xem sinh viên có đăng ký được khóa học nữa hay không => chỉ đăng ký khi giá trị này null

Giá trị này sẽ null khi sinh viên hoàn thành khóa hoặc hủy khóa trong thời gian đăng ký

4.2.3 các xử lý logic phía backend

và hủy đăng

Trang 41

C, bảng kết quả học tập: được tạo khi sinh viên đăng ký khóa học Lúc này hệ thống lấy tất cả các môn học khóa và tạo ra tầm đó bản ghi kết quả trong đó id môn học là các id môn của khóa và id học sinh là id của học sinh tạo đăng ký.

Giảng viên khi nhập điểm hoặc điểm danh cho sinh viên sẽ được lưu vào các bảng này

D, về việc upload ảnh đại diện Sau khi 1 file ảnh được upload lên hệ thống, hệ thống sẽ tự sinh tên file và gắn tên file này vào trong trường avatar của bảng tài khoản Nên trường này ở kiểu nvarchar(255) Sau này khi ta muốn lấy ảnh thì ta gọi api ảnh đi kèm với tên ảnh này để load ảnh về

E, việc tìm kiếm các trường thông tin dạng chuỗi xử lý được 2 kỹ tự cách xa nhau:

Vd: khóa đào tạo viện điện tử viễn thông Khi người dùng gõ chữ khóa viễn thông chẳng hạn Vẫn tìm được kết quả.

4.2.3 các xử lý logic phía backend

Trang 42

5 Triển khai dự án lên server

 Link dự án: http://45.13.132.247:3000

 Sau khi đăng ký máy chủ Cài lên máy chủ git, nodejs, postgres, java(sử dụng version 8), …

 Soursecode của dự án bao gồm backend và frontend nằm trên 2 project khác

nhau Riêng với backend gồm 2 project riêng 1 project chứa các lớp kế thừa và 1 lớp chính

Trang 43

Các bước tiến hành

 Mở cmd trên window truy cập server thông qua ssh:

 Gõ lệnh: ssh root@45.13.132.247

 Gõ password

Trang 44

 Sau khi truy cập thành công gõ lần lượt các lệnh:

git clone https://github.com/hieubap/medical-education-fe.git

git clone https://github.com/hieubap/MedicalEducation.git

Để clone sourse code từ git lên server

Sau khi clone code gõ yarn để tải node_module về với frontend

Còn với backend gõ lệnh : mvn clean install để build file jar Chạy lệnh với project chứa template chung trước sau đó mới đến project chính

Trang 45

 Sau khi build thành công cần tạo 2 dịch vụ để chạy trên server Gõ lệnh:

Tạo 2 dịch vụ với: touch fe-medical-education.service

Sau đó cấp quyền thực thi cho file service: chmod 777 fe-medical-education

Trang 46

Sử dụng vim chỉnh sửa cấu hình với lệnh: vim medical-education.service

Sau khi cấu hình song lần lượt gõ các lệnh:

Systemctl enable medical-education (để bật dịch vụ)

Systemctl start medical-education (để chạy dịch vụ)

Sau khi gõ 2 lệnh trên là triển khai thành công backend lên server

Trang 47

Cảm ơn thầy và các bạn đã lắng nghe

Ngày đăng: 30/01/2024, 04:56

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

TÀI LIỆU LIÊN QUAN

w