1. Trang chủ
  2. » Công Nghệ Thông Tin

BÁO CÁO THỰC TẬP CÔNG NHÂN ĐỀ TÀI Phần mềm QUẢN LÝ NHÀ HÀNG

24 536 1

Đ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 24
Dung lượng 6,55 MB

Nội dung

Action Controller chứacác action để điều khiển model và view, thêm vào đó nó quản lý các sessionngười dùng , luồng chảy ứng dụng, caching, mô đun helper và các thực thi các bộ lọc trong

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA CÔNG NGHỆ THÔNG TIN

BÁO CÁO THỰC TẬP CÔNG NHÂN

ĐỀ TÀIPhần mềm QUẢN LÝ NHÀ HÀNG

Trang 2

MỤC LỤC

MỞ ĐẦU 2

CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI 4

1.1 NỘI DUNG LÝ THUYẾT 4

1.2 MÔ TẢ YÊU CẦU 10

1.3.KẾT CHƯƠNG 10

CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ HỆ THỐNG 11

2.1 PHÂN TÍCH YÊU CẦU VÀ THIẾT KẾ HỆ THỐNG: 11

2.2KẾT CHƯƠNG 13

CHƯƠNG 3: MÔI TRƯỜNG CÀI ĐẶT VÀ ĐÁNH GIÁ 14

3.1 MÔI TRƯỜNG CÀI ĐẶT 14

3.2 KẾT QUẢ TRIỂN KHAI 15

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 21

1) KẾT QUẢ ĐẠT ĐƯỢC 21

2) HƯỚNG PHÁT TRIỂN 21

Trang 3

2.2 Ý nghĩa

Công cụ quản lý hiệu quả, đơn giản, chuyên nghiệp Đáp ứng những yêu cầucần thiết để xây dựng một hệ thống nhà hàng chặt chẽ, đề cao tính sáng tạo,

Trang 4

3 Phương pháp thực hiện

Gợi ý các phương pháp:

Phương pháp phân tích tổng hợp từ tài liệu: sử dụng tài liệu

Phương pháp phân tích thiết kế hệ thống

4 Bố cục của đề tài

Báo cáo đề tài bao gồm các nội dung sau:

Mở đầu

Chương 1: trình bày Tổng quan về đề tài

Chương 2: trình bày Phân tích và thiết kế hệ thống

Chương 3: trình bày Môi trường cài đặt và đánh giá

Kết luận và hướng phát triển.

Trang 5

CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI

1.1 NỘI DUNG LÝ THUYẾT

Ruby on Rails (RoR) là một web framework được viết bằng ngôn ngữ Ruby

và tất cả các ứng dụng trong Rails sẽ được viết bằng Ruby Ruby on Railsđược tạo ra để hỗ trợ các lập trình viên việc phát triển các phần mềm nềnweb một cách nhanh nhất có thể Rails bao gồm web server, các hỗ trợ kếtnối cơ sở dữ liệu và nhiều thứ khác nữa.

a) Một số nội dung liên quan đến Rails

Hỗ trợ nhiều hệ quản trị cơ sở dữ liệu lớn như MySQL, Oracle, MS SQL, PostgreSQL…

Ngôn ngữ script Ruby được viết bên phía Server

Trang 6

Có các bộ sinh script để tự động thực hiện các task

Tương ứng với các đặc điểm trên RoR gồm các thành phần sau:

Action Mailer

Mô đun này chịu trách nhiên cung cấp các dịch vụ email Nó xử lý các emailđến và cho phép tao mới các email Mô đun này có thể xử lý từ những emailtext đơn giản đến những email có các định dạng phức tạp Action Mailerđược kế thừa từ Action Controller, nó cung cấp các phương thức để tao emailvới các template cũng giống như Action View sử dụng nó để render cáctrang lên trình duyệt

Action Pack

Mô đun Action Pack cung cấp các lớp ở tầng controller và view trong môhình MVC Những mô đun này tiếp nhận request từ client và sau đó ánh xạchúng đến các action tương ứng những action này được định nghĩa trongtầng controller và sau đó các action này sẽ render view hiển thị lên trìnhduyệt Action Pack được chia thành 3 mô đun con, đó là:

Action Dispatch: xử lý routing các request, nó parse các request và xử lýmột vài quá trình liên quan đến giao thức HTTP như xử lý cookies, session…

