Phạm Vi Nghiên Cứu...2 Sử dụng ngôn ngữ kịch bản PHP kết hợp với hệ quản trị CSDL MySQL...2 Xây dựng ứng dụng với Laravel...2 Sử dụng web Server Apache chạy trên hệ điều hành mã nguồn
Trang 1TRƯỜNG ĐẠI HỌC CẦN THƠ
Trang 2TRƯỜNG ĐẠI HỌC CẦN THƠ
Trang 3Em xin cảm ơn Ths.Võ Hải Đăng đã tận tình giúp đỡ, hướng dẫn em xây dựng Hệ
Thống Quản Lý Đoàn Viên Khoa Khoa Học Tự Nhiên-phân hệ quản lý và hoàn
thành các công việc được giao đúng thời gian quy định
Em cũng xin cảm ơn gia đình đã nhiệt tình khuyến khích, động viên, giúp đỡ em
Em xin cám ơn bạn bè, những người đã đưa ra những lời khuyên cũng như góp ý cóích giúp em hoàn thiện đề tài này
Với vốn kiến thức hạn hẹp cùng thời gian có hạn nên em không tránh khỏi nhữngthiếu sót và hạn chế Em rất mong nhận được những ý kiến đóng góp, phê bình củaquý thầy cô Đó là cơ sở để giúp em tiếp tục nghiên cứu và hoàn thiện hệ thống , vàđây cũng là hành trang quý báu giúp em nâng cao kiến thức
Em xin chân thành cảm ơn!
Trang 4MỤC LỤC
DANH MỤC HÌNH i
CHƯƠNG 1.DANH MỤC BẢNG ii
TÓM TẮT iv
ABSTRACT v
CHƯƠNG 2.TỔNG QUAN 1
1.1 ĐẶT VẤN ĐÊ 1
CHƯƠNG 2 LỊCH SỬ GIẢI QUYẾT VẤN ĐÊ 2
CHƯƠNG 3 MỤC TIÊU VÀ PHẠM VI NGHIÊN CỨU 2
3.1.1 Mục Tiêu Nghiên Cứu 2
3.1.2 Phạm Vi Nghiên Cứu 2
Sử dụng ngôn ngữ kịch bản PHP kết hợp với hệ quản trị CSDL MySQL 2
Xây dựng ứng dụng với Laravel 2
Sử dụng web Server Apache chạy trên hệ điều hành mã nguồn mở Linux giúp tiết kiệm được rất nhiều chi phí 2
Sư dụng hệ thống chứng thực người dùng thông qua dich vụ của Google giúp bảo mật tốt hơn 2
3.2 PHƯƠNG PHÁP NGHIÊN CỨU VÀ GIẢI QUYẾT VẤN ĐÊ 3
3.2.1 Phương Pháp Nghiên Cứu 3
CHƯƠNG 3.CƠ SỞ LÝ THUYẾT 4
2.1 GIỚI THIỆU VÊ PHP FRAMEWORK 4
2.1.1 Framework là gì? 4
2.1.2 Giới Thiệu PHP Framework 4
2.1.3 Những điểm cần lưu ý khi sử dụng một PHP framework? 5
2.1.4 Các Loại PHP Framework phổ biến 6
2.2 MÔ HÌNH MVC 8
2.2.1 Mô hình MVC là gì? 8
2.2.2 MVC làm việc như thế nào? 10
2.2.3 Ưu và khuyết điểm của MVC 11
2.2.4 So sánh mô hình MVC với mô hình 3 lớp 11
2.3 LARAVEL FRAMEWORK 13
2.3.1 Giới Thiệu Laravel Framework 13
2.3.2 Kiến trúc Laravel Framework 13
2.3.3 Ưu và khuyết điểm của Laravel Framework 14
2.3.4 Cách thức hoạt động của Laravel Framework 15
2.3.4.1 Model 16
2.3.4.2 View 16
2.3.4.3 Controller 16
2.3.4.4 Eloquent ORM 16
2.3.4.5 Schema Builder 17
2.3.4.6 Migration 17
2.3.5 Tìm hiểu về Composer 17
2.3.6 Một số thư viện/gói hữu ích trong Laravel Framework 18
2.4 OAUTH 19
2.4.1 Tổng quan về xác thực 19
2.4.2 Giao thức xác thực OAuth 19
2.4.2.1 OAuth – phương thức xác thực mở 19
Trang
Trang 51 Client đăng ký sử dụng dịch vụ với Server 20
2 Server cho Client 20
CONSUMER_KEY 20
CONSUMER_SECRET_KEY 20
3 Client sử dụng các keys trên để thực hiện Authorization 20
1 Client đăng ký sử dụng dịch vụ với Server 20
2 Server cho Client 20
CONSUMER_KEY 20
CONSUMER_SECRET_KEY 21
3 User có tài nguyên ở Server 21
4 User sử dụng dịch vụ ở Client, Client yêu cầu User cho phép khai thác tài nguyên của User ở Server 21
5 Client yêu cầu Server gửi REQUEST_TOKEN cho User 21
6 Client chuyển User đến Server Authentication 21
7 User đăng nhập vào Server, Server hỏi User có muốn chia sẻ quyền khai thác dữ liệu cho Client hay không 21
8 User đồng ý, Server chuyển User về Client kèm theo ACCESS_TOKEN 21
9 Client sử dụng ACCESS_TOKEN để thực hiện thao tác trên các tài nguyên của User thuộc Server 21
2.4.3 Sử dụng Oauth trong Laravel 21
Truy cập trang: https://code.google.com/apis/console#access 21
Tạo một dự án mới với tính năng OAuth 21
22
Chọn APIS & AUTH –> APIs từ thanh Menu và kích hoạt dịch vụ Google+API 22
22
Chọn APIS & AUTH –> credentials từ thanh Menu trái 22
23
Nhấn nút Create new Client ID và điền các thông tin cần thiết, chú ý chọn Application Type là Web application 23
Sau khi điền đầy đủ thông tin ta nhận được client Id, secret key và các thông tin khác như hình dưới 24
24
Chọn Create New Key để tạo server key Ta sẽ bảo mật key này 24
Như vậy ta đã cài đặt thành công Mỗi lần người dùng yêu cầu chứng thực bằng tài khoản google, màn hình sau sẻ xuất hiện: 25
25
Thêm oauth-4-laravel vào tập tin composer.json (tức đăng ký thư viện artdarek/oauth-4-laravel với Laravel ): 25
Update lại dự án với lệnh cmd: 25
Tự động tạo tập tin cấu hình với lệnh cmd: 25
Mở tập tin ở đường dẫn app/config/packages/artdarek/oauth-4-laravel/config.php và cấu hình với thông tin chứng chỉ đã tạo ở Bước 1 25
CHƯƠNG 4 NỘI DUNG VÀ KẾT QUẢ NGHIÊN CỨU 27
3.1 ĐẶC TẢ HỆ THỐNG 27
3.1.1 Giới Thiệu 27
3.1.2 Mô Tả Tổng Thể 27
3.1.2.1 Mô tả thực trạng 27
3.1.2.2 Các chức năng của hên thống 27
Trang 63.2.1 Sơ đồ hoạt vụ(Use Case) 30
3.2.2 Sơ đồ tuần tự 38
3.2.3 Mô hình dữ liệu mức quan niệm(Conceptual Data Model) 45
3.2.4 Mô hình dữ liệu vật lý(Physical Data Model) 46
3.2.5 Mô hình Tập thực thể 47
3.3 XÂY DỰNG CHƯƠNG TRÌNH 64
Quản lý đoàn viên: thêm, xóa, cập nhật các thông tin trạng thái đoàn viên, cập nhật thành tích học tập điểm rèn luyện, tìm kiếm đoàn viên theo mã số , thống kê các thông tin liên quan 64
Quản lý chi đoàn: thêm, xóa cập nhật thông tin trạng thái liên quan Chi Đoàn, quản lý danh sách lưc lượng nòng cốt hằng năm 64
Quản lý khen thưởng: thêm, xóa, câp nhật các đợt khen thưởng trong học kỳ, xét duyệt các danh sách đề cử do ban chấp hành các chi đoàn gữi lên 64
Quản lý hoạt động: thêm, xóa, cập nhật các hoạt động đoàn khoa trong học kỳ, xét duyệt các hoạt động của các chi đoàn đăng ký, thống kê các hoạt động nhằm làm cơ sở xét thi đua 64
Quản lý đoàn phí: thêm, xóa, cập nhật các mức đoàn phí hàng năm, quản lý thu đoàn phí từ các chi đoàn, thông kê nhằm làm cơ sở xét thi đua 64
Phân quyền 64
Số lượng hoạt động chi đoàn chờ duyệt 65
Số lượng chi đoàn cơ sở 65
Số lượng đoàn viên 65
… 65
Thông tin về đợt khen thưởng đang xét duyệt 68
Danh sách các đoàn viên được đề cử được lọc theo chi đoàn, người quản lý có thể xem các thành tích hoạt động của các đoàn viên được đề cử và quyết định có chấp nhận hay không 68
Loại hoạt động 70
Tiêu đề 70
Địa điểm 70
Thời gian 70
Thời hạn 70
Ghi chú 70
KẾT LUẬN VÀ ĐÊ NGHỊ 74
Giao diện thân thiện với người dùng 74
Dễ quản lý và thay đổi nội dung 74
Có thể áp dụng vào thực tế 74
TÀI LIỆU THAM KHẢO 75
Trang 7DANH MỤC HÌNH Trang
Trang 8CHƯƠNG 1 DANH MỤC BẢNG
Trang 9DANH MỤC CÁC KÝ HIỆU, CHỬ VIẾT TẮT
API Application Programming Interface - Giao diện lập trình ứng
dụng
CNTT Công nghệ thông tin
CSDL Cơ sở dữ liệu
HTML HyperText Markup Language
HTTP Hypertext Transfer Protocol
HTTPS Hypertext Transfer Protocol Secure
MVC Model View Controller
DBMS Database management systems
RDBMS Relational database management system
ORM Object-relational mapping
SQL Structured Query Language
OAuth Open standard for authorization
Trang 10TÓM TẮT
Mục tiêu của luận văn này này là tìm hiểu về Laravel , một PHP Frameworkmới , và sử dụng nó một cách hiệu quả để xây dựng hệ thống quản lý đoàn viênkhoa Khoa Học Tự Nhiên Hệ thống này cho phép các quản trị viên quản lý tốt hơncác thông tin và các nghiệp vụ liên quan đến lĩnh vực đoàn Để thực hiện , hệ thốngđược xây dựng trên nền tảng web và dựa trên các tính năng của Framework Laravelnhư Composer, Eloquent, Blade và Artisan và WAMP server
Chương trình được xây dựng trên Framework Laravel 4.2, một PHP Frameworkhiện đại giúp cho việc lập trình PHP dễ dàng hơn, nhanh hơn và trực quan hơn Ứngdụng được xây dựng theo kiến trúc mô hình MVC Ứng dụng sử dụng Oauth để xácthực người dùng dựa trên tài khoản Google giúp tăng tính bảo mật
Ứng dụng có thể dễ dàng được mở rộng ,các tính năng có thể được thêm vàohoặc gỡ bỏ một cách dể dàng nhờ khả năng quản lý các gói thông qua Composer’sPackagist trực tuyến của Framework Laravel
Các kết quả đã chứng tỏ rằng Laravel là một Framwork PHP hiệu quả vói khảnăng giúp các lập trình viên nhanh chóng xây dựng các ứng dụng web an toàn đầy
đủ chức năng và có thể nâng cấp dể dàng
Từ khóa : Laravel , Oauth , PHP Framework , MVC
Trang 11ABSTRACT
The purpose of this thesis work was to learn a new PHP framework and use itefficiently to build Youth Union of the Faculty of Natural Science ManagementSystem which will allow the administrators to better manage the infomations oftheir Union include To fulfil this set of requirements, a system consisting of a webapplication with a backend was designed and implemented using built in Laravelfeatures such as Composer, Eloquent, Blade and Artisan and a WAMP stack
The web application was built using the Laravel framework version 4, a modernPHP framework that aims at making PHP development easier, faster and moreintuitive The web application was built following the MVC architecture pattern.Admin panels were created for easily updating and managing the categories andproducts and uploading product images as well A public interface was madeavailable also to let registered users to log in with google acount using OAuth.The application is easily expandable and features can be added or removedeffortlessly thanks to the Laravel’s ability to manage packages through Composer’sPackagist online repository
The results proved that Laravel 4.2 is effectively a premium choice for a PHPframework that helps developers rapidly build secure, upgradable web applications
Key world : Laravel , Oauth , PHP Framework , MVC
Trang 12CHƯƠNG 2 TỔNG QUAN1.1 ĐẶT VẤN ĐÊ
Xã hội ngày càng phát triển, cuộc sống con người mỗi lúc được cải thiện hơn donhu cầu sống, làm việc và giải trí của con người ngày càng tăng cao Để đáp ứngnhu cầu đó của xã hội, nhiều công nghệ tiên tiến mới ra đời và con người đã ápdụng các công nghệ đó trong cuộc sống một cách hiệu quả nhất
Nói đến công nghệ thông tin là nói đến sự tiện lợi và nhanh chóng của những lợiích mà công nghệ đem lại cho con người Công nghệ thông tin đang dần đi sâu vàotừng lĩnh vực của đời sống xã hội Việc ứng dụng rộng rãi công nghệ thông tin trongmọi lĩnh vực đã đem lại nhiều lợi ích thiết thực, góp phần xây dựng đất nước tatrong thời kỳ công nghiệp hóa hiện đại hóa Nhờ có công nghệ thông tin mà chúng
ta có thể tìm kiếm, khai thác và quản lý một lượng lớn các thông tin, dữ liệu mộtcách nhanh chóng và thuận tiện Công nghệ thông tin trở thành một phần không thểthiếu trong cuộc sống, giúp chúng ta giải quyết những vấn đề đau đầu nhất như tínhtoán những con số lớn và lưu trữ dữ liệu khổng lồ một cách dễ dàng
Cùng với sự phát triển nhanh chóng về phần cứng máy tính, các phần mềm càngtrở nên đa dạng, phong phú, hoàn thiện hơn và hỗ trợ hiệu quả cho con người Cácphần mềm hiện nay ngày càng hỗ trợ cho người dùng thuận tiện sử dụng, thời gian
xử lý nhanh chóng, và một số nghiệp vụ được tự động hóa cao Do vậy mà trongviệc phát triển phần mềm, sự đòi hỏi không chỉ là sự chính xác, xử lý được nhiềunghiệp vụ thực tế mà còn phải đáp ứng yêu cầu khác như về tốc độ, giao diện thânthiện, mô hình hóa được thực tế vào máy tính để người dùng sử dụng tiện lợi, quenthuộc, tính tương thích cao, bảo mật cao,… Các phần mềm giúp tiết kiệm mộtlượng lớn thời gian, công sức của con người, tăng độ chính xác và hiệu quả trongcông việc
Cụ thể trong việc quản lý thông tin đoàn viên, chi đoàn tại Đoàn Khoa Khoa Học
Tự Nhiên – Đại Học Cần Thơ đã ngày càng phổ biến Các công việc này đòi hỏinhiều thời gian và công sức mà sự chính xác không cao nếu làm thủ công và khôngmang tính tự động Một số nghiệp vụ như tra cứu, thống kê, hiệu chỉnh thông tin rấtvất vả Ngoài ra còn một số khó khăn về dữ liệu lưu trữ lớn, dễ thất lạc và tốnkém… Xuất phát từ nhu cầu trên và yêu cầu thực tế tại phòng, việc xây dựng một
hệ thống quản lý đoàn viên là rất cần thiết, từ kiến thức đã học tôi đã tiến hành xâydựng “hệ thống quản lý Đoàn viên khoa Khoa Học Tự Nhiên – phân hệ quản lý”.Giúp nâng cao hiệu quả quản lý của đoàn khoa, tiết kiệm chi phí quản lý, nhanh
Trang 13chóng, chính xác và thuận tiện khi chúng ta có thể quản lý ở bất kỳ đâu, bất kỳ thờiđiểm nào.
CHƯƠNG 2 LỊCH SỬ GIẢI QUYẾT VẤN ĐÊ
Hệ thống quản lý đoàn viên đã được Đoàn trường trường Đại Học Cần Thơ pháttriển từ trước và đang được sử dụng chung bởi tất cả các khoa Tuy nhiên hệ thốnglại được xây dựng để quản lý ở mức tổng hợp dẫn đến một vài tính năng không thực
sự phù hợp với yêu cầu thực tế từ Đoàn khoa Khoa Học Tự Nhiên gây khó khăncho quá trình quản lý Vì vậy việc xây dưng lại hệ thống đúng theo các yêu cầuquản lý thực tế của khoa là cần thiết
3.1.1 Mục Tiêu Nghiên Cứu
- Tìm hiểu về PHP Framework, Laravel Framework và mô hình MVC, côngnghệ OAuth
- Khảo sát, thu thập dữ liệu, phân tích thiết kế hệ thống
- Tìm hiểu và nâng cao hiểu biết về một số công cụ và ngôn ngữ hỗ trợ quátrình xây dựng hệ thống
- Vận dụng tổng hợp những kiến thức đã học để tiến hành xây hệ thống quản lýĐoàn viên khoa Khoa Học Tự Nhiên-phân hệ quản lý
3.1.2 Phạm Vi Nghiên Cứu
Trong quá trình thực hiện đề tài, tôi xác định phạm vi đề tài tập trung vào nhữnglĩnh vực chủ yếu sau:
- Tìm hiểu về PHP Framework, Laravel và mô hình MVC, công nghê OAuth
- Hình thức và phương thức hoạt động quản lý Đoàn viên tại Đoàn Khoa KhoaHọc Tự Nhiên –Đại Học Cần Thơ
- Ứng dụng các kỹ thuật lập trình web để xây dựng chương trình:
+ Sử dụng ngôn ngữ kịch bản PHP kết hợp với hệ quản trị CSDL MySQL.+ Xây dựng ứng dụng với Laravel
+ Sử dụng web Server Apache chạy trên hệ điều hành mã nguồn mở Linuxgiúp tiết kiệm được rất nhiều chi phí
+ Sư dụng hệ thống chứng thực người dùng thông qua dich vụ của Googlegiúp bảo mật tốt hơn
Trang 143.2 PHƯƠNG PHÁP NGHIÊN CỨU VÀ GIẢI QUYẾT VẤN ĐÊ
3.2.1 Phương Pháp Nghiên Cứu
Phương pháp nghiên cứu là một vấn đề quan trọng quyết định đến sự thành côngcủa đề tài Trong quá trình nghiên cứu đề tài luận văn này, tôi đã đề ra phương phápnghiên cứu sau:
- Tìm hiểu về PHP Framework, lợi ích và ưu điểm của PHP Framework
- Các thành phần, cách thức hoạt động, ưu và khuyết điểm của mô hình MVC
- Thành phần, cấu trúc và hoạt động Laravel Framework
- Thu thập yêu cầu và hoạt động quản lý Đoàn viên tại Đoàn Khoa Khoa Học
Tự Nhiên –Đại Học Cần Thơ
- Thiết kế mô hình, CSDL; tìm hiểu công nghệ thông qua các tài liệu có liênquan
- Lập trình, thiết kế giao diện, cài đặt chương trình
- Kiểm thử hệ thống trước khi triển khai ứng dụng hoạt động
- Triển khai và bảo trì hệ thống
Trang 15CHƯƠNG 3 CƠ SỞ LÝ THUYẾT 2.1. GIỚI THIỆU VÊ PHP FRAMEWORK
2.1.1 Framework là gì?
Framework là một thư viện các lớp đã được xây dựng hoàn chỉnh, là một “bộkhung” để phát triển các phần mềm ứng dụng Có thể ví Framework như một tậpcá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 thời gian
để tự thiết kế trước khi dùng
Do vậy, người lập trình viên chỉ việc tìm hiểu và khai thác các vật liệu này rồitiến hành gắn kết (tức lập trình) để tạo ra sản phẩm
2.1.2 Giới Thiệu PHP Framework
Như đã biết, PHP là một ngôn ngữ kịch bản rất phổ biến hiện nay bởi lý do: linhhoạt, dễ sử dụng, dễ học v.v Nhưng đôi khi việc viết mã PHP, hay bất kỳ ngôn ngữlập trình nào khác, có thể trở nên đơn điệu và lủng củng Đó là lúc PHP frameworkcó thể giúp chúng ta
PHP framework làm cho sự phát triển của những ứng dụng web viết bằng ngônngữ PHP trở nên trôi chảy hơn, bằng cách cung cấp một cấu trúc cơ bản để xâydựng những ứng dụng đó, giúp chúng ta tiết kiệm được thời gian, tăng sự ổn địnhcho ứng dụng và giảm thiểu số lần viết lại mã cho lập trình viên Ngoài ra PHPframework còn giúp những người mới bắt đầu có thể xây dựng các ứng dụng ổnđịnh nhờ việc tương tác chính xác giữa các CSDL, mã (PHP) và giao diện (HTML)một cách riêng biệt Điều này cho phép chúng ta dành nhiều thời gian để tạo ra cácứng dụng web, hơn là phí thời gian để viết các đoạn mã lặp lại trong một dự án
Tại sao chúng ta nên sử dụng PHP framework?
Có rất nhiều loại PHP framework sẵn có hiện nay cho chúng ta lựa chọn, thậmchí chúng ta có thể tự tạo ra một PHP framework cho riêng mình, tuy nhiên, điềunày chỉ được khuyến khích dành cho các chuyên gia PHP (PHP expert), nhữngngười đã có kiến thức và hiểu biết vững vàng về framework Khi chúng ta cần tìmmột loại PHP framework phù hợp nhất với nhu cầu của mình, đừng quên lưu ý về
độ phổ biến của framework đó, ngoài ra ứng dụng web của chúng ta được phát triểnbởi bao nhiêu người cũng là một điều nên lưu ý Một PHP framework càng đượcphổ biến, tức là PHP framework đó càng được nhiều người sử dụng và phát triển
Trang 16nhất chúng ta nên chọn một PHP framework phù hợp và dễ sử dụng nhất đối vớinhu cầu của chúng ta – không quan trọng framework đó có được nhiều người sửdụng hay không
Các yếu tố chúng ta nên lưu ý trước khi muốn tìm kiếm một PHP framework để
sử dụng bao gồm như sau: dễ sử dụng, phát triển nhanh và hiệu quả, phổ biến giữacác nhà phát triển, có các tính năng mạnh mẽ, có diễn đàn hỗ trợ Hầu hết cácframework đều có các điểm yếu và điểm mạnh khác nhau, ví dụ Larvel Frameworkrất mới, được phổ biến từ phiên bản 3.0 và có đầy đủ các tính năng mạnh mẽ, cộngthêm một cộng đồng phát triển hỗ trợ pakage rộng lớn Ngược lại, Zend PHP lại làmột loại PHP framework khác,ra đời từ sớm, củng có cộng đồng phát triển hỗ trợkhông kém Laravel, nhưng Zend PHP càng ngày càng ít người dùng vì tính phứctạp của nó
Như chúng ta có thể thấy, mỗi loại PHP framework đều có lợi thế riêng củaframework đó, thế nên tốt nhất là chúng ta nên tìm hiểu kỹ và xài thử để có chọnlựa đúng đắn cho nhu cầu của mình
2.1.3 Những điểm cần lưu ý khi sử dụng một PHP framework?
Lỗi là điều không thể tránh khỏi trong việc lập trình, nhưng PHP framework sẽgiúp chúng ta hạn chế rất nhiều sai sót bằng cách cung cấp các thư viện mã lệnhchuẩn Viết lại các đoạn mã lặp lại nhiều lần không cần thiết sẽ dễ dẫn đến việc phátsinh lỗi, và PHP framework sẽ loại bỏ vấn đề này giúp chúng ta
Tuy nhiên, chúng ta vẫn phải có những chú ý khi sử dụng bất kỳ PHP frameworknào Ví dụ, nếu chúng ta không phải là một chuyên gia lập trình PHP, chúng ta nên
sử dụng một loại framework phổ biến, có một cộng đồng hỗ trợ rộng lớn Vẫn có rấtnhiều loại framework có ít hoặc không có cộng đồng hỗ trợ, và các loại frameworknày chủ yếu được viết bởi các cá nhân nào đó với kiến thức không chuyên sâu Một số lỗi phổ biến khác là do chúng ta không bảo đảm được cấu hình đề xuấtphiên bản CSDL và web server tương thích với framework Ví dụ, LaravelFramework đề xuất cấu hình như sau:
- PHP: phiên bản PHP 5.4.0 hoặc mới hơn
- MySQL: phiên bản MySQL 4.0.x, 4.1.x , 5.0.x đều được hổ trợ Vẫn có thể sửdụng phiên bản thấp hơn như 3.2.3x mặc dù không được khuyến khích
- Apache: Làm việc tốt với các phiên bản Apache 1.3, 2.x
Trang 17Nếu chúng ta không đáp ứng được các yêu cầu này, thì framework sẽ không thểhoạt động một cách hiệu quả được Thậm chí nếu chúng ta là một chuyên gia PHP,chúng ta cũng nên xem qua các tài liệu hướng dẫn về cấu hình đề xuất củaframework trước khi muốn sử dụng framework đó Ngoài ra việc xem hướng dẫncài đặt của một framework sẽ giúp chúng ta tránh được những lỗi không cần thiết vàtiết kiệm được thời gian để đi vào phát triển ứng dụng của mình cho những lần sau.
2.1.4 Các Loại PHP Framework phổ biến
- Zend Framework có một cộng đồng phát triển rộng lớn, và nó tập trung vàocác ứng dụng web theo phong cách 2.0 Vì được phổ biến rộng rãi, và có mộtcộng đồng người dùng tích cực, Zend được gọi là “Công ty PHP” Zend làmột trong những framework phổ biến nhất hiện nay Zend Framework có cáctính năng mạnh mẽ, thường được sử dụng cho các công ty lớn, và chúng ta cầnphải có lượng kiến thức khá sâu rộng về PHP để có thể sử dụng được ZendFramework
- CakePHP là một lựa chọn tuyệt với cho những lập trình viên có kiến thức nângcao về PHP CakePHP dựa trên cùng một nguyên tắc thiết kế với Ruby onRails, là một framework mạnh về khía cạnh phát triển nhanh chóng, giúp lậptrình viên đẩy nhanh quá trình phát triển ứng dụng của họ Với các hệ thống
hỗ trợ, tính đơn giản và môi trường mở cao đã giúp cho CakePHP trở thànhmột trong những framework phổ biến nhất hiện nay
- Symfony được ra đời nhằm mục đích giúp đỡ nâng cao hơn cho những lậptrình viên muốn tạo ra các ứng dụng website doanh nghiệp Đây là một PHPframework mã nguồn mở với đầy đủ các tính năng cần thiết Nhưng Symfonycó vẻ chạy chậm hơn các framework khác
- Codelgniter được biết đến như một framework dễ hiểu và dễ sử dụng, cho hiệusuất cao Không giống như Symfony, PHP framework này phục vụ mục đích
lý tưởng cho việc xây dựng các ứng dụng chia sẽ, lưu trữ Nó cung cấp cácgiải pháp đơn giản, và có một thư viện video hướng dẫn phong phú, diễn đàn
hỗ trợ, và cung cấp sẵn một số hướng dẫn sử dụng cho người mới bắt đầu.PHP framework này rất phù hợp cho một người mới làm quen với framework
- Seagull cũng là một PHP framework tốt phục vụ cho việc xây dựng website vàcác GUI Seagull là một framework cực kỳ dễ sử dụng cho cả những ngườimới mới làm quen với lập trình PHP đến những chuyên gia trong lập trìnhPHP Với những người mới làm quen với lập trình PHP, Seagull cung cấp mộtthư viện các mẫu ứng dụng có thể được tùy chỉnh để phù hợp với nhu cầu củachúng ta Đối với các chuyên gia PHP, Seagull cung cấp các tùy chọn máychủ, bao gồm các phương pháp hay nhất, tiêu chuẩn, và modular codebase –giúp các lập trình viên xây dựng các ứng dụng web một cách nhanh chóng và
dễ dàng Seagull có một cộng đồng phát triển rộng lớn và nhiều tài liệu hướng
Trang 18- Laravel: trước hết, sự tinh tế của Laravel nằm ở chỗ bắt kịp được xu hướngcông nghệ mà điểm nhấn ở đây là các tính năng mới trong các phiên bản PHP5.4 trở lên Điều đó được thể hiện qua khái niệm namespace, composer,closure và rất nhiều những tiêu chuẩn trong design pattern được áp dụng trênnền tảng framework này Đồng thời, với cách hướng dẫn đơn giản và dễ tiếpcận giống với Codeigniter Framework đã khiến người dùng thích ngay từ lầnđầu làm việc với framework này Laravel 4 cũng có sự tích hợp của một phầntrong thư viện symfony và áp dụng triệt để mô hình ORM với khái niệm liênquan đến Eloquent class Đồng thời, nó cũng giải quyết được những vấn đề màcác framework khác đang mắc phải Chẳng hạn như master layout, mô hình xử
lý với ORM dễ dàng hơn và dễ mở rộng hơn
Tóm Lại:
PHP framework là một giải pháp tuyệt vời cho các lập trình viên phát triển các
kỹ năng như: giảm thiểu việc viết lại mã, tăng tốc quá trình phát triển ứng dụng, vàchuẩn hóa mã lệnh khi xây dựng các ứng dụng web Không chỉ giúp chúng ta cảithiện tốc độ phát triển ứng dụng, PHP framework còn giúp chúng ta giảm thiểu các
lỗ hổng bảo mật một cách triệt để PHP framework phù hợp cho cả những ngườimới làm quen hay những người đã có kiến thức vững về PHP
Ngày nay, có rất nhiều PHP framework được cung cấp, và vì vậy chắc chắnchúng ta có thể tìm ra một framework có các tính năng phù hợp với nhu cầu củamình - hỗ trợ, tốc độ, quy mô và nhiều hơn nữa Một số PHP framework phổ biếnnhất hiện này bao gồm: Zend Framework, CakePHP, Symfony, Codelgniter, vàLaravel
Trang 192.2 MÔ HÌNH MVC
2.2.1 Mô hình MVC là gì?
Hình 2 1 Hoạt động của mô hình MVC
Cách thức làm việc của một PHP framework phải kể đến Model – View Controller (MVC)
-MVC là một mô hình trong lập trình, cho phép tách biệt các mã nghiệp vụ(bussiness logic) và giao diện (UI) thành các thành phần riêng biệt
Trang 20Hình 2 2 Các thành phần của mô hình MVC
Model ( Tầng dữ liệu ): được giao nhiệm vụ cung cấp dữ liệu cho CSDL và lưu
dữ liệu vào các kho chứa dữ liệu Tất cả các nghiệp vụ logic được thực thi ở Model
Dữ liệu vào từ người dùng sẽ thông qua View đến Controller và được kiểm tra ởModel trước khi lưu vào CSDL Việc truy xuất, xác nhận, và lưu dữ liệu là mộtphần của Model
View( Tầng giao diện ): View hiển thị các thông tin cho người dùng của ứng
dụng và được giao nhiệm vụ cho việc nhận các dữ liệu vào từ người dùng, gửi đicác yêu cầu đến controller, sau đó là nhận lại các phản hồi từ controller và hiển thịkết quả cho người dùng Các trang HTML, JSP, các thư viện thẻ và các tập tinnguồn là một phần của thành phần View
Trong các web framework, View gồm 2 phần chính:
- Tập tin mẫu định nghĩa cấu trúc và cách thức trình bày dữ liệu cho ngườidùng Ví dụ như layout, color, windows…
- Logic xử lý cách áp dụng dữ liệu vào cấu trúc trình bày Logic này có thể baogồm việc kiểm tra định dạng dữ liệu, chuyển đổi định dạng dữ liệu sang mộtdạng dữ liệu trung gian, lựa chọn một cấu trúc hiển thị phù hợp
Controller ( Tầng điều khiển ): controller đảm nhiệm việc cập nhật bộ phận
hiển thị (View) khi cần thiết Bộ điều khiển này nhận dữ liệu nhập từ người dùng,truy xuất các thông tin cần thiết từ mô hình trong (Model), và cập nhật thích hợpphần hiển thị (View) Giao diện với người sử dụng phần mềm được thiết lập nhờ sự
Trang 21tương tác qua lại giữa View và Controller: hai bộ phận này chính là phần trình bàybên ngoài của đối tượng biểu diễn bên trong.
Tóm lại: MVC chia nhỏ quá trình xử lý của một ứng dụng, giúp người lập trình
làm việc trên từng thành phần riêng lẻ, không ảnh hưởng đến các thành phần khác,giúp phát triển ứng dụng nhanh, đơn giản, dễ nâng cấp
2.2.2 MVC làm việc như thế nào?
Nhìn sơ đồ hình 2.3 (trang 11), ta thấy có mũi tên nét liền và những mũi tên nétđứt Những mũi tên nét đứt được hình thành trên quan điểm của người dùng màkhông phải là của những nhà thiết kế phần mềm thực sự Do đó chúng ta chỉ quantâm đến những mũi tên còn lại
Đây là một cách đơn giản để mô tả lại luồng sự kiện được xử lý trong MVC:
- Người dùng tương tác với View, bằng cách chọn vào nút, người dùng gửi yêucầu đi
- Controller nhận và điều hướng chúng đến đúng phương thức xử lý ở Model
- Model nhận thông tin và thực thi các yêu cầu
- Khi Model hoàn tất việc xử lý, View sẽ nhận kết quả từ Model và hiển thị lạicho người dùng
Trang 22Hình 2 3 Sơ đồ làm việc của mô hình MVC
2.2.3 Ưu và khuyết điểm của MVC
Ưu điểm
- Phát triển phần mềm: Có tính chuyên nghiệp hóa, có thể chia cho nhiều nhómđược đào tạo nhiều kỹ năng khác nhau, từ thiết kế mỹ thuật, lập trình đến tổchức CSDL Giúp phát triển ứng dụng nhanh, đơn giản, dễ nâng cấp
- Bảo trì: Với các lớp được phân chia theo như đã nói, thì các thành phần củamột hệ thống dễ được thay đổi, nhưng sự thay đổi có thể được cô lập trongtừng lớp, hoặc chỉ ảnh hưởng đến lớp ngay gần kề của lớp đó, chứ không pháttán náo loạn trong cả chương trình
- Mở rộng: Với các lớp được chia theo ba lớp như đã nói, việc thêm chức năngvào cho từng lớp sẽ dễ dàng hơn là phân chia theo cách khác
- Đối với dự án nhỏ việc áp dụng mô hình MVC gây cồng kềnh, tốn thời giantrong quá trình phát triển
- Tốn thời gian trung chuyển dữ liệu của các tầng
2.2.4 So sánh mô hình MVC với mô hình 3 lớp
Trang 23Hình 2 4 So sánh mô hình MVC với mô hình 3 lớp
Trong 3-layers, quá trình đi theo chiều dọc, bắt đầu từ Presentation, sangBusiness Logic (BL), rồi tới Data, và từ Data, chạy ngược lại BL rồi quay ra lạiPresentation
Hình 2 5 Mô hình 3 lớp
Còn trong mẫu Supervising Controller, dữ liệu được nhận bởi View, View sẽchuyển cho Controller cập nhật vào Model, rồi sau đó dữ liệu trong Model sẽ được
Trang 24đưa lại cho View mà không thông qua Controller, do vậy luồng xử lý này có hìnhtam giác.
Hình 2 6 Mô Hình MVC
2.3 LARAVEL FRAMEWORK
2.3.1 Giới Thiệu Laravel Framework
- Laravel Framework ra mắt vào cuối tháng 5-2013 và nhanh chóng có đượcmột cộng đồng rất lớn trong thế giới các Framwork của ngôn ngữ lập trìnhPHP
- Laravel Framework sử dụng 100% mã hướng đối tượng và sử dụng hầu hếtcác chức năng mới của PHP 5.3+, như tên không gian (namespace) , kỹ thuật
sử dụng khóa static (late static binding), lambda functions và closures
- Laravel Framwork là framework theo mô hình MVC
- Laravel Framework cũng có sự tích hợp của một phần trong thư viện symfony
và áp dụng triệt để mô hình ORM với khái niệm liên quan đến Eloquent class
2.3.2 Kiến trúc Laravel Framework
Laravel là một PHP Framework được ra đời với mục tiêu giảm bớt khó khăn củaquá trình phát triển ứng dụng web bằng cách đơn giản hóa các công việc được lặp đi
lặp lại trong hầu hết các ứng dụng web ngày nay như : routing, authentication,
caching , sessions…
Không như các PHP Framework thông thường khác , Laravel ưu tiên sử dụng các
quy ước thay vì cấu hình (convention over configuration) Trong khi các PHP
Framwork khác đòi hỏi phải có các cấu hình XML nặng nề trước khi bắt đầu ,
Trang 25Laravel chỉ cần một vài dòng mã PHP có thể chỉnh sửa dể dàng và nhanh chóng làcó thể sẳn sàng sử dụng Điều này thực sự làm công việc xây dưng một ứng dụngweb dể dàng hơn rất nhiều
Tất cả các dự án Laravel khi mới khở tạo đều có một cấu trúc thư mục cho phépcác lập trình viên khởi đầu nhanh chóng trong quá trình phát triển thực tế.Tất nhiêncấu trúc thư mục này vẫn hoàn toàn có thể tùy biến
Hình 2 7 Cấu trúc cây thư mục trong Laravel Framework
2.3.3 Ưu và khuyết điểm của Laravel Framework
Laravel Framework là một PHP framework ra đời khá trễ, tiếp thu những tinhhoa và khắc phục những sai lầm mà các framework trước mắc phải
Trang 26 Ưu Điểm:
- Route trong Laravel thật sự khác biệt, mới mẻ và đầy sức mạnh
- Master layout được tích hợp sẵn cùng Blade template giúp code của chúng tatrở nên gọn gàng và tiện dụng
- Migration quản lý database thật dễ dàng khi làm việc đội nhóm
- Eloquent class đầy mạnh mẽ nổi bật khi xử lý CSDL quan hệ 1 – N và N – N
- Composer quản lý và tích hợp các thư viện khác thật hay và không lo lắng khithư viện đó bị thay đổi
2.3.4 Cách thức hoạt động của Laravel Framework
Bất cứ một ứng dụng nào được xây dựng theo mô hình MVC nào thì cũng điềuphải tuân thủ những nguyên tắc mà mô hình MVC mang lại và Laravel củng khôngngoại lệ
Trang 27Hình 2 8 Luồng xử lý của mô hình MVC trong Laravel Framework
2.3.4.1 Model
Model là nơi đươc Laravel sử dụng nhằm thao tác với dữ liệu Nó là một lớp đệmgiữa ứng dụng và dữ liệu Dữ liệu có thể được lưu trữ trong rất nhiều loại RDBMS(MySQL, MSSQL Server, …) hoặc thậm chí các tập tin XML hoặc Excel
2.3.4.2 View
View chịu trách nhiệm thể hiện thông tin một cách trực quan cho người dùng mànó nhận được từ Controller truy suất của Model Laravel cung cấp hai cách xây
dựng View bao gồm sử dụng mã PHP thuần hoặc sử dụng kiến trúc Blade Kiến
trúc Blade được xây dựng trên ý tưởng thừa kế và phân chia riêng biệt Laravelphân biệt hai cách này bằng cách kiểm tra phận mở rộng của tập tin và tùy thuộc nó
là một trong hai “blade.php” hoặc đơn giản “.php” mà quyết định rằng view này cóphải là một mẫu Blade hay không
2.3.4.4 Eloquent ORM
Eloquent ORM được cung cấp bởi Laravel cho phép các lập trình viên truy vấn
cơ sỏ dữ liệu bẵng mã PHP(các phương thức có thể được nạp chồng) thay vì câutruy vấn SQL Mỗi bảng trong cơ sỡ dữ liệu sẻ tương đương vói một Model màthông qua Model này các lập trình viên có thể tương tác vói bảng nói trên
Trang 282.3.4.5 Schema Builder
Schema Builder cung cấp một lớp đệm quản lý bất khả tri (có thể hoạt động với
vô số DBMS khác nhau ) các thao tác liên quan đến CSDL chẳng hạn tạo, xóa bảnghoặc chèn thêm cột vào bảng có sẵn Nó hoạt động với vô số các DBMS mà Laravel
hổ trợ mà MySQL là mặc định.Tất nhiên nó có hệ thống API đồng nhất trên tất cảcác DBMS
2.3.4.6 Migration
Migration có thể được coi là một hình thức kiểm soát phiên bản cho CSDL trongquá trình phát triển ứng dụng Chúng cho phép lập trình viên thay đổi giản đồCSDL và mô tả và ghi lại tất cả những thay đổi cụ thể trong một tập tin chuyển đổi.Mỗi Migration gắn liền với một Builder Schema để dễ dàng quản lý CSDL ứngdụng Một Migration cũng có thể hoàn tác bằng cách sử dụng cùng một tập tin
Sử dụng các câu lệnh terminal để tạo ,xóa , hoặc chỉnh sữa các bảng trong củaCSDL
Câu lệnh Giải thích
$ php artisan migrate:install Tạo Thư mục Migration
$ php artisan migrate:make Tạo Tập tin Migration
$ php artisan migrate:refresh Hoàn tác và thục hiện lại toàn bộ các
Migration
$ php artisan migrate:reset Hoàn tác toàn bộ các Migration
$ php artisan migrate:rollback Hoàn tác Migration cuối cùng
Trang 29Vậy Composer là gì ? Composer là một công cụ quản lý và tích hợp các thư việnPHP đã được xây dựng vào dự án và không phải lo lắng khi thư viện đó bị thayđổi.Ví dụ có một thư viên trong dự án đang sử dụng phụ thuộc vào ba thư viện khác
và đang có nhu cầu nâng cấp Với Composer hoàn toàn dể dàng để cập nhật cả bốnthư viên chỉ bằng một dòng lệnh chẳng hạn “$ composer update”
Một lợi thế khác của việc sử dụng Composer là nó tạo ra và xử lý một tập tinautoload ở thư mục gốc vendor/directory, trong đó sẽ chứa tất cả các thư viện phụthuộc của dự án Các lớp thư viên này sẻ được tự động kích hoạt khi chúng đượcgọi ở bất cứ đâu trong dự án Như vậy, lập trình viên không cần thiết phải nhớ tất cảnhững đường dẫn của tất cả các thư viên phụ thuộc và gọi chủng ở mọi tập tin trong
dự án mà chỉ cần gọi tập tin autoload được cung cấp bởi Composer
Laravel kết hợp với sức mạnh của Composer cho phép các lập trình viên tự dohơn trong việc lựa chọn những gói/thư viện muốn sử dụng trong ứng dụng web củamình Ví dụ, nếu một lập trình viên không thích Swift Mailer( thành phần hổ trợ cácthao tác với eMail mặc định đi kèm với Laravel) và muốn thay thế nó bằng một gói
mà lập trình viên này thấy ưa thích hơn thông qua Composer ví dụ như PHPMailer,việc chuyển đổi giữa hai gói hoàn toàn là một việc rất dễ dàng Như vậy các lậptrình viên có thể tùy biến dự án của mình theo yêu cầu thực tế khi cần thiết mộtcách linh động thông qua sức mạnh của Composer và Laravel Configuration
2.3.6 Một số thư viện/gói hữu ích trong Laravel Framework
- Carbon: Thư viên được tích hợp sẵn trong Laravel, giúp làm viêc với kiểu dữ
liệu ngày tháng dễ dáng
- Laravel 4 Generator: Thư viện giúp tăng tốc thòi gian phát triển phát triển dự
án bằng cách tạo nhanh các tập tin Controllers , Migrations, Models, Views,Seeds, Pivot, Resources, Scaffolding bằng dòng lệnh thay vì tạo một cách thủcông
- Intervention Image: Thư viên giúp làm mọi việc với tập tin dạng hình ảnh.
- Debugbar: Thư viên hữu ích giúp việc kiểm soát mã trong quá trình phát triển
dự án
- Envoy: Thư viện hổ trợ việc triển khai dự án lên server thông qua SSH.
- Laravel DomPDF: Thư viện tuyệt vời hổ trợ làm việc với các tập tin PDF.
Trang 302.4 OAUTH
2.4.1 Tổng quan về xác thực
Xác thực (Authentication) là một hành động nhằm thiết lập hoặc chứng thực mộtcái gì đó (hoặc một người nào đó) đáng tin cậy, có nghĩa là những lời khai báo dongười đó đưa ra hoặc về vật đó là sự thật
Hiện nay phương thức xác thực phổ biến vẫn là sử dụng các ký tự làm mật khẩu
và đã bộc lộ nhiều hạn chế như: Kẻ tấn công sẽ dự đoán được hoặc có thể bị đánhcắp bởi những người dùng trên mạng internet
2.4.2 Giao thức xác thực OAuth
Một số khái niêm liên quan:
- Authentication (sự xác nhận là đúng): thường liên quan đến việc người dùng
phải “đăng nhập” vào hệ thống Xác nhận thông tin đăng nhập (người sửdụng) có chính xác không
- Authorization (sự cho phép): chỉ quyền được cấp của người sử dụng trên tài
nguyên hệ thống
- Single Sign On: là việc người dùng có thể đăng nhập vào một website (như
google.com) và sử dụng đăng nhập đó trên các website khác
2.4.2.1 OAuth – phương thức xác thực mở
OAuth cho phép người sử dụng cấp cho một trang web đối tác thứ ba hoặc làtruy nhập ứng dụng tới tài nguyên của chúng, mà không cần thiết phải tiết lộ thôngtin ủy nhiệm, hay kể cả thông tin nhận dạng của chúng
OAuth là phương pháp chia sẻ tài nguyên giữa các ứng dụng mà không phảiđưa ra username và password
Có rất nhiều giao thức chứng thực trên internet: Google AuthSub, AOLOpenAuth, Yahoo BBAuth, Upcoming API, Flickr API, Amazon Web Services API,Facebook Auth… gây khó khăn cho lập trình viên khi phát triển ứng dụng OAuth
là sự tập hợp những ưu điểm của chúng và gom lại thành chuẩn chung
OAuth bao gồm:
- Một cơ chế cho người sử dụng ủy quyền mà một bên thứ ba có thể sử dụng
để truy nhập vào các tài nguyên của chúng
- Cơ chế cho phát hành bằng cách sử dụng để xác thực các thông tin ủy nhiệm
Trang 31- Cải thiện các thuật ngữ được sử dụng.
- Bảo đảm an ninh thực tế, hoặc các tài liệu trong các khoảng trống khả năng vàđềxuất một con đường chuyển tiếp cho các địa chỉ khoảng cách
- Phát triển các khả năng làm việc nhóm
- Cung cấp các hướng dẫn có thể mở rộng
2.4.2.2 Cách hoạt động của OAuth
OAuth là phương pháp để Client sử dụng được tài nguyên của User bên phíaServer Bắt đầu quá trình xác thực với những bên liên quan như sau:
- Client: là ứng dụng, chỉ là một ứng dụng và có thể là ứng dụng Desktop hay
cũng có thể là website như http://youbrainy.com muốn có quyền sử dụng tàinguyên của Server
- Server: là một ứng dụng khác, chẳng hạn như google.com.
- User (hay You): chính bạn, người có tài nguyên trên Server và muốn cho
Client quyền sử dụng tài nguyên đó
Phân biệt hai loại Oauth
- 2-legged OAuth: là kiểu xác thực trong đó vai trò của User và Client là như
nhau Tức là Client chính là User của Server Đó là kịch bản Client-Serverthông thường
- 3-legged OAuth: là kiểu xác thực trong đó User và Client là phân biệt Client
muốn User chia sẻ tài nguyên đã có bên phía Server
Cách Oauth hoạt động
- 2- legged OAuth:
1 Client đăng ký sử dụng dịch vụ với Server
2 Server cho Client
о CONSUMER_KEY
о CONSUMER_SECRET_KEY
3 Client sử dụng các keys trên để thực hiện Authorization
- 3- legged Oauth:
1 Client đăng ký sử dụng dịch vụ với Server
2 Server cho Client
о CONSUMER_KEY
Trang 32о CONSUMER_SECRET_KEY
3 User có tài nguyên ở Server
4 User sử dụng dịch vụ ở Client, Client yêu cầu User cho phépkhai thác tài nguyên của User ở Server
5 Client yêu cầu Server gửi REQUEST_TOKEN cho User
6 Client chuyển User đến Server Authentication
7 User đăng nhập vào Server, Server hỏi User có muốn chia sẻ quyềnkhai thác dữ liệu cho Client hay không
8 User đồng ý, Server chuyển User về Client kèm theo ACCESS_TOKEN
9 Client sử dụng ACCESS_TOKEN để thực hiện thao tác trên các tàinguyên của User thuộc Server
2.4.3 Sử dụng Oauth trong Laravel
Có rất nhiều thư viện đã đươc xây dựng sẵn hổ trợ sử dụng Oauth trongFramework Laravel như:
Các bước cài đặt OAuth with Google Acount trong dự án Laravel
- Bước 1: Cài đặt chứng chỉ xác thực của Google
+ Truy cập trang: https://code.google.com/apis/console#access
+ Tạo một dự án mới với tính năng OAuth
Trang 34Hình 2 11 Chọn chứng chỉ
+ Nhấn nút Create new Client ID và điền các thông tin cần thiết, chú ý chọn Application Type là Web application
Trang 35Hình 2 12 Tạo mới Cilent Id
Sau khi điền đầy đủ thông tin ta nhận được client Id, secret key và cácthông tin khác như hình dưới
Hình 2 13 Thông tin google project
Trang 36+ Như vậy ta đã cài đặt thành công Mỗi lần người dùng yêu cầu chứngthực bằng tài khoản google, màn hình sau sẻ xuất hiện:
Hình 2 14 Màn hình yêu cầu chứng thực
- Bước 2: Cài đặt trong dự án sử dụng thư viện artdarek/oauth-4-laravel
+ Thêm oauth-4-laravel vào tập tin composer.json (tức đăng ký thư việnartdarek/oauth-4-laravel với Laravel ):
+ Tự động tạo tập tin cấu hình với lệnh cmd:
$ php artisan config:publish artdarek/oauth-4-laravel
+ Mở tập tin ở đường dẫn
app/config/packages/artdarek/oauth-4-laravel/config.php và cấu hình với thông tin chứng chỉ đã tạo ở Bước 1
Trang 38CHƯƠNG 4 NỘI DUNG VÀ KẾT QUẢ NGHIÊN CỨU
3.1 ĐẶC TẢ HỆ THỐNG
3.1.1 Giới Thiệu
Hệ thống quản lý Đoàn viên khoa Khoa Học Tự Nhiên – Đại học Cần Thơ là mộtchương trình cung cấp giải pháp quản lý bao quát các vấn đề liên quan đến đoànviên (thông tin cá nhân ,thành tích, hoạt đông phong trào, thu đoàn phí , điểm rènluyện ), chi đoàn (thông tin , thống kê các hoạt động , thành tích trong học kỳ ) ởkhoa Khoa Học Tự Nhiên –Đại học Cần Thơ Đây là một chương trình phát triểnmới hoàn toàn không xây dựng dựa trên hệ thống cũ đã xây dựng
Cùng với phong trào chung của Đoàn thanh niên Trường, Đoàn Khoa Khoahọc Tự nhiên đã có những nét nổi bật trong các hoạt động phong trào, các hoạt độnggiáo dục truyền thống để lại nhiều kỷ niệm và dấu ấn riêng cho sinh viên của Khoasau khi ra Trường Với số lượng đoàn viên thanh niên và sinh viên trong Khoatương đối đông (khoảng 1100 Đoàn viên) và nhiều quy trình nghiệp vụ phức tạp,việc đòi hỏi phải có một hệ thống quản lý mang tính đồng bộ chính xác nhằm nângcao hiệu quả quản lý, giảm bớt những khó khăn trong các công việc nặng nề đối vớimột lượng cơ sơ dữ liệu lớn như thống kê, tra cứu, hiệu chỉnh là vô cùng cần thiết
3.1.2.2 Các chức năng của hên thống
- Quản lý thông tin của Đoàn Viên và Chi Đoàn
- Quản lý quy trình xét khen thưởng theo từng học kì
- Quản lý quy trình công nhận lực lượng nồng cốt Khoa theo từng học kì
Trang 39- Quản lý hoạt động của các Chi Đoàn theo từng học kỳ
- Quản Lý hoạt động của Đoàn Khoa theo từng học kỳ
- Quản lý thu Đoàn Phí
- Thống kê, báo cáo: Đoàn Viên, Chi Đoàn, hoạt động theo chi đoàn, học kỳ,loại hình
3.1.3 Mô Tả Chi Tiết
Thông tin của đoàn viên
- Mã đoàn viên
- Họ và tên
- Giới tính
- Ngày tháng năm sinh
- Ngày vào đoàn
- Đang trực thuộc chi đoàn nào
- Tình trạng học tập theo từng học kỳ
- Tình hình tham gia hoạt động theo học kỳ
Thông tin cán bộ
- Mã Cán bộ
- Họ và Tên
- Ngày tháng năm sinh
- Thông tin chi đoàn đang hướng dẫn
Thông tin của chi đoàn
- Mã Chi Đoàn
- Tên Chi Đoàn
- Thông tin ban chấp hành
- Cán bộ hướng dẫn
- Các đoàn viên trực thuộc
Thông tin hoạt động Đoàn
Trang 40- Tên hoạt động
- Địa điểm
- Loại hoạt động(chi đoàn , đoàn khoa)
- Mô tả
- Thời gian đăng ký
- Danh sách đoàn viên tham gia
Thông tin đợt khen thưởng
- Mã đợt
- Thời gian đề cử
- Thời gian xét duyệt
- Niên khóa, Học kỳ
- Danh sách đoàn viên được đề cử
Thông tin khen thưởng
- Mã khen thưởng
- Thuộc đợt khen thưởng
- Đơn vị đề nghị
- Số quyết định
- Nội dung khen thuỏng
Thông tin đoàn phí
- Thời gian xét duyệt
- Danh sách đoàn viên đề cử kèm bảng thành tích trong Học Kỳ
Báo cáo thống kê: danh sách đoàn viên theo chi đoàn/giới tính
Báo cáo thống kê đoàn phí đoàn viên đóng theo tháng, đoàn phí Khoa thu về tính theo tháng