TRƯỜNG ĐẠI HỌC
KHOA
--------------------------------
ĐỒ ÁN TỐT NGHIỆP
Đề tài: XÂY DỰNG TRANG WEB
SV thực hiện:
Mã sinh viên:
Lớp K1A
1Đồ án tốt nghiệp |Đề tài: “Xây dựng trang web”
Trang 1
2Đồ án tốt nghiệp |Đề tài: “Xây dựng trang web”
LỜI CẢM ƠN
Với lòng biết ơn sâu sắc em xin chân thành cảm ơn sự giúp đỡ tận tình của các
thầy cô tại bộ môn Mạng đã giảng dạy và hướng dẫn em trong suốt quá trình học
tập tại nhà trường cũng như hoàn thành đồ án này.
Để hoàn thành đồ án này, em xin tỏ lòng biết ơn sâu sắc đến Ths.A đã tận tình
hướng dẫn trong suốt quá trình em viết đồ án .
Em chân thành cảm ơn quý thầy, cơ trong bộ mơn Mạng đã tận tình truyền đạt kiến
thức trong những năm em học tập. Với vốn kiến thức được tiếp thu trong q trình
học khơng chỉ là nền tảng cho quá trình nghiên cứu đồ án mà còn là hành trang quý
báu để em bước vào đời một cách vững chắc và tự tin.
Vì thời gian có hạn và kiến thức của em cịn nhiều hạn chế nên đồ án này của em
chắc chắn không tránh khỏi thiếu sót, em rất mong nhận được sự giúp đỡ của thầy
cơ cùng tồn thể các bạn trong lớp đã giúp đỡ em hoàn thành bài báo cáo này.
Thái Nguyên, ngày 0 tháng 0 năm 20
Sinh viên thực hiện
Trang 2
3Đồ án tốt nghiệp |Đề tài: “Xây dựng trang web”
MỤC LỤC
CHƯƠNG 1 TỔNG QUAN VỀ CỞ SỞ LÝ THUYẾT.................................................................5
1.1 Tổng quan về ngơn ngữ PHP..................................................................................................5
1.1.1 Khái niệm...........................................................................................................................6
1.1.2 Mơ hình MVC....................................................................................................................8
1.2 Hệ quản trị CSDL MySQL...................................................................................................10
1.2.1 Khái niệm.........................................................................................................................10
1.2.2. Ưu điểm của MySQL.....................................................................................................10
1.2.3 Đặc điểm của MySQL.....................................................................................................11
1.2.4 Cú pháp cơ bản của MySQL.........................................................................................11
1.3 Tổng quan về Framework Laravel......................................................................................11
1.3.1 Khái niệm.........................................................................................................................11
1.3.2 Lịch sử phát triển của Laravel......................................................................................12
1.3.3 Ưu điểm của Laravel PHP Framework.......................................................................13
1.3.4 Mơ hình MVC (Model – View – Controller) của Laravel.........................................13
1.3.5 Cấu trúc thư mục của Laravel......................................................................................14
1.4 Môi trường và công cụ phát triển........................................................................................17
CHƯƠNG 2 PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG.......................................................19
2.1 Đặt vấn đề................................................................................................................................19
2.2 Mục tiêu của đồ án.................................................................................................................19
2.3 Phương pháp nghiên cứu......................................................................................................20
2.4 Mô tả tổng quan.....................................................................................................................20
2.4.1 Mô tả các chức năng của hệ thống................................................................................20
2.4.2
Đặc điểm người sử dụng...........................................................................................21
2.4.3
Môi trường vận hành................................................................................................22
2.4.4
Ràng buộc về thực thi và thiết kế............................................................................22
2.5 Các yêu cầu giao tiếp ngoài..................................................................................................23
2.5.1.
Giao diện người sử dụng..........................................................................................23
2.5.2.
Giao tiếp phần cứng..................................................................................................23
Trang 3
4Đồ án tốt nghiệp |Đề tài: “Xây dựng trang web”
2.5.3.
Giao tiếp phần mềm..................................................................................................23
2.5.4.
Giao tiếp truyền thơng tin........................................................................................24
2.6
Các tính năng của hệ thống.............................................................................................24
2.6.1
Đăng nhập..................................................................................................................24
2.6.2 Đăng xuất.........................................................................................................................25
2.6.3
Tạo danh mục cơ quan ban hành...........................................................................26
2.6.4
Tạo danh mục hình thức văn bản...........................................................................26
2.6.5
Tạo danh mục lĩnh vực.............................................................................................27
2.6.6
Tạo danh mục loại văn bản......................................................................................27
2.6.7
Tạo danh mục công văn............................................................................................28
2.6.8
Tạo Slide.....................................................................................................................28
2.6.9
Tạo người dùng..........................................................................................................29
2.6.10 Phân quyền.....................................................................................................................29
2.6.11 Quản lý công văn theo loại hình cơng văn.................................................................30
2.6.12. Giới thiệu.......................................................................................................................30
2.6.13. Liên hệ...........................................................................................................................31
2.6.14. Tìm kiếm........................................................................................................................31
2.6.15 Tải công văn...................................................................................................................32
2.6.16. Chi tiết công văn...........................................................................................................32
2.7
Các yêu cầu phi chức năng..............................................................................................33
2.7.1.
Yêu cầu thực thi.........................................................................................................33
2.7.2.
Yêu cầu an toàn.........................................................................................................33
2.7.3.
Yêu cầu bảo mật........................................................................................................33
2.7.4.
Các đặt điểm chất lượng phần mềm.......................................................................34
2.8
Kiến trúc hệ thống............................................................................................................34
2.8.1
Thiết kế kiến trúc......................................................................................................34
2.8.2
Mô tả sự phân rã.......................................................................................................36
2.9
Thiết kế dữ liệu..................................................................................................................36
2.9.1
Mô hình quan hệ........................................................................................................36
2.9.2
Từ điển dữ liệu...........................................................................................................37
CHƯƠNG 3: XÂY DỰNG WEBSITE..........................................................................................44
3.1
Trang giao diện trang chủ................................................................................................44
Trang 4
5Đồ án tốt nghiệp |Đề tài: “Xây dựng trang web”
3.2
Trang giao diện tìm kiếm.................................................................................................44
3.3
Trang đăng nhập trang chủ.............................................................................................44
3.4
Giao diện khi đăng nhập trang chủ thành công...........................................................45
3.5
Giao diện đăng nhập trang quản trị..............................................................................45
3.6
Giao diện trang quản trị khi đăng nhập thành công...................................................46
3.7
Giao diện danh sách thành viên......................................................................................47
3.8
Giao diện thêm công văn.................................................................................................47
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN.....................................................................................48
PHỤ LỤC..........................................................................................................................................50
TÀI LIỆU THAM KHẢO...............................................................................................................56
Trang 5
6Đồ án tốt nghiệp |Đề tài: “Xây dựng trang web”
CHƯƠNG 1 TỔNG QUAN VỀ CỞ SỞ LÝ THUYẾT
1.1 Tổng quan về ngôn ngữ PHP
PHP (Personal Home Page hay PHP Hypertext Preprocessor) được giới thiệu
năm 1994 bởi R. Lerdoft, như một bộ sưu tập của ngôn ngữ chưa chặt chẽ dựa vào
Perl và các cơng cụ của trang chủ.Vì q trình xử lý dựa trên máy chủ nên các
trang Web được viết bằng PHP sẽ dễ dàng hơn ở bất cứ hệ điều hành nào. Nói một
cách ngắn gọn: PHP là một ngơn ngữ lập trình kiểu script, chạy trên Server và trả
về mã HTML cho trình duyệt xu hướng sử dụng PHP trong việc thiết kế Web đang
ngày càng phát triển trong giai đoạn hiện nay.PHP là một ngôn ngữ lập trình được
kết nối chặt chẽ với máy chủ. Nói một cách đơn giản khơng theo thuật ngữ khoa
học thì một quá trình xử lý PHP được thực hiện trên máy chủ (Windowns hoặc
Unix). Khi một trang Web muốn dùng PHP thì phải đáp ứng được tất cả các quá
trình xử lý thơng tin trong trang Web đó, sau đó đưa ra kết quả như ngơn ngữ
HTML.Vì q trình xử lý này diễn ra trên máy chủ nên trang Web được viết bằng
PHP sẽ dễ nhìn hơn ở bất kì hệ điều hành nào.
Cũng giống như hầu hết các ngôn ngữ lập trình khác,PHP có thể nối trực tiếp
với HTML.Mã PHP tách biệt với HTML bằng các thực thể đầu và cuối.Khi một tài
liệu được đưa ra phân tích, quá trình xử lý PHP chỉ được thực hiện ở những điểm
quan trọng, rồi sau đó đưa ra kết quả.
Mã PHP được đặt trong một kiểu tag đặc biệt cho phép ta có thể vào hoặc ra
khỏi chế độ PHP, cú pháp của PHP cơ bản cũng giống như một số ngơn ngữ lập
trình khác, đặc biệt là C và Perl.
Ví dụ :
<? Php echo”Hello World”; ?>
Trang 6
7Đồ án tốt nghiệp |Đề tài: “Xây dựng trang web”
1.1.1 Khái niệm
Cú pháp :
Ta có thể nhúng các lệnh của php vào trang HTML.
Đoạn mã php luôn được bắt đầu và kết thúc bởi cặp thẻ theo cú pháp:
các lệnh của php;
?>
Đoạn mã php có thể đặt bất kỳ đâu trong tài liệu.
Thông thường một trang php bao gồm các thẻ HTML như một trang HTML nhưng
có thêm các đoạn mã php.
Mỗi câu lệnh trong php được kết thúc bằng dấu (;). Dấu này là một toán tử dùng để
phân biệt các cấu trúc với nhau.
Có hai câu lệnh cơ bản dùng để hiển thị các câu text ra browser là : echo và print
Lưu ý:
+ Các file php phải có phần mở rộng là .php. Nếu phần mở rộng là .html thì
đoạn mã php sẽ khơng được thực thi
+ Có thể viết các câu chú thích cho đoạn mã php. Có hai cách viết là: /* chú
thích */ hoặc // chú thích
+ Đoạn mã php cũng có thể đặt trong cặp thẻ:
<? Đoạn mã php ?>
Các kiểu dữ liệu :
Php hỗ trợ 5 kiểu dữ liệu như sau :
+ Integer: sử dụng cho giá trị có kiểu dữ liệu là số nguyên.
+ Double: sử dụng cho giá trị có kiểu dữ liệu là số thực.
+ String: sử dụng cho các giá trị có kiểu dữ liệu là chuỗi và ký tự.
+ Array: sử dụng cho các giá trị có kiểu dữ liệu là mảng.
+ Object: sử dụng cho các giá trị có kiểu dữ liệu là đối tượng của lớp.
Biến :
Trang 7
8Đồ án tốt nghiệp |Đề tài: “Xây dựng trang web”
+ Biến dùng để lưu giá trị như: xâu, số, ký tự, mảng,…
+ Tất cả các biến trong php đều bắt đầu bằng ký hiệu $
+ Biến được khai báo tự động khi sử dụng (gán giá trị) cho nó theo cú pháp:
$Tên_biến = Giá_trị;
+ Php là ngôn ngữ không định kiểu, nghĩa là không cần khai báo kiểu cho
biến. Php sẽ chuyển kiểu của biến một cách tự động tùy thuộc vào giá trị của
nó.
+ Lưu ý: Quy tắc đặt tên biến trong php giống như trong C, C++, …
Phạm vi của biến:
+ Nếu biến được khai báo trong Script thì có phạm vi trong tồn Script.
+ Nếu biến được khai báo trong một hàm nào đó thì chỉ có tác dụng
trong hàm đó.
Kiểm tra/ loại bỏ biến:
+ Sử dụng hàm isset(Tên_biến) để kiểm tra biến đó có tồn tại hay
không? Kết quả trae về kiểu boolean.
+ Sử dụng hàm unset(Tên_biến) để loại bỏ biến đang tồn tại ra khỏi
trạng thái thực thi.
+ Sử dụng hàm empty(Tên_biến) để kiểm tra biến tồn tại và không rỗng.
Hằng :
+ Hằng trong php được khai báo giống như các ngôn ngữ C, C++.
+ Tên hằng thường được viết bằng chữ hoa.
+ Cú pháp khai báo hằng như sau:
define (“Tên_hằng”, giá_trị);
hoặc define (Tên_hằng, giá trị);
Ví dụ: Ta có khái báo hằng MAX = 100 như sau:
define (“MAX”, 100);
define (MAX, 100);
Cấu trúc rẽ nhánh :
Trang 8
9Đồ án tốt nghiệp |Đề tài: “Xây dựng trang web”
Cú pháp: if (điều kiện) câu lệnh php;
Cấu trúc lặp :
Cú pháp:
for (init; condition; increment)
{
code to be executed;
}
1.1.2 Mơ hình MVC
Mơ hình MVC là gì ?
MVC là từ viết tắt của 'Model View Controller'. Nó đại diện cho các nhà
phát triển kiến trúc áp dụng khi xây dựng các ứng dụng. Với kiến trúc MVC, chúng
ta xem xét cấu trúc ứng dụng liên quan đến cách luồng dữ liệu của ứng dụng của
chúng ta hoạt động như thế nào.
Dễ hiểu hơn, nó là mơ hình phân bố source code thành 3 phần, mỗi thành
phần có một nhiệm vụ riêng biệt và độc lập với các thành phần khác.
Hình 1.1 Mơ hình MVC
Mơ hình MVC được chia làm 3 lớp xử lý gồm Model – View – Controller :
+ Model : là nơi chứa những nghiệp vụ tương tác với dữ liệu hoặc hệ quản trị
cơ sở dữ liệu (mysql, mssql… ); nó sẽ bao gồm các class/function xử lý
Trang 9
10Đồ án tốt nghiệp |Đề tài: “Xây dựng trang web”
nhiều nghiệp vụ như kết nối database, truy vấn dữ liệu, thêm – xóa – sửa dữ
liệu…
+ View : là nới chứa những giao diện như một nút bấm, khung nhập, menu,
hình ảnh… nó đảm nhiệm nhiệm vụ hiển thị dữ liệu và giúp người dùng
tương tác với hệ thống.
+ Controller : là nới tiếp nhận những yêu cầu xử lý được gửi từ người dùng,
nó sẽ gồm những class/ function xử lý nhiều nghiệp vụ logic giúp lấy đúng
dữ liệu thông tin cần thiết nhờ các nghiệp vụ lớp Model cung cấp và hiển thị
dữ liệu đó ra cho người dùng nhờ lớp View.
Sự tương tác giữa các thành phần :
+ Controller tương tác với qua lại với View
+ Controller tương tác qua lại với Model
+ Model và View không có sự tương tác với nhau mà nó tương tác với nhau
thơng qua Controller.
Luồng đi trong mơ hình MVC như thế nào ?.
Ta có thể hình dung, khi một u cầu từ máy client gửi tới server, Controller
sẽ thực hiện nhiệm vụ của mình đó là tiếp nhận và xử lý yêu cầu. Trong trường hợp
cần thiết, nó có thể liên hệ Model – bộ phận làm việc với database để hỗ trợ.
Khi xử lý xong yêu cầu, kết quả sẽ được trả về View. Tại View sẽ tạo mã
HTML thành giao diện và trả về hiển thị trên trình duyệt.
Ưu điểm MVC :
+ Trình tự xử lý rất rõ ràng.
+ Mơ hình MVC quy hoạch các class/function vào các thành phần riêng
biêt Controller - Model - View, việc đó làm cho quá trình phát triển - quản
lý - vận hành - bảo trì web diễn ra thuận lợi hơn, tạo ra được các chức năng
chuyên biệt hoá đồng thời kiểm sốt được luồng xử lý.
+ Tạo mơ hình chuẩn cho dự án, khi người có chun mơn ngồi dự án tiếp
cận với dự án dễ dàng hơn.
Trang 10
11Đồ án tốt nghiệp |Đề tài: “Xây dựng trang web”
+ Mơ hình đơn giản, dễ hiểu, xử lý những nghiệp vụ đơn giản, và dễ dàng triển
khai với các dự án nhỏ.
Nhược điểm mơ hình MVC :
+ Đối với các dự án có tính phức tạp cao thì mơ hình MVC trở nên khơng
khả dụng.
Ứng dụng mơ hình MVC vào lập trình :
Mơ hình MVC được ứng dụng trong nhiều ngơn ngữ lập trình khác nhau,
nhưng phổ biến nhất là ứng dụng ASP.NET MVC hay PHP MVC.
Hệ thống MVC phát triển tốt sẽ cho phép phát triển front – end, back – end
cùng trên hệ thống mà khơng có sự can thiệp, chia sẻ, chỉnh sửa các tập tin trong
khi một hoặc hai bên vẫn đang làm việc.
Việc sử dụng mơ hình tương đối đơn giản. Chỉ cần hiểu rõ quy trình vận
hành, nắm được các chức năng của từng bộ phận thì việc triển khai mơ hình
MVC tương đối dễ dàng.
1.2 Hệ quản trị CSDL MySQL
1.2.1 Khái niệm
MySQL là hệ quản trị cơ sở dữ liệu tự do nguồn mở phổ biến nhất thế giới
và được các nhà phát triển rất ưa chuộng trong quá trình phát triển ứng dụng. Vì
MySQL là hệ quản trị cơ sở dữ liệu tốc độ cao, ổn định và dễ sử dụng, có tính khả
chuyển, hoạt động trên nhiều hệ điều hành cung cấp một hệ thống lớn các hàm tiện
ích rất mạnh. Với tốc độ và tính bảo mật cao, MySQL rất thích hợp cho các ứng
dụng có truy cập CSDL trên internet.
1.2.2. Ưu điểm của MySQL
+ Dễ sử dụng: MySQL là cơ sở dữ liệu tốc độ cao, ổn định, dễ sử dụng và hoạt
động trên nhiều hệ điều hành cung cấp một hệ thống lớn các hàm tiện ích rất
mạnh.
+ Độ bảo mật cao: MySQL rất thích hợp cho các ứng dụng có truy cập CSDL
trên Internet khi sở hữu nhiều nhiều tính năng bảo mật thậm chí là ở cấp cao.
Trang 11
12Đồ án tốt nghiệp |Đề tài: “Xây dựng trang web”
+ Đa tính năng: MySQL hỗ trợ rất nhiều chức năng SQL được mong chờ từ
một hệ quản trị cơ sở dữ liệu quan hệ cả trực tiếp lẫn gián tiếp.
+ Khả năng mở rộng và mạnh mẽ: MySQL có thể xử lý rất nhiều dữ liệu và
hơn thế nữa nó có thể được mở rộng nếu cần thiết.
+ Nhanh chóng: Việc đưa ra một số tiêu chuẩn cho phép MySQL để làm việc
rất hiệu quả và tiết kiệm chi phí, do đó nó làm tăng tốc độ thực thi
1.2.3 Đặc điểm của MySQL.
- MySQL là một phần mềm quản trị CSDL dạng server-based (gần tương
đương với SQL Server của Microsoft).
- MySQL quản lý dữ liệu thông qua các CSDL, mỗi CSDL có thể có nhiều
bảng quan hệ chứa dữ liệu.
- MySQL có cơ chế phân quyền người sử dụng riêng, mỗi người dùng có thể
được quản lý một hoặc nhiều CSDL khác nhau, mỗi người dùng có một tên
truy cập (user name) và mật khẩu tương ứng để truy xuất đến CSDL.
1.2.4 Cú pháp cơ bản của MySQL
Để tạo một bảng trong MySQL, chúng ta sử dụng cú pháp dưới đây:
+ CREATE TABLE table_name ( column_name1 data_type(size),
column_name2 data_type(size), column_name3 data_type(size), .... );
Cú pháp thêm dữ liệu vào bảng :
+ INSERT INTO table_name (column1,column2,column3)
VALUES (value1,value2,value3);
Cú pháp xóa
Để xóa database ta sử dụng cú pháp:
+ DROP DATABASE db_name;
Câu Lệnh truy xuất dữ liệu
+ SELECT * FROM name_table;
Trang 12
13Đồ án tốt nghiệp |Đề tài: “Xây dựng trang web”
1.3 Tổng quan về Framework Laravel
1.3.1 Khái niệm
Laravel là PHP Web Framework miễn phí, mã nguồn mở, được tạo bởi
Taylor Otwell và dành cho việc phát triển các ứng dụng web theo mơ hình kiến
trúc mơ hình MVC và dựa trên Symfony PHP Framework. Một số tính năng của
Laravel như là sử dụng hệ thống đóng gói module, quản lý package (Composer),
hỗ trợ nhiều hệ quản trị CSDL quan hệ (MySQL, MariaDB, SQLite, PostgreSQL,
…), các tiện ích hỗ trợ triển khai và bảo trì ứng dụng.Mã nguồn của Laravel được
lưu trữ trên GitHub và được cấp phép theo các điều khoản của Giấy phép MIT.
1.3.2 Lịch sử phát triển của Laravel
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), 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) tên “Artisan”, 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, hỗ trợ “bắt sự
kiện” trong ứng dụng, và hệ thống quản lý gói gọi là “Bundles”. 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, 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
Trang 13
14Đồ án tốt nghiệp |Đề tài: “Xây dựng trang web”
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 ngồ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ạng (LTS) với một kết hoạch 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.
1.3.3 Ưu điểm của Laravel PHP Framework
Dưới đây là 10 ưu điểm của Laravel so với các framework khác:
Sử dụng các tính năng (feature) mới nhất của PHP
Sử dụng mơ hình MVC (Model – View – Controller)
Hệ thống xác thực (Authentication) và ủy quyền (Authorization) tuyệt vời
Có hệ thống tài liệu chi tiết, dễ hiểu
Cộng đồng hỗ trợ đơng đảo
Tích hợp cơng cụ Artisan – Cơng cụ quản lý dịng lệnh
Sử dụng composer để quản lý PHP package
Sử dụng npm để quản lý các gói Javascript, giao diện
Hỗ trợ Eloquent ORM, Query Builder, Template Engine (Blade)
Hỗ trợ routing mềm dẻo
Trang 14
15Đồ án tốt nghiệp |Đề tài: “Xây dựng trang web”
1.3.4 Mơ hình MVC (Model – View – Controller) của Laravel
Laravel được phát triển từ Symfony Framework nên nó kế thừa mơ hình MVC
của Symfony, tương tự như các PHP Framework khác. Dưới đây là mơ hình đầy đủ
của Laravel:
Hình 1.2 Mơ hình MVC (Model – View – Controller) của Laravel
Thành phần
Model
Mô tả
Gồm những Class, tạo ra các table của Database, nơi mà Eloquent
ORM thao tác với CSDL
View
Chứa các template được thiết kế ra và được xử lý để output ra mã
html/css cho trang web
Controller
Chứa các class, function để xử lý các request từ người dùng
1.3.5 Cấu trúc thư mục của Laravel
Dưới đây là cấu trúc thư mục của Laravel
Trang 15
16Đồ án tốt nghiệp |Đề tài: “Xây dựng trang web”
Hình 1.3 Cấu trúc thư mục của Laravel
Trang 16
17Đồ án tốt nghiệp |Đề tài: “Xây dựng trang web”
Thành phần
app
Mô tả
Đây là thư mục ứng dụng và bao gồm tồn bộ mã nguồn của dự
án. Nó chứa các sự kiện (Event), ngoại lệ (Exception) và khai
báo Middeware.
Trong App lại chứa các thành phần con sau:
Console: Nơi bạn định nghĩa ra các lệnh của Laravel.
Exceptions: Thư mục này chứa tất cả các phương thức
cần thiết để xử lý các ngoại lệ. Nó cũng chứa tệp
handle.php xử lý tất cả các trường hợp ngoại lệ.
Http: Thư mục Http này chứa các thư mục con
controllers, middleware. Vì Laravel tuân theo mơ hình
MVC nên thư mục này chứa các xử lý để xử lý request
của người dùng.
Models: Chứa các Class định nghĩa các thành phần để
thao tác với CSDL
Providers: Chứa tất cả các Service Provider. Khởi đọng
ứng dụng một cách bắt buộc, đăng ký sự kiện hoặc thực
hiện bất kỳ tác vụ nào khác để chuẩn bị ứng dụng của
bạn khi các yêu cầu đến.
Trang 17
18Đồ án tốt nghiệp |Đề tài: “Xây dựng trang web”
bootstrap
config
database
public
resources
routes
storage
tests
vendor
Thư mục bootstrap chứa tệp app.php khởi động khung. Thư
mục này cũng chứa một thư mục bộ đệm chứa các tệp được tạo
khung để tối ưu hóa hiệu suất, chẳng hạn như tệp bộ đệm của
tuyến đường và dịch vụ. Bạn thường không cần phải sửa đổi
bất kỳ tệp nào trong thư mục này.
Thư mục này chứa tất cả cấu hình (config) của hệ thống của
bạn. Nó chứa sẵn các thơng tin mặc định như cấu hình
database, cache, …
Thư mục này chứa các thông tin về database migration, seeders
Thư mục public chứa file index.php, là nơi nhận tất cả các
request tới ứng dụng. Thư mục này cũng chứa các nội dung của
bạn như hình ảnh, JavaScript và CSS.
Thư mục tài nguyên chứa các view template của bạn cũng như
các nội dung thô (raw), chưa được biên dịch của bạn như CSS
hoặc JavaScript. Thư mục này cũng chứa tất cả các tệp ngôn
ngữ của bạn.
Thư mục routes chứa tất cả các định nghĩa routing cho ứng
dụng của bạn. Mặc định, một số router đươc định nghĩa sẵn bao
gồm: web.php, api.php, console.php và channel.php.
Thư mục storage chứa các thông tin về log, các views blade đã
biên dịch, các file session, file cache và các file khác được tạo
bởi framework.
Thư mục tests chứa các kiểm tra tự động (Automated Tests) và
các mẫu PHPUnit
Thư mục vendor chứa các thư viện PHP phụ thuộc được quản
lý bởi Composer
1.4 Môi trường và công cụ phát triển
Cài đặt gói phầm mềm Xampp
Xampp là một phần mềm chứa tất cả các thành phần cần thiết ,chúng ta sẽ có
ln Apache, MySQL, PHP – những thành phần lẽ ra phải cài đặt từng thứ một.
Trang 18
19Đồ án tốt nghiệp |Đề tài: “Xây dựng trang web”
Hình 1.4 Phần mềm Xampp
Cài đặt Composer và Laravel
Composer là một công cụ quản lý thư viện PHP cho các dự án, một cách
chính xác hơn Composer quản lý sự phụ thuộc các tài nguyên trong dự án
(dependency management), nó cho phép khai báo các thư viện mà dự án của bạn
sử dụng và nó sẽ quản lý các thư viện này giúp chúng ta. Việc quản lý này bao
gồm: cài đặt các thư viện yêu cầu tự động, cập nhật các thư viện khi có phiên bản
mới...
Dùng lệnh “composer create-project laravel/laravel laravel-test” để cài đặt
Laravel và tạo project laravel-test
Cài đặt Visual Studio Code
Visual Studio Code là một trình biên tập mã được phát triển bởi Microsoft
dành cho Windows, Linux và macOS. Nó hỗ trợ chức năng debug, đi kèm với Git,
có syntax highlighting, tự hồn thành mã thơng minh, snippets, và cải tiến mã
nguồn.
Cài đặt trình duyệt
Đối với web developer, trình duyệt khơng chỉ đơng giản là phần mềm để lướt
web, mà nó cịn là cơng cụ để phát triển web, chúng ta chọn Google Chrome vì
tính ổn định và khả năng debugs dễ dàng.
Trang 19
20Đồ án tốt nghiệp |Đề tài: “Xây dựng trang web”
CHƯƠNG 2 PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
2.1 Đặt vấn đề
Công nghệ thông tin đã được ứng dụng rộng rãi trong mọi lĩnh vực và đã
chứng minh được tiện ích, tính hiệu quả và tính thực tế của nó. Để xử lý thơng tin
một cách nhanh chóng, chính xác và có hiệu quả thì ngành cơng nghệ thơng tin đã
phát triển tương đối phổ biến trên thế giới nói chung và Việt Nam nói riêng, nó đã
cung cấp cho chúng ta những biện pháp cần thiết đó. Đã qua rồi cách lưu trữ công
văn, văn bản bằng những phương pháp thủ cơng truyền thống gây mất thời gian,
hao phí và dễ bị hư hại do điều kiện môi trường.
Việc ứng dụng công nghệ thông tin đã mang lại bước đột phá mới cho công
tác quản lý công văn, giúp sở và cơ quan các ban ngành nắm bắt được thông tin
một cách kịp thời, thông báo công văn một cách nhanh chóng và dễ dàng cho các
cơ quan, tổ chức, người dân có liên quan truy cập để xem nội dung chi tiết cơng
văn một cách chính xác kịp thời.
Mọi công việc quản lý bằng giấy tờ rắc rối, kém khoa học, thiếu hiệu quả
trước đây giờ đã được thay thế bằng các phần mềm quản lý. Đặc điểm của các
phần mềm quản lý là dễ thao tác, nhanh gọn và tiện ích, tính hiệu quả cao,… nay
phần mềm quản lý cơng văn cịn được chạy trên nền website. Vì thế mà chúng
ngày càng được các cơ quan, tổ chức, công ty, doanh nghiệp ưa chuộng sử dụng.
2.2Mục tiêu của đồ án
Trang 20
21Đồ án tốt nghiệp |Đề tài: “Xây dựng trang web”
Đồ án “Xây dựng trang web quản lý công văn” được hình thành nhằm mục
đích khắc phục những hạn chế của việc quản lý công văn một cách truyền thông kể
trên và bổ sung thêm một số chức năng thêm, sửa, thống kê, tìm kiếm để quá trình
quản lý cũng như sử dụng được thuận tiện, nhanh chóng và hoạt động tốt hơn.
Tìm hiểu quy trình nghiệp vụ quản lý cơng văn của Sở Y Tế, chương trình
được xây dựng nhầm mục đích sau:
Đáp ứng nhu cầu quản lý, tối ưu hố việc quản lý những cơng văn đã
được ký có liên quan đến Sở Y Tế Thái Nguyên.
Đưa công văn lên trang web để hỗ trợ cơ quan, tổ chức, người dân có
liên quan có thể tìm và đọc nội dung chi tiết công văn.
Giúp giải chi phí, thời gian để triển khai cơng văn đến các cơ quan, tổ
chức có liên quan. Giúp mọi việc nhanh chóng và dễ dàng, chính xác
hơn các quản lý truyền thống.
Xây dựng các chức năng về quản lý công văn mà trang web hiện nay
còn đang thiếu hoặc chưa hoàn thiện.
Những điểm nổi bật:
Giao diện đơn giản, dễ dàng sử dụng.
Giao diện thiết kế tương thích với hầu hết thiết bị có kích thước màn
mình phổ biến, có thể tự co giãn( Responsive).
Áp dụng mơ hình MVC( Model – View – Controller) nên việc bảo trì
và nâng cấp mở rộng sẽ dễ dàng hơn.
2.3 Phương pháp nghiên cứu
Xây dựng đề tài để khắc phục những hạn chế mà trang web hiện tại cịn
thiếu sót.
Tạo giao diện phần mềm dễ sử dụng cho người dùng.
Cần có những kiến thức cần thiết khi thiết kế một đề tài trên nền web:
Nắm vững kiến thức phân tích hệ thống thơng tin, cơ sở dữ liệu: Phân
tích dữ liệu, sơ đồ, thiết kế cơ sở dữ liệu.
Trang 21
22Đồ án tốt nghiệp |Đề tài: “Xây dựng trang web”
Hiễu biết và có khả năng sử dụng thành thạo về lập trình web: PHP,
HTML, Javascript, Jquery, Ajax,…
Sử dụng Laravel Framework 5.6.
2.4Mô tả tổng quan
2.4.1 Mô tả các chức năng của hệ thống
ST
MÃ CHỨC
T
1
2
NĂNG
M01
M02
3
M03
4
M04
5
M05
6
M06
7
8
9
10
M07
M08
M09
M10
11
M11
TÊN CHỨC NĂNG
CHI TIẾT
Đăng nhập
Đăng xuất
Tạo danh mục cơ quan
ban hành
Tạo danh mục hình thức
văn bản
Tạo danh mục lĩnh vực
Tạo danh mục loại văn
bản
Tạo công văn
Tạo slide ở trang chủ
Tạo người dùng
Phân quyền
Quản lý công văn theo
loại hình cơng văn
12 M12
Giới thiệu
13 M13
Liên hệ
14 M14
Tìm kiếm
15 M15
Tải công văn
16 M16
Chi tiết công văn
2.4.2 Đặc điểm người sử dụng
Dựa vào phân quyền ta có thể chia nhóm người sử dụng thành 4 nhóm
chính:
Trang 22
23Đồ án tốt nghiệp |Đề tài: “Xây dựng trang web”
Nhóm người dùng có quyền quản trị (SuperAdmin): có tồn quyền
quản lý hệ thống như: thêm người dùng mới, gán quyền cho người dùng,
thêm công văn, quản lý thêm sửa xoá các danh mục, thêm slide hiển thị tại
trang chủ.
Nhóm người dùng có quyền quản trị (Admin): có khả năng đăng nhập
để thêm, sửa, xố cơng văn.
Nhóm người dùng có quyền nhân viên: có khả đăng nhập tại trang chủ
để xem và tìm kiếm những cơng văn nội bộ.
Nhóm người dùng khách, khơng cần đăng nhập hệ thống: có thể xem
các thơng tin, liên hệ, các cơng văn đến và cơng văn đi, tìm kiếm cơng văn,
chọn xem công văn theo danh mục.
2.4.3 Môi trường vận hành
Hệ thống được cài đặt trên các máy tính cá nhân. Cơ sở dữ liệu của hệ
thống được cài đặt theo kiến trúc Client/Server và trên hệ quản trị MySQL.
Các tập tin dữ liệu lưu thông tin các đối tượng được đặt trên server local.
Hình 2.1: Sơ đồ mơi trường vận hành của hệ thống
2.4.4 Ràng buộc về thực thi và thiết kế
Trang 23
24Đồ án tốt nghiệp |Đề tài: “Xây dựng trang web”
Ràng buộc về thực thi:
Giao diện đơn giản, thân thiện với người dùng.
Phần mềm chạy trên tất cả các trình duyệt web phổ biến.
Sử dụng các đặt điểm tốt của Laravel Framework 5.6.
Cơng cụ lập trình chính: Sublime Text 3.0, Notepad++.
Cơng cụ tạo máy chủ local: Xampp 3.3.2.
Ràng buộc thực thi: Đáp ứng nhanh nhu cầu của người dùng, thời gian tải
trang nhanh, hỗ trợ bắt lỗi về ràng buộc toàn vẹn.
Yêu cầu ngôn ngữ: Tiếng Việt, ngắn gọn, dễ hiểu.
2.5 Các yêu cầu giao tiếp ngoài
2.5.1. Giao diện người sử dụng
Các điều khiển trên trang web cần quen thuộc, dễ thao tác với người
dùng.
Giao diện gồm ít nhất một thứ tiếng: tiếng Việt. Ngôn ngữ dễ sử dụng.
Tên các trường thơng tin, chức năng phải thống nhất tồn bộ giao
diện. Font chữ đơn giản và không vướng mắt người dùng.
Màu sắc sử dụng hài hòa.
2.5.2. Giao tiếp phần cứng
Các tập tin CSDL được lưu trên Server.
Trang 24