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

Xây dựng module quản lý công tác và phân công công việc cho website quản lý của bộ môn mạng truyền thông – khoa công nghệ thông tin

94 566 1

Đ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

Định dạng
Số trang 94
Dung lượng 2,05 MB

Nội dung

Tại bộ môn hiện nay, việc quản lý công việc có nhiều bất cập do hầu hếu các tài liệu và thông tin được lưu và quản lý bằng Excel… Việc thống kê cũng như theo dõi công việc cũng như lịch

Trang 1

 LỜI CẢM ƠN

Em xin chân thành cảm ơn các thầy cô giáo, gia đình và bạn bè đã động viên giúp đỡ em rất nhiều trong quá trình hoàn thành đề tài này Đặc biệt em xin bày tỏ lòng cảm ơn sâu sắc tới thầy giáo hướng dẫn Ts Nguyễn Toàn Thắng về sự chỉ dẫn tận tình và tận tâm hướng dẫn em từ những ý tưởng ban đầu cho đến lúc hoàn thành đề tài này

Em rất mong đón nhận sự đánh giá, bổ sung và những lời chỉ bảo của các thầy cô giúp em có thể tiếp tục nghiên cứu kĩ hơn về lĩnh vực này

Em xin chân thành cảm ơn!

Thái Nguyên, tháng 06 năm 2016

Sinh viên thực hiện

Nguyễn Đức Dương

Trang 2

 LỜI CAM ĐOAN

Em xin cam đoan đồ án này là công trình tổng hợp và nghiên cứu của

cá nhân em, được thực hiện trên cơ sở nghiên cứu lý thuyết, kiến thức dưới

sự hướng dẫn tận tình của thầy giáo Ts Nguyễn Toàn Thắng Trong đồ án

có sử dụng một số tài liệu tham khảo như đã nêu trong phần tài liệu tham khảo

Thái Nguyên, tháng 06 năm 2016

Sinh viên thực hiện

Nguyễn Đức Dương

Trang 3

 MỤC LỤC

MỤC LỤC 4

CHƯƠNG 1 CƠ SỞ LÝ THUYẾT 10

1.1 Giới thiệu chung 10

1.1.1 Laravel là gì 10

1.1.2 Lịch sử phát triển của Laravel 10

1.2 Tổng quan cấu trúc ứng dụng 13

1.2.1 Nội dung thư mục gốc 13

1.2.2 Nội dung thư mục app 14

1.3 Ưu nhược điểm 14

1.3.1 Ưu điểm 14

1.3.2 Nhược điểm 15

1.4 Điểm mới ở Laravel 5 16

1.4.1 Laravel 5 và cấu trúc thư mục 16

1.4.2 Thay đổi về template engine Blade 17

1.4.3 Các khái niệm về Contracts , Commands và Events 17

1.4.4 Hàm hỗ trợ Helpers 17

1.4.5 Định tuyến Routes 18

Trang 4

1.4.6 Controller Method Injection – Bộ điểu khiển theo phương thức chia nhỏ 18

1.4.7 Authentication Scaffolding – chứng thực khung 19

1.4.8 Tính giao thiệp Socialite 19

1.4.9 Hệ thống Flysystem 19

1.4.10 dotenv – Environmental Detection – phát hiện môi trường20

1.4.11 Form Requests – mẫu yêu cầu 20

1.4.12 Laravel Scheduler – laravel lịch trình 20

1.4.13 Hàm dd mới 21

1.4.14 Tính năng Eloquent Attribute Casting 21

1.4.15 Bỏ trang báo lỗi Whoops và Các lệnh generator mới 22

2.1.4 Nhu cầu có một trang web thay thế 30

2.1.5 Phân tích yêu cầu đề tài 30

2.2 Thiết kế hệ thống 31

2.2.1 Biểu đồ ca sử dụng (UseCase Diagram) 31

Trang 5

2.2.2 Biểu đồ lớp (Class Diagram) 35

2.2.3 Biểu đồ trình tự (Sequence Diagram) 40

3.1 Xây dựng và cài đặt chương trình 47

3.1.1 Cài đặt webserver (không bắt buộc) 47

3.1.2 Cài đặt composer 50

3.1.3 Tích hợp module vào hệ thống 51

3.2 Demo chương trình 62

KẾT LUẬN 69

NHẬN XÉT CỦA GIÁO VIÊN72

Trang 6

 DANH MỤC HÌNH ẢNH

