Chương 1 CƠ SỞ LÝ THUYẾT 1. PHPStorm PhpStorm là một môi trường phát triển tích hợp (IDE), đa nền tảng cho PHP, được xây dựng bởi công ty JetBrains, hãng phần mềm hàng đầu thế giới về các công cụ cho lập trình và phát triển. PhpStorm cung cấp trình soạn thảo cho PHP, HTML và JavaScript với khả năng phân tích mã nhanh, ngăn ngừa lỗi và tái cấu trúc tự động cho mã PHP và JavaScript. Tính đến năm 2020, có khoảng 600.000 người dùng sử dụng bản quyền phần mềm PhpStorm trên toàn thế giới.
Điều đó cho thấy mức độ phổ biến “đáng nể” của phần mềm này trong lĩnh vực lập trình và phát triển.1: Giao diện PHPStorm JetBrains PhpStorm được sử dụng chủ yếu bởi các nhà phát triển web, những người cần những công cụ thích hợp để chỉnh sửa PHP, HTML, CSS, JavaScript và các tập tin XML. PhpStorm giúp người dùng tạo và chỉnh sửa mã nguồn bất kể ngôn ngữ lập trình mà họ đang sử dụng. Như bất kỳ trình soạn thảo IDE khác, nó đi kèm với các tính năng cơ bản như đánh dấu trang, hoàn thành mã, phóng to thu nhỏ, các điểm ngắt, vv. Tuy nhiên, nó có chứa các tính năng khác nhau như các macro, phân tích mã và nhanh chóng chuyển hướng để làm cho công việc của bạn dễ dàng hơn nhiều.
SVTH: Bùi Vạn Đạt 13 Xây dựng website quản lý và đặt bàn cho nhà hàng “Hải sản Cua Biển Đà Nẵng” PhpStorm được phát triển bằng ngôn ngữ Java do đó thừa hưởng rất nhiều lợi ích từ ngôn ngữ này, phần mềm chạy rất nhanh trên Linux, thích hợp code PHP, tối ưu việc sử dụng tài nguyên, v. Xampp Xampp là phần mềm Web Server thuộc bản quyền của GNU General Public Licence, XAMPP do Apache Friends phân phối và phát triển. Đây là chương trình tạo máy chủ Web được tích hợp sẵn Apache, PHP, MySQL, FTP Server, Mail Server và các công cụ như phpMyAdmin. XAMPP chính là một phần mềm cho phép chúng ta giả lập môi trường Server Hosting.
Nhờ server Hosting giả định này, chúng ta có thể chạy thử một website ngay trên chiếc máy vi tính của mình mà không cần thiết phải mua Hosting hay VPS.2: Giao diện Xampp Ưu điểm của Xampp: - Tích hợp nhiều tính năng như Apache, PHP, MySQL… - Mã nguồn mở. Nhược điểm của Xampp: - Không được hỗ trợ cấu hình Module. SVTH: Bùi Vạn Đạt 14 Xây dựng website quản lý và đặt bàn cho nhà hàng “Hải sản Cua Biển Đà Nẵng” - Dung ượng Xampp tương đối nặng. Không có nhiều phiên bản cho từng thành phần của server như Apache, PHP, MySQL… 1.
Laravel Laravel là một PHP Framework mã nguồn mở miễn phí, được phát triển bởi Taylor Otwell với phiên bản đầu tiên được ra mắt vào tháng 6 năm 2011. Laravel ra đời nhằm mục đích hỗ trợ phát triển các ứng dụng web, dựa trên mô hình MVC (Model – View – Controller). Laravel hiện được phát hành theo giấy phép MIT, với source code được lưu trữ tại Gitthub. Theo W3Techs, PHP được sử dụng cho 82% website, các tên tuổi lớn có thể kể đến như Flickr, Facebook, WordPress,.PHP là ngôn ngữ lập trình phía máy chủ tuyệt vời bởi vì nó cho phép bạn tập trung vào các nguyên tắc cơ bản chính, giúp bạn mở rộng bất cứ khi nào cần thiết, phát triển nhanh chóng dễ dàng hơn với các code dễ bảo trì.
Ưu điểm: - Sử dụng các tính năng mới nhất của PHP. - Nguồn tài nguyên vô cùng lớn và sẵn có. - Tích hợp với dịch vụ mail. - Dễ sử dụng.
- Công cụ tích hợp cho dòng lệnh - Artisan. - Tính bảo mật cao - Giảm chu kỳ phát triển sản phẩm. Nhược điểm: - Thiếu sự liên kết giữa các phiên bản, nếu cố cập nhật code, có thể khiến cho ứng dụng bị gián đoạn hoặc phá vỡ. - Framework laravel cũng quá nặng cho ứng dụng di động, khiến việc tải trang trở nên chậm chạp.
Điều khiến Laravel trở nên khác biệt: - Bundles: là dành cho Laravel cũng như PEAR là cho PHP. Ngoài ra laravel đi kèm với công cụ command-line gọi là Artisan, giúp việc cài đặt các gói dễ dàng. SVTH: Bùi Vạn Đạt 15 Xây dựng website quản lý và đặt bàn cho nhà hàng “Hải sản Cua Biển Đà Nẵng” - Eloquent ORM: là file thực thi PHP Active Record tiên tiến nhất hiện có. - Migrations: trong laravel, migrations được xây dựng trong framework, chúng có thể thực hiện thông quan Artisan command-line.
- Unit-testing: laravel là 1 framework tuyệt vời để tích hợp PHP Unit. - Redis: Laravel hỗ trợ Redis rất ngắn gọn. MySQL Hệ quản trị cơ sở dữ liệu MySQL là chương trình dùng để quản lý hệ thống cơ sở dữ liệu, trong đó, cơ sở dữ liệu là một hệ thống lưu trữ thông tin được sắp xếp rõ ràng, phân lớp ngăn nắp. Nó có thể truy cập dữ liệu một cách thuận lợi và nhanh chóng nhất.
Vì hỗ trợ đa số các ngôn ngữ lập trình nên MySQL chính là hệ quản trị cơ sở dữ liệu tự do nguồn mở phổ biến nhất trên thế giới. Hiện MySQL đang được các nhà phát triển rất ưa chuộng trong quá trình phát triển ứng dụng. MySQL là một hệ thống quản trị cơ sở dữ liệu mã nguồn mở (Relational Database Management System, viết tắt là RDBMS) hoạt động theo mô hình client- server. RDBMS là một phần mềm hay dịch vụ dùng để tạo và quản lý các cơ sở dữ liệu (Database) theo hình thức quản lý các mối liên hệ giữa chúng.
MySQL là hệ quản trị cơ sở dữ liệu tự do nguồn mở phổ biến nhất thế giới và được các nhà phát triển rất ưa chuộng trong quá trình phát triển ứng dụng. Vì MySQL là hệ quản trị cơ sở dữ liệu tốc độ cao, ổn định và dễ sử dụng, có tính khả chuyển, hoạt động trên nhiều hệ điều hành cung cấp một hệ thống lớn các hàm tiện ích rất mạnh. Với tốc độ và tính bảo mật cao, MySQL rất thích hợp cho các ứng dụng có truy cập CSDL trên internet. Người dùng có thể tải về MySQL miễn phí từ trang chủ.
MySQL có nhiều phiên bản cho các hệ điều hành khác nhau: phiên bản Win32 SVTH: Bùi Vạn Đạt 16 Xây dựng website quản lý và đặt bàn cho nhà hàng “Hải sản Cua Biển Đà Nẵng” cho các hệ điều hành dòng Windows, Linux, Mac OS X, Unix, FreeBSD, NetBSD, Novell NetWare, SGI Irix, Solaris, SunOS… Hình 1.4: MySQL Hệ quản trị cơ sở dữ liệu MySQL chính là một trong những phần mềm quản trị CSDL dạng server based, hệ gần giống với SQL server of Microsoft. MySQL là phần mềm quản lý dữ liệu thông qua CSDL. Và mỗi một CSDL đều có bảng quan hệ chứa dữ liệu riêng biệt. MySQL có cơ chế quản lý sử dụng riêng giúp cho mỗi người sử dụng đều có thể quản lý cùng lúc một hay nhiều CSDL khác nhau.
Và mỗi người dùng đều có 1 username và password để truy nhập và truy xuất đến CSDL. Khi truy vấn đến CSDL của MySQL, chúng ta phải cung cấp tài khoản và mật khẩu có quyền sử dụng cơ sở dữ liệu đó. MySQL tương thích tốt với môi trường PHP, giúp hệ thống hoạt động mạnh mẽ. SVTH: Bùi Vạn Đạt 17 Xây dựng website quản lý và đặt bàn cho nhà hàng “Hải sản Cua Biển Đà Nẵng” Chương 2 PHÂN TÍCH THIẾT KẾ HỆ THỐNG 2.
Phân tích hiện trạng Tuy nhà hàng Cua Biển là một nhà hàng lớn nhưng tính đến giờ vẫn chưa có hệ thống website giới thiệu các chi nhánh nhà hàng trên địa bàn Thành phố, nhằm giúp du khách thuận tiện hơn trong việc tìm các nhà hàng ngon, gần, hợp ý,. khi đến tham quan. Phân tích bài toán Hệ thống phục vụ cho 4 đối tượng là: khách vãng lai có nhu cầu tìm nhà hàng, khách hàng thành viên có nhu cầu đặt bàn, đặt món, nhân viên và quản trị hệ thống: - Khách vãng lai và khách hàng thành viên có nhu cầu tìm nhà hàng: khi có nhu cầu tìm nhà hàng thì sẽ truy cập vào trang web để thực hiện thao tác. - Nhân viên: có thể duyệt đặt món & đặt bàn của khách hàng, đặt món và đặt bàn.
- Quản trị viên: có thể quản lý được thông tin nhà hàng của mình, cũng như xem phản hồi khách. Phân tích đối tượng sử dụng hệ thống 2. Khách du lịch - Khách du có nhu cầu tìm nhà hàng, khi chưa có tài khoản thì có thể đăng ký tài khoản. Khách hàng - Tìm nhà hàng kèm theo điều kiện (tầm giá, địa điểm, món ăn…).
- Xem trước thực đơn của nhà hàng. - Xem những phản hồi từ những người trải nghiệm trước. - Xem được danh sách nhà hàng top thuộc điều kiện. - Đặt bàn trước.
- Xem ưu đãi của nhà hàng. - Xem được đường đi đến nhà hàng thông qua map. - Phản hồi về nhà hàng. Quản trị viên - Điều chỉnh thông tin nhà hàng.
- Quản lý thông tin các chi nhánh. - Quản lý khách đặt bàn trước. - Xem phản hồi của khách. - Phản hồi lại khách.
- Duyệt, thay đổi trang thái đặt bàn và đặt món. SVTH: Bùi Vạn Đạt 18 Xây dựng website quản lý và đặt bàn cho nhà hàng “Hải sản Cua Biển Đà Nẵng” - Quản lý tin tức. Nhân viên - Đặt bàn và đặt món cho khách tới trực tiếp tại nhà hàng. Đăc tả chức năng - Website có giao diện đơn giản, dễ sử dụng.
- Ngôn ngữ chính của website là tiếng Việt. - Hệ thống có tính bảo mật, an toàn. - Tốc độ xử lý nhanh chóng, dễ dàng.1: Sơ đồ Usesase hệ thống 2. Usecase đăng ký (khách vãng lai) Bảng 2.1: Usecase đăng ký Mã Usecase UC01 Tên Usecase Usecase Đăng ký Tác nhân Khách chưa có tài khoản truy cập Cho phép người truy cập website có thể đăng ký trở thành thành viên để Mục đích thuận tiện hơn trong quá trình đăng ký hoặc tìm kiếm nhà hàng Điều kiện Người dùng truy cập vào trang web SVTH: Bùi Vạn Đạt 19 Xây dựng website quản lý và đặt bàn cho nhà hàng “Hải sản Cua Biển Đà Nẵng” trước - Tên - Email Input - Mật khẩu - Nhập lại mật khẩu - Số điện thoại Nếu đăng ký thành công -> Người dùng là thành viên của hệ thống.
Output Nếu đăng ký không thành công -> Thông báo lỗi, mời đăng ký lại. - Kháng vãng lai đăng ký thành viên. - Đưa ra giao diện đăng ký thành viên. - Nhập thông tin đăng ký.
Luồng sự - Nhấn nút "Đăng ký". kiện - Hệ thống xác nhận thông tin, nếu hợp lệ, hệ thống tiếp nhận thông tin đưa ra thông báo đăng ký thành công. - Chuyển đến trang đăng nhập Luồng thay Nếu dữ liệu nhập không hợp lệ, hệ thống đưa ra thông báo và yêu cầu thế và các nhập lại.