Chương 3. Xây dựng ứng dụng công cụ hỗ trợ công tác giao đề tái báo cáo tốt nghiệp
3.4. Lập trình cài đặt ứng dụng
3.4.1. Cấu trúc tổng quan ứng dụng
Ứng dụng được xây dựng trên Framework CodeIgniter. Tuy nhiên, đối với sự linh hoạt của ứng dụng cho phép khả năng mở rộng, nâng cấp, và bảo trì thì số lượng file trong cả 3 thư mục Views, Models, và Controllers sẽ sinh ra rất nhiều.
Khi đó, hệ thống trở nên rất khó cho việc quản lý và bảo trì. Mô hình HMVC được ra đời chính vì lý do này, HMVC có ưu điểm khả năng module hóa, tái sử dụng, khả năng mở rộng đối với hệ thống, mỗi phần của module được lưu tách biệt trong một thư mục, giúp việc quản lý trở nên dễ dàng, thuận tiện hơn.
Hình 3.9 Cấu trúc ứng dụng theo mô hình HMVC
Tất cả các file làm việc, các luồng xử lý chính của hệ thống được lưu tách biệt tại thư mục modules (Hình 3.5). Bao gồm:
Module quản lý niên khóa (academic_year).
Module quản lý đợt đồ án (topic_batch).
Module quản lý nhóm (group).
Module template trang chủ và template truy cập không được phép (home).
Module quản lý quyền hạn (permission).
Module template header, footer, sidebar (templates).
Module quản lý đề tài quản trị viên (topic_admin).
Module quản lý đề tài người hướng dẫn (topic_instructor).
Module quản lý đề tài sinh viên (topic_member).
Module quản lý thành viên (user).
3.4.2. Module quản lý niên khóa
Hình 3.10 Module quản lý niên khóa
Module quản lý niên khóa (Hình 3.6): chức năng quản lý thông tin niên khóa.
Controller “Main”: gồm các action add(), edit(), delete(), index() tương ứng với hành động thêm, bớt, chỉnh sửa, hiển thị danh sách niên khóa.
Model “Academic_year_model”: gồm các truy vấn SQL làm việc với cơ sở dữ liệu của hệ thống tương ứng với các Controller.
View: gồm các view index, edit tiếp nhận dữ liệu từ Controller và hiển thị nội dung sang các đoạn mã HTML (Thành phần giao diện).
3.4.3. Module quản lý đợt đồ án
Hình 3.11 Module quản lý đợt đồ án
Module quản lý đợt đồ án (Hình 3.7): chức năng quản lý thông tin đợt đồ án.
Controller “Main”: gồm các action add(), edit(), delete(), index() tương ứng với hành động thêm, bớt, chỉnh sửa, hiển thị danh sách đợt đồ án.
Model “Topic_batch_model”: gồm các truy vấn SQL làm việc với cơ sở dữ liệu của hệ thống tương ứng với các Controller.
View: gồm các view index, edit tiếp nhận dữ liệu từ Controller và hiển thị nội dung sang các đoạn mã HTML (Thành phần giao diện).
3.4.4. Module quản lý nhóm
Hình 3.12 Module quản lý nhóm
Module quản lý nhóm (Hình 3.8): chức năng quản lý thông tin nhóm.
Controller “Main”: gồm các action index(), delete_item(), create_group(), join_group(),tương ứng với hành động thêm, bớt, chỉnh sửa, hiển thị danh sách nhóm.
Model “Group_model”: gồm các truy vấn SQL làm việc với cơ sở dữ liệu của hệ thống tương ứng với các Controller.
View: gồm các view create_group, join_group, index tiếp nhận dữ liệu từ Controller và hiển thị nội dung sang các đoạn mã HTML (Thành phần giao diện).
3.4.5. Module template trang chủ và template truy cập không được phép
Hình 3.13 Module template trang chủ và template truy cập không được phép Module template trang chủ và template truy cập không được phép (Hình 3.9):
hiển thị trang chủ và trang truy cập không được phép.
Controller “Main”: gồm các action index(), show_access() tương ứng với template trang chủ và template truy cập không được phép.
Model “Home_model”: gồm các truy vấn SQL làm việc với cơ sở dữ liệu của hệ thống tương ứng với các Controller.
View: gồm các view index, show_not_access tiếp nhận dữ liệu từ Controller và hiển thị nội dung sang các đoạn mã HTML (Thành phần giao diện).
3.4.6. Module quản lý quyền hạn
Hình 3.14 Module quản lý quyền hạn
Module quản lý quyền hạn (Hình 3.10): chức năng quản lý quyền hạn.
Controller “Main”: gồm các action add(), edit(), delete(), index() tương ứng với hành động thêm, bớt, chỉnh sửa, hiển thị danh sách quyền hạn.
Model “Permission_model”: gồm các truy vấn SQL làm việc với cơ sở dữ liệu của hệ thống tương ứng với các Controller.
View: gồm các view add, edit, index tiếp nhận dữ liệu từ Controller và hiển thị nội dung sang các đoạn mã HTML (Thành phần giao diện).
3.4.7. Module tempalte header, footer, sidebar
Hình 3.15 Module template header, footer, sidebar
Module template header, footer, sidebar (Hình 3.11): hiển thị template header, footer, sidebar.
Controller “Includes”: gồm các action header(), footer(), sidebar() tương ứng với template header, footer, sidebar.
Model “Template_model”: gồm các truy vấn SQL làm việc với cơ sở dữ liệu của hệ thống tương ứng với các Controller.
View: gồm các view header, footer, sidebar tiếp nhận dữ liệu từ Controller và hiển thị nội dung sang các đoạn mã HTML (Thành phần giao diện).
3.4.8. Module quản lý đề tài quản trị viên
Hình 3.16 Module quản lý đề tài quản trị viên
Module quản lý đề tài quản trị viên (Hình 3.12): chức năng quản lý đề tài quản trị viên.
Controller “Main”: gồm các action detail(), action(), topic_member_approve(), topic_instructor_reg() tương ứng với hành động quản lý danh sách đề tài người hướng dẫn đề xuất, quản lý danh sách đề tài sinh viên đăng ký đã được người hướng dẫn phê duyệt, hiển thị chi tiết đề tài.
Model “Topic_admin_model”: gồm các truy vấn SQL làm việc với cơ sở dữ liệu của hệ thống tương ứng với các Controller.
View: gồm các view topic_instructor_reg, topic_member_approve, detail tiếp nhận dữ liệu từ Controller và hiển thị nội dung sang các đoạn mã HTML (Thành phần giao diện).
3.4.9. Module quản lý đề tài người hướng dẫn
Module quản lý đề tài người hướng dẫn (Hình 3.13): chức năng quản lý đề tài người hướng dẫn.
Controller “Main”: gồm các action add(), edit(), delete(), detail(), my_topic(), topic_member_reg(), action_approve(), action_destroy() tương ứng với hành động thêm, bớt, chỉnh sửa, chi tiết đề tài, quản lý danh sách đề tài của tôi, quản lý danh sách đề tài sinh viên đăng ký, hành động phê duyệt/hủy duyệt, xóa bỏ đề tài sinh viên đăng ký.
Model “Topic_instructor_model”: gồm các truy vấn SQL làm việc với cơ sở dữ liệu của hệ thống tương ứng với các Controller.
View: gồm các view add, edit, detail, my_topic, topic_member_reg tiếp nhận dữ liệu từ Controller và hiển thị nội dung sang các đoạn mã HTML (Thành phần giao diện).
3.4.10. Module quản lý đề tài sinh viên
Hình 3.18 Module quản lý đề tài sinh viên
Module quản lý đề tài sinh viên (Hình 3.14): chức năng quản lý đề tài sinh viên.
Controller “Main”: gồm các action reg(), delete_reg(), topic_available(), topic_reg(), topic_approve(), topic_other_reg(), topic_detail() tương ứng với hành động đăng ký/hủy đăng ký đề tài, danh sách đề tài khả dụng, đề tài nhóm đăng ký, đề tài đã được phê duyệt, danh sách nhóm đăng ký cùng đề tài, chi tiết đề tài.
Model “Topic_member_model”: gồm các truy vấn SQL làm việc với cơ sở dữ liệu của hệ thống tương ứng với các Controller.
View: gồm các view topic_approve, topic_available, topic_detail, topic_reg, topic_other_reg tiếp nhận dữ liệu từ Controller và hiển thị nội dung sang các đoạn mã HTML (Thành phần giao diện).
3.4.11. Module quản lý thành viên
Hình 3.19 Module quản lý thành viên
Module quản lý thành viên (Hình 3.15): chức năng quản lý thành viên.
Controller “Index”: gồm các action add(), edit(), profile(), detail(), index(), login(), logout() tương ứng với hành động thêm, chỉnh sửa, chi tiết thành viên, quản lý danh sách thành viên, quản lý thông tin cá nhân, hành động đăng nhập/đăng xuất hệ thống.
Model “User_model”: gồm các truy vấn SQL làm việc với cơ sở dữ liệu của hệ thống tương ứng với các Controller.
View: gồm các view add, edit, index, detail, profile, login, logout tiếp nhận dữ liệu từ Controller và hiển thị nội dung sang các đoạn mã HTML (Thành phần giao diện).