Hình 1 Biểu đồ cho thấy mức độ yêu thích phổ biến và hiệu suất làm việc 23

Hình 2 Bản dữ liệu đầu vào đối với loại nhiệm vụ lịch thi 27

Hình 3 Bản dữ liệu đầu vào đối với loại nhiệm vụ lịch thi kiểm tra thi giữa kỳ

28

Hình 4 Kết quả thực hiện kế hoạch công tác28

Hình 5 Danh sách công việc 29

Hình 6 Danh sách nhiệm vụ 29

Hình 7 Biểu đồ usecase tổng quan hệ thống 33

Hình 8 Bản vẽ sơ bộ Class Diagram khi phân tích các Use Case 36

Hình 9 Bản vẽ Class Diagram sau khi thêm thuộc tính , tách các quan hệ và đặc tả thuộc tính 37

Hình 10 Biểu đồ lớp chi tiết 39

Hình 11 Biểu đồ trình tự chức năng thêm công việc 41

Hình 12 Biểu đồ trình tự chức năng phân công công việc42

Hình 13 Biểu đồ trình tự chức năng tìm kiếm lọc thông tin công việc 43

Hình 14 Biểu đồ trình tự chức năng đồng bộ dữ liệu lên google calendar

44

Hình 15 Biểu đồ trình tự chức năng gửi mail 46

Hình 16 Cài đặt xampp bước 1 47

Trang 7

Hình 17 Cài đặt xampp bước 2 48

Hình 18 Cài đặt xampp bước 3 49

Hình 19 Thêm đường dẫn trong path 50

Hình 20 Giao diện đăng nhập quản trị 62

Hình 21 Giao diện quản lý gửi và nhập dữ liệu, giao diện chọn loại 62

Hình 22 Giao diện quản lý gửi và nhập dữ liệu, loại công việc là lịch thi

Hình 25 Giao diện danh sách dữ liệu được gửi lên 64

Hình 26 Giao diện quản lý phân công, danh sách công việc 65

Hình 27 Giao diện quản lý phân công, danh sách nhiệm vụ công việc 65

Hình 28 Giao diện quản lý phân công, thay đổi số người tham gia 66

Hình 29 Giao diện quản lý phân công, phân công và thay đổi phân công công việc 66

Hình 30 Giao diện quản lý phân công, thay đổi thời gian thực hiện công việc về công việc thực hiện trong ngày 67

Hình 31 Giao diện quản lý phân công, thay đổi thời gian thực hiện công việc về công việc thực hiện dài ngày 67

Hình 32 Giao diện quản lý phân công, gửi mail cho giảng viên 68

Trang 8

Hình 33 Giao diện quản lý phân công, lịch làm việc 68

Trang 9

 LỜI NÓI ĐẦU

Ngày nay Internet đã trở thành dịch vụ phổ biến và thiết yếu, không thể thiếu Cùng với sự phát triển nhanh chóng của Internet thì các hình thức quản lý các thông tin cũng ngày càng đa dạng và phát triển hơn Tại bộ môn hiện nay, việc quản lý công việc có nhiều bất cập

do hầu hếu các tài liệu và thông tin được lưu và quản lý bằng Excel… Việc thống kê cũng như theo dõi công việc cũng như lịch làm việc của giảng viên gặp rất nhiều khó khăn

Trong kế hoạch phát triển của bộ môn đã đặt ra nhiệm vụ phải xây dựng một hệ thống quản lý trên nền web để hỗ trợ các công việc quản lý của bộ môn Website quản lý này bao gồm bốn module chính: module quản lý công tác và phân công công việc; module quản lý thực tập; module quản lý đào tạo; module thông tin Đề tài của đồ án là module thứ nhất trong hệ thống quản lý của bộ môn

Mục tiêu của đồ án là xây dựng module quản lý công tác và phân công công việc cho website quản lý của bộ môn mạng & truyền thông –khoa công nghệ thông tin sử dụng Laravel Framework

Dự kiến kết quả đạt được: module quản lý nhiệm vụ cho bộ môn thực hiện được các chức năng cơ bản: Nhập xuất dữ liệu công tác nhận được từ văn phòng khoa; Hỗ trợ quản lý phân công nhiệm vụ; Gửi thông báo cho giảng viên liên quan; Tích hợp với google calendar

Nội dung báo cáo bao gồm các phần như sau:

Chương 1: Cơ sở lý thuyết Chương 2: Khảo sát và phân tích thiết kế Chương 3: Xây dựng chương trình