Action Controller: Sau khi Action Dispatch xử lý request nó sẽ routingcác request đến các controller tương ứng, Mô đun này cung cấp các basecontroller tất để các controller khác có thể kế thừa từ nó Action Controller chứacác action để điều khiển model và view, thêm vào đó nó quản lý các sessionngười dùng , luồng chảy ứng dụng, caching, mô đun helper và các thực thi các

bộ lọc trong các quá trình tiền xử lý

Action View: Được gọi bởi Action Controller Nó render các view khi cóyêu cầu, Action View cung cấp các master layouts, templates và các viewhelpers , các thành phần này hỗ trợ việc sinh tự động ra phần khung cho cáctrang HTML hay các định dạng khác Có 3 template trong Rails là : rhtml, rxml

và rjs Định dạng rhtml sinh ra các view HTML cho người dùng có nhúng thêmcác đoạn code Ruby (ERB), rxml được sử dụng để xây dựng các tài liệu XML,rjs cho phép tạo ra các đoạn mã động JavaScript để thực thi các AJAXfunctionality

Active Model

Định nghĩa interface giữa mô đun Action Pack và Active Record Giao diệnAction Record có thể được dùng bên ngoài Rails, cung cấp các chức năngObject – relational mapping (ORM) ORM là một kỹ thuật lập trình giúpchuyển đổi dữ liệu giữa các thệ thống không tương thích được viết bởi cácngôn ngữ hướng đối tượng

Trang 7

Active Record

Được sử dụng để quản lý dữ liệu trong các cơ sở dữ liệu quan hệ thông quacác đối tượng Trong RoR mô đun Active Record cung cấp object –relational mapping đến các class Mô đun này xây dựng nên tầng model,giúpkết nối các bảng database với các lớp tương ứng trong các lớp Ruby Railscung cấp các công cụ để thực thi chức năng CRUD mà không phải cấu hình.CRUD cho phép tạo mới, đọc, cập nhật và xóa các bản ghi trong cơ sở dữliệu thông qua các đối tượng Ruby Thêm vào đó, nó cũng cung cấp các khảnăng tìm kiếm thông minh và khả năng tạo ra các mối quan hệ hay các liênkết giữa các model Active Records có những quy ước rất chặt chẽ bắt cácdeveloper phải tuân thủ theo như : phải đặt tên lớp, các bảng, các khóa chính

và khóa ngoài như thế nào

 Mô đun này được sử dụng để tạo ra các lớp trong tầng Model, chúng chứađựng phần logic nghiệp vụ, xử lý validate và các mối quan hệ, ánh xạ đếncác bảng và hỗ trợ kết nối đến các hệ quản trị cơ sở dữ liệu khác nhau

Active Resource

Quản lý các kết nối giữa RESTful web services và các đối tượng nghiệp vụ,làm giảm số lượng code cần viết để ánh xạ đến các tài nguyên ActiveResource ánh xạ model class đến các tài nguyên REST ở xa cũng giống nhưcách mà Active Record ánh xạ từ model class đến các bảng cơ sở dữ liệu Nócũng cung cấp các cơ chế proxy giữa Active Resource (client) và mộtRESTful service Khi một có một request cần truy cập đến các tài nguyên ở

xa, một REST XML được sinh ra và được truyền đi, sau đó kết quả sẽ đượcparse sang các đối tượng Ruby

Active Support

Là một bộ tiện ích và các thư viện chuẩn của Ruby, nó hữu ích cho quá trìnhphát triển ứng dụng vì nó bao gồm rất nhiều sự hỗ trợ cho các multi-bytesstring, internationalization, time zones và testing

Railties

Đảm nhiệm kết nối tất các các mô đun ở trên với nhau, thêm vào đó nó xử lýquá trình mồi cho ứng dụng, giao diện dòng lệnh, và cung cấp bộ sinh codecủa Rails Rake là một trong những lệnh được sử dụng để thực hiện các taskdatabase, triển khai, tài liệu, testing và cleanups

Trang 8

Mô hình MVC

RoR sử dụng các mẫu kiến trúc Model – View – Controller(MVC) để tăngcường khả năng bảo trì và phát triển của ứng dụng MVC cho phép chúng tachia ứng dụng thành các tầng sử lý logic, nghiệp vụ và giao diện người dùngmột cách rõ ràng, điều này cũng gúp cho việc kiểm thử và tái sử dụng codeđược dễ ràng hơn

