TRƯỜNG ĐẠI HỌC XÂY DỰNG HÀ NỘIKHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO THỰC TẬP TỐT NGHIỆP ĐỀ TÀI: Xây dựng mô hình MVC Quản lí sinh viên đăng kí khóa học Đơn vị thực tập : Trường Đại Học Xây
Trang 1TRƯỜNG ĐẠI HỌC XÂY DỰNG HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO THỰC TẬP TỐT NGHIỆP
ĐỀ TÀI:
Xây dựng mô hình MVC Quản lí sinh viên đăng kí
khóa học
Đơn vị thực tập : Trường Đại Học Xây Dựng Hà Nội
Sinh viên thực hiện:
Mã sinh viên:
GVHD :
Hà Nội , 1/2024
Trang 2MỤC LỤC
Lời Cảm Ơn 3
THÔNG TIN KẾT QUẢ NGHIÊN CỨU 4
CHƯƠNG 1 TỔNG QUAN VỀ PHÁT TRIỂN VÀ MỞ RỘNG MÔ HÌNH MVC 6
1.1 Ý nghĩa của việc xây dựng Mô hình MVC 7
1.2 Mô hình MVC 7
1.2.1 Tổng quan về mô hình MVC 7
1.2.2 Tổng quan về mô hình MVC dạng tổng quát 8
1.2.3 Tổ chức của một mô hình MVC: 9
1.2.4 Các chức năng của mô hình MVC 11
CHƯƠNG 2 : TỔNG QUAN VỀ PHẦN MỀM 12
2.1.Tổng quan về phần mềm 12
2.2 Dữ liệu diagram tương ứng 15
2.3 Luồng hoạt động của mô hình MVC 23
CHƯƠNG 3: KẾT LUẬN 25
3.1 Các kết quả đạt được 25
3.2 Kết luật và hướng phát triển 26
TÀI LIỆU THAM KHẢO 26
Trang 3Lời Cảm Ơn
Trong quá trình thực tập ngành Công nghệ thông tin, tôi muốn gửi lời cảm ơn chân thành đến những người đã góp phần quan trọng vào thành công của quá trình thực tập này.Đầu tiên, tôi xin gửi lời cảm ơn đến ( tên cty ) đã cho tôi cơ hội thực tập tại đây Tôi trân trọng sự tin tưởng và sự hỗ trợ của công ty trong việc cho phép tôi áp dụng và phát triển những kiến thức và kỹ năng đã học được trong suốt quá trình thực tập
Tôi cũng muốn gửi lời cảm ơn sâu sắc tới đội ngũ kỹ thuật và nhân viên ( tên cty ) Sự hỗ trợ và hướng dẫn từ các chuyên gia giàu kinh nghiệm đã giúp tôi tiếp thu kiến thức
Trang 4mới và phát triển kỹ năng trong lĩnh vực Công nghệ thông tin Sự kiên nhẫn và tận tâm
của họ đã tạo điều kiện thuận lợi để tôi áp dụng những gì đã học vào thực tế và trở thành
một thành viên tích cực trong đội ngũ Tôi cũng muốn bày tỏ lòng biết ơn đến các giảng
viên và nhân viên khoa Công nghệ thông tin tại Trường Đại Học Xây Dựng Hà Nội
Những kiến thức và kỹ năng mà tôi đã học được trong suốt quá trình học đã giúp tôi tự
tin và sẵn sàng tham gia vào thực tập Sự hướng dẫn và hỗ trợ của các giảng viên đã góp
phần quan trọng vào quá trình học tập và thành công của tôi trong thực tập
Cuối cùng, tôi muốn gửi lời cảm ơn đến gia đình, bạn bè và những người thân yêu đã
luôn ủng hộ và động viên tôi trong suốt quá trình thực tập Sự động viên và niềm tin của
họ là nguồn động lực quan trọng giúp tôi vượt qua những khó khăn và đạt được kết quả
tốt
Hà Nội, tháng 01 năm 2024
SV thực hiện
THÔNG TIN KẾT QUẢ NGHIÊN CỨU
1 Thông tin chung
Trang 5Tên đề tài: Xây dựng nghiên cứu mô hình MVC quản lí sinh viên đăng kí khóa học
Sinh viên thực hiện:
Phát triển Mô hình MVC:
- Nghiên cứu và mở rộng mô hình MVC để phù hợp với yêu cầu cụ thể của quản
lý sinh viên và đăng ký khóa học
- Xem xét và tối ưu hóa cấu trúc của Model, View, và Controller để đảm bảo tính linh hoạt, dễ bảo trì và tái sử dụng mã nguồn
Quản lý Sinh Viên:
- Thiết kế Model để hiệu quả lưu trữ và quản lý thông tin sinh viên, bao gồm thông tin cá nhân, học phí, kết quả học tập, và lịch học…
- Xây dựng Controller để xử lý các yêu cầu liên quan đến quản lý sinh viên, chẳng hạn như thêm mới, cập nhật, xóa thông tin sinh viên
Đăng Ký Khóa Học:
- Phát triển Model để lưu trữ thông tin về các khóa học, bao gồm mô tả, lịch học,và giáo viên phụ trách…
- Xây dựng Controller để quản lý quá trình đăng ký và hủy đăng ký khóa học cho sinh viên…
Giao Diện Người Dùng:
Trang 6- Thiết kế các giao diện người dùng (View) phù hợp để hiển thị thông tin sinh viên và các khóa học có sẵn.
- Tích hợp các yếu tố giao diện như bảng điều khiển, biểu đồ, và trực quan hóa dữ liệu để làm cho trải nghiệm người dùng tốt hơn
Quản lý Người Dùng và Phân Quyền:
- Xây dựng cơ chế đăng nhập và quản lý người dùng để bảo mật thông tin sinh viên
- Thiết lập hệ thống phân quyền để giới hạn quyền truy cập và thực hiện các chức năng cho từng loại người dùng (ví dụ: sinh viên, giáo viên, quản trị viên)
Tích hợp Cơ Sở Dữ Liệu:
- Tích hợp mô hình với cơ sở dữ liệu để lưu trữ và truy xuất thông tin một cách hiệu quả
- Sử dụng các kỹ thuật như ORM (Object-Relational Mapping) để giảm sự phụ thuộc vào loại cơ sở dữ liệu cụ thể
Kiểm Thử và Bảo Mật:
- Thực hiện kiểm thử đầy đủ để đảm bảo tính ổn định và độ chính xác của hệ thống
- Tăng cường bảo mật để ngăn chặn truy cập trái phép và bảo vệ thông tin sinh viên
Trang 7+) Nền tảng mô hình MVC
- Sản phẩm:
+ Tạo ra các chức năng chức bao gồm thêm,sửa,xóa và tìm kiếm theo các bảng khóa học, học viên, tình trạng học ,quyền hạn , tài khoản,loại bài viết, chủ đề , bài viết và phân trang chúng
CHƯƠNG 1 TỔNG QUAN VỀ PHÁT TRIỂN VÀ MỞ RỘNG MÔ HÌNH MVC
1.1 Ý nghĩa của việc xây dựng Mô hình MVC
Mô hình MVC (Model-View-Controller) là một kiến trúc phần mềm được sử dụng để tổ chức và thiết kế các thành phần trong ứng dụng Mô hình này chia ứng dụng thành ba phần chính: Model, View, và Controller Dưới đây là ý nghĩa của việc xây dựng mô hình MVC:
Model (Mô hình):
Trang 8Ý nghĩa: Mô hình đại diện cho dữ liệu và logic xử lý dữ liệu trong ứng dụng.
Chức năng: Lưu trữ dữ liệu, thực hiện các thao tác cập nhật, xử lý logic kinh doanh và thông báo về các thay đổi trong dữ liệu
Lợi ích: Tách biệt dữ liệu và logic xử lý dữ liệu giúp tái sử dụng code, dễ bảo trì, và làm cho ứng dụng linh hoạt hơn
View (Giao diện):
Ý nghĩa: View đại diện cho phần giao diện người dùng (UI) của ứng dụng
Chức năng: Hiển thị thông tin từ Model và chuyển thông tin người dùng đến Controller.Lợi ích: Tách biệt giao diện người dùng từ logic ứng dụng, cho phép thay đổi giao diện mà không ảnh hưởng đến logic xử lý dữ liệu
Controller (Bộ điều khiển):
Ý nghĩa: Controller là thành phần chịu trách nhiệm điều khiển luồng thông tin giữa Model và View
Chức năng: Nhận dữ liệu từ người dùng thông qua View, thực hiện các thao tác cập nhật dữ liệu thông qua Model, và cập nhật lại giao diện người dùng
Lợi ích: Tách biệt logic xử lý dữ liệu và giao diện người dùng, làm cho ứng dụng dễ bảo trì, mở rộng và thử nghiệm
1.2 Mô hình MVC
1.2.1 Tổng quan về mô hình MVC
Trang 91.2.2 Tổng quan về mô hình MVC dạng tổng quát
Mô hình MVC (Model-View-Controller) là một kiến trúc phần mềm dạng tổng quát đượcsử dụng để phân chia ứng dụng thành ba thành phần chính: Model, View và Controller Dưới đây là tổng quan về mô hình MVC:
1 Model (Mô hình):
- Chức năng: Đại diện cho dữ liệu và logic xử lý dữ liệu trong ứng dụng
- Trách nhiệm: Lưu trữ và quản lý dữ liệu, thực hiện các thao tác cập nhật và xử lý logic kinh doanh
- Đặc điểm: Thông thường không có thông tin về giao diện người dùng và không trực tiếp tương tác với người dùng
2 View (Giao diện):
- Chức năng: Hiển thị thông tin từ Model và chuyển thông tin người dùng đến
Controller
Trang 10- Trách nhiệm: Đảm nhận vai trò hiển thị dữ liệu, cung cấp giao diện người dùng cho người dùng cuối.
- Đặc điểm: Thường không chứa logic kinh doanh nhiều, tập trung vào việc hiển thị dữ liệu
3 Controller (Bộ điều khiển):
- Chức năng: Chịu trách nhiệm điều khiển luồng thông tin giữa Model và View
- Trách nhiệm: Nhận dữ liệu từ người dùng thông qua View, thực hiện các thao tác cập nhật dữ liệu thông qua Model, và cập nhật lại giao diện người dùng
- Đặc điểm: Chứa logic điều khiển ứng dụng, giúp kết nối giữa Model và View
Luồng hoạt động tổng quát trong Mô hình MVC:
1 Người dùng tương tác với giao diện người dùng (View)
2 View gửi yêu cầu đến Controller
3 Controller xử lý yêu cầu, tương tác với Model để cập nhật dữ liệu (nếu cần) và sau đó chuyển dữ liệu đã được xử lý đến View
4 View hiển thị dữ liệu mới cho người dùng
Ưu điểm của Mô hình MVC:
- Tách biệt trách nhiệm: Mỗi thành phần có trách nhiệm riêng biệt, giúp quản lý và bảo trì
dễ dàng
- Tái sử dụng code: Sự phân chia rõ ràng giúp tái sử dụng mã nguồn một cách hiệu quả
- Bảo trì và mở rộng: Có thể thực hiện bảo trì và mở rộng một cách linh hoạt do sự phân chia rõ ràng của các thành phần
Mô hình MVC là một trong những mô hình phần mềm phổ biến và được sử dụng rộng rãitrong phát triển ứng dụng, giúp cải thiện quản lý mã nguồn và hiệu suất phát triển
1.2.3 Tổ chức của một mô hình MVC:
Tổ chức một dự án có mô hình MVC đòi hỏi sự cẩn thận trong việc phân chia và tổ chức các thành phần
Trang 111 Tạo Cấu Trúc Thư Mục:
- Tạo các thư mục chính cho Model, View, và Controller
- Thêm thư mục cho các tài nguyên tĩnh như hình ảnh, CSS, và JavaScript
- Tổ chức thư mục cho các module hoặc chức năng riêng lẻ nếu có
2 Model:
- Tạo các lớp hay module cho các đối tượng chính trong ứng dụng, ví dụ: User,
Product, Order, etc
- Định nghĩa các phương thức để thực hiện các thao tác cơ bản trên dữ liệu, chẳng hạn như đọc, ghi, cập nhật, xóa (CRUD operations)
- Tổ chức kết nối đến cơ sở dữ liệu, nếu có
3 View:
- Tạo các thư mục cho các trang giao diện người dùng và các thành phần giao diện nhỏ hơn (widgets, components)
- Phân chia giao diện thành các template để tái sử dụng dễ dàng
- Sử dụng các thư viện CSS và JavaScript để thiết kế và làm cho giao diện linh hoạt
4 Controller:
- Tạo các lớp hoặc module Controller cho mỗi chức năng hoặc trang trong ứng dụng
- Định nghĩa các phương thức để xử lý yêu cầu từ người dùng và tương tác với Model để cập nhật dữ liệu
- Tránh đặt quá nhiều logic kinh doanh trong Controller, nên giữ nó tối giản và chỉ chứalogic điều khiển
5 Routes (Định Tuyến):
- Sử dụng một hệ thống định tuyến để kết nối URL với Controller và hành động cụ thể
- Xác định các định tuyến cho mỗi trang và chức năng trong ứng dụng
6 Thư Viện và Framework:
- Sử dụng các thư viện và framework phổ biến để giảm công sức và tăng tính ổn định của dự án Ví dụ, Laravel cho PHP, Django cho Python, Spring cho Java, hoặc Express cho Node.js
8 Documentation (Tài Liệu):
- Viết tài liệu cho mã nguồn và API nếu cần
- Cung cấp hướng dẫn cài đặt và triển khai dự án
Trang 129 Version Control:
- Sử dụng hệ thống quản lý phiên bản như Git để theo dõi và kiểm soát phiên bản mã nguồn
10 Continuous Integration (CI) và Continuous Deployment (CD):
- Thiết lập quy trình CI/CD để tự động kiểm thử và triển khai
Tổ chức dự án theo mô hình MVC giúp làm cho mã nguồn dễ bảo trì, tái sử dụng, và linh hoạt hơn trong quá trình phát triển và duy trì ứng dụng
1.2.4 Các chức năng của mô hình MVC
Mô hình MVC (Model-View-Controller) phân chia ứng dụng thành ba thành phần chính, mỗi thành phần đảm nhận các chức năng cụ thể Dưới đây là mô tả chi tiết về các chức năng của từng thành phần trong mô hình MVC:
1 Model (Mô hình):
- Lưu trữ dữ liệu: Mô hình chịu trách nhiệm lưu trữ dữ liệu của ứng dụng Điều này có thể bao gồm dữ liệu từ cơ sở dữ liệu, tập tin, hoặc bất kỳ nguồn dữ liệu nào khác
- Logic kinh doanh: Mô hình thực hiện logic kinh doanh và quy tắc nghiệp vụ của ứng dụng Nó xử lý các thao tác như đọc, ghi, cập nhật và xóa dữ liệu
- Thông báo thay đổi: Khi dữ liệu trong Mô hình thay đổi, nó thông báo về sự thay đổi này để View có thể cập nhật hiển thị
2 View (Giao diện):
- Hiển thị dữ liệu: View chịu trách nhiệm hiển thị dữ liệu cho người dùng Điều này baogồm việc định dạng và hiển thị dữ liệu từ Mô hình theo cách phù hợp
- Nhận đầu vào từ người dùng: View nhận đầu vào từ người dùng, chẳng hạn như các sự kiện click chuột, nhập liệu, và chuyển tiếp thông tin đến Controller để xử lý.
- Không chứa logic kinh doanh nhiều: View nên giữ logic hiển thị và tránh chứa quá nhiều logic kinh doanh để giữ cho mã nguồn dễ bảo trì.
3 Controller (Bộ điều khiển):
- Nhận yêu cầu từ người dùng: Controller nhận đầu vào từ View, xử lý các yêu cầu của người dùng và tương tác với Mô hình để cập nhật dữ liệu.
Trang 13- Điều khiển luồng thông tin: Controller làm nhiệm vụ điều khiển luồng thông tin giữa View và Model Nó quyết định cách dữ liệu được xử lý và hiển thị.
- Chứa logic ứng dụng: Logic kinh doanh của ứng dụng thường được đặt trong Controller Nó quyết định các hành động cụ thể khi có sự tương tác từ người dùng Luồng hoạt động tổng quát trong Mô hình MVC:
1 Người dùng tương tác với giao diện người dùng (View).
2 View gửi yêu cầu đến Controller.
3 Controller xử lý yêu cầu, tương tác với Model để cập nhật dữ liệu (nếu cần) và sau đó chuyển dữ liệu đã được xử lý đến View.
4 View hiển thị dữ liệu mới cho người dùng.
Mô hình MVC giúp tăng tính tổ chức, tái sử dụng code, và dễ bảo trì trong quá trình phát triển ứng dụng Các chức năng của mỗi thành phần được phân chia rõ ràng, giúp tạo ra một cấu trúc linh hoạt và dễ quản lý.
CHƯƠNG 2 : TỔNG QUAN VỀ PHẦN MỀM 2.1.Tổng quan về phần mềm
Phần mềm quản lí các khóa học bao gồm
+ Thêm, sửa, xóa các loại khóa học
+ Thêm, sửa, xóa, hiển thị danh sách khóa học
+ Tìm kiếm khóa học theo tên
+ Phân trang dữ liệu cho bảng khóa học theo danh sách khóa học và theo các trang được tìm kiếm
+ Số lượng học viên tự động cập nhật sau khi có học viên đăng kí và tình trạng là đang học, học xong và chưa hoàn thành
Trường thời gian học có kiểu int, toàn bộ các trường là bắt buộc
Trang 14+ Thêm, sửa, xóa, hiển thị danh sách học viên
+ Tìm kiếm học viên theo tên, và mail
+ Phân trang dữ liệu cho bảng học viên theo danh sách học viên và theo danh sách học viên được tìm kiếm
+ Trường email, số điện thoại là duy nhất, nếu đã tồn tại trả về các lỗi tương ứng để gửi lên front-end
+ Trường họ tên tự động định dạng trước khi lưu, trường hình ảnh lưu trữ địa chỉ của ảnh
+ Thêm, sửa, xóa, hiển thị các tình trạng học
+ Thêm 4 tình trạng học Chờ duyệt, Đang học chính, Học xong, Chưa hoàn thành
1 Chờ duyệt: Học viên thực hiện đăng ký tuy nhiên quản lý chưa xác nhận phiếu đăng ký
2 Đang học chính: Phiếu đăng ký của học viên được quản lý chấp nhận
3 Học xong: Thời gian kết thúc < thời gian hiện tại
4 Chưa hoàn thành: Với TH học viên nghỉ giữa chừng, quản lý có thể chỉnh tình trạng học sang Chưa hoàn thành, đồng thời ngắt việc tự động cập nhật trạng thái sang Học xong
+ Ngày đăng ký tự động cập nhật, ngày bắt đầu được tính từ ngày tình trạng học là đang học chính, ngày kết thúc tính bằng ngày bắt đầu + thời gian học trong bảng khóa học
+ Thêm, sửa, xóa, hiển thị đăng ký học
+ Phân trang hiển thị đăng ký học