Tuy nhiên, do thời gian hạn hẹp, mặc dù đã nỗ lực hết sức mình nhưng chắc rằng khó tránh khỏi thiếu sót Em rất mong nhận được sự thông cảm, những lời góp ý và chỉ bảo tận tình của quý Thầy Cô và các bạn

Trang 10

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ào 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)

Trang 11

 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 Tôi cũng không chắc về điều này, nhưng có thể Taylor vốn là một NET developer khi bắt đầu có nhu cầu làm việc với PHP khoảng vào những năm 2010-2011, đã chọn CodeIgniter khi đó đang là một ngôi sao mới nổi, thậm chí lấn át cả Symfony gạo cội Và Taylor nhanh chóng nhận

ra những điểm khiếm khuyết ở CodeIgniter, với tài năng và kiến thức xuất sắc về design-pattern của mình, Taylor quyết định tự mì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

Trang 12

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 bả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

Trang 13

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 2.1 Mô tả các tệp và thư mục trong thư mục gốc của laravel

/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

Frameworkreadme.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 đó

Trang 14

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ụng

kiểm tra

 Nộ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 2.2 Mô tả các tệp và thư mục trong thư mục app của laravel

Tệp/Thư

/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ụngroutes.php Danh sách đầu cuối được đăng ký của ứng dụng

 Ưu nhược điểm

Trang 15

 Ư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ụ:

