Báo cáo kết thúc môn THIẾT KẾ VÀ XÂY DỰNG WEBSITE QUẢN LÝ NHÀ HÀNG HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG Tài liệu mới nhất 2024
NỘI DUNG NGHIÊN CỨU
1.1 Tìm hiểu lập trình Website
Xây dựng một website cần nhiều công đoạn khác nhau phối hợp với nhau mới có thể tạo nên một trang Website hoàn chỉnh Chẳng hạn như sắp xếp bố cục, chỉnh sửa hình ảnh, xử lý sự kiện… Nhưng nói chung thì lập trình web gồm 2 phần chính là Front- end và Back-end
1.1.1 Lập trình Front-end Front-end là gì, là bộ phận phần giao diện hiển thị ra thiết bị Clients Hay nói một cách khách Front-end chính là bộ mặt của một website Front-end thiết kế tạo ra phần giao diện cho người dùng tương tác với trang web, là ấn tượng đầu tiên của người dùng về trang web đó
Trước khi internet băng thông rộng (khoảng trước 2007) cùng với các thiết bị được phát triển mạnh mẽ như hiện nay Front-end thực sự đóng vai trò rất hạn chế trong việc hiển thị giao diện cho người dùng, lúc đó nhu cầu thực tế là làm sao cho một ứng dụng hiển thị là đủ Bên cạnh đó phải làm sao cho Performance (hiệu suất) đạt hiệu quả cao để người dùng không cảm thấy delay (giật) hay load (tải) chậm là đạt Điều này cũng dễ hiểu vì khi đó tốc độ internet là cực thấp khi mà đa số người dùng chỉ tiếp cận được với Internet dial-up, với tốc độ “rùa bò" của nó thì việc tải về văn bản thôi đã vất vả rồi chứ không nói đến hình ảnh hay animation
Sau một thời gian công nghệ dần hiện đại hơn với nhưng ADSL, DSL, VPN đó cũng là lúc nhu cầu về một Website thẩm mỹ được đặt ra với những hình ảnh tuyệt đẹp cùng với những hiệu ứng bắt mắt bắt đầu được chú trọng Lúc này vai trò của Front-end cũng bắt đầu được chú trọng Nhưng điều bất cập ở đây là sự không thông hiểu nhau giữa Designer và Front-end thường xuyên xảy ra từ thảo luận tới gay gắt mà nếu chúng ta từng ở một trong hai vị trí này sẽ thấu hiểu Vấn đề là ở chỗ một Designer thiết kế ra giao diện và anh ta muốn chỗ nút (button) đó khi hover sẽ đổi màu, hay khi open web lên sẽ có hàng chục hiệu ứng hiện ra mà không thể nào diễn đạt bằng hình ảnh được Điều anh ta cần làm là diễn giải ý tưởng của mình cho Front-end hiểu nhưng mọi thứ
CƠ SỞ LÝ THUYẾT
Tìm hiểu lập trình Website
Xây dựng một website cần nhiều công đoạn khác nhau phối hợp với nhau mới có thể tạo nên một trang Website hoàn chỉnh Chẳng hạn như sắp xếp bố cục, chỉnh sửa hình ảnh, xử lý sự kiện… Nhưng nói chung thì lập trình web gồm 2 phần chính là Front- end và Back-end
1.1.1 Lập trình Front-end Front-end là gì, là bộ phận phần giao diện hiển thị ra thiết bị Clients Hay nói một cách khách Front-end chính là bộ mặt của một website Front-end thiết kế tạo ra phần giao diện cho người dùng tương tác với trang web, là ấn tượng đầu tiên của người dùng về trang web đó
Trước khi internet băng thông rộng (khoảng trước 2007) cùng với các thiết bị được phát triển mạnh mẽ như hiện nay Front-end thực sự đóng vai trò rất hạn chế trong việc hiển thị giao diện cho người dùng, lúc đó nhu cầu thực tế là làm sao cho một ứng dụng hiển thị là đủ Bên cạnh đó phải làm sao cho Performance (hiệu suất) đạt hiệu quả cao để người dùng không cảm thấy delay (giật) hay load (tải) chậm là đạt Điều này cũng dễ hiểu vì khi đó tốc độ internet là cực thấp khi mà đa số người dùng chỉ tiếp cận được với Internet dial-up, với tốc độ “rùa bò" của nó thì việc tải về văn bản thôi đã vất vả rồi chứ không nói đến hình ảnh hay animation
Sau một thời gian công nghệ dần hiện đại hơn với nhưng ADSL, DSL, VPN đó cũng là lúc nhu cầu về một Website thẩm mỹ được đặt ra với những hình ảnh tuyệt đẹp cùng với những hiệu ứng bắt mắt bắt đầu được chú trọng Lúc này vai trò của Front-end cũng bắt đầu được chú trọng Nhưng điều bất cập ở đây là sự không thông hiểu nhau giữa Designer và Front-end thường xuyên xảy ra từ thảo luận tới gay gắt mà nếu chúng ta từng ở một trong hai vị trí này sẽ thấu hiểu Vấn đề là ở chỗ một Designer thiết kế ra giao diện và anh ta muốn chỗ nút (button) đó khi hover sẽ đổi màu, hay khi open web lên sẽ có hàng chục hiệu ứng hiện ra mà không thể nào diễn đạt bằng hình ảnh được Điều anh ta cần làm là diễn giải ý tưởng của mình cho Front-end hiểu nhưng mọi thứ
4 đâu dễ vậy Sự bất đồng không chỉ dừng lại ở đó khi mà HTML5 và CSS3 ra đời kéo theo sự bùng nổ công nghệ Resposive (tương thích trên mobile/tablet) làm cho việc thiết kế Layout nhiều hơn và Front-end đôi khi gặp bế tắc với những giao diện khó khi thực hiện Responsive
Cho đến khoảng những năm gần đây, khi công nghệ phát triển Internet trở nên nhanh hơn, những bộ vi xử lý mạnh mẽ hơn cũng với những công cụ hỗ trợ ngày càng nhiều thì Front-end dần khắc phục được những yếu điểm của mình dần trở thành một phần quan trọng không thể thiếu của một Website
Tất cả mọi thứ chúng ta đang nhìn thấy trên trang web ngày nay đều có thể được thực hiện bởi một lập trình viên Front-end Một designer tạo ra logo và đồ họa, một photographer cung cấp hình ảnh, một copywriter viết nội dung Nhưng một lập trình viên Front-end kết hợp tất cả những mảnh ghép đó lại và chuyển nó thành ngôn ngữ web, và tạo ra trải nghiệm mà chúng ta có khi duyệt qua mỗi trang Để lấy một ví dụ cụ thể, khi chúng ta cuộn con chuột lên xuống ở trang chủ của website Udacity Chúng ta có thể để ý thấy rằng chữ "U" biến mất rồi xuất hiện trở lại không? Đó là tác phẩm của một lập trình viên Front-end
Nói chung, một lập trình viên Front-end chịu trách nhiệm cho thiết kế nội thất của một ngôi nhà đã được xây dựng bởi một lập trình viên Back-end Các hương vị và phong cách trang trí được quyết định bởi chủ nhà
Xét về ngôn ngữ lập trình Front-end thì có 3 loại chính: HTML, CSS, và ngôn ngữ lập trình JavaScript Để lập trình Front-end tốt thì nhất thiết phải biết 3 ngôn ngữ này, kèm theo đó là một số framework thông dụng Bootstrap, Foundation, AngularJS và các thư viện như jQuery và LESS
Front-end thật sự rất quan trọng nhưng điều gì giúp phần Front-end của một trang web có thể hoạt động được, dữ liệu để hiển thị trên trang web nằm ở đâu, xử lí như thế nào Đó là phần việc của back end Phần back end của một trang web bao gồm một máy chủ, một ứng dụng, và một cơ sở dữ liệu Một lập trình viên Backend xây dựng và duy
5 trì công nghệ mà sức mạnh của những thành phần đó, cho phép phần giao diện người dùng của trang web có thể tồn tại được
Back-end xử lý các công việc từ phía server bao gồm lấy dữ liệu từ người dùng tương tác với trang web đưa vào cơ sở dữ liệu và ngược lại Cụ thể là cần truy xuất phần thông tin database, xử lý thông tin đó và sẽ ghi xuống database, gửi trả về cho client những thông tin sau khi xử lý xong
Back-end là một công việc thầm lặng mà không thể thiếu của một website Những công việc Back-end xử lý điều được thực hiện ngầm, nghĩa là khi một người sử dụng họ chỉ thấy được hình ảnh, thông tin, kết quả trả về mà không thể thấy quá trình tạo ra kết quả đó
Back-end thật sự rất quan trọng đối với website, một trang web không thể tồn tại nếu thiếu nó Ngay từ khi hình thành thì Back-end được chú trọng nhất trong trang web, hơn cả front-end Nếu Front-end là lớp võ bên ngoài thì Back-end chính là phần ruột bên trong Để khiến cho máy chủ, ứng dụng, và cơ sở dữ liệu có thể giao tiếp được với nhau, các lập trình viên Back-end sử dụng các ngôn ngữ server-side như PHP, Ruby, Python, Java và Net để xây dựng một ứng dụng, và các công cụ như MySQL, Oracle, và SQL Server để tìm kiếm, lưu trữ, hoặc thay đổi dữ liệu và phục vụ trở lại tới người dùng trong phần front-end Các công việc tuyển dụng lập trình viên Back-end cũng thường yêu cầu kinh nghiệm về các framework PHP như Zend, Symfony, và CakePHP; có kinh nghiệm với các phần mềm quản lý phiên bản như SVN, CVS, hoặc Git; và kinh nghiệm với Linux trong việc phát triển và triển khai hệ thống.
Ngôn ngữ lập trình Fontend
HTML là chữ viết tắt của HyperText Markup Language, có nghĩa là ngôn ngữ đánh dấu siêu văn bản Nó dùng để định dạng bố cục, các thuộc tính liên quan đến cách hiển thị của một đoạn text và được hiển thị trên một chương trình đặc biệc ta gọi là Browser Hiện nay có khá nhiều Browser như Chrome, Firefox, Cốc Cốc, Microsoft
6 Edge, Tất cả Browser đều có điểm chung là hiển thị và giúp người dùng thao tác với website và nó đều có khả năng biên dịch những đoạn mã HTML, CSS và Javascript
Với HTML, chúng ta có thể:
- Điều khiển hình thức và nội dung của trang
- Xuất bản các tài liệu trực tuyến và truy xuất thông tin trực tuyến bằng cách sử dụng các liên kết được chèn vào tài liệu html
- Tạo các biểu mẫu trực tuyến để thu thập thông tin về người dùng, quản lý các giao dịch
- Chèn các đối tượng như audio clip, video clip, các thành phần ActiveX, Flash và các Java Applet vào tài liệu html
Xét về cấu trúc một html gồm 3 phần cơ bản:
- Phần HTML: Mọi tài liệu html phải bắt đầu bằng thẻ mở html và kết thúc bằng thẻ đóng html Thẻ html báo cho trình duyệt biết nội dung giữa hai thẻ này là một tài liệu html
- Phần tiêu đề: Phần tiêu đề bắt đầu bằng thẻ và kết thúc bởi thẻ Phần này chứa tiêu đề mà được hiển thị trên thanh điều hướng của trang Web Tiêu đề nằm trong thẻ title, bắt đầu bằng thẻ và kết thúc là thẻ Tiêu đề là phần khá quan trọng Khi người dùng tìm kiếm thông tin, tiêu đề của trang Web cung cấp từ khóa chính yếu cho việc tìm kiếm
- Phần thân: phần này nằm sau phần tiêu đề Phầ̀n thân bao gồm văn bản, hình ảnh và các liên kết mà chúng ta muốn hiển thị trên trang web của mình Phần thân bắt đầu bằng thẻ và kết thúc bằng thẻ
Ngoài ra nó còn nhiều cặp thẻ chức năng khác như:
Định nghĩa một bình luận, được dùng để comment phần code html
Xác định loại tài liệu
Định nghĩa một siêu liên kết
Định nghĩa thông tin liên lạc cho các tác giả / chủ sở hữu của một tài liệu
Định nghĩa vùng bên trong của một ánh xạ hình ảnh
Định nghĩa một bài báo
Xác định nội dung nằm bên cạnh nội dung của trang
Thẻ định nghĩa nội dung âm thanh
Thẻ định nghĩa chữ in đậm
Định nghĩa thân của tài liệu
Định nghĩa một ngắt dòng đơn
Định nghĩa một nút bấm
Được sử dụng để vẽ đồ họa, thông qua một ngôn ngữ script
Định nghĩa một chú thích trong bảng
Định nghĩa một đoạn mã máy tính
Định nghĩa một hộp thoại hoặc một cửa sổ
Định nghĩa một phần trong một tài liệu
Nhóm liên nhóm các phần tử liên quan trong form
Định nghĩa phần footer cho một tài liệu hoặc một đoạn
Định nghĩa một form HTML cho người dùng nhập vào
Định nghĩa tiêu đề HTML
Xác định các thông tin về tài liệu
Định nghĩa một tiêu đề cho một tài liệu hoặc phần
Định nghĩa gốc của một tài liệu HTML
Định nghĩa một khung nội tuyến
Thẻ định nghĩa một hình ảnh
Định nghĩa một control nhập dữ liệu
Định nghĩa khoá mã hoá đi kèm với một trường trong form
Định nghĩa một nhãn cho một phần tử
Định nghĩa một chú thích cho một phần tử
Xác định mối quan hệ giữa một tài liệu và một nguồn lực bên ngoài (thường được sử dụng để liên kết đến style sheets)
Định nghĩa một danh sách/menu các lệnh
Định nghĩa siêu dữ liệu về một tài liệu HTML
Định nghĩa liên kết điều hướng
- Định nghĩa một danh sách đặt hàng
Định nghĩa một lựa chọn trong danh sách drop-down
Định nghĩa một đoạn văn
Định nghĩa văn bản định dạng sẵn
Định nghĩa dấu nháy kép xung quoanh phần văn bản
Định nghĩa một kịch bản phía máy khách
Định nghĩa một phần trong một tài liệu
Định nghĩa một danh sách drop-down
Định nghĩa các nguồn đa phương tiện cho các phần tử đa phương tiên như và
Định nghĩa một phần trong một tài liệu
Định nghĩa văn bản in đậm, ý nghĩa nhấn mạnh độ quan trọng
Định nghĩa định kiểu cho một tài liệu
Định nghĩa văn bản giống như chỉ số dưới
Định nghĩa một bảng
Nhóm các thên nội dung trong một bảng
Định nghĩa một ô trong một bảng
Định nghĩa một ô nhập dữ liệu văn bản có nhiều dòng
Nhóm các nội dung tiêu đề trong một bảng
Định nghĩa một tiêu đề cho tài liệu
Định nghĩa một hàng trong một bảng
- Định nghĩa một danh sách không có thứ tự
Định nghĩa một video hoặc movie
Định nghĩa một dấu ngắt dòng
Bảng 1 Các thẻ trong HTML
CSS là chữ viết tắt của Cascading Style Sheets, nó là một ngôn ngữ được sử dụng để tìm và định dạng lại các phần tử được tạo ra bởi các ngôn ngữ đánh dấu (ví dụ như HTML) Chúng ta có thể hiểu đơn giản rằng, nếu HTML đóng vai trò định dạng các phần tử trên website như việc tạo ra các đoạn văn bản, các tiêu đề, bảng…thì CSS sẽ giúp chúng ta có thể thêm một chút “phong cách” vào các phần tử HTML đó như đổi màu sắc trang, đổi màu chữ, thay đổi cấu trúc…rất nhiều
- Hạn chế tối thiểu việc làm rối mã HTML của trang Web bằng các thẻ quy định kiểu dáng (chữ đậm, chữ in nghiêng, chữ có gạch chân, chữ màu), khiến mã nguồn của trang Web được gọn gàng hơn, tách nội dung của trang Web và định dạng hiển thị, dễ dàng cho việc cập nhật nội dung
- Tạo ra các kiểu dáng có thể áp dụng cho nhiều trang Web, giúp tránh phải lặp lại việc định dạng cho các trang Web giống nhau
1.2.2.2 Sử dụng CSS: Có 3 cách để sử dụng CSS
- "Inline CSS": Áp dụng trực tiếp trên một đối tượng nhất định bằng thuộc tính style
- "Internal CSS": Đặt CSS ở đầu trang Web để áp dụng kiểu dáng cho toàn bộ trang ấy, khi đó chỉ cần đặt đoạn CSS vào trong cặp thẻ rồi đặt vào trong phần header của Web (giữa và )
- "External CSS": Đặt các thuộc tính CSS vào một tệp tin riêng biệt (*.css), khi đó có thể tham chiếu đến từ nhiều trang Web khác nhau:
11 Ví dụ về nội dung tệp style.css:
Tham chiếu tới tệp tin CSS trên từ trang Web bằng đoạn mã (mã có thể nằm ngoài thẻ ):
Ví dụ minh họa về mã CSS:
CSS Selector dùng để xác định đoạn mã CSS tương ứng được bao trong phần từ
“{“ đến “}” sẽ được áp dụng cho những thành phần nào trong trang Web
12 Như ví dụ ở đoạn mã trên, ta có thể thấy dạng CSS Selector đơn giản nhất là CSS Selector theo tag body
1.2.3 Ngôn ngữ kịch bản Java script
JavaScript, theo phiên bản hiện hành, là một ngôn ngữ lập trình thông dịch được phát triển từ các ý niệm nguyên mẫu Ngôn ngữ này được dùng rộng rãi cho các trang web (phía người dùng) cũng như phía máy chủ (với Nodejs) Nó vốn được phát triển bởi Brendan Eich tại Hãng truyền thông Netscape với cái tên đầu tiên Mocha, rồi sau đó đổi tên thành LiveScript, và cuối cùng thành JavaScript Giống Java, JavaScript có cú pháp tương tự C, nhưng nó gần với Self hơn Java js là phần mở rộng thường được dùng cho tập tin mã nguồn JavaScript
Cũng giống như C, JavaScript không có bộ xử lý xuất/nhập (input/output) riêng
Trong khi C sử dụng thư viện xuất/nhập chuẩn, JavaScript dựa vào phần mềm ngôn ngữ được gắn vào để thực hiện xuất/nhập
Trên trình duyệt, rất nhiều trang web sử dụng JavaScript để thiết kế trang web động và một số hiệu ứng hình ảnh thông qua DOM JavaScript được dùng để thực hiện một số tác vụ không thể thực hiện được với chỉ HTML như kiểm tra thông tin nhập vào, tự động thay đổi hình ảnh Tuy nhiên, mỗi trình duyệt áp dụng JavaScript khác nhau và không tuân theo chuẩn W3C DOM, do đó trong rất nhiều trường hợp lập trình viên phải viết nhiều phiên bản của cùng một đoạn mã nguồn để có thể hoạt động trên nhiều trình duyệt Một số công nghệ nổi bật dùng JavaScript để tương tác với DOM bao gồm DHTML, Ajax và SPA
Bên ngoài trình duyệt, JavaScript có thể được sử dụng trong tập tin PDF của Adobe Acrobat và Adobe Reader Điều khiển Dashboard trên hệ điều hành MacOS X phiên bản 10.4 cũng có sử dụng JavaScript
Từ khi Nodejs ra đời vào năm 2009, Javascript được biết đến nhiều hơn là một ngôn ngữ đa nền khi có thể chạy trên cả môi trường máy chủ cũng như môi trường nhúng
Mỗi ứng dụng này đều cung cấp mô hình đối tượng riêng cho phép tương tác với môi trường chủ, với phần lõi là ngôn ngữ lập trình JavaScript gần giống nhau
13 JavaScript có rất nhiều ưu điểm khiến nó vượt trội hơn so với các đối thủ, đặc biệt trong các trường hợp thực tế Sau đây chỉ là một số lợi ích của JavaScript:
- Chúng ta không cần một compiler vì web browser có thể biên dịch nó bằng HTML;
- Nó dễ học hơn các ngôn ngữ lập trình khác;
- Lỗi dễ phát hiện hơn và vì vậy dễ sửa hơn;
- Nó có thể được gắn trên một số element của trang web hoặc event của trang web như là thông qua click chuột hoặc di chuột tới;
- JS hoạt động trên nhiều trình duyệt, nền tảng;
- Chúng ta có thể sử dụng JavaScript để kiểm tra input và giảm thiểu việc kiểm tra thủ công khi truy xuất qua database;
- Nó giúp website tương tác tốt hơn với khách truy cập;
- Nó nhanh hơn và nhẹ hơn các ngôn ngữ lập trình khác
Mọi ngôn ngữ lập trình đều có các khuyết điểm Một phần là vì ngôn ngữ đó khi phát triển đến một mức độ như JavaScript, nó cũng sẽ thu hút lượng lớn hacker, scammer, và những người có ác tâm luôn tìm kiếm những lỗ hổng và các lỗi bảo mật để lợi dụng nó Một số khuyết điểm có thể kể đến là:
- Có thể được dùng để thực thi mã độc trên máy tính của người dùng;
- Nhiều khi không được hỗ trợ trên mọi trình duyệt;
- Có thể bị triển khai khác nhau tùy từng thiết bị dẫn đến việc không đồng nhất
1.2.3.1 Vị trí JavaScript trong HTML
Ngôn ngữ lập trình Back-end
1.3.1 Một số ngôn ngữ lập trình Back-end Python
18 Python là một ngôn ngữ lập trình bậc cao, hoàn toàn hướng đối tượng và strongly- type Các tính từ thường được sử dụng để mô tả về Python điển hình bao gồm: vui, dễ sử dụng, và là một công cụ để học lập trình rất tốt — nhưng cuối cùng lại có rất ít ứng dụng web trong thế giới thực viết bằng Python Tuy nhiên, nó chắc chắn là một ngôn ngữ rất tốt cho người mới học lập trình, đặc biệt nếu chúng ta là người đang hướng đến các dự án trên Linux hoặc cộng đồng mã nguồn mở Chỉ đừng mong chờ dùng nó để tạo ra các ứng dụng web thực sự, và xuất hiện như là một đối thủ cạnh tranh của cộng đồng Ruby
PHP Đây là một ngôn ngữ lập kịch bản dùng ở phía server(back-end) và sử dụng chủ yêu trong lập trình web PHP là một ông vua không thể bàn cãi về ngôn ngữ kịch bản máy chủ (server-side) được sử dụng trên Internet ngày nay — nó chạy trên 75% của tất cả các máy chủ Web — và là sức mạnh phía sau của các nền tảng như WordPress, Wikipedia, và thậm chí là một phần của Facebook
Ngôn ngữ lập trình PHP Là một ngôn ngữ chạy trên máy chủ, mã của nó được xử lý trước khi được trả về trình duyệt của người dùng, vì thế tất cả chúng ta nhìn thấy chỉ là mã HTML và không có chút mã PHP nguyên thủy nào PHP thường được sử dụng kết hợp với MySQL để truy xuất thông tin từ cơ sở dữ liệu và hiển thị thông tin tới người dùng
19 PHP là một ngôn ngữ đa năng và được xem như là chuẩn của hầu hết các máy chủ web — nếu chúng ta đã từng nghe về các thuật ngữ như MAMP/WAMP/LAMP, thì chữ P trong đó là viết tắt của PHP Bên cạnh tính phổ biến, nó cũng dễ để sử dụng và cung cấp nhiều tính năng nâng cao cho các lập trình viên có kinh nghiệm
Javascript đang ngày càng phổ biến và có thứ hạng cao trong các ngôn ngữ lập trình phổ biến, đây là một ngôn ngữ kịch bản mạnh mẽ và linh hoạt Phần lớn cú pháp giống như ngôn ngữ lập trình C Hơn nữa, nó có khả năng tương thích trên mọi trình duyệt web và có hơn 90% các website hiện nay đang sử dụng ngôn ngữ kịch bản này
Với sự ra đời của Node.js, nó đang là một công nghệ lập trình phía server và cho phép tương tác thời gian thực
Javascript là một bậc thầy về tương tác trên các trang web Nó là một ngôn ngữ kịch bản chạy cục bộ trên trình duyệt của người dùng, cho phép các trang web phản hồi lại các tương tác người dùng như là khi click chuột lên một đối tượng và các sự kiện về thời gian Để có thể học hết mọi thứ trong JavaScript là một điều hầu như không tưởng
— có thể nói rằng nếu có một tương tác nào đó trên một trang web, và nó không phải là Flash — thì nhiều khả năng đó là nhờ Javascript
Ruby là một ngôn ngữ linh động, hướng đối tượng và là một ngôn ngữ kịch bản đa chức năng Được sử dụng phổ biến bởi nó là một web framework – Rais Ruby, và framework phát triển ứng dụng web của nó là Ruby On Rails, là nguồn sức mạnh cho một số trang web lớn như là Groupon, Shopify (một nền tảng thương mại điện tử), và được dùng để xây dựng front-end cho mạng xã hội Twitter Nó là một ngôn ngữ hoàn toàn hướng đối tượng và được thông dịch bởi server trước khi gửi mã HTML tới trình duyệt của người dùng — cũng giống như PHP (nhưng cũng có nhiều điểm hoàn toàn
20 khác biệt) Tuy nhiên, nó có một số đặc điểm nổi trội đó là phát triển ứng dụng nhanh chóng, viết ít code bị lặp lại, và tốc độ thực thi khá nhanh
Không may là hầu hết các máy chủ web đều không hỗ trợ Ruby ở dạng mặc định, vì thế trừ khi chúng ta có khả năng cấu hình cho riêng mình một con server như chúng ta mong muốn, nếu không thì chúng ta cần sử dụng một nhà cung cấp dịch vụ hosting kiểu như Heroku
Perl trước đây được xem là một lực lượng chính trong lập trình web, nhưng gần đây hầu như đã chuyển sang các ứng dụng xử lý văn bản (text) Nó thì có tốc độ xử lý văn bản nhanh đến mức kinh ngạc, nhưng không được sử dụng nhiều trong thế giới Internet hiện đại Tuy nhiên hầu như tất cả các hacker đều có một số thủ thuật được viết bởi Perl, vì thế nó cũng đáng giá để chúng ta để tâm nghiên cứu vào một lúc nào đó
Go là một ngôn ngữ lập trình mới do Google thiết kế và phát triển Nó được kỳ vọng sẽ giúp ngành công nghiệp phần mềm khai thác nền tảng đa lõi của bộ vi xử lý và hoạt động đa nhiệm tốt hơn
Việc khai thác sức mạnh của các bộ xử lý đa lõi và phần cứng thế hệ mới đối với các ngôn ngữ hiện có được xem như là việc không thể được Bởi những giới hạn vốn có của các ngôn ngữ lập trình trên máy tính như C, C#, Java, Bấy lâu nay, các vấn đề xử lý đa lõi vẫn là chuyện của hệ điều hành
Google đưa ra ngôn ngữ Go như là một cách tiếp cận khác về vấn đề xử lý đa lõi
Thay vì chỉ có hệ điều hành được phép cấp tài nguyên và xử lý, thì các phần mềm cũng có thể tương tác trực tiếp với nền tảng đa lõi giúp cho việc xử lý nhanh hơn
1.3.2 Lập trình web bằng Node JS
Node.js là một mã nguồn mở, một môi trường cho các máy chủ và ứng dụng mạng
21 Node.js sử dụng Google V8 JavaScript engine để thực thi mã, và một tỷ lệ lớn các mô-đun cơ bản được viết bằng JavaScript Các ứng dụng node.js thì được viết bằng JavaScript
Node.js chứa một thư viện built-in cho phép các ứng dụng hoạt động như một Webserver mà không cần phần mềm như Nginx, Apache HTTP hoặc IIS
Node.js cung cấp kiến trúc hướng sự kiện (event-driven) và non-blocking I/O API, tối ưu hóa thông lượng của ứng dụng và có khả năng mở rộng cao
Tìm hiểu cơ sở dữ liệu Postgresql
PostgreSQL là một hệ quản trị cơ sở dữ liệu quan hệ và đối tượng dựa trên POSTGRES, bản 4.2, được khoa điện toán của đại học California tại Berkeley phát triển POSTGRES mở đường cho nhiều khái niệm quan trọng mà các hệ quản trị dữ liệu thương mại rất lâu sau mới có
PostgreSQL không chỉ là cơ sở dữ liệu quan hệ, nó là quan hệ hướng đối tượng Điều này cung cấp cho nó một vài lợi thế so với các cơ sở dữ liệu SQL mã nguồn mở khác như MySQL, MariaDB và Firebird
Một đặc điểm cơ bản của cơ sở dữ liệu quan hệ hướng đối tượng là hỗ trợ các đối tượng người dùng tự định nghĩa và các hành vi của chúng bao gồm các kiểu dữ liệu, các hàm, các thao tác, các tên miền và các chỉ mục Điều này làm cho PostgreSQL cực kỳ mạnh và linh hoạt Trong những cái khác, các cấu trúc dữ liệu phức tạp có thể được tạo ra, lưu trữ, và truy xuất Trong một vài ví dụ ở bên dưới chúng ta sẽ nhìn thấy các cấu trúc hỗn hợp lồng nhau cái mà các hệ quản trị cơ sở dữ liệu chuẩn (RDBMS) không hỗ trợ
- Dễ cấu hình, thích ứng tốt, độ tin cậy cao
- Hỗ trợ tốt với PHP và Java
- Là một phần mềm mã nguồn mở
27 - Tuân thủ các chuẩn của SQL
- Hoạt động được trên nhiều hệ điều hành như: Windows, Linux, UNIX (AIX, BSD, HP-UX, SGI IRIX, Mac OS X, Solaris, Tru64)
- Lưu trữ (dạng nhị phân) các đối tượng có dữ liệu lớn như hình ảnh, âm thanh, hoặc video - Hỗ trợ các ngôn ngữ như C/C++, Java, Net, Perl, Python, Ruby, Tcl, ODBC
- Có sự thống nhất giữa những người phát triển (tái dụng những kỹ năng và các thư viện đã có)
- Có hầu hết các truy vấn SQL với các kiểu dữ liệu như INTEGER, NUMERIC, BOOLEAN, CHAR, VARCHAR, DATE, INTERVAL, và TIMESTAMP
- Tạo chỉ mục giúp quá trình truy vấn đạt hiệu quả cao hơn - Hỗ trợ các chức năng tìm kiếm tổng quát hóa có thể “gắn” các chỉ mục vào giúp quá trình tìm kiếm được thực hiện trên phạm vi rộng hơn như: compound, unique, partial, and functional indexes
- Có thể tạo mới kiểu dữ liệu, các hàm, các thủ tục (procedure)…
- Hỗ trợ đa người dùng: dữ liệu không gian có xu hướng là các dữ liệu tham chiếu, tức là được chia sẻ bởi nhiều người dùng Lưu trữ dữ liệu trong hệ quản trị cơ sở dữ liệu sẽ cung cấp những lợi ích như: truy cập từ xa thông qua các chuẩn giao tiếp như:
JDBC, ODBC, PERL/DBI , làm tăng tính bảo mật cho dữ liệu như: một số người dùng có toàn quyền tuy nhiên một số người dùng chỉ có thể đọc hay không được nhìn thấy
- Cộng đồng người dùng tương đối ít
- Chậm hơn so với MySQL - Không có tham số mặc định trong PL/PGSQLHệ cơ sỡ dữ liệu PostgreSQL
1.4.4 Các kiểu dữ liệu và cấu trúc:
Có một danh sách các kiểu dữ liệu PostgreSQL hỗ trợ Bên cạnh kiểu số, floating- point, chuỗi, boolean, và các kiểu dữ liệu mà chúng ta mong muốn (và nhiều tùy chọn
28 khác), PostgreSQL tự hào với uuid, tiền tệ, liệt kê (enumerated), hình học (geometric), nhị phân (binary), địa chỉ mạng, chuỗi bit, tìm kiếm văn bản, xml, json, mảng, hỗn hợp, và các loại khoảng (range types), cũng như một vài kiểu internal cho nhận biết đối tượng và vị trí đăng nhập Để công bằng, MySQL, MariaDB và Firebird mỗi cái có một vài loại ở mức độ khác nhau, nhưng PostgreSQL hỗ trợ tất cả
Kích thước tối đa của cơ sở dữ liệu Không giới hạn Kích thước tối đa của table 32 TB
Kích thước tối đa của hàng (row) 1.6 TB Kích thước tối đa của trường (field) 1 GB Số hàng tối đa trên mỗi bảng Không giới hạn
Số cột tối đa trên mỗi bảng 250 - 1600 phụ thuộc vào kiểu cột
Số lượng index tối đa trên mỗi bảng Không giới hạn
Bảng 3 Kích thước dữ liệu trong postgresql
Hãy so sánh, MySQL và MariaDB được biết đến với giới hạn kích thước dòng là 65,535 byte Firebird cũng chỉ có kích thước tối đa cho một dòng là 64KB Thông thường kích thước dữ liệu được giới hạn bởi giới hạn kích thước file của hệ điều hành
Bởi vì PostgreSQL có thể lưu trữ bảng dữ liệu trong nhiều file nhỏ hơn, nên nó có thể khắc phục được hạn chế này - mặc dù, điều quan trọng cần lưu ý là quá nhiều file có thể tác động tiêu cực đến hiệu năng MySQL và MariaDB cũng làm được, tuy nhiên chúng hỗ trợ nhiều cột trên một bảng (lên tới 4,096 phụ thuộc vào kiểu dữ liệu) và kích thước mỗi bảng lớn hơn PostgreSQL, nhưng rất hiếm các điều kiện mà chúng ta cần thực hiện vượt quá các giới hạn của PostgreSQL
29 Tóm lại, PostgreSQL có rất nhiều khả năng Được xây dựng bằng cách sử dụng mô hình quan hệ hướng đối tượng, nó hỗ trợ các cấu trúc phức tạp và rất nhiều các kiểu dữ liệu được xây dựng sẵn và do người dùng tự định nghĩa Nó cung cấp khả năng mở rộng dữ liệu và đáng tin cậy cho tính toàn vẹn dữ liệu Chúng ta có thể không cần tất cả các tính năng tiên tiến chúng ta đã đề cập cho việc lưu trữ dữ liệu, nhưng khi nhu cầu dữ liệu phát triển nhanh, chắc chắn lợi ích rõ ràng đó là tất cả đã ở trong tầm tay của chúng ta.
Kết luận chương 1
Một trang web để hoạt động tốt thì được tạo từ hai phần chính: backend và fontend
Mỗi phần điều đóng vai trò quan trong trong cấu trúc hình thành của một trang web
Nếu fontend xây dựng giao diện người dùng thì backend đảm nhận mọi công việc xử lý phía máy chủ
Với mỗi phần ta lại có rất nhiều ngôn ngữ để lập trình khác nhau Nắm vững những kiến thức về chúng là yêu cầu để xây dựng một trang web So với một số ngôn ngữ lập trình khác, Javascript được đánh giá cao bởi khả năng đáp úng nhu cầu tốt, dễ sử dung
Nó đang chứng minh là một ngôn ngữ đáng để theo đuổi
Nắm vững kiến thức là giai đoạn đầu cần để tạo nên một trang web Để tạo nên một trang web thật sự, có thể sử dụng đáp ứng nhu cầu của mình thì còn phải qua nhiều bước chẳng hạn: Tìm hiểu yêu cầu, xác định những tác nhân, xây dựng cơ sỡ dữ liệu, Đó là giai đoạn phân tích, thiết kế, một giai đoạn đón vai trò cực kì quan trọng trong việc tạo ra món mang tính ứng dụng được vào thực tế
XÂY DỰNG WEBSITE QUẢN LÝ NHÀ HÀNG
Bài toán thực tế
Nhà hàng Trầu Cau có quy mô phục vụ khá cao, số lượng nhân viên tương đối nhiều, khối lượng công việc cần quản lý nhiều Vì vậy việc quản lý được các nhân viên hay quản lý được thực trạng kinh doanh của nhà hàng gây không ít khó khăn cho quản lý và chủ nhà hàng
Hiện nay, nhà hàng đã sử dụng phần mềm để trợ giúp trong công việc quản lý được dễ dàng hơn Tuy nhiên, phần mềm công ty hiện vẫn tồn tại nhiều khuyết điểm chưa thật sự giúp đỡ nhiều cho công tác quản lý Phần mềm này chủ yếu dùng dể lưu trữ dữ liệu thu chi và quản lý nhân viên, trong khi các chức năng khác chưa được chú ý đến
Nhân viên thu ngân sẽ quản lý doanh thu và chi tiêu theo chu kì, sau đó tổng hợp báo cáo cho cấp trên Nhân viên kho giám sát các nguyên liệu trong kho, kiểm tra tình trạng và số lượng của chúng Nhân viên bán hàng hướng dãn và thực hiện đặt chõ cho khách khi có yêu cầu
2.1.1.1 Giới thiệu về hệ thống cũ Ưu điểm: Đơn giản, dễ sử dụng, giao diện thân thiện với người dùng Chức năng nhập hoá đơn bàn hàng linh hoạt giúp ích nhiều cho công tác bán hàng Hỗ trợ tốt người dùng trong việc kiểm tra và thống kê hàng hoá, tài sản Chạy tốt trên nền hệ điều hành Windows XP Không yêu cầu cao về phần cứng máy tính
Nhược điểm: Giao diện chương trình không mang tính mỹ thuật cao Chương trình chưa quan tâm nhiều lắm đến vấn đề bảo mật cho ứng dụng Chưa đáp ứng được các yêu cầu bán hàng, giao tiếp với khách hàng,…
2.1.1.2 Giới thiệu về hệ thống mới
Mục đích thiết kế phần mềm quản lý nhà hàng Phát triển từ ý tưởng về nghiệp vụ quản lý nhà hàng, niềm đam mê ứng dụng công nghệ cao vào cuộc sống, em xây dựng phần mềm quản lý nhà hàng nhằm giúp người quản lý đơn giản hơn trong công tác quản lý nhà
31 hàng, minh bạch các hoạt động của nhà hàng từ đó kiểm soát được mọi hoạt động kinh doanh và thúc đẩy doanh thu của nhà hàng
Xây dựng được hệ thống quản lí nhà hàng ăn uống với đầy đủ các chức năng quản lí như: nhập, xuất hàng hoá trong kho, quản lí bàn ăn (thêm, ghép, rời bàn ăn), từng nhân viên bàn, quản lí công nợ khách hàng, quản lí thẻ ưu đãi cho khách hàng, các khoản chiết khấu, hoa hồng Phần mềm phải có chức năng tạo các báo cáo về hàng hoá nhập/xuất/tồn kho, các báo cáo về công nợ, báo cáo về thu chi tiền mặt, thống kê doanh thu theo từng nhân viên, từng khu vực bàn ăn (nếu cửa hàng có nhiều khu vực bàn ăn khác nhau), các báo cáo kết quả kinh doanh
Nhiều máy có kết nối mạng, hệ thống bán online
2.1.2 Tìm hiểu môi trường hệ thống
Phân tích hệ thống
2.2.1 Đặc tả yêu cầu - R.1 Nhập nguyên vật liệu R1.1 NV kho nhập và kiểm kê thông tin nguyên vật liệu đưa vào kho (ten) R1.2 NV kho kiểm tra thông tin nếu có sai sót và nhầm lẫn
R1.3 NV kho lưu thông tin vào CSDL R1.4 NV kho xóa món không còn nhập R1.5 NV lưu sổ chi, đơn đặt hàng vào CSDL
- R2 Bán món R2.1 Khách đặt bàn R2.2 Khách chọn món, gọi món R2.2.1 Chọn món, gọi món trực tiếp R2.2.2 Chọn món qua menu trên trang web và đặt món
- R3 Thanh toán R3.1 Khách yêu cầu thanh toán trực tiếp
R3.1.2 NV kiểm tra HĐ, tính tổng tiền và yêu cầu Khách trả tiền R3.1.3 Khách đưa tiền cho NV
R3.1.4 NV xác nhận, thối lại tiền thừa cho Khách, in HĐ đưa cho Khách R3.1.5 NV lưu thông tin HĐ vào CSDL
R3.2 Khách thanh toán qua việc đặt món qua mạng R3.2.1 NV tạo HĐ đối với các món Khách đặt R3.2.2 NV in HĐ
R3.2.3 NV giao HĐ và món Khách gọi cho NV ship
R3.2.4 NV cập nhập trạng thái trả tiền của Khách (khi NV ship hàng giao lại HĐ và tiền)
- R4 Thống kê R4.1 Cuối tháng người quản lý đăng nhập vào hệ thống để thống kê R4.2 Thống kê nguyên vật liệu nhập vào kho
R4.3 Thống kê nguyên vật liệu còn trong kho R4.4 Thống kê doanh thu
- R5 Tìm kiếm R5.1 Thu ngân đăng nhập vào hệ thống và tìm thông tin hàng R5.2 Tìm kiếm thông tin nhân viên
- Nhân viên phục vụ + Tìm món và bàn cho khách + Ghi order khi khách đặt món + In oder
+ Đặt chỗ, món và hủy đặt
- Người quản lý + Báo cáo doanh thu + Thêm, sửa, xóa thông tin nhân viên + Cập nhật thông tin đăng nhập + Thêm, sửa, xóa thực đơn - Thu ngân
+ Thống kê doanh thu theo tháng + Tạo hóa đơn mới
+ Bổ sung thông tin vào HĐ + Bổ sung SP
+ Cập nhập HĐ + In và lưu HĐ - Nhân viên kho
+ Nhập hàng + Thêm nguyên liệu mới
+ Kiểm tra tìm trạng nguyên liệu + Lưu DL
+ In phiếu nhập - Khách hàng + Đặt Bàn
Ngoài ra: còn có các Actor khác: nhà cung cấp, kho, bàn, máy in, hóa đơn, nguyên vật liệu, món, phiếu nhập
2.2.3 Đặc tả use care (1) UC_ Đangnhap Actor: NV phục vụ, NV kho, NQL, NV bảo trì
B1 Hằng ngày hoặc khi vào ca làm việc NV phục vụ, NV Kho, NQL, NV bảo trì đăng nhập hệ thống, nhập tài khoản, mật khẩu, nếu tài khoản và mật khẩu đúng hệ thống mở, nếu sai hệ thống yêu cầu nhập lại
B2 Lúc kết thúc ca làm việc của mình hoặc kết thúc hoạt động đảm nhiệm, người thực hiện đăng xuất khỏi hệ thống
(2) UC_ Nhapnguyenvatlieu Actor: NV kho, NCC
B1 Nhân viên kho (NV kho) nhập và kiểm kê thông tin nguyên vật liệu khi đưa vào kho (tên, masp, số lượng, đơn giá, đơn vị tính, )
B2 NVkho chỉnh sửa thông tin nếu có sai sót, nhầm lẫn
37 B3 NV kho lưu thông tin vào cơ sở dữ liệu NV kho tạo nguyên vật liệu mới và bổ sung vào cơ sở dữ liệu
B4 NV kho xóa nguyên vật liệu không còn nhập vào nhà hàng
(3) UC_Bansanpham Actor: NV phục vụ, Khách hàng Mô tả:
B1 Hằng ngày hoặc khi vào ca làm việc NV phục vụ đăng nhập hệ thống
B2 Khi có khách đến chọn bàn, gọi thức uống, NV phục vụ chọn bàn trong của sổ bán món, bổ sung thức uống khách gọi
B3 Lúc kết thúc ca làm việc của mình, NV bán món đăng xuất khỏi hệ thống
B1 Khi khách đặc bàn từ xa thì NV phục vụ sắp xếp vị trí cho khách
B2 Khách có thể hủy đặt bàn trước thời điểm đặt trong thời gian cho phép
B3 Căn cứ vào thời gian hủy, nhân viên thực hiên khấu trừ tiền đặt chỗ
(4) UC_ Thanhtoan Actor: NV thu ngân, khách hàng Mô tả:
B1 Khi khách hàng yêu cầu thanh toán thì NV thu nhân đăng nhập hệ thống tính tiền và lập hóa đơn
B2 Nhận tiền từ khách hàng và lưu vào CSDL
B3 In hóa đơn với khách thanh toán trực tiếp và gửi thông báo đối với khách online
(5) UC_ Thongke Actor: Quản lý, NV thu ngân Mô tả:
B1 Hằng tháng NV thu ngân đăng nhập vào hệ thống thống kê thu chi hằng tháng của nhà hàng
38 B2 Lưu vào CSDL và lập bản thống kê gửi lên quản lý (Quản lý gửi lên Giám Đốc)
Thống kê kho: Hằng tuần NV kho thống kê nguyên vật liệu nhập/xuất, hàng tồn… lập bảng thống kê gửi lên quản lý
(6) UC_ Timkiem Actor: Khách, NV phục vụ Mô tả:
B1 Khách tìm món theo mã món
B2 Nhập thông tin về mã món, hệ thống sẽ gửi kết quả về lại cho khách hàng biết
(7) UC_ Capnhatnvl (UC_Cập nhật nguyên vật liệu) Actor: NV kho
B1 Hằng ngày, NV kho đăng nhập hệ thống, vào cửa sổ quản lý hàng hóa, kiểm tra và bổ sung các thông tin về nguyên vât liệu (Tên nguyên vât liệu, mã nguyên vât liệu, giá, số lượng, đơn vị tính, chất lượng )
B2 Lưu thông tin nguyên vât liệu vào CSDL, đối với nguyên liệu hư hỏng thì hủy
B3 Sau khi xong NV kho đăng xuất khỏi hệ thống
(8) UC_ Capnhatsp (UC_ Cập nhật món) Actor: Quản lý, NV chế biến
B1 Hằng ngày hoặc khi có món mới vào menu, NV pha chế thông báo cho quản lý, quản lý đăng nhập hệ thống, vào cửa sổ quản lý món, thêm món mới, bổ sung các thông tin về món (Tên món, mã món, giá, số lượng, đơn vị tính, ),
39 B2 Lưu thông tin món vào CSDL, tiếp tục cập nhật thông tin các món khác, nếu có món nào nhà hàng không còn bán thì quản lý xóa món đó khỏi CSDL B3 Sau khi xong quản lý đăng xuất khỏi hệ thống
(9) UC_ Quản lý nhân viên Actor: Quản lý
B1 Hằng ngày, quản lý đăng nhập vào hệ thống cập nhật, điểm danh nhân viên (MaNV, TenNV, DiaChi, SDT…)
B2 Lưu thông tin vào và nếu có nhân viên nghỉ việc thì xóa thông tin nhân viên đó
Thêm thông tin nhân viên mới
B3 Trừ lương nhân viên vi phạm và thưởng lưởng theo chế độ
Hình 1 Sơ đồ usercase quản lý nhà hàng
2.2.5.1 Biểu đồ tuần tự UC_Đăng nhập
Hình 2 Biểu đồ tuần tự UC_đăng nhập
2.2.5.2 Biểu đồ cộng tác UC_Dangnhap
Hình 3 Biểu đồ cộng tác UC_đăng nhập
2.2.5.3 Biểu đồ tuần tự UC_Bansp
Hình 4 Biểu đồ tuần tự UC_bán sản phẩm
2.2.5.4 Biểu đồ cộng tác UC_Bansp
Hình 5 Biểu đồ cộng tác UC_bán sản phẩm
3: tạo hóa đơn nhập nvl
2.2.5.5 Biểu đồ tuần tự UC_Nhập nguyên vật liệu
Hình 6 Biểu đồ tuần tự UC_nhập nguyên vật liệu 2.2.5.6 Biểu đồ cộng tác UC_Nhập nguyên vật liệu
Hình 7 Biểu đồ cộng tác UC nhập nguyên vật liệu
2.2.5.7 Biểu đồ tuần tự UC_Thanhtoan
Hình 8 Biều đồ tuần tự UC_thanh toán
2.2.5.8 Biểu đồ cộng tác UC_Thanhtoan
Hình 9 Biểu đồ cộng tác UC_thanh toán
2.2.5.9 Biểu đồ tuần tự UC_Thống kê
Hình 10 Biểu đồ tuần tự UC_thống kê
2.2.5.10 Biểu đồ cộng tác UC_Thống kê
Hình 11 Biểu đồ cộng tác UC_thống kê
2.2.5.11 Biểu đồ tuần tự UC_Tìm kiếm
Hình 12 Biểu đồ tuần tự UC_tìm kiếm
2.2.5.12 Biểu đồ cộng tác UC_Tìm kiếm
Hình 13 Biểu đồ cộng tác UC_tìm kiếm
2.2.5.13 Biểu đồ tuần tự UC_Cập nhật sản phẩm
Hình 14 Biểu đồ tuần tự UC_cập nhật sản phẩm 2.2.5.14 Biểu đồ tuần tự UC_Cập nhật sản phẩm
Hình 15 Biểu đồ cộng tác UC_cập nhật sản phẩm
Hình 16 Biểu đồ trạng thái nhà cung cấp 2.2.6.2 Hóa đơn
Hình 17 Biểu đồ trạng thái hóa đơn
Hình 18 Biểu đồ trạng thái phiếu nhập
Hình 19 Biểu đồ trạng thái nhân viên
Hình 20 Biểu đồ trạng thái món ăn
Hình 21 Biểu đồ trạng thái món
Hình 22 Biểu đồ trạng thái khách hàng 2.2.6.8 Kho
Hình 23 Biểu đồ trạng thái kho
Hình 24 Biểu đồ trạng thái bàn 2.2.6.10 Tài khoản-User
Hình 25 Biểu đồ trạng thái user
Thiết kế cơ sỡ dữ liệu
STT Tên trường Diễn giải Kiểu dữ liệu Khóa 1 id_user Mã người dùng Serial Khóa chính 2 username Tên tài khoản Varchar
STT Tên trường Diễn giải Kiểu dữ liệu Khóa
1 id_nv Mã Nhân Viên Serial Khóa chính
2 name Tên Nhân Viên Varchar
3 birth_date Ngày sinh Date
5 email Địa chỉ mail Varchar
STT Tên trường Diễn giải Kiểu dữ liệu Khóa
1 id_kh Mã Khách hàng Serial Khóa chính
2 name Tên Khách hàng Varchar
3 birth_date Ngày sinh Date
5 email Địa chỉ mail Varchar
STT Tên trường Diễn giải Kiểu dữ liệu Khóa
1 id_ncc Mã Nhà Cung
4 email Địa chỉ mail Varchar
STT Tên trường Diễn giải Kiểu dữ liệu Khóa 1 id_nl Mã nguyên liệu Serial Khóa chính
3 birth_create Ngày tạo Date
2.3.6 sanpham (Món) STT Tên trường Diễn giải Kiểu dữ liệu Khóa
1 id_sp Mã món Serial Khóa chính
STT Tên trường Diễn giải Kiểu dữ liệu Khóa
1 id_ban Mã bàn Serial Khóa chính
STT Tên trường Diễn giải Kiểu dữ liệu Khóa
1 id_hd Mã hóa đơn Serial Khóa chính
2 Id_kh Mã Khách hàng int
3 Id_nv Mã nhân viên int
4 Id_sp Mã sản phẩm int
STT Tên trường Diễn giải Kiểu dữ liệu Khóa
1 id_pn Mã hóa đơn Serial Khóa chính
2 Id_ncc Mã nhà cung cấp int
3 Id_nv Mã nhân viên int
4 Id_nl Mã nguyên liệu int
Kết luận chương 2
Xét trên phương diện quản lý, nhà hàng đặt ra vấn đề cho trang web phải đáp ứng những yêu cầu mà trang web quản lý cần có như: quản lý khách hàng, quản lý món,
62 nguyên liệu,… Các chức năng này phải tương ứng với từng đối tượng hoạt động của nhà hàng Ngoài ra, phần mềm cần phù hợp với hệ thống máy chủ của phần mềm hạn chế chi phí đầu tư cho doanh nghiệp
Trên cơ sở đó, trang web đã được xây dựng và hoàn thiện, đáp ứng được yêu cầu đề ra.
DEMO CHƯƠNG TRÌNH
Giới thiệu Website quản lý nhà hàng Trầu Cau
hình 27 Website nhà hàng trầu cau
Website quản lý nhà hàng Trầu Cau là một website vừa đóng vai trò cầu nối giữa nhà hàng với khách hàng, vừa như một quản lý bao quát những hoạt động của nhà hàng
Hơn nữa còn có thể hỗ trợ trong kinh doanh giúp tiết kiệm chi phí
Website quản lý nhà hàng Trầu Cau, một website đa chức năng mà một nhà hàng cần phải có, được chia làm hai phần chính:
- Phần Web bán hàng: là nơi nhà hàng tiếp xúc, tạo ấn tượng với khách hàng với những món ngon, chất lượng trên nền nhưng hình ảnh hấp dẫn
- Phần quản lý: đây sẽ là nơi chủ, quản lý của nhà hàng giám sát những hoạt động kinh doanh của nhà hàng mình Từ đó đưa ra chiến lược phù hợp để phát triển mạnh hơn
63 Website đươc xây dựng trên nền tảng Javascript (nodejs) nên độ an toàn cao, dễ sử dụng, không cần đầu tư lớn Hơn nữa, vì chạy như trên nền tảng Internet nên cực kì thuận tiện cho mọi người dùng.
Hướng dẫn cài đặt
Với tiêu chí của phần mềm là thân tiện với khách hàng và người dùng, nên việc cài đặt và sử dụng trang web không hề gây khó khăn Gồm 2 công đoạn cài đặt:
- Cài đặt phía máy Client
- Cài đặt phía máy Server
3.2.1 Cài đặt trên máy Client Phần mềm được xây dựng trên nền tảng một website nên để sử dụng nó chúng ta cần có một trình duyệt web, chẳng hạn như: Chrome, Firefox, Cốc Cốc, Microsoft Edge Việc cài đặt một trình duyệt web thì lại hoàn toàn dễ dàng Thận chí trong hệ điều hành của máy tính đã tích hợp sẵn một trình duyệt web cho chúng ta
Tuy nhiên, không phải tất cả trình duyệt nào cũng đáp ứng đầy đủ để trang web chạy một cách ổn định với đầy đủ chứ năng Để phần mềm chạy tốt nhất, chúng ta nên cài trình duyệt Chrome của Google Đầu tiên, chúng ta vào link: https://www.google.com/intl/vi_vn/chrome/#eula, chọn Tải xuống Chrome để tải về máy Sau đó, làm theo những hướng dẫn cài đặt của phần mềm
Bước 1: Tải về và cài đặt trình duyệt
64 Bước 2: Bạn mở Chrome Setup mới tải về và chọn Run
Bước 3: Click chọn YES và đợi một tý để Google được cài đặt
65 Khi xuất hiện thông báo như bên dưới thì bạn đã cài đặt Google Chrome thành công
66 3.2.2 Cài đặt trên máy Server
So với việc cài đặt trên máy Client, việc cài đặt trên máy server có đôi chút khó khăn hơn nhưng không quá phức tạp Để website chạy trên server ta cần hai phần mềm chính là cơ sỡ dữ liệu postgresql và NodeJS
3.2.2.1 Cài đặt NodeJS Để download NodeJS bạn cần truy cập vào địa chỉ dưới đây: https://nodejs.org/en/download/
Sau khi download thành công bạn có một file
67 Cài đặt NodeJS trên Windows rất đơn giản, chấp nhận các tùy chọn mặc định và nhấn "Next Next" cho tới bước cuối cùng
68 Vậy là chúng ta đã download và cài đặt thành công Nodejs
Truy cập https://www.postgresql.org/download/windows/ để download bản PostgreSQL cho hệ điều hành Windows
Click đúp vào file exe vừa tải về
Nhập các thông tin cấu hình PostgreSQL khi cài đặt:
Chọn các component cài đặt (nếu bạn chỉ cần server để lưu và truy vấn dữ liệu thì chỉ cần chọn PostgreSQL Server) Ở đây mình chọn tất (pgAdmin 4 tương tự như MySQL Workbench, Stack Builder thì dùng để cài các tools, driver liên quan)
70 Nhập mật khẩu cho user postgres
(postgres là user mặc định, có quyền cao nhất – superuser)
Chọn cổng / port cho PostgreSQL (port mặc định cho postgreSQL là 5432, nếu chưa bị trùng với port nào thì các bạn cứ để mặc định cho dễ nhớ nhé)
71 pgAdmin 4 được chạy trên server, nên khi click vào nó sẽ tự động mở giao diện pgAdmin trên trình duyệt hoặc các bạn cũng có thể truy cập qua url http://127.0.0.1:54640/browser/
Demo Website quản lý nhà hàng Trầu cau
Để chạy phần mềm, ta truy cập đường dẫn http://localhost:7777/ trên trình duyệt web Website nhà hàng sẽ hiện ra
Click chọn đăng nhập với tài khoản admin để vào giao diện quản lý
Hình 29 Đăng nhập với tài khoản admin
Click chọn thêm để thêm mới, view để xem thông tin, deleted để xóa thông tin, dữ liệu
Hình 31 Thêm dữ liệu mới
Hình 32 Xem và thay đổi thông tin
Xác nhận để thao tác được xử lý, hủy để hủy bỏ thao tác
76 Để chuyển đến trang thống kê – báo cáo, chúng ta click chọn mục thống kê báo cáo trên thanh menu bên phải màng hình Chọn thời gian và loại thống kê
Hình 34 Trang thống kê báo cáo
Sau khi vào trang web của nhà hàng, khách hàng tiến hành booking bằng cách click vào nút đặt bàn Trang web chuyển hướng sang trang booking
Tiến hành điền đầy đủ thông tin cần thiết để xác thật người dùng Với khách hàng quen thuộc có thể đăng nhập trước khi booking để nhận ưu đãi của nhà hàng.
Kết luận chương 3
Dựa trên nhiều lần kiểm tra, website đã hoạt động thành công, đáp ứng đầy đủ các yêu cầu của nhà hàng:
Thứ nhất, trang web đã giúp nhà hàng quản lý được các hoạt động của nhà hàng
Giúp công việc giám sát kinh doanh thuận lợi nhưng vẫn đảm bảo an toàn cho việc kinh doanh nhà hàng
Thứ hai, trang web đã giúp nhà hàng tiếp cận với khách hàng dễ dàng hơn Qua đó cho thấy đây là một Website đáng đề tin tưởng sử dụng phục vụ cho mục đích của nhà hàng