Việc tiếp cận của sinh viên Việt Nam với các học bổng thông qua cách thứccác cổng thông tin hiện nay còn khá yếu và chưa được phổ biến.. Vấn đề được đặt ra sau khi lựa chọn học bổng làm
Trang 1BÁO CÁO THỰC TẬP CÔNG NHÂN
PHẦN THIẾT KẾ WEBSITE
ĐỀ TÀI:
XÂY DỰNG TRANG THÔNG TIN HỌC BỔNG
DÀNH CHO SINH VIÊN VIỆT NAM
SỬ DỤNG PHP LARAVEL
Trang 2MỤC LỤC
MỞ ĐẦU
1 Tổng quan về đề tài 1
2 Mục đích và ý nghĩa của đề tài 1
3 Phương pháp thực hiện 1
4 Bố cục của đề tài 2
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 3
1.1 Website 3
1.1.1 Khái niệm 3
1.1.2 Phân loại 3
1.2 Ngôn ngữ lập trình PHP 3
1.2.1 Định nghĩa 3
1.2.2 Định nghĩa framework 3
1.3 PHP Laravel 4
1.3.1 Định nghĩa 4
1.3.2 Sơ lược các tính năng cơ bản 4
1.3.3 Các bước để cài đặt 5
1.4 Mô hình MVC 5
1.4.1 Khái niệm 5
1.4.2 Thành phần 6
1.4.3 Sự tương tác giữa các thành phần 6
1.5 Phân tích yêu cầu 6
1.5.1 Yêu cầu về quản lý website 6
1.5.2 Yêu cầu về người dùng là học sinh, sinh viên 7
1.5.3 Yêu cầu về người dùng là quỹ học bổng, doanh nghiệp 7
1.6 KẾT CHƯƠNG 7
CHƯƠNG 2: PHÂN TÍCH, THIẾT KẾ, TRIỂN KHAI HỆ THỐNG 8
2.1 Phân tích chức năng 8
2.1.1 Các chức năng chính 8
2.1.2 Use case 9
2.2 Cấu trúc trang web 10
2.3 Thiết kế cơ sở dữ liệu 10
2.3.1 Cơ sở dữ liệu tài khoản 10
2.3.2 Cơ sở dữ liệu bài đăng học bổng 11
2.3.3 Cơ sở dữ liệu bài đăng sự kiện 12
2.3.4 Cơ sở dữ liệu bình luận 12
2.4 KẾT CHƯƠNG 12
Trang 3CHƯƠNG 3: KẾT QUẢ TRIỂN KHAI VÀ ĐÁNH GIÁ 13
3.1 Môi trường cài đặt 13
3.2 Kết quả triển khai 14
3.3 Đánh giá 20
3.3.1 Ưu điểm 20
3.3.2 Nhược điểm 20
3.4 KẾT CHƯƠNG 20
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 21
Trang 4DANH SÁCH HÌNH ẢNH
Hình 1 Ảnh mô phỏng sự tương tác giữa các thành phần trong MVC 6
Hình 2 Sơ đồ Use-case của hệ thống 9
Hình 3 Cấu trúc của trang web 10
Hình 4 Cơ sở dữ liệu tài khoản 10
Hình 5 Cơ sở dữ liệu bài đăng học bổng 11
Hình 6 Cơ sở dữ liệu bài đăng sự kiện 12
Hình 7 Cơ sở dữ liệu bình luận 12
Hình 8 Màn hình chính của trang web 14
Hình 9 Màn hình đăng nhập 14
Hình 10 Màn hình đăng kí 14
Hình 11 Chức năng đổi mật khẩu 15
Hình 12 Chức năng xem thông tin học bổng 15
Hình 13 Chức năng xem các sự kiện giáo dục 15
Hình 14 Trang cá nhân của người dùng 16
Hình 15 Trang quản lý hệ thống của Admin 16
Hình 16 Chức năng chỉnh sửa các tài khoản 16
Hình 17 Chức năng Reset mật khẩu của tài khoản 17
Hình 18 Chức năng khóa tài khoản 17
Hình 19 Chức năng tạo tài khoản hệ thống 17
Hình 20 Chức năng quản lý đăng tin học bổng 18
Hình 21 Chức năng phê duyệt bài đăng tin tức học bổng 18
Hình 22 Chức năng đăng tin tức học bổng 18
Hình 23 Chức năng quản lý bài đăng sự kiện 19
Hình 24 Chức năng phê duyệt bài đăng sự kiện 19
Hình 25 Chức năng quản lý bình luận bài viết 19
Trang 5DANH SÁCH TỪ VIẾT TẮT
IP Internet Protocol
API Application Programming Interface
URL Uniform Resource Locator
Trang 6MỞ ĐẦU
1 Tổng quan về đề tài
Ngày nay trao và nhận học bổng là một điều tất yếu không thể thiếu trong nêngiáo dục hiện nay Học bổng là cơ sở, động lực thúc đẩy và giúp đỡ cho sinh viêntrong học tập, cuộc sống và gia đình Học bổng giúp mở ra nhiều cơ hội mới chosinh viên được phát triển và tiếp cần với nhiều nền giáo dục trên toàn thế giới.Chính vì thế nhóm đã chọn học bổng là chủ đề chính cho đề tài
Việc tiếp cận của sinh viên Việt Nam với các học bổng thông qua cách thứccác cổng thông tin hiện nay còn khá yếu và chưa được phổ biến Một phần do xuhướng sử dụng việc tiếp cận bằng phương pháp truyền thống được áp dụng rộng rãi,ngoài ra vẫn chưa có một cổng thông tin đủ sức hút và sự lâu dài để gắn bó với cácsinh viên tại Việt Nam
Vấn đề được đặt ra sau khi lựa chọn học bổng làm chủ đề chính là việc duy trì
sự lâu dài trong việc quản lý, nguồn thông tin thu thập đa dạng và đều đặn liên tục,cập nhật nhanh và chính xác các học bổng cũng như các sự kiện về giáo dục, Giaodiện người dùng dễ dàng sử dụng, thuận tiện và ưa nhìn
2 Mục đích và ý nghĩa của đề tài
2.1 Mục đích
Giúp đẩy mạnh việc tiếp cận của sinh viên Việt Nam đối với các chương trìnhhọc bổng cũng như các sự kiện giáo dục thông qua hình thức các cổng thông tin vàtrực tuyến
Đưa việc sử dụng Internet để hỗ trợ trong việc học tập cũng như nghiên cứucủa các học sinh, sinh viên tại Việt Nam trong thời đại 4.0 ngày nay
2.2 Ý nghĩa
Tạo ra một cổng thông tin là nơi trao đổi giữa các học sinh sinh viên và cácquỹ tài trợ học bổng hay là các nhà tổ chức sự kiện giáo dục Website là cầu nốitrong việc thúc đẩy áp dụng công nghệ hỗ trợ học sinh, sinh viên trong quá trình họctập và giảng dạy cũng như là việc tiếp cận đến các đối tượng của các quỹ học bổng
Trang 7 Phương pháp thống kê, điều tra.
Phương pháp phân tích thiết kế hệ thống
Phương pháp thử nghiệm, đánh giá kết quả
Kết luận và hướng phát triển.
Trang 8CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
Website được giao tiếp và hiển thị cho người dùng truy cập bằng các phần mềm được gọi là trình duyệt website
1.1.2 Phân loại
Website tĩnh: Là website mà người quản trị (những người không phải làlập trình viên) không thể tùy ý thay đổi nội dung và hình ảnh mà phải cầnkiến thức về HTML cơ bản Website tĩnh được viết hoàn toàn dựa trênnền tảng HTML CSS và thêm các hiệu ứng từ Javascript nếu muốn
Website động:Là website được viết kèm theo một bộ công cụ quản trị đểtùy biến nội dung dành cho webmaster (người quản trị) có thể dễ dàngthay đổi nội dung, hình ảnh Website động được thiết kế bởi các lập trìnhviên để làm sao cho phép website có thể thay đổi được nội dung thườngxuyên Một số công nghệ, ngôn ngữ để xây dựng website động bao gồmPHP, ASP.NET, Java,
1.2 Ngôn ngữ lập trình PHP
1.2.1 Định nghĩa
PHP (viết tắt hồi quy "PHP: Hypertext Preprocessor") là một ngôn ngữ lậptrình kịch bản hay một loại mã lệnh chủ yếu được dùng để phát triển các ứngdụng viết cho máy chủ, mã nguồn mở, dùng cho mục đích tổng quát Nó rất thíchhợp với web và có thể dễ dàng nhúng vào trang HTML Do được tối ưu hóa chocác ứng dụng web, tốc độ nhanh, nhỏ gọn, cú pháp giống C và Java, dễ học và thờigian xây dựng sản phẩm tương đối ngắn hơn so với các ngôn ngữ khác nên PHP đãnhanh chóng trở thành một ngôn ngữ lập trình web phổ biến nhất thế giới
Trang 91.2.2 Định nghĩa framework
Framework là một thư viện các lớp đã được xây dựng hoàn chỉnh, bộ khung để phát triển các Phần mềm ứng dụng Có thể ví Framework như tập các “ Vật liệu” ở từng lĩnh vực cho người lập trình viên, thay vì họ phải mất nhiều thời gian để tự thiết kế trước khi dùng Do vậy, người lập trình viên chỉ cần tìm hiểu và khai thác các vật liệu này rồi thực hiện để gắn kết chúng lại với nhau, tạo ra sản phẩm
1.3.1 Định nghĩa
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 mục tiêu hỗ trợ phát triển các ứng dụng web theo cấu 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
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 năm 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, với source code được lưu trữ tạiGitthub
1.3.2 Sơ lược các tính năng cơ bản
Bundles : Ở laravel phiên bản 3.x, cung cấp một hệ thống đóng gói các
module, với rất nhiều tính năng đi kèm
Composer : Ở laravel phiên bản 4.x, được sử dụng như một công cụ quản lý
với tính năng như thêm các gói cài đặt, các chức năng PHP phụ trợ cho Laravel có trong kho Packagist
Eloquent ORM (object relation mapping) : ánh xạ các đối tượng và quan hệ
cơ sở dữ liệu, cung cấp các phương thức nội bộ để thực thi đồng thời cũng bổsung các tính năng hạn chế về mối quan hệ giữa các đối tượng cơ sở dữ liệu
Application logic : Là một phần của phát triển ứng dụng, được sử dụng bởi
bộ điều khiển controllers
Trang 10 Routes : Định nghĩa mối quan hệ giữa các đường dẫn (url), các liên kết
(link) Khi một liên kết được tạo ra bằng cách sử dụng tên của routes, thì một định danh liên kết thống nhất sẽ được tạo ra bởi laravel
Restful Controller : cung cấp các tùy chọn để tách các logic phía sau các
request HTTP POST, GET
Class auto loading : cung cấp việc tải tự động các class trong PHP, mà
không cần include các class vào Tùy thuộc vào yêu cầu các class cần thiết sẽđược nạp vào, hạn chế các class không cần thiết
View : chưa các mã html, hiển thị dữ liệu được chỉ định bởi controller
Migrations : cung cấp một hệ thống kiểm soát các phiên bản lược đồ cơ sở
dữ liệu, làm cho web ứng dụng có khả năng tương tác phù hợp những thay đổi logic, các đoạn mã code của ứng dụng và những thay đổi cần thiết trong việc bố trí cơ sở dữ liệu, triển khai nới lỏng và cập nhật các ứng dụng
Unit Testing : đóng một vai trò quan trọng trong Laravel, Unit testting chứa
rất nhiều các hệ thống unit testing, giúp phát hiện và ngăn chặn lỗi trong khuôn khổ nhất định
Automatic pagination : Tính năng tự động phân trang được tích hợp
vào Laravel giúp đơn giản hóa các nhiệm vụ thực hiện phân trang so với các phương phápthông thường
1.3.3 Các bước để cài đặt
Bước 1: Truy cập vào htdocs của xampp
Bước 2: Nhấn phím “shift” và click chuột phải chọn “ open power shell window here”
Bước 3: Gõ lệnh : composer global require “laravel/installer”
Bước 4: Sau khi hoàn thành gõ lệnh: “laravel new blog”
Chú ý blog là : tên bạn muốn cài đặt ( có thể đổi tên khác )
Bước 5 Mở file.env cấu hình thông tin db, url cho ứng dụng
1.4.1 Khái niệm
MVC là viết tắt của Model – View – Controller Là một kiến trúc phần mềm hay
mô hình thiết kế được sử dụng trong kỹ thuật phần mềm Nói cho dễ hiểu, 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
Trang 111.4.2 Thành phần
Controller: Giữ nhiệm vụ nhận điều hướng các yêu cầu từ người dùng và gọi đúng những phương thức xử lý chúng… Chẳng hạn thành phần này sẽ nhận request từ url và form để thao tác trực tiếp với Model
Model: Đây là thành phần chứa tất cả các nghiệp vụ logic, phương thức xử
lý, truy xuất database, đối tượng mô tả dữ liệu như các Class, hàm xử lý…
View: Đảm nhận việc hiển thị thông tin, tương tác với người dùng, nơi chứa tất cả các đối tượng GUI như textbox, images… Hiểu một cách đơn giản, nó
là tập hợp các form hoặc các file HTML
1.4.3 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
Hình 1 Ảnh mô phỏng sự tương tác giữa các thành phần trong MVC
1.5 Phân tích yêu cầu
1.5.1 Yêu cầu về quản lý website
Xây dựng trang quản lý có giao diện dễ nhìn, đơn giản và dễ sử dụng
Tìm kiếm thông tin đầu vào bằng cách là cầu nối giữa các quỹ học bổng
và doanh nghiệp với học sinh sinh viên thông qua hệ thống
Trang quản lý có đầy đủ các chức năng thêm, sửa, xóa, cập nhật, thống
kê, theo dõi
Trang 12 Tăng tính ổn định và độ tin cậy của trang quản lý đối với người dùng.
1.5.2 Yêu cầu về người dùng là học sinh, sinh viên
Xây dựng thiết kế giao diện người dùng thân thiện và dễ sử dụng
Cập nhật thông tin, tin tức nhanh và liên tục đến với học sinh, sinh viên
Xây dựng thông tin cá nhân để tối ưu hóa thời gian làm hồ sơ xin họcbổng
Thu thập thông tin dữ liệu để dự đoán xu hướng của người dùng
1.5.3 Yêu cầu về người dùng là quỹ học bổng, doanh nghiệp
Xây dựng thiết kế giao diện người dùng đơn giản và dễ sử dụng
Truyền tải đầy đủ thông tin mà quỹ học bổng hay doanh nghiệp muốnđưa đến các đối tượng mong muốn
Trả về dữ liệu đối tượng ứng tuyển chính xác và nhanh chóng
Thuận tiện trong việc trao đổi thông tin và liên hệ
Chương này trình bày tổng quan về các cơ sở lý thuyết sẽ được áp dụng đểtriển khai và thiết kế cho chính website của nhóm
Trang 13CHƯƠNG 2: PHÂN TÍCH, THIẾT KẾ, TRIỂN KHAI
HỆ THỐNG
2.1 Phân tích chức năng
2.1.1 Các chức năng chính
Đối với người dùng nói chung:
- Đăng ký/Đăng nhập/Quên mật khẩu
- Nhập/Sửa/Cập nhật thông tin cá nhân
- Xem các bài viết mới nhất
- Xem các bài viết theo danh mục
- Xem thông tin về bài viết
- Tìm kiếm bài viết
- Bình luận bài viết
Sinh viên:
- Đăng ký học bổng
- Đăng ký tham gia sự kiện
Tổ chức:
- Đăng tải bài đăng thông tin học bổng mới
- Chỉnh sửa bài đăng thông tin học bổng
- Xóa bài đăng thông tin học bổng
- Xem danh sách các sinh viên đăng ký học bổng
- Đăng tải bài đăng thông tin sự kiện mới
- Chỉnh sửa bài đăng thông tin sự kiện
- Xóa bài đăng thông tin sự kiện
- Xem danh sách đăng ký tham gia sự kiện
Người quản trị:
- Duyệt các bài đăng thông tin học bổng mới
- Duyệt các bài đăng thông tin sự kiện
- Quản trị các bài đăng
- Thêm một tài khoản mới vào hệ thống
Trang 14- Khóa/Mở khóa tài khoản.
- Reset mật khẩu tài khoản
- Xóa tài khoản khỏi hệ thống
- Phân quyền cho tài khoản
2.1.2 Use case
Hình 2 Sơ đồ Use-case của hệ thống
Trang 152.2 Cấu trúc trang web
Hình 3 Cấu trúc của trang web
2.3 Thiết kế cơ sở dữ liệu
2.3.1 Cơ sở dữ liệu tài khoản
Hình 4 Cơ sở dữ liệu tài khoản
Trang 162.3.2 Cơ sở dữ liệu bài đăng học bổng
Hình 5 Cơ sở dữ liệu bài đăng học bổng
Trang 172.3.3 Cơ sở dữ liệu bài đăng sự kiện
Hình 6 Cơ sở dữ liệu bài đăng sự kiện
2.3.4 Cơ sở dữ liệu bình luận
Hình 7 Cơ sở dữ liệu bình luận
Chương này trình bày các thiết kế và phân tích hệ thống, triển khai hệ thốngnhư yêu cầu đặt ra ban đầu
Trang 18CHƯƠNG 3: KẾT QUẢ TRIỂN KHAI VÀ ĐÁNH GIÁ
3.1 Môi trường cài đặt
Cài đặt trình soạn thảo code
Bước có rất nhiều người bỏ qua, nhưng để cho việc phát triển web nhanh và ít xảy
ra lỗi thì bước này lại là quan trọng nhất Có rất nhiều IDE của PHP để chọn:
o Sublime text (Windows, Mac, Linux)
o PphStorm (Windows, Mac, Linux)
Cài đặt phần mềm chạy webserver
o XAMP: Cho Mac OS X, Windows và Linux
Cài đặt CDSL
o MySQL: được cài đặt khi cài đặt Xampp.
Trang 193.2 Kết quả triển khai
Hình 8 Màn hình chính của trang web
Hình 9 Màn hình đăng nhập
Trang 20Hình 10 Màn hình đăng kí
Hình 11 Chức năng đổi mật khẩu
Hình 12 Chức năng xem thông tin học bổng
Trang 21Hình 13 Chức năng xem các sự kiện giáo dục
Hình 14 Trang cá nhân của người dùng
Trang 22Hình 15 Trang quản lý hệ thống của Admin
Hình 16 Chức năng chỉnh sửa các tài khoản
Trang 23Hình 17 Chức năng Reset mật khẩu của tài khoản
Hình 18 Chức năng khóa tài khoản
Trang 24Hình 19 Chức năng tạo tài khoản hệ thống
Hình 20 Chức năng quản lý đăng tin học bổng
Trang 25Hình 21 Chức năng phê duyệt bài đăng tin tức học bổng
Hình 22 Chức năng đăng tin tức học bổng
Trang 26Hình 23 Chức năng quản lý bài đăng sự kiện
Hình 24 Chức năng phê duyệt bài đăng sự kiện
Trang 27Hình 25 Chức năng quản lý bình luận bài viết
Trang 283.3 Đánh giá
3.3.1 Ưu điểm
Chủ đề lựa chọn mới lạ, sáng tạo và đầy tính thị trường hiện nay
Tích hợp được nhiều thông tin để mang đến cho người dùng sự đa dạng vềtin tức
Giao diện đơn giản, dễ sử dụng
Các chức năng được thể hiện rõ ràng, đầy đủ các chức năng cơ bản
3.3.2 Nhược điểm
Vẫn còn thiếu sót và một số chức năng chưa được tối ưu hoàn toàn
Chức năng còn đơn giản, chưa đa dạng về mặt chức năng của hệ thống
Giao diện còn khá đơn giản
Chức năng giao tiếp giữa các người dùng chưa được đẩy mạnh hoàn toàn
Chương này trình bày về môi trường cài đặt, đưa ra kết quả đã đạt được saukhi triển khai và thiết kế website Đưa ra được ưu điểm và nhược điểm cùng với cácgiải pháp đề xuất trong tương lai để hoàn thiện sản phẩm