Model

Tầng Model xử lý các nghiệp vụ của ứng dụng và trực tiếp thao tác với dữliệu Trong RoR, tầng model thường được sử dụng để tương tác với cácthành phần tương ứng với chúng trong cơ sở dữ liệu và validate dữ liệu

View

Tầng view hiển thị giao diện người dùng, trong RoR các view là các fileHTML được nhúng cùng với các đoạn mã Ruby Các đoạn mã Ruby đượcnhúng trong HTML file là khá đơn giản, thường chỉ gồm các vòng lặp và cáclệnh điều kiện rẽ nhánh, nó được sử dụng để hiện thị dữ liệu lên form củaview

Controller

Trang 9

Controller tương tác với model và view Các request đến từ trình duyệt sẽđược xử lý bởi controller, sau đó controller có thể sẽ tương tác với model đểlấy dữ liệu sau đó trả về cho view để hiển thị thông tin.

Cấu Trúc Thư Mục Của Ruby on Rails

Sau khi sử dụng các lệnh có trong Ruby on Rails để tạo ra ứng dụng blog đầutiên thì bạn sẽ thấy trên thư mục gốc của ứng dụng Rails đã tạo sẵn một danhsách các thư mục và tập tin cho bạn Ruby on Rails Framework gợi ý mộtcấu trúc thư mục cho các lập trình viên khi phát triển ứng dụng Hầu hết tất

cả các ứng dụng được viết dựa trên Ruby on Rails thường tuân theo một cấutrúc thư mục thống nhất với mỗi thư mục khác nhau sẽ được sử dụng với cácmục định khác nhau

models: các tập tin models được dùng để tương tác với database trong

ứng dụng (hoặc dùng để mô phỏng một đối tượng mà không cần kết nốitới database)

helpers: các tập tin helpers chứa các hàm (hoặc các lớp) hỗ trợ và được

sử dụng bởi controllers, models hay views.

views: các tập tin views được sử dụng bởi controller dùng để hiển thị nội

dung của trang

mailers: bao gồm các template mẫu dùng để gửi email.

assets: bao gồm các tập tin như ảnh, css, javascripts

Thư mục này bao gồm các đoạn mã script để khởi động ứng dụng Rails hoặc

dùng để thiết lập hay deploy ứng dụng

Thư Mục config

Thư mục này dùng để cấu hình ứng dụng như cấu hình các thông số của

database, định nghĩa các routes

Trang 10

Tập Tin Gemfile và Gemfile.lock

Tập tin Gemfile dùng để liệt kê những gem nào dùng trong ứng dụng

và Gemfile.lock dùng để ghi lại thông tin về quá trình cài đặt các gem

Thư Mục lib

Bao gồm các thư viện được dùng trong ứng dụng Thông thường các thư việnnày được viết bởi chính những lập trình viên tham gia vào viết ứng dụng.Các thư viện của bên thứ 3 thường không được đặt ở trong thư mục này mà

sẽ để trong thư mục vendor mà tôi sẽ đề cập ở phần dưới đây.

logo.png Thông thường chúng ta sẽ để chứa các tập tin css, javascript hay

hình ảnh trong thư mục này

Tập Tin Rakefile

Tập tin Rakefile được Rails sử dụng để tìm kiếm các tác vụ mà chúng có thể được thực thi trên cửa sổ dòng lệnh thông qua rake Bạn không nên định nghĩa trực tiếp các tác vụ này trong Rakefile mà việc định nghĩa các tác vụ này được thực hiện thông qua các tập tin trong thư mục lib/tasks.

Tập tin này chứa các thông tin tổng quan về ứng dụng như mô tả ngắn gọnmục đích của ứng dụng, phiên bản ứng dụng, thông tin tác giả viết ứng dụnghay loại giấy phép phát hành ứng dụng

Thư Mục test

Thư mục này dùng để chứa các test case sử dụng trong ứng dụng bao

gồm unit tests, fixture tests và các loại test khác có trong Ruby on Rails.

Trang 11

1.2 MÔ TẢ YÊU CẦU

1.3.KẾT CHƯƠNG

