Xây dựng hệ thống làm trắc nghiệm (Quiz) với Laravel 5

Hôm nay, mình sẽ giới thiệu đến các bạn framework Laravel 5. Có thể nói Laravel 5 hiện nay là một trong nhưng PHP framework được sử dụng nhiều nhất. Bạn có thể dùng Laravel 5 để build một website, một hệ thống hoặc tạo Restful API cho website khác hoặc mobile apps kết nối vào.

Để tìm hiểu hết tất tần tật các tính năng, cấu trúc framework, API của Laravel chắc tới Tết năm sau cũng chưa hết. Cho nên mình đã chọn cách là hướng dẫn các bạn tìm hiểu Laravel 5 thông qua việc xây dựng một sản phẩm cụ thể luôn để các bạn vừa tìm hiểu, vừa làm theo. Để khi kết thúc, các bạn hiểu được Laravel 5 cũng như có luôn một sản phẩm cụ thể.

(Ở đây, mình mặc định các bạn đã biết cài đặt và tự cấu hình được: Apache, PHP, MySQL rồi nhé.)

Nội dung các bài xây dựng Quiz bằng Laravel 5:

Sau đây là nội dung các bài mình sẽ viết để hướng dẫn các bạn tạo một Quiz(số bài có thể thêm hoặc bớt đi tùy tình hình thực tế):

  1. Cài đặt Git Bash, Composer và Laravel 5.
  2. Tạo module Frontend và Backend trong Laravel 5.
  3. Phân tích và thiết kế database sử dụng MySQL 5.
  4. Config database và tạo các Model trong Laravel 5 tương ứng với các table.
  5. Backend – Xây dựng trang login
  6. Backend – Xây dựng trang quản lý thông tin học viên
  7. Backend – Xây dựng trang tạo Quiz
  8. Backend – Xây dựng trang nhập nội dung câu hỏi và câu trả lời cho từng Quiz
  9. Backend – Xây dựng trang theo dõi học viên làm bài Quiz real-time
  10. Backend – Xây dựng trang export điểm thi của học viên sau khi làm bài Quiz
  11. Frontend – Xây dựng trang đăng ký học viên
  12. Frontend – Xây dựng trang login
  13. Frontend – Xây dựng trang làm bài Quiz – Part 1
  14. Frontend – Xây dựng trang làm bài Quiz – Part 2
  15. Frontend – Xây dựng trang hiển thị kết quả làm bài Quiz

Read More

Bài 05 – Backend: Xây dựng trang login

Chào các bạn. Hôm nay tui trở lại với series Xây dựng hệ thống làm trắc nghiệm Quiz. Hiện tại, version mới nhất của Laravel là 5.4, cho nên từ bài này trở đi, tui sẽ làm trên version 5.4 luôn nha. Các bài trước thì lúc đó Laravel vẫn còn là 5.2 nhưng nó không có khác biệt gì lắm đâu, những thao tác của các bài trước làm trên 5.2 thì vẫn có thể làm được trên 5.4. Vậy thống nhất là dùng version 5.4 nha các bạn.

Bài hôm nay sẽ hướng dẫn các bạn tạo một trang login cho module backend, Nói thì nghe dê lắm luôn, nhưng các bạn phải làm các việc sau:

  • Tạo cái User model (đã tạo ở bài trước rồi hen).
  • Tạo cái view cho trang login.
  • Tạo cái Controller để hiển thì trang login, logout.
  • Tạo cái Middleware để kiểm tra xem nếu user chưa login thì sao, mà login rồi thì sao.

Sơ sơ là 4 cái việc như vậy, tiểu tiết thì nhiều. Nhưng trước khi làm, tui muốn update cái phần ModuleServiceProvider tạo ở bài 02 để các bạn nếu có dùng subdomain cho phần admin (ví dụ: admin.mywebsite.com) thì vẫn đáp ứng được. (more…)

Read More

Bài 04 – Config database và tạo các Model tương ứng với các table

Hello! Ở bài trước chúng ta đã phân tích và thiết kế databse cho Quiz. Hôm nay có thời gian rãnh, tui sẽ đi vào phần tạo các file model cho table. Ở phần này tui sẽ tạo thêm một table mới tên là vl_user dùng để đăng nhập vào phần Backend để chuẩn bị cho bài kế tiếp là tạo trang login cho Backend.

