WEBSITE PHP FRAMEWORK LARAVEL Niên khóa : 2015 - 2018
Transcript of WEBSITE PHP FRAMEWORK LARAVEL Niên khóa : 2015 - 2018
TRƯỜNG CAO ĐẲNG CÔNG NGHỆ THÔNG TIN
HỮU NGHỊ VIỆT - HÀN
KHOA CÔNG NGHỆ THÔNG TIN
TÓM TẮT ĐỒ ÁN TỐT NGHIỆP
NGÀNH: CÔNG NGHỆ THÔNG TIN
Đề tài:
XÂY DỰNG VÀ PHÁT TRIỂN ỨNG DỤNG
WEBSITE TIN TỨC CÔNG NGHỆ DỰA TRÊN
PHP FRAMEWORK LARAVEL
SVTH : Nguyễn Minh Trƣởng
Lớp : CCCT15A
Niên khóa : 2015 - 2018
CBHD : TS. Hồ Văn Phi
Đà Nẵng, tháng 06 năm 2018
TRƯỜNG CAO ĐẲNG CÔNG NGHỆ THÔNG TIN
HỮU NGHỊ VIỆT - HÀN
KHOA CÔNG NGHỆ THÔNG TIN
TÓM TẮT ĐỒ ÁN TỐT NGHIỆP
NGÀNH: CÔNG NGHỆ THÔNG TIN
Đề tài:
XÂY DỰNG VÀ PHÁT TRIỂN ỨNG DỤNG
WEBSITE TIN TỨC CÔNG NGHỆ DỰA TRÊN
PHP FRAMEWORK LARAVEL
SVTH : Nguyễn Minh Trƣởng
Lớp : CCCT15A
Niên khóa : 2015 - 2018
CBHD : TS. Hồ Văn Phi
Đà Nẵng, tháng 06 năm 2018
1
PHẦN MỞ ĐẦU
1. Lý do chọn đề tài
Với mong muốn đóng góp một phần công sức của mình cho
việc xây dụng hệ thống website giới thiệu về trường nói chung và
khoa công nghệ thông tin nói riêng và đặc biệt sau khi học được
nhiều kiến thức tại trường nên em quyết định chọn đề tài “Xây dựng
và phát triển ứng dụng website tin tức công nghệ dựa trên PHP
Framework Laravel” mong muốn cho các bạn sinh viên của khoa
biết về các thông tin về khoa và cũng như đường lối phát triển mô
hình đào tạo của khoa đặc biệt là các thế mạnh của khoa được công
nhận.
2. Mục tiêu và nhiệm vụ nghiên cứu.
Mục tiêu
Tìm hiểu công cụ xây dựng website Laravel và ứng dụng để
xây dựng website đáp ứng các yêu cầu cơ bản như sau: Hiện thị các
tin tức mới nhất lên trang chủ mang đến người dùng những tin tức
nóng hổi. Về phía lập trình viên giúp tối ưu hóa code và việc quản lý
code dễ dàng.
Nhiệm vụ
- Nghiên cứu Framework Laravel và mô hình MVC trong
framework.
- Phân tích thiết kế hệ thống để đưa cơ sơ dữ liệu và các chức
năng cho cho website.
- Xây dựng website, đánh giá thực nghiệm.
- Khảo sát người dùng và đưa ra yêu cầu người dùng về tin
tức, thiết kế giao diện ưa nhìn, hiện thị thông tin mới nhất cho người
dùng. Tìm hiểu thêm về Framework Laravel. Phân tích và xây dựng
website.
2
3. Đối tƣợng và phạm vi nghiên cứu.
Đối tƣợng nghiên cứu
-Nghiên cứu website công nghệ TECHNEWS.TK
-Nghiên cứu Framework Laravel
-Nghiên cứu phương thức sluggable để tối ưu hóa đường dẫn
Phạm vi nghiên cứu
- Website công nghệ TECHNEWS.TK
- Framework Laravel
4. Phƣơng pháp nghiên cứu
- Tìm hiểu lý thuyết
- Lấy ý kiến chuyên gia (giáo viên hướng dẫn và các thầy cô,
bạn bè, chuyên gia)
- Khảo sát các website tin tức về công nghệ.
- Tìm hiểu và nghiên cứu nhu cầu của người dùng.
5. Ý nghĩa khoa học và thực tiễn
Kết quả nghiên cứu của đề tài sẽ là chứng cứ cho các nghiên
cứu lý thuyết về Laravel và các công cụ xây dựng website. Kết quả
của đồ án này sẽ là một trong những ví dụ thực tế giúp người dùng
đọc tin tức công nghệ một cách đơn giản nhất, đọc được những tin
tức công nghệ mới nhất, một cách nhanh chóng nhất
Ngoài những nội dung như Phần mở đầu, Kết luận, Tài liệu
tham khảo, Phụ lục thì đồ án được chia làm 4 chương với nội dung
như sau:
Chương 1: Cơ sở lý thuyết
Chương 2: Phân tích thiết kế hệ thống
Chương 3: Xây dựng ứng dụng
Chương 4: Triển khai xây dựng quản trị cho website tin tức.
3
CHƢƠNG I. CƠ SỞ LÝ THUYẾT
1.1. GIỚI THIỆU VỀ LARAVEL PHP FRAMEWORK
Laravel là một PHP framework mã nguồn mở và miễn phí,
được phát triển bởi Taylor Otwell và nhắm vào mục tiêu hỗ trợ phát
triển các ứng dụng web theo kiếm trúc model-view-controller
(MVC). 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 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.
1.2. ƢU ĐIỂM CỦA LARAVEL PHP FRAMEWORK ĐỐI
VỚI PHÁT TRIỂN WEBSITE
1.3. CẤU TRÚC THƢ MỤC VÀ LUỒNG XỬ LÝ TRONG
LARAVEL
1.4. THÀNH PHẦN CƠ BẢN TRONG LARAVEL
1.4.1. Route trong Laravel
1.4.2. Laravel Model
Hình 1.1. Mô hình tương tác Model và cơ sở dữ liệu
1.4.3. Laravel Controller
1.4.4. Laravel View (Master Template)
4
Laravel View
Hình 1.2. Liên kết Route, Controller và View trong Laravel
Hình 1.3. Hoạt động của Master Template trong Laravel
1.5. SỬ DỤNG CÁC THƢ VIỆN DÀNH CHO THIẾT KẾ
GIAO DIỆN WEBSITE VỚI LARAVEL
1.5.1. Sử dụng Boostrap CSS Framework
1.5.2. Sử dụng Jquery Javascript Framework
1.5.3. Sử dụng kỹ thuật Jquery Ajax
5
CHƢƠNG II. PHÂN TÍCH THIẾT KẾ HỆ THỐNG
2.1. KHẢO SÁT YÊU CẦU CỦA WEBSITE
Bước khảo sát yêu cầu sẽ làm rõ được một số vấn đề sau:
Mục đích xây dựng ứng dụng: Mục đích sử dụng của dự án
này là trình bày bài viết trên website dưới dạng tin tức, cho phép
người dùng truy cập và tra cứu tin tức trên trình duyệt web.
Đối tượng sử dụng: Người dùng bình thường (độc giả),
quản trị viên website (gồm quản trị viên đăng bài và quản trị viên
toàn bộ hệ thống).
Yêu cầu về chức năng: Đối với một website, yêu cầu tối
thiểu sẽ phải đạt được là:
o Hiển thị nội dung theo từng loại tin.
o Cho phép truy cập và đọc thông báo, tin tức, bài viết.
o Cho phép liệt kê danh sách thông báo, tin tức, bài viếttheo
từng chuyên mục.
o Cho phép tìm kiếm thông báo, tin tức, bài viết..
o Cho phép bình luận ở cuối tin tức.
o Các chức năng cao hơn cho tác giả như đăng tin, sửa tin,
xoá tin, tải lên các dữ liệu đa phương tiện như ảnh, phim, …
o Các chức năng cho quản trị viên hệ thống như thêm, sửa,
xoá tài khoản, thêm chuyên mục, thêm tệp tin, thông báo, tin tức, bài
viết nổi bật
Yêu cầu về thiết kế (yêu cầu phi chức năng):
o Trình bày nội dung thông báo, tin tức, bài viết, có tiêu đề,
ngày tháng đăng bài.
o Trang chủ liệt kê danh sách cách thông báo, tin tức, bài viết
phân chia theo từng danh mục, các bài viết nổi bật.
6
o Phần đầu trang web có logo của trang web, phần menu hiển
thị các danh mục thông báo, tin tức, bài viết cho người dùng lựa
chọn.
o Phần cuối trang web có thông tin chung về trang web, đơn
vị vận hành, quản lý, và một số các thông tin khác.
Sau khi đã làm rõ được các yêu cầu đối với ứng dụng, bước
tiếp theo sẽ là thiết kế hệ thống theo những yêu cầu đã nêu ở trên.
2.2. PHÂN TÍCH YÊU CẦU VÀ THIẾT KẾ HỆ THỐNG
CHỨC NĂNG WEBSITE
2.1.1. Các đối tƣợng sử dụng website
Như đã khảo sát, các đối tượng sử dụng của website bao gồm
người dùng (độc giả) và quản trị viên website. Hai đối tượng này, về
mặt chung đều là người sử dụng website, nhưng mục đích sử dụng của
mỗi đối tượng lại khác nhau. Người dùng bình thường chỉ có quyền
đọc bài viết, có thể bình luận về bài viết, quản trị viên sẽ có tất cả các
quyền của người dùng bình thường, ngoài ra sẽ có quyền cao hơn là
quản lý bài viết (đăng bài, sửa bài, xoá bài viết, tải lên các dữ liệu đa
phương tiện).
2.1.2. Các trƣờng hợp sử dụng (Use Case)
Các trường hợp sử dụng của người dùng sẽ được biểu thị
thông qua các sơ đồ use case.
7
Hình 2.1. Sơ đồ Use Case của người dùng thông thường
Hình 2.2. Sơ đồ Use Case của quản trị viên đăng bài (Author)
8
Hình 2.3. Sơ đồ Use Case của quản trị viên hệ thống
2.3. MÔ HÌNH HÓA TƢƠNG TÁC
2.3.1. Biểu đồ trình tự
2.3.1.1. Biểu đồ trình tự đăng nhập
Hình 2.4. Biểu đồ trình tự đăng nhập
2.3.2. Biểu đồ cộng tác
9
2.3.2.1. Biểu đồ cộng tác đăng nhập
Hình 2.5. Biểu đồ cộng tác đăng nhập
2.3.2.2. Biểu đồ cộng tác cập nhập ảnh
Hình 2.6. Biểu đồ công tác cập nhập ảnh
2.4. MÔ HÌNH HÓA HÀNH VI
2.4.1. Biểu đồ trạng thái
2.4.1.1. Biểu đồ trạng thái đăng nhập
10
Hình 2.7. Biểu đồ trạng thái cập nhập
2.4.2. Biểu đồ hoạt động
2.4.2.1. Biểu đồ hoạt động đăng nhập
Hình 2.8. Biểu đồ hoạt động đăng nhập
11
2.5. THIẾT KẾ CƠ SỞ DỮ LIỆU
Hình 2.4. Sơ đồ quan hệ của cơ sở dữ liệu
12
CHƢƠNG III. XÂY DỰNG ỨNG DỤNG
3.1. TRIỂN KHAI LÕI VÀ CẤU HÌNH HỆ THỐNG SỬ
DỤNG LARAVEL FRAMEWORK
Để bắt đầu với dự án xây dựng website tin tức với Laravel, cần
cài đặt lõi của Framework này (xem phần phụ lục). Sau khi cài đặt
xong, bước tiếp theo là cấu hình hệ thống của Framework để phù hợp
với môi trường lập trình. Để cụ thể hơn, môi trường lập trình được sử
dụng trong tài liệu này là máy chủ web ảo sử dụng XAMPP phiên bản
7.0.8.
3.1.1. Cấu hình chung cho hệ thống ứng dụng
3.1.2. Cấu hình cơ sở dữ liệu
3.2. MÔ TẢ CÁC CHỨC NĂNG
Trang chủ: Là cổng thông tin chính của website, các tin
mới của từng chuyên mục sẽ được bố trí phù hợp giúp người dùng dễ
dàng vào được chuyên mục cần xem. Các tin nỗi bật bồ trí khu vục
đầu trang với hiệu ứng đẹp mắt.
Giới thiệu: Đăng tải các bài viết và hình ảnh về lịch sử
hình thành và phát triển của khoa, tầm nhìn, sứ mạng, giới thiệu các
bộ môn, cơ sở vật chất của khoa.
Đội ngũ cán bộ: Đăng tải sơ đồ các cán bộ trong khoa và
danh sách thông tin chi tiết về các cán bộ trong khoa.
Đào tạo: Đăng tải mô hình đào tạo của khoa với các
chương trình đào tạo chính quy và đào tạo nghề, cuối cùng là tuyển
sinh đăng tải các thông tin tuyển sinh về các bộ môn giảng dạy của
khoa.
Hợp tác nghiên cứu: Đăng tải các hướng phát triển nghiên
cứu của khoa và các danh sách công trình nghiên cứu của sinh viên
13
và cán bộ trong khoa phục vụ sinh viên trong quá trình học tập.
Cơ hội việc làm: Đăng tải các thông tin tuyển dụng của
các công ty một cách chi tiết và danh sách các công ty có cựu sinh
viên đang làm việc giúp sinh viên có cơ hội việc làm sau khi ra
trường.
Đăng nhập: Giúp sinh viên và khoa có sự tương tác với
nhau thông qua chức năng bình luận.
3.3. XÂY DỰNG TRANG CHỦ
Sau khi cấu hình xong, ứng dụng đã có thể khởi chạy hoàn
toàn, nhưng nó chỉ có một trang web duy nhất, mặc định của Laravel,
cần phải xây dựng các trang web để thay đổi nó. Đầu tiên là trang
chủ của website tin tức.
Hình 3.1. Giao diện trang chủ
3.4. XÂY DỰNG TRANG PHÂN LOẠI THEO CHỦ ĐỀ BÀI
VIẾT
Trang phân loại theo chủ đề bài viết có chức năng hiển thị các
bài viết theo danh mục mà người dùng đã chọn.
3.5. XÂY DỰNG TRANG CHI TIẾT BÀI ĐĂNG TIN TỨC
Trang chi tiết bài đăng tin tức có chức năng hiển thị ra nội
14
dung của bài viết.
Hình 3.2. Chi tiết bài viết
3.6. XÂY DỰNG CHỨC NĂNG TÌM KIẾM BÀI VIẾT
Trong một website bất kỳ, chức năng tìm kiếm nội dung là
không thể thiếu, website càng chứa nhiều thông tin, chức năng tìm
kiếm càng cần thiết. Trong dự án này, chức năng tìm kiếm được xây
dựng để tìm kiếm theo tiêu đề bài viết.
Hình 3.3. Tìm kiếm bài viết
3.7. XÂY ROUTE QUẢN TRỊ VÀ LAYOUT DÙNG CHUNG
15
3.7.1. Tạo nhóm route cho admin
3.7.2. Tạo layout dùng chung cho trang quản trị và tổ chức
thƣ mục
Truy cập theo đường dẫn resource/view tạo một thứ mục mới
admin. Tại đây sẽ lưu tất cả tệp view của trang quản trị
3.8. XÂY DỰNG ĐĂNG NHẬP VÀ ĐĂNG XUẤT
Để xác thực người dùng truy cập vào trang quản trị với đường
dẫn /admin thì bắt buộc phải xây dựng một trang đăng nhập và nếu
qua được bước xác thực này thì mới cho vào trong trang quản trị.
Giao diện trang đăng nhập như sau:
Hình 3.5. Giao diện trang đăng nhập cho quản trị
3.9. XÂY DỰNG TRANG CHỦ QUẢN TRỊ
3.10. XÂY DỰNG TRANG CÁ NHÂN
16
Hình 3.6. Giao diện thông tin tài khoản
3.11. XÂY DỰNG TRANG QUẢN LÝ BÀI VIẾT
3.11.1. Trang hiển thị danh sách bài viết
Hình 3.7. Giao diện danh sách bài viết
17
3.11.2. Trang thêm bài viết
Hình 3.8. Giao diện trang đăng bài viết
3.11.3. Trang sửa bài viết
Route thực hiện việc sửa bài viết Route::get('update/{id}',
'PostController@getUpdate'). {id} ở đây chính là một biên tương
ứng với id bài viết sẽ sửa. Chi tiết hàm getUpdate() xem thêm trong
mã nguồn.
Hình 3.9. Giao diện trang sửa bài viết
18
Hàm postUpdate sẽ thực hiện việc kiểm tra dữ liệu mà form
này gửi lên và lưu thay đổi vào database.
3.11.4. Trang xóa bài viết
Route của trang xoá bài viết:
Route::post('update/{id}', 'PostController@postUpdate');
Route::get('delete/{id}', 'PostController@getDelete')
19
KẾT LUẬN
Qua đồ án này em đã tìm hiểu được framework laravel cách
thức học động mô hình MVC trong framework. Và áp dựng kiến
thức trên em đã xây dựng được website giới thiệu khoa công nghệ
thông tin. Website cũng đã đáp ứng được những yêu cầu của đặt tả.
Những còn một số chức năng chưa phát huy được hết công dụng của
mình ví dụ như: Các công trình nghiên cứu chưa kết nối được cơ sở
dữ liêu để thay đổi dễ dàng hơn...
Sau một thời gian bắt tay vào làm việc với sự giúp đỡ của
Thầy giao hướng dẫn đã hoàn thành đề tài “Xây dựng và phát triển
ứng dụng website tin tức công nghệ dựa trên PHP Framework
Laravel ”. Tuy nhiên trong quá trình phân tích, thiết kế và xây dựng
hệ thống do thời gian có hạn và kinh nghiệm của bản thân còn hạn
chế nên chắc chắn trong báo cáo này không tránh khỏi những thiếu
sót và những chỗ xử lý vấn đề chưa tối ưu. Em rất mong nhận được
những nhận xét, đánh giá từ phía các thầy cô đẽ em khắc phục và
hoàn thiện hơn cho hệ thống website vận hành sau này.
Hướng phát triển của em sau này em muốn hoàn thiện hơn về
các chức năng như: hiển thị file đính kèm và bổ xung các chức năng
khác cho website trở nên hoàn thiện hơn.Sau một thời gian bắt tay
vào làm việc với sự giúp đỡ của Thầy giáo hướng dẫn đã hoàn thành
đề tài “Xây dựng và phát triển ứng dụng website tin tức công nghệ
dựa trên PHP Framework Laravel”. Tuy nhiên trong quá trình phân
tích, thiết kế và xây dựng hệ thống do thời gian có hạn và kinh
nghiệm của bản thân còn hạn chế nên chắc chắn trong báo cáo này
không tránh khỏi những thiếu sót và những chỗ xử lý vấn đề chưa tối
ưu. Em rất mong nhận được những nhận xét, đánh giá từ phía các
thầy cô để em khắc phục và hoàn thiện hơn cho hệ thống website vận
hành sau này.