Chương này trình bày tổng quan về phần mềm quản lý nhà hàng

Trang 12

CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ HỆ THỐNG

2.1 PHÂN TÍCH YÊU CẦU VÀ THIẾT KẾ HỆ THỐNG:

- Điều trước hết của hệ thống quản lý nhà hàng là phải có 1 hệ thống quản lý tàikhoản có phân quyền (người dùng và admin) Cơ bản của hệ thống tài khoản nàydựa theo cuốn sách Ruby On Rails Tutorial (Rails 5) Trong đó bao gồm các chứcnăng: User có thể tạo mới, đăng nhập, xem thông tin cá nhân, và tiện ích điềuhướng; Chỉ có duy nhất 1 tài khoản Admin được cấp lúc khởi động website, cónghĩa là không thể tạo mới cũng như xóa tài khoản Admin, admin có tất cả mọiquyền hành thao tác với các User: xem, thay đổi , xóa,…

- Các chức năng của website nhà hàng chủ yếu là thao tác với menu nên tấtnhiên tiếp theo phải làm chức năng menu Tuy nhiên để thuận lợi cho việc thay đổi

dữ liệu và tránh gặp lỗi thì làm chức năng Categories – mỗi category chứa nhiềumenu – trước Category có thể dược (thêm-đọc-sửa-xóa) bởi admin Upload ảnh chomỗi category chúng em dùng gem CarrierWave Tiếp theo tạo chức năng Menutương tự Category Chức năng bổ sung với menu là có thể search (tìm kiếm), vàPagination (phân trang) để tránh đổ hết dữ liệu một lúc Sau đó kết nối 2 model lạivới nhau với quan hệ: Category chứa nhiều menu – mỗi menu chỉ thuộc về duy nhất

1 Category

- Hình dưới đây là sơ đồ quan hệ giữa 2 model Category và MenuItem

- Thao tác của 2 model trên giới hạn với User với access control hỗ trợ bởi rails.User chỉ có thể xem, tìm kiếm

- Nói rõ hơn về chức năng tìm kiếm Cách thực hiện như sau: tạo một search box(html form) để nhập chuỗi tìm kiếm Trong sự kiện submit form điều hướng đếnchính trang hiện tại tuy nhiên thêm query param (tham số) chính là chuỗi cần tìmkiếm) Tại controller thêm code xử lý thay vì trả về các MenuItem theo thứ tự thìnếu có param thì chỉ trả về các MenuItem có name chứa chuỗi tham số (chuỗi đãnhập vào form)

Trang 13

- Mục đích của quản lý nhà hàng online không chỉ để user xem menu mà còn có thểorder trực tuyến Mỗi order phải trả lời được các câu hỏi như: bàn nào? user nàođặt? đặt món nào? mỗi món đặt bao nhiêu? tổng giá mỗi món? tổng giá order? đặtkhi nào? được chấp nhận chưa? thời gian lúc tạo order? Để thuận lợi cho user cóthể thoải mái thay đổi order trước khi xác nhận order, mỗi user sẽ has_one (có một)một bộ đệm order – TempOrder – giống như giỏ hàng sẽ chứa các thông tin nhưOrder trừ thông tin đã được chấp nhận bởi admin Sau khi User xác nhận Order –chính là TempOrder – thì sẽ có một Order được tạo mới của chính User đó Ordernày sao chép thông tin từ TempOrder đã xác nhận Sau đó ta clear lại TempOrdercủa User đó.

- Hình dưới đây là quan hệ giữa các model liên quan đến chức năng Order

- Với TempOrder (giống như giỏ hàng) quan hệ tương tự Order nhưng Userchỉ has_one thay vì has_many, ngoài ra ta bỏ isAccepted? (đã được chấp nhận chưa)

Trang 14

- Với Order mà không đặt món thì coi như chỉ đặt bàn.

- Chỉ admin mới có thể toàn quyền thao tác trên model Order

- Ta có thể tạo trang xem các Order mới nhất dựa vào thời gian tạo Order

- Ta có quan hệ Table has_many Order – Order belongs_to Table Vì thế từ table cóthể xuất ra các Order mà đặt Table đó

- Mỗi Order ta coi như một bill Dùng access control của rails để chỉ Admin mới cóthể xem, chỉnh sửa, xóa bill (Order)

