1. Trang chủ
  2. » Giáo Dục - Đào Tạo

LUẬN VĂN HỆ THỐNG QUẢN LÝ ĐOÀN VIÊN KHOA HỌC TỰ NHIÊN

86 168 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 86
Dung lượng 3,09 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 1

TRƯỜNG ĐẠI HỌC CẦN THƠ

Trang 2

TRƯỜNG ĐẠI HỌC CẦN THƠ

Trang 3

Em 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 4

MỤ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 5

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

3.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 7

DANH MỤC HÌNH Trang

Trang 8

CHƯƠNG 1 DANH MỤC BẢNG

Trang 9

DANH 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 10

TÓ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 11

ABSTRACT

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 12

CHƯƠ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 13

chó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 14

3.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 15

CHƯƠ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 16

nhấ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 17

Nế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 19

2.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 20

Hì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 21

tươ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 22

Hì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 23

Hì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 25

Laravel 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 27

Hì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 28

2.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 29

Vậ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 30

2.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 34

Hì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 35

Hì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 38

CHƯƠ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

- Email

- 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

- Email

- 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

Ngày đăng: 11/09/2018, 12:17

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w