Route::group(array(‘before’=>’auth’),function(){

Route::get(‘admin/contacts’,’AdminController@contacts’);

Route::get(‘admin/deletessh’,’AdminController@deletessh’); Route::post(‘admin/deletessh’,’AdminController@dodel’);

Trang 16

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 sả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 sảy ra tranh trấp Laravel , khi có lỗi sả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 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 branch (GIT - nd) để chờ Laravel 5 ra mắt

develop-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

 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 đó 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ó nữa Bao gồm sự thay đổi về config, database, storage và resources

Trang 17

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

 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 18

 Hàm hỗ trợ Helpers

Một số hàm helper đã bị thay thế bởi các hàm khác phổ biến hơn Ví

dụ, để render (biểu diễn) một view trong Laravel 4 cần gọi lệnh:

Trang 19

Khi các route đang được phân tích từ các tập tin lưu trữ, khôn 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

 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:

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

Trang 20

 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, and GitHub

 Amazon Web Services – S3

 Rackspace Cloud Files

 Dropbox

 Copy

 Ftp

 Sftp (through phpseclib)

 Zip (through ZipArchive)

 WebDAV (through SabreDAV)

 Azure Blob Storage

Trang 21

 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 trườ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

Trang 22

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

 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',

];

Trang 23

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

 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

Trang 24

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.

Hình 1 Biểu đồ cho thấy mức độ yêu thích phổ biến và hiệu suất làm việc

Trong đề tài này em sẽ sử dụng Laravel 5 cụ thể là phiên bản laravel 5.2 để xây dựng demo chương trình

Laravel 5.2 là phiên bản mới nhất của Laravel đưa ra khi em bắt đầu

Trang 25

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, 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 Điều này rất phù hợp với hệ thống như đề tài của em

 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ểm 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êm 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 Em không cảm thấy bỡ ngỡ hay lạ lẫm khi làm việc với Laravel 5.*

 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

Trang 26

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 27

 KHẢO SÁT VÀ PHÂN TÍCH

 THIẾT KẾ

 Khảo sát thực tế

 Giới thiệu chung về bộ môn Mạng và Truyền thông

Địa chỉ: Văn phòng bộ môn: phòng 212 nhà C1, trường đại học CNTT&TT

và trung cấp của Trường đại học Công nghệ thông tin và truyền thông Cùng với nhiệm vụ giảng dạy, còn có nhiệm vụ nghiên cứu khoa học và chuyển giao công nghệ thuộc các lĩnh vực Mạng máy tính và Truyền thông nói riêng và Công nghệ thông tin nói chung

Bộ môn thực hiện việc giảng dạy các kiến thức theo hướng Mạng & truyền thông cho sinh viên các hệ chung, ngành Truyền thông & Mạng máy tính Ngoài ra, các giảng viên thuộc bộ môn hướng dẫn sinh viên nghiên cứu khoa học, các giảng viên tham gia các đề tài, chủ nhiệm đề tài cấp Bộ, cấp Đại học Thái Nguyên, cấp Cơ sở, học tập và nâng cao trình độ sau đại học Bộ môn là bộ môn tham gia vào việc chuyển giao công nghệ liên quan

Trang 28

đến lĩnh vực Truyền thông và mạng máy tính, là nòng cốt và đi đầu trong hoạt động cập nhật và triển khai các chương trình đào tạo của các tập đoàn lớn về công nghệ thông tin và truyền thông.

 Hiện trạng

Qua quá trình khảo sát trực tiếp tại bộ môn Mạng và Truyền thông ta

có cơ cấu tổ chức như sau:

Lãnh đạo bộ môn: Có trách nhiệm điều hành mọi hoạt động của

bộ môn

Đội ngũ cán bộ: Có nhiệm vụ thực hiện việc giảng dạy các kiến thức theo hướng Mạng & truyền thông cho sinh viên các hệ chung, ngành Truyền thông & Mạng máy tính Có trách nhiệm thực hiện và hoàn thành các nhiệm

vụ được phân công

Khoa và các bộ môn thường xuyên phải thực hiện các công việc

mà khoa, các công việc chung giữa các bộ môn cũng như các công việc trong bộ môn gồm có:

 Lịch thi

 Công việc liên quan tới khảo thí

 Các công việc liên quan tới quản lý khoa học

 Một số công việc thường xuyên (lịch họp giao ban khoa, v.v )

 Thực tập (khác)

 Các công tác khác (các công việc đột xuất như phân công giảng viên tham gia các công việc của nhà trường, tham dự hội nghị, họp, v.v…)

Khi công việc được gửi tới bộ môn hay khi công việc bộ môn đưa ra,

sẽ được lãnh đạo bộ môn trực tiếp thực hiện phân công công việc tới từng

Trang 29

giảng viên phụ trách công việc đó.

Nếu công việc là lịch thi, tùy vào hình thức thi, là trắc nghiệm hay tự luận cũng như các giảng viên có thể thực hiện công việc trong thời gian diễn ra công việc, từ đó quyết định số giảng viên sẽ tham gia thực hiện công việc và giảng viên nào sẽ thực hiện công việc

Đối với các công việc khác, sẽ tùy vào mức độ quan trọng của công việc và chuyên môn của từng giảng viên cũng như các giảng viên có thể thực hiện công việc trong thời gian diễn ra công việc, từ đó sẽ quyết định số giảng viên sẽ tham gia vào công việc và giảng viên nào sẽ thực hiện công việc đó

Sau khi thực hiện phân công công việc, lãnh đạo bộ môn sẽ thực hiện gửi thông báo tới từng giảng viên ,với nội dung là công việc mà giảng viên cần thực hiện và các giảng viên sẽ thực hiện công việc cùng

Sau đó lãnh đạo bộ môn cần lọc ra danh sách các công việc cần thực hiện trong thời gian tới, có thể theo ngày, theo tuần, theo tháng để phục vụ việc kiểm soát quá trình hoàn thành công việc của từng giảng viên

 Các biểu mẫu

Đối với công việc là lịch thi

Trang 30

Hình 2 Bản dữ liệu đầu vào đối với loại nhiệm vụ lịch thi

Trang 31

Hình 3 Bản dữ liệu đầu vào đối với loại nhiệm vụ lịch thi kiểm tra thi giữa

kỳ

Đối với các loại công việc khác

Trang 32

Hình 4 Kết quả thực hiện kế hoạch công tác

Trang 33

Hình 5 Danh sách công việc

Trang 34

Hình 6 Danh sách nhiệm vụ

Đối với các loại công việc khác cần xác định các thông tin

 Tên công việc

 Thời gian thực hiện

 Địa điểm thực hiện (nếu có)

 Số người tham gia thực hiện (nếu có)

Các loại công việc này thường được tổng hợp lại dưới dạng excel theo quy chuẩn nhất định và sau đó sẽ thực hiện phân công trên file excel này

 Nhu cầu có một trang web thay thế.

Quá trình quản lý nhiệm vụ bằng file excel gặp nhiều khó khăn Các tài liệu của các công việc và nhiệm vụ của công việc đó đều lưu trong bản cứng, bản word, excel… Do vậy, việc thống kê các thông tin gặp rất nhiều khó khăn, không theo dõi được sát sao các công việc và thời gian cần thực hiện Xuất phát từ nhu cầu thực tế cần phải có một trang web có thể quản lý nhiệm vụ, việc này giúp bộ môn dễ dàng hơn trong việc quản lý nhiệm vụ cũng như theo dõi được các công việc và thời gian thực hiện, giúp các khâu quản lý được nhanh chóng, chính xác không phải chờ đợi lâu, xác định được các công việc cần làm sắp tới

Đối tượng sử dụng Website là những người tham gia vào mạng internet, là những người có vốn hiểu biết nhất định về công nghệ thông tin nên sẽ dễ dàng trong việc sử dụng trang web như một công cụ Giao diện trang web cũng phải thật rõ ràng để người dùng có thể dễ dàng quản lý các thông tin

Trang 35

 Phân tích yêu cầu đề tài

 Tóm tắt hoạt động của hệ thống mà dự án sẽ được ứng dụng

Là một Website quản lý nhiệm vụ của bộ môn Mạng và Truyền thông – Khoa Công nghệ thông tin – Trường ĐH Công nghệ thông tin và Truyền thông

Là một Website động, các thông tin được cập nhật theo định kỳ

Người dùng truy cập vào Website có thể xem, tìm kiếm, quản lý các thông tin về các công việc cũng như chi tiết từng nhiệm vụ của bộ môn Mạng và Truyền thông

Các danh mục được sắp xếp hợp lý do đó người dùng sẽ có cái nhìn tổng quan về tất cả các thông tin hiện có

 Đối tượng sử dụng:

Có 2 đối tượng sử dụng cơ bản là bộ môn và giảng viên

Bộ môn: có toàn quyền quản lý Website

Giảng Viên: Qua Website, giảng viên có thể theo dõi lịch công việc của bộ môn, nhận được công việc của mình

 Mục đích của dự án:

 Việc quản lý thông tin trở nên dễ dàng

 Các thông tin được sắp xếp có hệ thống nên người quản lý nhiệm vụ (Bộ môn) dễ dàng tìm kiếm, xem các thông tin

 Giúp cho việc theo dõi, thống kê đơn giản, dễ dàng hơn, việc quản lý được chặt chẽ hơn

 Yêu cầu giao diện của website

Trang 36

 Giao diện đơn giản, dễ quản lý dữ liệu.

 Phải được bảo vệ bằng User & Password riêng của Admin

 Thiết kế hệ thống

 Biểu đồ ca sử dụng (UseCase Diagram)

 Xác định các tác nhân (Actor)

Có 2 tác nhân:

Lãnh đạo bộ môn: có toàn quyền quản lý Website, có các chức năng:

 Nhập dữ liệu công việc vào hệ thống

 Phân công công việc cho giảng viên

 Đồng bộ dữ liệu lên google calendar

 Gửi thông tin tới giảng viên

Giảng Viên: có các chức năng theo dõi công việc của bộ môn, và có quyền nhận được thông tin công việc mà mình sẽ thực hiện

 Xác định các chức năng của tác nhân

Lãnh đạo bộ môn

 Thêm công việc

 Tìm kiếm, lọc dữ liệu công việc

 Phân công công việc

 Đồng bộ nhiệm vụ công việc lên google calendar

 Gửi mail tới các giảng viên

 Xem nội dung công việc

 Nhận công việc qua mail

Giảng viên

Trang 37

 Xem nội dung công việc

 Nhận công việc qua mail

 Nhận Event Invitation thông qua Google Calendar

 Xác định các ca sử dụng (Usecase)

 Thêm công việc

 Tìm kiếm, lọc dữ liệu công việc

 Phân công công việc

 Đồng bộ nhiệm vụ công việc lên google calendar

 Gửi mail

 Xem nội dung công việc

 Nhận công việc qua mail

Trang 38

Hình 7 Biểu đồ usecase tổng quan hệ thống

 Đặc tả các ca sử dụng

 Ca sử dụng: Thêm công việc

Tác nhân: Lãnh đạo bộ môn

Trang 39

Mô tả: Khi nhận được bản dữ liệu về công việc, người lãnh đạo bộ môn sẽ thực hiện tìm và nhập dữ liệu công việc tương ứng vào hệ thống, nếu công việc là lịch thi, có định dạng theo mẫu nhất định, người lãnh đạo

bộ môn sẽ thực hiện gửi file đó lên hệ thống và việc nhập dữ liệu sẽ được thực hiện tự động

Tham chiếu tới: mở form thêm công việc, thêm công việc, thêm nhiệm vụ, gửi file dữ liệu

 Ca sử dụng: Phân công công việc

Tác nhân: Lãnh đạo bộ môn

Mô tả: Khi dữ liệu được nhập vào cơ sở dữ liệu Lãnh đạo bộ môn có thể vào xem chi tiết công việc, từ đó có thể kiểm tra các nhiệm vụ chưa phân công và thực hiện phân công, bằng cách lựa chọn các giảng viên có thể tham gia nhiệm vụ từ bảng giảng viên để thêm vào nhiệm vụ

Tham chiếu tới: xem danh sách công việc, danh sách nhiệm vụ, phân công nhiệm vụ cho giảng viên

 Ca sử dụng: Đồng bộ dữ liệu lên calendar

Tác nhân: Lãnh đạo bộ môn

Mô tả: Khi việc phân công được thực hiện hoàn tất Lãnh đạo bộ môn

có thể truy xuất trực tiếp vào bảng nhiệm vụ, tại đây Lãnh đạo bộ môn có thể lựa chọn các nhiệm vụ sắp thực hiện để đưa lên google calendar

Tham chiếu tới: xem danh sách công việc, danh sách nhiệm vụ, đồng

bộ dữ liệu lên google calendar, cập nhật dữ liệu vào bảng nhiệm vụ

 Ca sử dụng: Gửi mail

Tác nhân: Lãnh đạo bộ môn

Mô tả: Khi việc phân công được thực hiện hoàn tất Lãnh đạo bộ môn

có thể thực hiện truyền đạt nội dung công việc tới từng giảng viên thông

Trang 40

qua mail Nếu lạnh đạo bộ môn lựa chọn hình thức gửi mail tự động, nội dung mail sẽ là các công việc xắp tới chưa được gửi đi sẽ được gửi tới các giảng viên có liên quan tới công việc đó Nếu lãnh đạo bộ môn lựa chọn hình thức gửi mail có lựa chọn, nội dung mail gửi đi sẽ là danh sách các nhiệm vụ đã phân công sắp tới được lựa chọn và gửi tới các giảng viện được lựa chọn gửi mail tới.

Tham chiếu tới: xem danh sách công việc, danh sách nhiệm vụ, gửi mail, cập nhật dữ liệu vào bảng phân công

 Ca sử dụng: Tìm kiếm , lọc dữ liệu

Tác nhân: Lãnh đạo bộ môn, giảng viên

Mô tả: Các tác nhân có thể truy xuất vào bảng công việc và nhiệm vụ,

có thể thực hiện lọc và tìm kiếm những thông tin mà họ mốn

Tham chiếu tới: xem danh sách công việc, danh sách nhiệm vụ, lấy dữ liệu

 Ca sử dụng: Xem nội dung công việc

Tác nhân: Lãnh đạo bộ môn, giảng viên

Mô tả: Các tác nhân có thể truy xuất vào bảng công việc và nhiệm vụ

để xem danh sách các công việc, nhiệm vụ xắp tới của bộ môn

Tham chiếu tới: xem danh sách công việc, danh sách nhiệm vụ, lấy dữ liệu

 Biểu đồ lớp (Class Diagram)

 Tìm các Classes dự kiến

Xem xét Use Case Diagram của hệ thống:

 Phân tích Use Case “Thêm công việc” chúng ta xác định thực thể Công việc (works) Công việc được phân theo các loại (work_types) Công

Ngày đăng: 08/12/2016, 17:07

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1]. Phạm Hữu Khang, Xây dựng ứng dụng Web bằng PHP & MySQl, Nhà xuất bản Mũi Cà Mau, 2003 Khác
[2]. Nguyễn Trường Sinh, Sử dụng PHP & MySQL thiết kế Web động, Nhà xuất bản Thống Kê, 2005 Khác
[3]. TS Dương Kiều Hoa, Tôn Thất Hòa, Phân tích và thiết kế HTTT theo UML Khác
[4]. Đinh Xuân Lâm, Những bài thực hành HTML, Nhà xuất bản Thống Kê, 2003 Khác
[5]. Quang Bình, Phương Hà, Thiết kế và xuất bản Web với HTML, Nhà xuất bản Thống Kê, 2001 Khác
[6]. Gary Blankenship, Laravel 5 Official Documentation, May 06, 2016 [7]. M N Islam Shihan, Laravel 5.1 Docs, June 03, 2016 Khác
[8]. Jamal Armel, Web application development with Laravel PHP Framework version 4, 2014 Khác

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w