- Để quản lý nhân viên (Staff), ta tạo model Staff chứa các thông tin cần thiết củanhân viên như: tên, tuổi, địa chỉ, mô tả, hình ảnh Cũng tương tự như menu Tuynhiên chỉ Admin mới có thể thao tác với Staff được

Trang 15

2.2 KẾT CHƯƠNG

Chương này trình bày các bước phân tích yêu cầu và thiết kế các chức năng cơbản của hệ thống quản lý nhà hàng Đây là nền tảng để dễ dàng bổ sung các tínhnăng sau này

Trang 16

CHƯƠNG 3: MÔI TRƯỜNG CÀI ĐẶT VÀ ĐÁNH GIÁ

Để có thể sử dụng Ruby on Rails chúng ta cần cài đặt trên máy tính các phầnmềm sau:

1/Ruby: Ngôn ngữ lập trình sử dụng bởi Ruby on Rails

2/RubyGems: Chương trình quản lý thư viện Ruby (còn được gọi là gem) trênmáy tính (hoặc máy chủ)

3/Ruby on Rails: Khác với một số framework khác, Ruby on Rails frameworkđược sử dụng như một phần mềm và do đó ta cần cài đặt Rails trên máy tính (hoặcmáy chủ)

4/SQLite3: Phần mềm quản trị cơ sở dữ liệu dùng trong ứng dụng Rails có thể

sử dụng với nhiều chương trình quản trị cơ sở dữ liệu khác nhau

Ruby là ngôn ngữ đa nền tảng và có thể được cài đặt trên các hệ điều hành phổbiến như Windows, Mac OS, và các phiên bản của Linux như Ubuntu, LinuxMint, Trong ứng dụng web Quản lí nhà hàng này , ta cài đặt trên môi trườngUbuntu

Trang 18

Home 1.3

Login

Trang 19

Foods

Trang 20

Jobs Management

Staffs Management

Trang 21

OrderỨng dụng quản lí nhà hàng thể hiện được rõ các tính năng như:

Đối với người dùng:

+ Có thể xem menu, tìm kiếm và đặt món ăn

+ Có thể đặt bàn và quyết định đặt các món ăn cùng lúc hoặc không

Trang 22

Đối với người quản trị:

+ Quản lí menu : thêm , xóa, chỉnh sửa, sắp xếp theo ngày, tháng

+ Quản lí phân loại : thêm, xóa, chỉnh sửa các loại đồ ăn, đồ uống

+ Quản lí nhân viên: thêm, xóa, chỉnh sửa thông tin nhân viên

+ Quản lí công việc: thêm, xóa, chỉnh sửa các dạng công việc

+ Quản lí bill: tạo, thêm, xóa, chỉnh sửa các hóa đơn (theo bàn, khách hàng, nhan viên)

+ Quản lí bàn: kiểm tra việc đặt bàn của khách hàng

Trang 23

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

1 KẾT QUẢ ĐẠT ĐƯỢC

Trong thời gian tìm hiểu, nghiên cứu cơ sở lý thuyết và triển khai ứng dụngcông nghệ, đề tài đã đạt được những kết quả sau:

Về mặt lý thuyết, đề tài đã đạt được khá đầy đủ kiến thức về

Ruby,web-framework Rails, HTML, CSS, Jquery căn bản cũng như thiết kế database đúng vớiyêu cầu đề tài

Về mặt thực tiễn ứng dụng, đề tài đáp ứng được nhu cầu của người dùng cũng

như người quản trị nhà hàng Cả người dùng và quản trị đều có thể thao tác dễ dàngtrên website Ứng dụng Quản lí nhà hàng rất tiện dụng và thích hợp cho việc quản lícác nhà hàng vừa và nhỏ, giúp việc điều hành được hoạt động tiện lợi , nhanh chóng

và có tổ chức hơn

Tuy nhiên, đề tài còn tồn tại các vấn đề như sau:

 Việc tính toán thu nhập, chi tiêu của nhà hàng vẫn còn chưa thực hiệnđược

 Việc tương tác với khách hàng thông qua email vẫn chưa thực hiện được

2 HƯỚNG PHÁT TRIỂN

Một số số hướng phát triển của đề tài như sau:

 Sửa chữa được những thiếu sót trong các vấn đề tồn tại

Ngày đăng: 20/06/2017, 23:03

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w