Một trong những ứng dụng của ngành công nghệ thông tin đó là xu hướng tin học hóa các hệ thống nói chung và hệ thống quản lý nói riêng.. Chính vì lý do trên đây em đã chọn đề tài: “Xây d
Trang 1LỜI CẢM ƠN
Trước hết, em xin chân thành cảm ơn bộ môn Mạng và Truyền thông - khoa Công nghệ thông tin – trường Đại học Công nghệ thông tin và truyền thông - Đại học Thái Nguyên đã tạo điều kiện thuận lợi để em thực hiện và hoàn thành đồ án tốt nghiệp
Em xin chân thành cảm ơn cô Ths.Dương Thu Mây đã tận tình hướng dẫn, chỉ bảo em suốt thời gian thực hiện đồ án
Em xin chân thành cảm ơn thầy Ts.Nguyễn Toàn Thắng – trưởng bộ môn Mạng
và Truyền thông đã tận tình chỉ bảo định hướng để em có thể hoàn thành đồ án
Mặc dù đã cố gắng hoàn thành đồ án trong phạm vi và khả năng cho phép nhưng chắc chắn sẽ không thể tránh khỏi những thiếu xót Em kính mong nhận được sự chỉ bảo từ phía thầy cô và các bạn
Em xin chân thành cảm ơn!
Thái Nguyên, tháng 6 năm 2016
Sinh viên thực hiện
Trang 2LỜI CAM ĐOAN
Em xin cam đoan: Đồ án này em thực hiện dưới sự hướng dẫn trực tiếp của
cô Ths.Dương Thu Mây, không sao chép từ bất cứ đồ án nào Các tài liệu tham khảo sử dụng trong đồ án đều được cho phép hợp lệ
Nếu có vi phạm quy định làm đồ án em xin hoàn toàn chịu trách nhiệm
Em xin chân thành cảm ơn!
Sinh viên
Nguyễn Thị Thu Huyền
Trang 3Chương 1 CƠ SỞ LÝ THUYẾT 8
1.1 Giới thiệu chung 8
1.1.1 Laravel là gì 8
1.1.2 Lịch sử phát triển của Laravel 8
1.2 Tổng quan cấu trúc ứng dụng 10
1.2.1 Nội dung thư mục gốc 10
1.3 Ưu nhược điểm 12
1.3.1 Ưu điểm 12
1.3.2 Nhược điểm 13
1.4 Điểm mới ở Laravel 5 13
1.4.1 Laravel 5 và cấu trúc thư mục 14
1.4.2 Thay đổi về template engine Blade 14
1.4.3 Các khái niệm về Contracts , Commands và Events 14
1.4.4 Hàm hỗ trợ Helpers 15
1.4.5 Định tuyến Routes 15
1.4.6 Controller Method Injection – Bộ điểu khiển theo phương thức chia nhỏ 16
1.4.7 Authentication Scaffolding – chứng thực khung 16
1.4.8 Tính giao thiệp Socialite 16
1.4.9 Hệ thống Flysystem 16
Trang 41.4.10 Dotenv – Environmental Detection – phát hiện môi trường 171.4.11 Form Requests – mẫu yêu cầu 17
1.4.12 Laravel Scheduler – laravel lịch trình 18
1.4.13 Hàm dd mới 18
1.4.14 Tính năng Eloquent Attribute Casting 18
1.4.15 Bỏ trang báo lỗi Whoops và Các lệnh generator mới 19
2.5.3 Biểu đồ Usecase tổng quát 29
2.5.4 Mô tả và biểu đồ tuần tự từng Usecase 30
2.5.5 Biểu đồ lớp 51
Chương 3 DEMO HỆ THỐNG CÔNG TÁC ĐÀO TẠO CHO BỘ MÔN MẠNG
VÀ TRUYỀN THÔNG 52
3.1 Phân quyền 52
3.2 Giao diện các chức năng của bộ môn 52
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN59
TÀI LIỆU THAM KHẢO 60
NHẬN XÉT CỦA GIÁO VIÊN 61
Trang 5DANH MỤC HÌNH ẢNH
Hình 1.1 Biểu đồ cho thấy mức độ yêu thích phổ biến và hiệu suất làm việc 20Hình 2.1 Bảng dữ liệu về chương trình đào tạo 23
Hình 2.2 Bảng dữ liệu hồ sơ giảng dạy 24
Hình2.3 Bảng dữ liệu phân công giảng dạy 25
Hình 2.4 Bảng dữ liệu về phân công phụ trách môn học 25
Hình 2.5 Biểu đồ Usecase tổng quát 29
Hình 2.6 Biểu đồ tuần tự cho Usecase Đăng nhập 31
Hình 2.7 Biểu đồ tuần tự cho Usecase Đăng xuất 32
Hình 2.8 Biểu đồ hoạt động của Usecase quản lý chương trình đào tạo 33Hình 2.9 Biểu đồ tuần tự cho Usecase Thêm chương trình đào tạo mới 35Hình 2.10 Biểu đồ tuần tự cho Usecase Sửa chương trình đào 36
Hình 2.11 Biểu đồ tuần tự cho Usecase Xóa chương trình đào tạo 37
Hình 2.12 Usecase cập nhật danh sách môn học 38
Hình 2.13 Biểu đồ hoạt động của Usecase phân công phụ trách môn học 39Hình 2.14 Biểu đồ tuần tự cho Usecase Thêm môn trong phụ trách môn học 41Hình 2.15 Biểu đồ tuần tự cho Usecase Sửa trong phụ trách môn học 42Hình 2.16 Biểu đồ tuần tự cho Usecase Xóa trong phụ trách môn học 43Hình 2.17 Biểu đồ hoạt động của Usecase phân công giảng dạy 44
Hình 2.18 Biểu đồ tuần tự cho Usecase Thêm trong phân công giảng dạy 46Hình 2.19 Biểu đồ tuần tự cho Usecase Xóa trong phân công giảng dạy 47Hình 2.20 Biểu đồ tuần tự cho Usecase xem phân công giảng dạy 48
Hình 2.21 Biểu đồ hoạt động của Usecase cập nhật thông tin cá nhân 49Hình 2.22 Biểu đồ tuần tự cho Usecase thông tin cá nhân 51
Hình 2.23 Biểu đồ lớp 51
Trang 6Hình 3.2 Giao diện nhập dữ liệu 52
Hình 3.3 Chương trình đào tạo 53
Hình 3.4 Danh sách môn học 53
Hình 3.5 Giao diện chưa phân công giảng dạy 54
Hình 3.6 Giao diện đã phân công giảng dạy 54
Hình 3.7 Giao diện trang sửa tên lớp học phần 55
Hình 3.7 Phân công phụ trách môn 55
Hình 3.8 Quản lý hồ sơ giảng dạy 56
Hình 3.9 Giao diện xem chương trình đào tạo 56
Hình 3.10 Giao diện xem danh sách môn học 57
Hình 3.11 Giao diện xem danh sách phân công 57
Hình 3.12 Giao diện xem danh sách phân công phụ trách môn 58
Trang 7LỜI MỞ ĐẦU
Ngày nay ta có thể thấy rõ được sự phát triển nhanh chóng của ngành công nghệ thông tin cùng với sự ứng dụng vô cùng quan trọng của nó đối với các ngành khác, góp phần thúc đẩy sự phát triển của đất nước Một trong những ứng dụng của ngành công nghệ thông tin đó là xu hướng tin học hóa các hệ thống nói chung
và hệ thống quản lý nói riêng Ứng dụng này đã được sử dụng trong hầu hết các lĩnh vực kinh tế - xã hội, trong đó phải kể đến là ứng dụng trong giáo dục và đào tạo Xu hướng tin học hóa trong giáo dục và đào tạo đã được phát triển nhanh chóng những năm gần đây, đã có nhiều dự án tin học hóa giáo dục đào tạo được triển khai và đưa vào ứng dụng, có thể kể đến như: Quản lý điểm sinh viên, lập thời khóa biểu, dạy học từ xa Một dự án được xem là thiết yếu đối với bất cứ một
cơ sở đào tạo nào dù quy mô lớn hay nhỏ, đó là quản lý công tác đào tạo Việc quản lý công tác đào tạo của các bộ môn vẫn phải thực hiện thủ công, máy tính chủ yếu làm công tác soạn thảo, in ấn Với sự bùng nổ của công nghệ thông tin để việc quản lý bớt khó khăn, thay sức người bằng máy tính
Chính vì lý do trên đây em đã chọn đề tài: “Xây dựng website quản lý công tác đào tạo cho bộ môn Mạng & Truyền thông - khoa Công nghệ Thông tin” nhằm mục tiêu hiện tại giúp công tác quản lý công tác đào tạo được thuận tiện nhanh chóng, giảng viên có thể xem chương trình giảng dạy trên mạng Internet và phụ trách môn học
Đồ án của em chia làm 3 phần:
Chương 1: Tổng quan về Laravel FrameworkChương 2: Khảo sát và phân tích thiết kế hệ thống công tác đào tạo cho bộ môn mạng và truyền thông
Trang 8Chương 3: Xây dựng demo hệ thống công tác đào tạo cho bộ môn mạng và truyền thông
Trang 9và quản lý gói phụ thuộc, nhiều cách khác nhau để truy cập vào các cơ sở dữ liệu quan hệ, nhiều tiện ích khác nhau hỗ trợ việc triển khai vào bảo trì ứng dụng.
Vào khoảng Tháng 3 năm 2015, các lập trình viên đã có một cuộc bình chọn PHP framework phổ biến nhất, Laravel đã giành vị trí quán quân cho PHP framework phổ biến nhất năm 2015, theo sau lần lượt là Symfony2, Nette, CodeIgniter, Yii2 và một số khác Trước đó, Tháng 8 2014, Laravel đã trở thành project PHP phổ biến nhất và được theo dõi nhiều nhất trên Github
Laravel được phát hành theo giấy phép MIT (Giấy phép MIT là một loại giấy phép sử dụng cho các phần mềm, các mã nguồn mở được phát triển dựa trên một loại giấy phép có nguồn gốc tại Viện Công nghệ Massachusetts), với source code được lưu trữ tại Github (Git là tên gọi của một Hệ thống quản lý phiên bản phân tán (Distributed Version Control System – DVCS) là một trong những hệ thống quản lý phiên bản phân tán phổ biến nhất hiện nay)
Lịch sử phát triển của Laravel
Laravel được Taylor Otwell tạo ra như một giải pháp thay thế cho CodeIgniter, cung cấp nhiều tính năng quan trọng hơn như xác thực và phân quyền Taylor nhanh chóng nhận ra những điểm khiếm khuyết ở CodeIgniter, với
Trang 10mình tạo ra một framework sao cho thật đơn giản, dễ hiểu, hỗ trợ lập trình viên hiện thực ý tưởng một cách nhanh nhất bằng nhiều tính năng hỗ trợ như Eloquent ORM (Object Relational Mapping - kỹ thuật chuyển đổi dữ liệu giữa các hệ thống khác không phải là mô hình hướng đối tượng sang các đối tượng trong ngôn ngữ lập trình hướng đối tượng) mạnh mẽ, xác thực đơn giản, phân trang hiệu quả, và hơn thế nữa.
Bản Laravel beta đầu tiên được phát hành vào ngày 9/6/2011, tiếp đó là Laravel
1 phát hành trong cùng tháng Laravel 1 bao gồm các tính năng như xác thực, bản địa hóa, model, view, session, định tuyến và các cơ cấu khác, nhưng vẫn còn thiếu controller, điều này làm nó chưa thật sự là một MVC framework đúng nghĩa
Laravel 2 được phát hành vào tháng 9 năm 2011, mang đến nhiều cài tiến từ
tác giả và cộng đồng Tính năng đáng kể bao gồm hỗ trợ controller, điều này thực
sự biến Laravel 2 thành một MVC framework hoàn chỉnh, hỗ trợ Inversion of Control (IoC – kiểm soát ngược), hệ thống template Blade Bên cạnh đó, có một nhược điểm là hỗ trợ cho các gói của nhà phát triển bên thứ 3 bị gỡ bỏ
Laravel 3 được phát hành vào tháng 2 năm 2012, với một tấn tính năng mới
bao gồm giao diện dòng lệnh (CLI- Command-line interface giao diện dòng lệnh) tên “Artisan” (nghệ nhân), hỗ trợ nhiều hơn cho hệ thống quản trị cơ sở dữ liệu, chức năng ánh xạ cơ sở dữ liệu Migration (di trú), hỗ trợ “bắt sự kiện” trong ứng dụng, và hệ thống quản lý gói gọi là “Bundles” (bó) Lượng người dùng và sự phổ biến tăng trưởng mạnh kể từ phiên bản Laravel 3
Laravel 4, tên mã “Illuminate”, được phát hành vào tháng 5 năm 2013 Lần
này thực sự là sự lột xác của Laravel framework, di chuyển và tái cấu trúc các gói
hỗ trợ vào một tập được phân phối thông qua Composer (phần mềm soan thảo lệnh theo CLI), một chương trình quản lý gói thư viện phụ thuộc độc lập của PHP Bố trí mới như vậy giúp khả năng mở rộng của Laravel 4 tốt hơn nhiều so với các phiên
Trang 11bản trước Ra mắt lịch phát hành chính thức mỗi sáu tháng một phiên bản nâng cấp nhỏ các tính năng khác trong Laravel 4 bao gồm tạo và thêm dữ liệu mẫu (database seeding), hỗ trợ hàng đợi, các kiểu gởi mail, và hỗ trợ “xóa mềm” (soft-delete: record
bị lọc khỏi các truy vấn từ Eloquent mà không thực sự xóa hẳn khỏi DB)
Laravel 5 được phát hành trong tháng 2 năm 2015, như một kết quả thay đổi
đáng kể cho việc kết thúc vòng đời nâng cấp Laravel lên 4.3 Bên cạnh một loạt tính năng mới và các cải tiến như hiện tại, Laravel 5 cũng giới thiệu cấu trúc cây thư mục nội bộ cho phát triển ứng dụng mới Những tính năng mới của Laravel 5 bao gồm hộ trợ lập lịch định kỳ thực hiện nhiệm vụ thông qua một gói tên là
“Scheduler”, một lớp trừu tượng gọi là “Flysystem” cho phép điều khiển việc lưu trữ từ xa đơn giản như lưu trữ trên máy local – dễ thấy nhất là mặc định hỗ trợ dịch
vụ Amazone S3, cải tiến quản lý assets thông qua “Elixir”, cũng như đơn giản hóa quản lý xác thực với các dịch vụ bên ngoài bằng gói “Socialite”
Laravel 5.1 phát hành vào tháng 6 năm 2015, là bản phát hành đầu tiên nhận
được hỗ trợ dài hạn (LTS “Long Term Support" - có nghĩa là "Hỗ trợ dài hạn") với một kết hoạch sửa lỗi (fix bug) lên tới 2 năm vào hỗ trợ vá lỗi bảo mật lên tới 3 năm Các bản phát hành LTS của Laravel được lên kế hoạch theo mỗi 2 năm
Tổng quan cấu trúc ứng dụng
Nội dung thư mục gốc
Tại thư mục gốc của Laravel chứa tệp cấu hình của Composer, các thông tin
về framework, thư mục chứa cấu hình môi trường, các tập tin công khai, mã ứng dựng và thư mục với tất cả các gói được cài đặt bao gồm cả gói làm nên Laravel framework
Bảng 0.1 Mô tả các tệp và thư mục trong thư mục gốc của laravel
Trang 12Tệp/Thư mục Mục đích
/bootstrap Chứa đường dẫn thư mục Laravel Framework, các
tập tin được biên dịch và cấu hình môi trường ứng dụng
/public
Đây là thư mục công khai nó sẽ chứa CSS, Javascript và các file và thư mục khác sẽ cho phép truy cập bởi người sử dụng ứng dụng
/vendor Chứa các gói của bên thứ 3 và các gói làm nên
Laravel Framework được cài đặt trong thư mục này
composer.json
Đây là tập tin cấu hình Composer chứa danh sách các gói mà ứng dụng sử dụng, phiên bản cài đặt cho mỗi gói và thiết lập tính ổn định
CONTRIBUTING.md Chứa hướng dẫn đóng góp vào Laravel Framework
readme.md Cung cấp thông tin chung về Laravel và các liên kết
tới tài liệu, các yêu cầu và giấy phép của ứng dụng
server.php
Laravel có một lệnh đặc biệt chạy ứng dụng hiện tại trên máy chủ PHP của hệ thống Tệp này giúp cho chức năng đó
artisan Cung cấp tích hợp trong giao diện dòng lệnh của
Laravel, giúp nhà phát triển có thể tăng tốc công việc
phpunit.xml Tệp cấu hình cho PHPUnit bộ môn công cụ kiểm
tra
Trang 13Nội dung thư mục app
Khi xây dựng một ứng dụng với Laravel, các định tuyến, các bộ lọc định tuyến, cấu hình thiết lập khác và di trú cơ sở dữ liệu cho ứng dụng sẽ nằm trong thư mục này
Bảng 0.2 Mô tả các tệp và thư mục trong thư mục app của laravel
Tệp/Thư mục Mục đích
/models Chứa các lớp đại diện cho các mô hình dữ liệu
/views Chứa các bản mẫu cho views và bố cục của view
/controller Chứa các controllers của ứng dụng
/config Cài đặt các ứng dụng cụ thể như thông tin cơ sở dữ liệu, thiết đặt
trình điều khiển phiên và các bộ đệm
/database Dữ liệu mẫu và di trú cơ sở dữ liệu
/lang Chuỗi ngôn ngữ cho validation, pagination và các email nhắc nhở/commands Các lớp tùy biến bao gồm các lệnh Artisan
/storage Bộ đệm, phiên tạm thời và các views được biên dịch
/start Các file hỗ trợ điều chỉnh lỗi và chế độ bảo trì ứng dụng
/test Bộ môn kiểm tra của ứng dụng
filter.php Logic và định nghĩa các bộ lọc sử dụng trong ứng dụng
routes.php Danh sách đầu cuối được đăng ký của ứng dụng
Trang 14 Ưu nhược điểm
Ưu điểm
Laravel, sử dụng Blade Template Engine Rất nhẹ nhàng và hữu dụng Chỉ cần có 1 trang master template (template sườn) sẽ được sử dụng và kế thừa từ các file template con
Laravel hỗ trợ nhiều cách viết để ngắn gọn nhất có thể và nhiều cách viết khác nhau như Fluent Query Builder (trình tạo truy vấn) và Eloquent (tài hùng biện) Cực kỳ ngắn gọn – dễ quản lý và hữu dụng Hỗ trợ sẵn các hàm để tìm dữ liệu , nạp dữ liệu, đếm dòng , … Laravel hỗ trợ tương tác với cơ sở dữ liệu như tạo
cơ sở dữ liệu, tạo bảng, chỉnh sửa bảng, insert dữ liệu… thông qua Schema Builder (trình tạo giản đồ)
Route trong Laravel, có thể nhóm các rule (quy định) lại với nhau, các rule con nằm trong rule mẹ sẽ chịu ảnh hưởng Ví dụ:
Có thể thấy các rule con bên trong trước khi được thực thi sẽ phải chạy qua rule mẹ để kiểm tra, nếu thỏa mãn mới thực thi
Trang 15Laravel được phát hành theo giấy phép MIT, với source code được lưu trữ tại Github nên dễ dàng tìm kiếm và lấy code.
Nhược điểm
Laravel chưa có nhiều tài liệu tiếng việt nên gặp rất nhiều khó khăn trong việc học hỏi và tìm kiếm code, tìm kiếm cách sửa lỗi khi có lỗi xảy ra trong quá trình code
Laravel thực hiện điều hướng hoàn toàn qua route Tại đây người lập trình có thể làm tất cả các việc mà ngay cả Models và Controller đảm nhận theo mô hình MVC rất tiện, bên cạnh đó, khi đưa vào làm việc nhóm rất có khả năng xảy ra tranh chấp Laravel , khi có lỗi xảy ra ở route thì toàn bộ hệ thống sẽ bị lỗi và ngừng hoạt động
Điểm mới ở Laravel 5
Taylor Otwell đã nói rằng Laravel 4.3 có thể đổi tên thành Laravel 5 để phản ánh việc thay đổi cấu trúc thư mục và "những sáng kiến thú vị khác" Đã có khoảng gần 20 tính năng mới được giới thiệu kể từ khi có thông báo Laravel 5 và
"những sáng kiến thú vị" đã được phát triển
Rất nhiều những bài viết hướng dẫn nâng cấp version chờ Laravel 5 ra mắt Nhiều những tổ chức, công ty kiên nhẫn sử dụng tạm các develop-branch (GIT -nd) để chờ Laravel 5 ra mắt
Laravel 5 sẽ ra mắt với rất nhiều nâng cấp mới, những tính năng mới nhưng đồng thời lại vẫn giữ được những yếu tố mà đã tạo nên sự thành công của Laravel.Thực tế là nó nhiều tính năng mới đến nỗi việc theo dõi xem nó có gì mới cũng rất mệt Sơ qua một số tính năng mới và những gì được mong chờ ở laravel 5
Trang 16 Laravel 5 và cấu trúc thư mục
Sự thay đổi quan trọng đầu tiên của phiên bản này đó là cấu trúc thư mục Có một số thay đổi nhỏ trong thư mục app và một số thay đổi ở bên ngoài nó Bao gồm sự thay đổi về config, database, storage và resources
Bên trong thư mục app sẽ được chia nhỏ thành các thư mục:
Thay đổi về template engine Blade
Blade (lớp cắt) không nhận được nhiều sự cải tiến nhưng lại có một sự nâng cấp khá giá trị
Trong Laravel 4, Blade sử dụng phong cách {{ và {{{ Ngoặc kép là phép echo thuần, và ngoặc ba là phép echo có filter (lọc)
Bây giờ thì cả hai loại ngoặc trên quy về sử dụng một phong cách duy nhất là
Trang 17{!! $var !!}.
Một trường hợp sử dụng phổ biến cho các hàm helper của lớp Form:
{!! Form::open() !!}
Các khái niệm về Contracts , Commands và Events
Contracts là một tập các interfaces (giao diện) mà định nghĩa các core services (dịch vụ cốt lõi) được cung cấp bởi framework Về cơ bản thì nó được dùng để mô tả các đặc điểm của framework
Commands (lệnh) và Events (sự kiện) đã được làm lại
Trang 18Khi các route đang được phân tích từ các tập tin lưu trữ, không thực hiện route tập tin Khi đó có thể làm cho tất cả những thay đổi đối với routes.php và định tuyến các ứng dụng sẽ không thay đổi cho đến khi lưu trữ cache.
Middleware (trung gian)
Trung gian là một loạt các hàm bao xung quanh ứng dụng để trang trí theo yêu cầu và các phản hồi theo một cách nào đó mà không phải là một phần của logic ứng dụng
Trang 19 Controller Method Injection – Bộ điểu khiển theo phương thức chia nhỏ
Laravel 4 đã hỗ trợ injection trong constructor của controller Trong Laravel
5, tính năng này đã tiến một bước xa hơn Có thể injection được mọi dependencies (phụ thuộc) trong các phương thức:
public function store(Request $request)hoặc
public function taxes(TaxCalculator $tax)
Authentication Scaffolding – chứng thực khung
Luồng authentication (chứng thực) mặc định đã được thiết lập sẵn
Giới thiệu hai hàm chứng thực mới mới:
AuthenticatesAndRegistersUsers
ResetsPasswords
Hai hàm này có thể sử dụng để nhúng hoặc ghi đè các phương thức trong đó nhằm tăng tính tùy chỉnh cho ứng dụng
Tính giao thiệp Socialite
Tính năng này là một sự tùy chọn, các gói tin của Laravel 5 làm cho việc tương tác với OAuth dễ dàng hơn Socialite hiện tại hỗ trợ Facebook, Twitter, Google, và GitHub
Hệ thống Flysystem
Trang 20Jonge Flysystem là một tập các lớp trừu tượng của hệ thống file, dễ dàng cho phép tương tác với hệ thống file trên máy tính hoặc hệ thống file từ xa (Amazon S3, Dropbox, Ftp ).
Hiện tại đã include các bộ chuyển đổi (adapters) sau:
Local
Amazon Web Services – S3
Rackspace Cloud Files
Dropbox
Copy
Ftp
Sftp (through phpseclib)
Zip (through ZipArchive)
WebDAV (through SabreDAV)
Azure Blob Storage
NullAdapter
Cho phép dễ dàng tải một tập tin lên bất kỳ dịch vụ lưu trữ nào
Dotenv – Environmental Detection – phát hiện môi trường
Vance Lucas đã tạo một gói tin có tên là PHP dotenv để tải các biến môi
Trang 21trường từ các file env thông qua các hàm getenv(), $_ENV and $_SERVER.
Laravel 5 đã thêm gói tin này để quản lý biến môi trường đơn giản hơn Không còn cần phải chỉnh sửa file bootstrap/start.php và mảng $app-> detectEnvironment() nữa
Thay vì thế, sẽ thực hiện tạo một file env và dễ dàng tùy chỉnh nó với các thông tin cần sử dụng Sau đó trong bất kỳ file config nào chỉ cần sử dụng chúng như ví dụ sau:
'database' => env('DB_DATABASE’, 'myproddb'), Gói tin này còn hỗ trợ tùy ý tạo ra những tùy chỉnh cho các môi trường phát triển khác nhau như local, testing, develop
Form Requests – mẫu yêu cầu
Các vấn đề về form validation – mẫu xác nhận hay form requests – mẫu yêu cầu đã được thảo luận rất nhiều Về cơ bản, auth và validation có thể được chuyển vào FormRequests và được chia nhỏ một cách dễ dàng
Laravel Scheduler – laravel lịch trình
Laravel Scheduler được thiết kế để đơn giản hóa các tác vụ cần thực thi thông qua CRON ( một tiện ích cho phép thực hiện các tác vụ một cách tự động theo định kỳ ) Tất cả việc cần làm là chạy một commandline artisan schedule:run
và cron job -công việc sẽ được chạy mỗi phút
Một khi cron job của bạn được cài đặt, bạn có thể lên lịch cho bất kỳ tác vụ nào chạy, rất ngắn gọn và đơn giản Việc thiết lập Scheduler được thực hiện trong thư mục app/Console/Commands
Trang 22Ví dụ:
$schedule->command('cache:clear') ->hourly()
->sendOutputTo($filePath) ->emailOutputTo('john@doe.com');
$schedule->call('SomeClass@method')->dailyAt('10:00');
Hàm dd mới
Hàm yêu thích của rất nhiều người, và nay nó nhận được một nâng cấp lớn Symfony mới ra mắt thành phần VarDumper và Laravel bây giờ sử dụng nó ở nền dưới
Tính năng Eloquent Attribute Casting
Attribute Casting cho phép chuyển đổi kiểu dữ liệu của các thuộc tính trong model sang một kiểu khác Ví dụ:
protected $casts = [ 'is_admin' => 'boolean', 'options' => 'array',];
Nó sẽ tự động chuyển is_admin về kiểu bool Các tùy chọn có thể được lưu trong json hoặc tự động chuyển đổi trong mảng khi trả ra
Tính năng này thực sự rất tiện lợi khi sử dụng Javascript và cần kết hợp chúng
Trang 23 Bỏ trang báo lỗi Whoops và Các lệnh generator mới
Trang báo lỗi Whoops trong Laravel 4 đã bị loại bỏ trong Laravel 5 Tuy nhiên bạn vẫn có thể đưa nó vào lại nếu muốn
Artisan bây giờ mạnh mẽ hơn nhiều bằng việc đem tới rất nhiều lệnh như:make:command — Tạo mới một class Command
make:console — Tạo mới một Artisan command
make:controller — Tạo mới một controller
make:event — Tạo mới một class event
make:middleware — Tạo mới một class middleware
make:migration — Tạo mới một file migration
make:model — Tạo mới một class Eloquent model
make:provider — Tạo mới một class service provider
make:request — Tạo mới một class form request
event:generate — Tự động sinh các missing events và handlers
Lựa chọn Laravel
Sau một thời gian tìm hiểm và tham khảo qua các trang web trên mạng xã hội Laravel chứng tỏ được sự vượt trội của mình so với các Framwork khác Theo thống kê gần đây nhất của GitHub về 15 PHP Framework miễn phí tốt nhất năm
2015 cho thấy
Trang 24Hình 1.1 Biểu đồ cho thấy mức độ yêu thích phổ biến và hiệu suất làm việc
Laravel 5.2 là phiên bản mới nhất của Laravel đưa ra khi em bắt đầu nhận đề tài Trước khi làm đề tài em đã nhận thấy được mặt tích cực và khả năng Laravel 5.2 đưa ra hỗ trợ để em có thể hoàn thành bài demo của mình với các ưu điểm sau:
Với những tính năng nổi bật của Laravel bao gồm cú pháp dễ hiểu – rõ ràng , một hệ thống đóng gói modular (khối kết cấu) và quản lý gói phụ thuộc,
Trang 25nhiều cách khác nhau để truy cập vào các cơ sở dữ liệu quan hệ, nhiều tiện ích khác nhau hỗ trợ việc triển khai vào bảo trì ứng dụng
Laravel đã bắt đầu được nhiều lập trình viên Việt Nam hướng tới với những khả năng mà laravel đem lại Nhận thấy có khả năng tìm hiểu và học tập tuy không nhiều
Laravel 5.* đã thực hiện lược bỏ một số các tính năng không cần thiết, tuy nhiên không bỏ hẳn mà được xem như một vendor (cung cấp) bổ sung tính năng cho phiên bản Đặc biệt là Laravel 5 đã thực hiện lược bỏ tập hợp html
"laravelcollective/html": "~5.0" (cung cấp cách tạo định dạng html khác theo hướng đối tượng) và quay về xây dựng theo html thông thường
Laravel 5.* thực hiện đặt toàn bộ các file Models trong thư mục /app và đặt file điều hướng route cũng như thư mục /Controller hoàn toàn bên trong thư mục /Http dễ dàng cho việc kiểm soát cũng như quản lý code
Laravel 5* đặt toàn bộ nội dung phần hiển thị và định dạng ngôn ngữ cho website bên trong thư mục /resources thuận tiện cho việc quản lý các trang của website và định dạng lại ngôn ngữ một cách nhanh chóng
Cũng như các Framework khác, Laravel cho phép xây dựng bộ thư viện riêng và cho phép bất cứ đâu trong hệ thống có thể gọi tới và sử dụng
Những đặc điểm quan trọng này là cơ sở để nhóm phát triển ứng dụng lựa chọn Laravel làm công cụ chung để xây dựng hệ thống quản lý của bộ môn
Trang 26Chương 2.
KHẢO SÁT VÀ PHÂN TÍCH THIẾT KẾ HỆ THỐNG CÔNG TÁC ĐÀO
TẠO CHO BỘ MÔN MẠNG VÀ TRUYỀN THÔNG
2.1 Nhiệm vụ của đồ án
Để hoàn thành mục tiêu của đồ án, ta phải tiến hành các công việc sau:
Trước hết cần phải tìm hiểu cơ sở lý luận cho việc xây dựng một hệ thống thông tin
Tìm hiểu ngôn ngữ lập trình và hệ quản trị cơ sở dữ liệu
Tiến hành xây dựng chương trình
Đánh giá chương trình: tiến hành chạy thử rồi đánh giá
2.2 Kết quả dự kiến đạt được
Nắm được kỹ thuật thiết kế web, từ đó xây dựng được chương trình demo và báo cáo kết quả đã đạt được
2.3 Khảo sát thực tế
Bộ môn:
Quản lý chương trình đào tạo: Bộ môn cập nhật thông tin chương trình đào tạo theo quyết định của hội đồng khoa học (môn học, số tín chỉ, học kỳ)
do văn phòng khoa gửi Quản lý các thông tin liên quan đến môn học (ngân hàng
đề, hình thức thi, thời gian thi, giáo viên phụ trách môn học, v.v )
Trang 28Hình 2.1 Bảng dữ liệu về chương trình đào tạo
Quản lý hồ sơ giảng dạy:
Hồ sơ giảng dạy bao gồm: Dùng chung theo môn học (bài giảng, đề cương, bài tập thực hành/thảo luận, đề tài bài tập lớn, tài liệu tham khảo); dùng cho cá nhân (giáo án, slide)
Giảng viên chịu trách nhiệm về môn giảng dạy, chịu trách nhiệm cùng với nhóm giáo viên chuyên môn xây dựng các hồ sơ giảng dạy dùng chung Mỗi giáo viên tự chịu trách nhiệm xây dựng các hồ sơ giảng dạy cá nhân Bản mềm của hồ sơ giảng dạy (loại dùng chung) sẽ được lãnh đạo bộ môn quản lý tập trung theo môn học Bản mềm của hồ sơ giảng dạy cá nhân sẽ được quản lý theo từng giáo viên
Trang 29Hình 2.2 Bảng dữ liệu hồ sơ giảng dạy
Quản lý phân công giảng dạy: Bộ môn phân công giảng dạy theo kế hoạch của phòng đào tạo Kế hoạch đào tạo được phòng đào tạo xây dựng dựa trên chương trình đào tạo của các ngành và đưa về khoa vào đầu năm học Ngoài
ra, trong năm học phòng đào tạo liên tục mở các lớp học cải thiện và kế hoạch tổ chức các lớp học cũng gửi về khoa Văn phòng khoa chuyển các thông tin này về
Trang 30lớp học phần sẽ mở Văn phòng khoa sẽ tổng hợp phân công của các bộ môn và chuyển lại phòng đào tạo để thực hiện các bước tiếp theo Thông tin phân công giảng dạy có thể thay đổi cho đến trước khi phòng đào tạo lập lịch giảng dạy cho giảng viên
Hình2.3 Bảng dữ liệu phân công giảng dạy
Phân công phụ trách môn học: Đối với mỗi môn học, bộ môn phân công một giảng viên chịu trách nhiệm và một nhóm giáo viên chuyên môn cùng phụ trách Nhóm chuyên môn cùng xây dựng/chỉnh lý các tài liệu giảng dạy dùng chung theo yêu cầu của bộ môn Tất cả bản mềm của tài liệu giảng dạy sau khi được bộ môn phê duyệt sẽ được lưu trữ tập trung và do lãnh đạo bộ môn quản lý
Trang 31để giảng dạy theo từng khóa, từng lớp, kiểu học của từng môn học, số giờ học, số sinh viên tối đa một lớp.
Xem môn chịu trách nhiệm giảng dạy: Bộ môn gửi thông tin các môn
mà giảng viên sẽ chịu trách nhiệm
Giảng viên là người chịu trách nhiệm chính với môn học: giảng viên xem tên môn học và nhóm các giáo viên cùng chịu trách nhiệm với mình Khi đó, giảng viên chịu trách nhiệm chính là người nhận môn học, ký xác nhận, nộp lên bộ môn và chịu trách nhiệm về môn học đó
Nhóm giảng viên thực hiện làm đề cương, bài giảng, ngân hàng đề, in,.v v…
Mỗi giảng viên chịu trách nhiệm một hoặc nhiều môn học Giảng viên chịu
Trang 32trách nhiệm làm đề cương, bài giảng, ngân hàng đề, bài tập thảo luận,… được phân công, thời gian nộp đề cương, bài giảng.
Phân công phụ trách môn học: Bộ môn gửi thông tin về môn học cho một nhóm giảng viên và đưa ra giảng viên nào chịu trách nhiệm chính trong môn học đó để làm bài giảng, đề cương, bài thảo luận, tài liệu tham khảo
Quản lý phân công giảng dạy: Bộ môn phân công giảng dạy môn học (lớp học phần,tên môn, v v…) cho các giảng viên Bộ môn có thể thêm, sửa, xóa thông tin môn học đã phân công
Quản lý hồ sơ giảng dạy: Khi các giảng viên gửi tài liệu về các môn học chịu trách nhiệm làm đề cương, bài giảng, bài thảo luận, tài liệu tham khảo lên cho bộ môn, bộ môn sẽ có nhiệm vụ lưu trữ những tài liệu này
Quản lý thông tin cá nhân của giảng viên: Khi giảng viên cập nhật thông tin cá nhân lên website, bộ môn có quyền xem, sửa, xóa các thông tin cá nhân Lấy thông tin cá nhân
Trang 33 Giảng viên: Giảng viên thực hiện các chức năng:
Xem phân công giảng dạy: Giáo viên sẽ xem được các môn học được phân công giảng dạy trong kỳ học hiện tại hoặc sắp tới Ở chức năng này, giáo viên chỉ được quyền xem thông tin chứ không có quyền sửa, xóa thông tin các môn học
Xem môn chịu trách nhiệm giảng dạy: Bộ môn sẽ gửi thông tin môn học giảng viên chịu trách nhiệm làm bài giảng, đề cương, bài thảo luận, tài liệu tham khảo,… Giảng viên biết được mình là chịu trách nhiệm chính hay chịu trách nhiệm phụ, biết được các giảng viên cùng chịu trách nhiệm môn học này
Thời khóa biểu: ở chức năng này, giảng viên sẽ xem được các công việc của mình theo tuần liên quan đến công việc ở trường mà bộ môn phân công
Cập nhật thông tin cá nhân: Giảng viên truy cập vào phần thông tin cá nhân và thêm hoặc sửa thông tin cá nhân của mình ở đó và lưu lại
Trang 34 2.5.2 Danh sách UseCase
Bảng 2.2 Danh sách UseCase
Đăng nhập Usecase cho phép người dùng đăng nhập vào
5 Quản lý hồ sơ giảng dạy Use case thêm, sửa, xóa hồ sơ môn học
6 Quản lý thông tin Use case cho phép thêm, sửa, xóa thông tin
7 Xem phân công giảng
Trang 36Hình 2.5 Biểu đồ Usecase tổng quát
2.5.4 Mô tả và biểu đồ tuần tự từng Usecase
Người dùng đăng nhập vào hệ thống
USE CASE ĐĂNG NHẬP
Hệ thống kiểm tra Tên đăng nhập và Mật khẩu ở DB
Đăng nhập thành công, hệ thống chuyển về trang Quản lý
Ngoại lệ Tên đăng nhập hoặc Mật khẩu sai: hệ thống thông báo đăng
nhập không thành công và yêu cầu nhập lại
Trang 37Hình 2.6 Biểu đồ tuần tự cho Usecase Đăng nhập
Nguời dùng đăng xuất khỏi hệ thống
USE CASE ĐĂNG XUẤT
Mô tả Cách Actor đăng xuất khỏi hệ thống
Điều kiện tiên
quyết Actor đang ở trong hệ thống
Điều kiện bài Actor đăng xuất ra khỏi hệ thống
Trang 38Hoạt động
Actor chọn chức năng Đăng xuất
Hệ thống ngắt kết nối và tự động chuyển về trang đăng nhập
Hình 2.7 Biểu đồ tuần tự cho Usecase Đăng xuất
Trang 39QUẢN LÝ CHƯƠNG TRÌNH ĐÀO TẠO