1. Cấu hình kết nối database:

Trước khi tạo table mới và viết trang login. Tui sẽ làm một việc đó là cấu hình cho laravel 5 nó kết nối được với cái database. Ở đây, các thông số về database của tui như sau:

(more…)

Read More

Bài 03 – Phân tích và thiết kế database sử dụng MySQL 5

Xin chào các bạn Hi , hôm nay tui mới có thời gian rãnh rỗi để viết tiếp bài trong series Xây dựng hệ thống làm trắc nghiệm (Quiz) với Laravel 5. Ở bài trước tui đã hướng dẫn tạo module front-end và back-end trong Laravel 5 rồi đúng không? Tui hy vọng là các bạn cũng làm được nhé. Công việc kế tiếp sẽ là việc phân tích và thiết kế các table để lưu trữ dữ liệu cho hệ thống Quiz này.

Trước khi vào phân tích, tui sẽ cho các bạn xem qua các table tui đã làm để các bạn có cái nhìn tổng quan trước cho nó đỡ hoang mang.  Overjoy

quiz's database diagram

(more…)

Read More

Bài 02 – Tạo module Frontend và Backend trong Laravel 5

bài 01, sau khi chúng ta tạo thành công project tên là “quiz” thì Laravel 5 nó tạo cho chúng ta một đống file và thư mục (nhìn đuối luôn chứ bộ). Nhưng không sao, trước khi vào phần tạo module, mình sẽ giải thích sơ bộ các file và thư mục này cho các bạn nắm nha.

1. Cấu trúc thư mục và file của Laravel 5

 STT File & Folder Giải thích
1  app  Thư mục này chứa các file chính của project
2     Console  Thư mục này chứa các file xử lý các lệnh thông qua command line
3     Events  Xử lý các event của project
4     Exceptions  Xử lý các lỗi exception
5     Http
6        Controllers  Chứa các file controller
7        Middleware  Chứa các file tiền xử lý trước khi chạy các action trong controller
8        Requests  Chứa các file xử lý Request như data submit, validation
9        kernel.php  File này cho phép chúng ta đăng ký các file middleware của riêng mình
10        routes.php  File này xử lý các request url
11     Providers  Chứa các class Provider
12  bootstrap  Chứa các file bootstrap cho application
13  config  Chứa các file liên quan đến cấu hình
14  database
15     migrations  Chứa các file giúp chúng ta chỉnh sửa các table của database
16     seeds  Chứa các file xử lý phần tạo dữ liệu ban đầu cho database
17  public
18     index.php  File để chạy application
19  resources
20     assets  Chứa các file tiền css
21     lang  Chứa file về ngôn ngữ
22     views  Chứa file template dùng để render ra HTML
23  storage
24     app  Chứa các file upload từ người dùng
25     framework  Chứa file cached
26     logs  Ghi logs
27  vendors  Chứa các package được install bằng composer
28  .env.example  File này dùng để tạo các biến môi trường(file mẫu)
29  .env  File này mới là thiệt nè(copy từ file mẫu ra rồi đổi tên lại thôi à)
30  artisan  Command line utility của Laravel, dùng để tạo các file Model, Controller….
31  composer.json  Chứa các dependencies của application

(more…)

Read More

Bài 01 – Cài đặt Git Bash, Composer và Laravel 5

Bài hôm nay sẽ hướng dẫn các bạn cài đặt một số tool hỗ trợ việc cài đặt Laravel 5 bao gồm: Git Bash, Composer

1. Cài đặt Git Bash:

Git bash là một công cụ trên Windows giúp chúng ta gõ một số lệnh(command line) của Linux một cách thuận tiện.

Để download git bash, các bạn vào trang này: https://git-for-windows.github.io/ , sau đó chọn “Download” thì nó sẽ tải file cài đặt tương ứng với Win 32 bit hay 64 bit tùy thuộc vào Windows hiện tại của các bạn. Ngay thời điểm mình viết bài này thì version của nó là Git-2.7.0-64-bit.exe. (more…)

Read More