11/08/2018, 21:19

Tạo Bookshelf app với Lotus Framework

Hiện tại mình đang làm Bookshelf application nho nhỏ với Lotus Framework. Mình cảm thấy khá thú vị. Chính vì thế mỗi tuần mình sẽ viết lại cách làm tại đây. Chậc tại sao lại là từ A to Z ta??? Lý do chính là: Mình open source code của mình ở Github (https://github.com/mymai91/bookshelf) ấy, ...

Hiện tại mình đang làm Bookshelf application nho nhỏ với Lotus Framework. Mình cảm thấy khá thú vị. Chính vì thế mỗi tuần mình sẽ viết lại cách làm tại đây. Chậc tại sao lại là từ A to Z ta??? Lý do chính là:

  • Mình open source code của mình ở Github (https://github.com/mymai91/bookshelf) ấy, bạn nào thích thì có thể làm chung với mình. Mình có chia thành từng sprint 1. Các bạn đọc sẽ thấy dễ hiểu đó.
  • Nghe đồn dạo này vài công ti ở Sài Gòn phỏng vấn đầu vào có thêm option cho các bạn xây dựng mini app với Lotus đó. Hy vọng chuỗi bài viết này cũng sẽ giúp các bạn vượt qua vòng thử thách 0_0. Ai vượt qua rồi thì nhớ liên hệ khao mình đi ăn ^_^

Thôi bắt đầu nào không chém gió nữa ^0^

Hình ảnh mô phỏng:

Wifeframe https://projects.invisionapp.com/share/AE4CBIJDG#/screens để theo dõi dễ dàng hơn
home page
alt text
detail page
alt text

Khởi động nào!!!

Create một project

Tất nhiên các bước dưới đây chúng ta phải thực hiện ở terminal

Install lotusrb

gem install lotusrb

Create project có tên bookshelf

lotus new bookshelf

Sau khi hoàn thành thì tiếp tục install gem

cd bookshelf && bundle

Run server

lotus s

port default của Lotus là 2300 vì vậy open browser lên và gõ localhost:2300 là các bạn thấy được thành quả ban đầu rồi đó.

Tạo layout HTML/CSS cho app

Sau khi tạo xong 1 project với Lotus có thể theo dõi cấu trúc thư mục được tạo ra như sau:
alt text

Ở project này mình sử dụng Bootstrap Framework để make layout cho dễ dàng và thuận tiện hơn:

Install Bootstrap

Để install Bootstrap thì mình sử dụng bower install. Chính vì thế cần tạo ra 1 file có tên là .bowerrc Các bạn có thể thấy file .bower mình tạo ra ở trên hình cấu trúc thư mục.
Trong file .bowerrc ta viết các mã code này

{
  "directory": "apps/web/public/stylesheets"
}

Mã này có ý nghĩa là khi chúng ta install với câu lệnh bower install [cái gì cần install] thì nó sẽ được lưu theo cấu trúc thư mục apps/web/public/stylesheets

Install Bootstrap

bower install bootstrap

Dựng layout

Hiện tại chúng ta có 2 pages đó là home page và detail page. Trong đó:

  • Home page sẽ hiển thị tất cả các cuốn sách, hiển thị tất cả tương ứng với 1 action đó chính là GET all tương đương với action index
  • Detail page sẽ hiển thị nội dung chi tiết của mỗi quyển sách tương ứng với 1 action đó chính là GET by id, có nghĩa là lấy nội dung chi tiết dựa vào id của quyển sách đó tương đương với action show

Theo phân tích chúng ta có 2 action 1 là index và 1 là show

Để generater thì Lotus có cung cấp Lotus generater. Tìm hiểu thêm tại http://lotusrb.org/guides/command-line/generators/

lotus g action web book#index

lotus g action web book#show

Viết HTML ở đâu?

Sau khi generater thì có thể trên terminal để thấy những file mới được tạo ra. trong đó sẽ có tạo ra file template. Kiểm tra tại bookshelf/apps/web/templates/book/
ta thấy được có 2 file:

show.html.erb
index.html.erb

Chúng ta sẽ viết HTML vào 2 file này.

Viết CSS ở đâu?

Các bạn truy cập vào bookshelf/apps/web/public/stylesheets stylesheets là nơi để viết CSS cho app đấy

Kết luận

Mình nghĩ bài này khá là dài rồi, nên mình xin dừng ở đây. Qua bài tiếp theo mình sẽ viết cụ thể HTML/CSS cho app

Các bạn có thể xem code tại đây: https://github.com/mymai91/bookshelf/tree/create-template

Hy vọng qua bài này có thể chia sẽ được với các bạn rõ hơn về Lotus

0