Công Nghệ Thông Tin, it, phầm mềm, website, web, mobile app, trí tuệ nhân tạo, blockchain, AI, machine learning - Công Nghệ Thông Tin, it, phầm mềm, website, web, mobile app, trí tuệ nhân tạo, blockchain, AI, machine learning - Công nghệ thông tin UBND TỈNH QUẢNG NAM TRƯỜNG ĐẠI HỌC QUẢNG NAM KHOA: CÔNG NGHỆ THÔNG TIN ---------- THUNVA KEODAVONG XÂY DỰNG WEBSITE BÁN ĐIỆN THOẠI DI ĐỘNG KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC Quảng Nam, tháng 6 năm 2020 UBND TỈNH QUẢNG NAM TRƯỜNG ĐẠI HỌC QUẢNG NAM KHOA CÔNG NGHỆ THÔNG TIN ---------- KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC Tên đề tài: XÂY DỰNG WEBSITE BÁN ĐIỆN THOẠI DI ĐỘNG Sinh viên thực hiện THUNVA KEODAVONG MSSV: 2116100115 CHUYÊN NGÀNH: CÔNG NGHỆ THÔNG TIN KHÓA 2016 - 2020 Cán bộ hướng dẫn ThS. HỒ HỮU LINH MSCB: ……… Quảng Nam, tháng 6 năm 2020 MỤC LỤC Phần 1. MỞ ĐẦU ................................................................................................................. 1 1.1. Lý do chọn đề tài ........................................................................................................ 1 1.2. Mục đích nghiên cứu: ................................................................................................... 1 1.3. Đối tượng và phạm vi nghiên cứu: .............................................................................. 1 1.4. Phương pháp nghiên cứu: ............................................................................................ 1 1.5. Lịch sử nghiên cứu ........................................................................................................ 2 1.6. Đóng góp của đề tài ....................................................................................................... 2 1.7. Cấu trúc của khóa luận ................................................................................................ 2 PHẦN 2. NỘI DUNG NGHIÊN CỨU................................................................................ 3 CHƯƠNG 1: CƠ SỞ LÝ THUYẾT ................................................................................... 3 1.1. Tổng quan về Laravel Framework. .......................................................................... 3 1.1.1. Khái niệm Laravel Framework................................................................................. 3 1.1.2. Lợi ích của việc sử dụng Laravel Framework. ........................................................ 3 1.2. Tổng quan MySQL..................................................................................................... 5 1.2.1. Giới thiệu về MySQL. ................................................................................................ 5 1.2.2. Đặc điểm. ..................................................................................................................... 6 1.2.3. Tạo cơ sở dữ liệu và người dụng. .............................................................................. 6 1.2.4. Các kiểu dữ liệu trong MySQL. ................................................................................ 7 1.2.5. Các câu lệnh SQL. ...................................................................................................... 7 1.2.6. Các hàm trong MySQL. ........................................................................................... 10 1.2.7. Tại sao sử dụng MySQL Server. ............................................................................. 11 1.2.8. Tổng quan về Xampp. .............................................................................................. 14 1.3. Khảo sát bài toán. ..................................................................................................... 18 1.3.1. Khảo sát thực tế ........................................................................................................ 18 CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ HÊ THỐNG ............................................. 19 2.2. Phân tích hệ thống ...................................................................................................... 19 2.2.1. Xác định các Actor và vai trò của Actor ................................................................ 19 2.2.2. Sơ đồ Use Case ......................................................................................................... 19 2.2.3. Xác định Object ....................................................................................................... 27 2.2.4. Biểu đồ tương tác ..................................................................................................... 28 CHƯƠNG 3: DEMO CHƯƠNG TRÌNH ........................................................................ 34 3.1 Demo chương trình ...................................................................................................... 34 3.1.1 Giao diện trang web. ................................................................................................ 34 3.1.2. Giao diện trang quản lý. .......................................................................................... 34 3.1.3 Giao diện quản lý nhân viên. ................................................................................... 35 3.1.4 Giao diện các loại sản phẩm .................................................................................... 36 3.1.5 Giao diện quản lý sản phẩm .................................................................................... 36 PHẦN 3. KẾT LUẬN VÀ KIẾN NGHỊ ........................................................................... 38 PHẦN 4. TÀI LIỆU THAM KHẢO................................................................................. 39 DANH MỤC CÁC HÌNH ẢNH SƯ DỤNG Hình 2.1 : Quan hệ giữa Actor với UC .....................................................................20 Hình 2.2 : Quan hệ giữa Actor nhân viên bán hang với các UC...............................20 Hình 2.3 : Quan hệ giữa Actor nhân viên viết bài với các UC .................................21 Hình 2.4 : Quan hệ giữa Actor Khách hàng với các UC...........................................21 Hình 2.5 : Xác định mối quan hệ giữa UC và UC ....................................................22 Hình 2.6: Sơ đồ User case tổng quất .........................................................................22 Hình 2.7: Biểu đồ tuần tự “UC – Đăng nhập” ..........................................................28 Hình 2.8 : Biểu đồ tuần tự “UC – Quan lý bán hàng ................................................29 Hình 2.9 : Biểu đồ tuần tự quản lý bán hàng ............................................................30 Hình 2.10 : Biểu đồ tuần tự “UC – Thanh toán” .......................................................31 Hình 2.11 : Biểu đồ tuần tự “UC – Thống kê”..........................................................31 Hình 2.12: Biểu đồ tuần tự Quản lý người dung .......................................................32 Hình 2.13: Biểu đồ tuần tự Quản lý tin tuc ...............................................................32 Hình 2.14: Biểu đồ tuần tự Quản lý đăng xuất .........................................................33 Hình3.1: Giao diện trang web. ..................................................................................34 Hình3.2: Giao diện quản lý nhân viên ......................................................................35 Hình 3.3: Giao diện đăng ký nhân viên. ...................................................................35 Hình 3.4: Giao diện các loại sản phẩm .....................................................................36 Hình 3.5: Giao diện quản lý sản phẩm ......................................................................36 Hinh 3.6 : Giao diện thêm sản phẩm .........................................................................37 1 Phần 1. MỞ ĐẦU 1.1. Lý do chọn đề tài Sự phát triển của công nghệ thông tin và việc ứng dụng công nghệ thông tin trong các lĩnh vực của đời sống, kinh tế, xã hội trong nhiều năm qua đặc biệt là trong thương mại đã thôi thúc các doanh nghiệp có sự đầu tư lớn vào trong lĩnh vực thương mại điện tử. Sự tiện ích luôn đặt lên hàng đầu nên giao diện và nội dung của trang web phải thật nổi bật có thể thu hút được khách hang. Một số trang web truyền thông hiện nay chủ yếu sử dụng nhiều trang web dưới dạng mã HTML, hầu như chúng không có liên kết nào giữa hai yêu cầu khác nhau, do đó việc xử lý hay load trang sẽ lâu hơn. Trong khi đó đối với Single Page Application chỉ với lần yêu cầu đầu tiên thì hệ thống sẽ trả về tất cả code xử lý cũng như code hiển thị của toàn bộ trang web, và người dùng chỉ cần yêu cầu những phần mình cần, giúp rút ngắn việc tải trang, trải nghiệm các hiệu ứng của trang web, quá trình thao tác dữ liệu không khác gì với ứng dụng desktop. Chính vì những lý do trên, tôi đã chọn đề tài “xây dựng website bán điện thoại di động” để làm luận văn tốt nghiệp. 1.2. Mục đích nghiên cứu: - Quản lý các thong tin khách hàng, ban quan trị. - Đưa ra các sản phẩm điện thoại di đọng đa dang và hợp túi tiền. - Cung cấp cho khách hàng những cập nhật mới nhất về sản phẩm và giá cả. - Đưa ra được các thống kê, báo cáo, chính xác vền số lượng sản phẩm và khách hàng. 1.3. Đối tượng và phạm vi nghiên cứu: - Các kỹ thuật Single Page Application. - Sử dụng Laravel Framework trong xây dựng Website Single Page Application. 1.4. Phương pháp nghiên cứu: - Thu thập các yêu cầu từ phia người dùng. - Phân tích thiết kế hệ thống theo yêu cầu của người dung. - Nghiên cứu các công cụ xây dựng hệ thống. 2 1.5. Lịch sử nghiên cứu Với vấn đề về AngularJS thì cũng đã được nhiều tác giả phân tích, nghiên cứu theo nhiều hướng khác nhau. 1.6. Đóng góp của đề tài Đề tài được nghiên cứu nhằm trình bày những kiến thức cơ bản và tổng quan về công nghệ Laravel. Xây dựng website bán điện thoại di động bằng cách áp dụng Laravel Framework. 1.7. Cấu trúc của khóa luận - Lời cảm ơn. - Mục lục . - Danh mục các ký hiệu, các chữ viết tắt. - Danh mục các hình vẽ, đồ thị. 3 PHẦN 2. NỘI DUNG NGHIÊN CỨU CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1.1. Tổng quan về Laravel Framework. 1.1.1. Khái niệm Laravel Framework. Laravel là một cấu trúc cung cấp cho người dùng khả năng lựa chọn và tạo ra một chương trình trên đó. Framework giúp tìm ra cách bạn định hình phần mềm của mình và kết nối phần mềm với Giao diện chương trình ứng dụng (API) khác nhau. Framework là một tập hợp các class giúp các nhà phát triển làm việc được dễ dàng hơn. Ví dụ điển hình là khi nhà phát triển chọn ẩn một số Hypertext Transfer Protocol(HTTP) phức tạp hoặc thêm các chức năng thiết yếu. Laravel là một PHP framework, có mã nguồn mở và miễn phí, được xây dựng nhằm hỗ trợ phát triển các phần mềm, ứng dụng, theo kiến trúc MVC. Hiện nay, Laravel đang là PHP framework phổ biến nhất và tốt nhất. 1.1.2. Lợi ích của việc sử dụng Laravel Framework. - Bắt đầu dễ dàng: Lý do đầu tiên phải kể đến chính việc Laravel có thể sử dụng cực dễ dàng cho người mới bắt đầu, kể cả khi bạn chỉ biết sơ về PHP, bạn vẫn có khả năng phát triển 1 website với 5 trang trong vòng vài giờ. - Có mã nguồn mở : Framework Laravel với mã nguồn mở miễn phí, cho phép bạn xây dựng ứng dụng web lớn và phức tạp một cách nhanh chóng, dễ dàng. Tất cả điều bạn cần làm ở đây là cài đặt PHP, cộng với một trình soạn thảo văn bản để bắt đầu. - Hỗ trợ cộng đồng : Trường hợp bạn mắc kẹt với những bug khó nhằn, nhưng có người đã trải qua và hướng dẫn bạn thì không còn gì tuyệt hơn. Laravel có một hệ thống thư viện hỗ trợ vô cùng lớn và mạnh hơn hẳn các Framework khác. Nếu bạn report lỗi hoặc vi phạm bảo mật trong Framework, phản hồi của cộng đồng sẽ rất nhanh chóng. - Theo dõi MVC : Cấu trúc MVC và lập trình hướng đối tượng OOP vẫn được giữ lại trong Framework Laravel, giúp cung cấp tài liệu tốt hơn, và tăng hiệu suất hơn. 4 - Được xây dựng dựa trên những Framework hiệu quả nhất : Vì ra đời muộn nên Laravel được thừa hưởng những ưu điểm và thế mạnh của Framework khác, khi có phần route cực mạnh. Ví dụ điện hình là Laravel sử dụng một số thành phần tốt nhất của Symfony. - Di chuyển Database dễ dàng : Di chuyển Database là một trong những tính năng trọng yếu của Laravel. Nó cho phép bạn duy trì cấu trúc cơ sở dữ liệu ứng dụng mà không nhất thiết phải tạo lại. Di chuyển Database còn cho phép bạn viết mã PHP để kiểm soát Database, thay vì sử dụng SQL. Nó còn cho phép bạn khôi phục những thay đổi gần đây nhất trong Database. - Tính năng bảo mật hoàn thiện : Ứng dụng của bạn sẽ an toàn khi dùng Framework Laravel. Kỹ thuật ORM của Laravel sử dụng PDO, chống chèn SOL. Ngoài ra, tính năng bảo vệ crsf của Laravel giúp ngăn chặn giả mạo từ yêu cầu trang chéo. Đó là cú pháp tự động thoát bất kì HTML nào đang được truyền qua các tham số xem, nhằm ngăn chặn kịch bản chéo trên trang web. Điều bạn cần thực hiện ở đây là sử dụng các thành phần thích hợp của khuôn khổ. Với 7 lợi ích tuyệt vời như thế thì sẽ là một mất mát lớn nếu bạn không sử dụng Framework Laravel này. Dưới 5 đây, HYBRID TECHNOLOGIES sẽ chỉ bạn cách cài đặt phiên bản mới nhất – Laravel 5.8 trong vòng 3 phút. 1.2. Tổng quan MySQL. 1.2.1. Giới thiệu về MySQL. MySQL là hệ quản trị cơ sở dữ liệu mã nguồn mở miễn phí nằm trong nhóm LAMP (Linux – Apache -MySQL – PHP) >< Microsoft (Windows, IIS, SQL Server, ASPASP.NET),vì MySQL được tích hợp sử dụng chung với apache, PHP nên nó phổ biến nhất thế giới. Vì MySQL ổn định và dễ sử dụng(đối với tui thì ko chắc, 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ì được nhiều người hỗ trợ mã nguồn mở mà) và Mysql cũng có cùng một cách truy xuất và mã lệnh tương tự với ngôn ngữ SQL chính vì thế nên MySQL được sử dụng và hỗ trợ của những lập trình viên yêu thích mã nguồn mở. Nhưng Mysql không bao quát toàn bộ những câu truy vấn cao cấp như SQL Server. Vì vậy Mysql chỉ đáp ứng việc truy xuất đơn giản trong quá trình vận hành của website, thích hợp cho các ứng dụng có truy cập CSDL trên internet và có thể giải quyết hầu hết các bài toán trong PHP, Perl. MySQL miễn phí hoàn toàn cho nên bạn có thể tải về MySQL từ trang chủ. Nó có nhiều phiên bản cho các hệ điều hành khác nhau: phiên bản Win32 cho các hệ điều hành dòng Windows, Linux, MacOSX, Unix, FreeBSD, NetBSD, Novell NetWare, SGI Irix, Solaris, SunOS.. 6 MySQL là một trong những ví dụ rất cơ bản về Hệ Quản trị Cơ sở dữ liệu quan hệ sử dụng Ngôn ngữ truy vấn có cấu trúc (SQL). 1.2.2. Đặc điểm. MySQL là một phần mềm quản trị CSDL dạng server-based (gần tương đương với SQL Server của Microsoft). MySQL quản lý dữ liệu thông qua các CSDL, mỗi CSDL có thể có nhiều bảng quan hệ chứa dữ liệu. MySQL có cơ chế phân quyền người sử dụng riêng, mỗi người dùng có thể được quản lý một hoặc nhiều CSDL khác nhau, mỗi người dùng có một tên truy cập (user name) và mật khẩu tương ứng để truy xuất đến CSDL. MySQL là 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. MySQL server hoạt động trong các hệ thống nhúng hoặc clientserver. 1.2.3. Tạo cơ sở dữ liệu và người dụng. ❖ Kết nối và tạo CSDL Để kết nối cơ sở dữ liệu ta có thể thực hiện theo hai cách: - Kết nối và tạo CSDL bằng Command line - Kết nối và tạo CSDL bằng giao diện đồ họa: MySQL Administrator hoặc phpmyadmin ❖ Quản lý người dùng - Để đăng nhập vào MySQL ta có thể sử dụng user là root và pass là rông. - Ngoài tài khoản này ta có thể tạo thêm các tài khoản cho người dùng với các users và pass khác nhau. ❖ Cấp quyền cho người dùng - Với quyền root ta có thể thực hiện mọi thao tác trên CSDL: select, update, insert, delete, ... - Tuy nhiên, khi tạo quyền người dùng ta cũng có thể hạn chế bớt một số quyền nhất định nào đó. 7 1.2.4. Các kiểu dữ liệu trong MySQL. Việc xác định đúng kiểu dữ liệu của các trường trong một bảng rất quan trọng đối với việc tối ưu hóa cơ sở dữ liệu của bạn. Bạn chỉ nên sử dụng kiểu dữ liệu và kích cỡ của trường thực sự cần sử dụng. Ví dụ: không định nghĩa trường rộng 10 ký tự, nếu bạn biết rằng chỉ sử dụng 2 ký tự. ❖ Kiểu dữ liệu trong MySQL có thể được chia thành 3 kiểu như sau: Numeric Date and Time Các kiểu chuỗi - Kiểu dữ liệu Numeric MySQL sử dụng tất cả các loại dữ liệu số ANSI SQL tiêu chuẩn, vì vậy nếu bạn đã từng tiếp cận với một hệ thống cơ sở dữ liệu khác, kiểu dữ liệu numeric tương tự như vậy. Với rất nhiều dạng dữ liệu của number thì theo mình thường khi lập trình web, chúng ta thường sử dụng kiểu dữ liệu là int.Nên nếu cứ có cột là số, thì lựa chọn kiểu int là phù hợp nhé.Những kiểu dữ liệu còn lại cũng ít dùng.Tuy nhiên khá ít kh sử dụng. - Kiểu dữ liệu Date và Time trong MySQL - Dạng dữ liệu String (Chuỗi hay còn gọi là text) Ngoài các kiểu dữ liệu số hoặc kiểu dữ liệu date và time, thì còn một kiểu dữ liệu mà bạn thường sử dụng nhất trong MySQL là kiểu dữ liệu chuỗi. Có rấy nhiều kiểu dữ liệu dạng string, tuy nhiên theo kinh nghiệm của mình thường chúng ta sử dụng 2 dạng phổ biên nhất : 1.Vachar 2.Text 1.2.5. Các câu lệnh SQL. a. Creat Table: Dùng để tạo bảng trong CSDL Cú pháp: CREATE TABLE tenbang(cot1 kieudulieu,cot2 kieudulieu,cot3 kieudulieu,..cotN kieudulieu,PRIMARY KEY( mot hoac nhieu cot )); 8 b. Alter Table: Sửa đổi cấu trúc 1 bảng chú ý có thể gây xung đột giữa thông tin đang có trong bảng và thuộc tính mới sửa lại. Cú pháp: ALTER TABLE tenbang {ADDDROPMODIFY} tencot {kieudulieu}; c. Select: Dùng để chọn dữ liệu từ cơ sở dữ liệu. Cú pháp: o Cơ bản: `SELECT cot1, cot2....cotN FROM tenbang;` o Loại bỏ giá trị trùng lặp: `SELECT DISTINCT cot1, cot2....cotN FROM tenbang;` o Kết hợp mệnh đề điều kiện WHERE: `SELECT cot1, cot2....cotN FROM tenbang WHERE DIEUKIEN;` o Kết hợp mệnh đề IN: `SELECT cot1, cot2....cotN FROM tenbang WHERE tencot IN (gtri-1, gtri-2,...gtri-N);` o Kết hợp mệnh đề BETWEEN: `SELECT cot1, cot2....cotN FROM tenbang WHERE tencot BETWEEN gtri-1 AND gtri-2;` o Kết hợp mệnh đề LIKE: `SELECT cot1, cot2....cotN FROM tenbang WHERE tencot LIKE { PATTERN };` o Kết hợp mệnh đề ORDER BY: 9 SELECT cot1, cot2....cotN FROM tenbang WHERE DIEUKIEN ORDER BY tencot {ASCDESC};` o Kết hợp mệnh đề GROUP BY: `SELECT SUM(tencot) FROM tenbang WHERE DIEUKIEN GROUP BY tencot;` o Kết hợp mệnh đề COUNT: `SELECT COUNT(tencot) FROM tenbang WHERE DIEUKIEN;` o Kết hợp mệnh đề Having: `SELECT SUM(tencot) FROM tenbang WHERE DIEUKIEN GROUP BY tencot HAVING (dieu kien la ham so hoc);` d. Insert: Chèn thêm 1 bản ghi vào trong bảng Cú pháp: `INSERT INTO tenbang( cot1, cot2....cotN) VALUES ( giatri1, giatri2....giatriN);` e. Update: Sửa thông tin 1 bản ghi đã có trong bảng Cú pháp: `UPDATE tenbang SET cot1 = giatri1, cot2 = giatri2....cotN=giatriN WHERE DIEUKIEN ;` 10 f. Delete: Xóa 1 bản ghi đã có trong bảng: Cú pháp: DELETE FROM tenbang WHERE {DIEUKIEN}; g. Drop Table: Xóa 1 bảng trong CSDL Cú pháp: ` DROP TABLE tenbang` 1.2.6. Các hàm trong MySQL. Dưới đây liệt kê tất cả các hàm MySQl quan trọng. Mỗi hàm đều được giải thích chi tiết và có ví dụ phù hợp. Hàm COUNT trong MySQL : Hàm tập hợp COUNT trong MySQL được sử dụng để đếm số hàng trong một bảng dữ liệu. Hàm MAX trong MySQL : Hàm tập hợp MAX trong MySQL cho phép chúng ta lựa chọn giá trị lớn nhất (tối đa) trong một cột cụ thể. Hàm MIN trong MySQL : Hàm tập hợp MIN trong MySQL cho phép chúng ta lựa chọn giá trị nhỏ nhất (tối thiểu) trong một cột cụ thể. Hàm AVG trong MySQL : Hàm tập hợp AVG trong MySQL cho phép chúng ta lựa chọn giá trị trung bình trong một cột cụ thể. Hàm SUM trong MySQL : Hàm tập hợp AVG trong MySQL cho phép chúng ta lựa chọn giá trị trung bình trong một cột cụ thể. Hàm SQRT trong MySQL : Được sử dụng để tính căn bậc hai của một số đã cho. Hàm RAND trong MySQL : Được sử dụng để tạo một số ngẫu nhiên bởi sử dụng lệnh trong MySQL. Hàm CONCAT trong MySQL : Được sử dụng để nối bất kỳ chuỗi nào trong bất kỳ lệnh MySQL nào. Hàm xử lý DATE và Time trong MySQL : Danh sách đầy đủ các hàm liên quan tới Date và Time trong MySQL. 11 Hàm xử lý số trong MySQL : Danh sách đầy đủ các hàm cần thiết để thao tác với số trong MySQL. Hàm xử lý chuỗi trong MySQL : Danh sách đầy đủ các hàm cần thiết để thao tác với chuỗi trong MySQL. 1.2.7. Tại sao sử dụng MySQL Server. - Khả năng mở rộng và tính linh hoạt. MySQL cho phép người dùng mở rộng và có thể tùy chỉnh để thay đổi linh hoạt cấu trúc bên trong. Máy chủ cơ sở dữ liệu MySQL đáp ứng nhiều tính năng linh hoạt, nó có sức chứa để xử lý các ứng dụng được nhúng sâu với 1MB dung lượng để chạy kho dữ liệu khổng lồ lên đến hàng terabytes thông tin. Đặc tính đáng chú ý của MySQL là sự linh hoạt về flatform với tất cả các phiên bản của Windows, Unix và Linux đang được hỗ trợ. Và đương nhiên, tính chất mã nguồn mở của MySQL cho phép tùy biến theo ý muốn để thêm các yêu cầu phù hợp cho database server. - Hiệu năng cao. Với kiến trúc storage-engine cho phép các chuyên gia cơ sở dữ liệu cấu hình máy chủ cơ sở dữ liệu MySQL đặc trưng cho các ứng dụng chuyên biệt. Dù ứng dụng là website dung lượng lớn phục vụ hàng triệu ngườingày hay hệ thống xử lý 12 giao dịch tốc độ cao thì MySQL đều đáp ứng được khả năng xử lý khắt khe của mọi hệ thống. Với những tiện ích tải tốc độ cao, cơ chế xử lý nâng cao khác và đặc biệt bộ nhớ caches, MySQL đưa ra tất cả nhưng tính năng cần có cho hệ thống doanh nghiệp khó tính hiện nay. - Tính sẵn sàng cao. MySQL đảm bảo sự tin cậy và có thể sử dụng ngay. MySQL đưa ra nhiều tùy chọn có thể “mì ăn liền” ngay từ cấu hình tái tạo chủtớ tốc độ cao, để các nhà phân phối thứ 3 có thể đưa ra những điều hướng có thể dùng ngay duy nhất cho server cơ sở dữ liệu MySQL. - Hỗ trợ giao dịch mạnh mẽ. MySQL đưa ra một trong số những engine giao dịch cơ sở dữ liệu tốt nhất trên thị trường. Các đặc trưng bao gôm, khóa mức dòng không hạn chế, hỗ trợ giao dịch ACID hoàn thiện, khả năng giao dịch được phân loại và hỗ trợ giao dịch đa dạng (multi-version) mà người đọc không bao giờ cản trở cho người viết và ngược lại. Dữ liệu được đảm bảo trong su...
NỘI DUNG NGHIÊN CỨU
Laravel là một cấu trúc cung cấp cho người dùng khả năng lựa chọn và tạo ra một chương trình trên đó Framework giúp tìm ra cách bạn định hình phần mềm của mình và kết nối phần mềm với Giao diện chương trình ứng dụng (API) khác nhau Framework là một tập hợp các class giúp các nhà phát triển làm việc được dễ dàng hơn Ví dụ điển hình là khi nhà phát triển chọn ẩn một số Hypertext Transfer Protocol(HTTP) phức tạp hoặc thêm các chức năng thiết yếu
Laravel là một PHP framework, có mã nguồn mở và miễn phí, được xây dựng nhằm hỗ trợ phát triển các phần mềm, ứng dụng, theo kiến trúc MVC Hiện nay, Laravel đang là PHP framework phổ biến nhất và tốt nhất
1.1.2 Lợi ích của việc sử dụng Laravel Framework
- Bắt đầu dễ dàng: Lý do đầu tiên phải kể đến chính việc Laravel có thể sử dụng cực dễ dàng cho người mới bắt đầu, kể cả khi bạn chỉ biết sơ về PHP, bạn vẫn có khả năng phát triển 1 website với 5 trang trong vòng vài giờ
- Có mã nguồn mở : Framework Laravel với mã nguồn mở miễn phí, cho phép bạn xây dựng ứng dụng web lớn và phức tạp một cách nhanh chóng, dễ dàng Tất cả điều bạn cần làm ở đây là cài đặt PHP, cộng với một trình soạn thảo văn bản để bắt đầu
- Hỗ trợ cộng đồng : Trường hợp bạn mắc kẹt với những bug khó nhằn, nhưng có người đã trải qua và hướng dẫn bạn thì không còn gì tuyệt hơn Laravel có một hệ thống thư viện hỗ trợ vô cùng lớn và mạnh hơn hẳn các Framework khác Nếu bạn report lỗi hoặc vi phạm bảo mật trong Framework, phản hồi của cộng đồng sẽ rất nhanh chóng
- Theo dõi MVC : Cấu trúc MVC và lập trình hướng đối tượng OOP vẫn được giữ lại trong Framework Laravel, giúp cung cấp tài liệu tốt hơn, và tăng hiệu suất hơn.
CƠ SỞ LÝ THUYẾT
Tổng quan về Laravel Framework
Laravel là một cấu trúc cung cấp cho người dùng khả năng lựa chọn và tạo ra một chương trình trên đó Framework giúp tìm ra cách bạn định hình phần mềm của mình và kết nối phần mềm với Giao diện chương trình ứng dụng (API) khác nhau Framework là một tập hợp các class giúp các nhà phát triển làm việc được dễ dàng hơn Ví dụ điển hình là khi nhà phát triển chọn ẩn một số Hypertext Transfer Protocol(HTTP) phức tạp hoặc thêm các chức năng thiết yếu
Laravel là một PHP framework, có mã nguồn mở và miễn phí, được xây dựng nhằm hỗ trợ phát triển các phần mềm, ứng dụng, theo kiến trúc MVC Hiện nay, Laravel đang là PHP framework phổ biến nhất và tốt nhất
1.1.2 Lợi ích của việc sử dụng Laravel Framework
- Bắt đầu dễ dàng: Lý do đầu tiên phải kể đến chính việc Laravel có thể sử dụng cực dễ dàng cho người mới bắt đầu, kể cả khi bạn chỉ biết sơ về PHP, bạn vẫn có khả năng phát triển 1 website với 5 trang trong vòng vài giờ
- Có mã nguồn mở : Framework Laravel với mã nguồn mở miễn phí, cho phép bạn xây dựng ứng dụng web lớn và phức tạp một cách nhanh chóng, dễ dàng Tất cả điều bạn cần làm ở đây là cài đặt PHP, cộng với một trình soạn thảo văn bản để bắt đầu
- Hỗ trợ cộng đồng : Trường hợp bạn mắc kẹt với những bug khó nhằn, nhưng có người đã trải qua và hướng dẫn bạn thì không còn gì tuyệt hơn Laravel có một hệ thống thư viện hỗ trợ vô cùng lớn và mạnh hơn hẳn các Framework khác Nếu bạn report lỗi hoặc vi phạm bảo mật trong Framework, phản hồi của cộng đồng sẽ rất nhanh chóng
- Theo dõi MVC : Cấu trúc MVC và lập trình hướng đối tượng OOP vẫn được giữ lại trong Framework Laravel, giúp cung cấp tài liệu tốt hơn, và tăng hiệu suất hơn
- Được xây dựng dựa trên những Framework hiệu quả nhất : Vì ra đời muộn nên Laravel được thừa hưởng những ưu điểm và thế mạnh của Framework khác, khi có phần route cực mạnh Ví dụ điện hình là Laravel sử dụng một số thành phần tốt nhất của Symfony
- Di chuyển Database dễ dàng : Di chuyển Database là một trong những tính năng trọng yếu của Laravel Nó cho phép bạn duy trì cấu trúc cơ sở dữ liệu ứng dụng mà không nhất thiết phải tạo lại Di chuyển Database còn cho phép bạn viết mã PHP để kiểm soát Database, thay vì sử dụng SQL Nó còn cho phép bạn khôi phục những thay đổi gần đây nhất trong Database
- Tính năng bảo mật hoàn thiện : Ứng dụng của bạn sẽ an toàn khi dùng Framework Laravel Kỹ thuật ORM của Laravel sử dụng PDO, chống chèn SOL Ngoài ra, tính năng bảo vệ crsf của Laravel giúp ngăn chặn giả mạo từ yêu cầu trang chéo Đó là cú pháp tự động thoát bất kì HTML nào đang được truyền qua các tham số xem, nhằm ngăn chặn kịch bản chéo trên trang web Điều bạn cần thực hiện ở đây là sử dụng các thành phần thích hợp của khuôn khổ Với 7 lợi ích tuyệt vời như thế thì sẽ là một mất mát lớn nếu bạn không sử dụng Framework Laravel này Dưới
5 đây, HYBRID TECHNOLOGIES sẽ chỉ bạn cách cài đặt phiên bản mới nhất –
Tổng quan MySQL
MySQL là hệ quản trị cơ sở dữ liệu mã nguồn mở miễn phí nằm trong nhóm
LAMP (Linux – Apache -MySQL – PHP) >< Microsoft (Windows, IIS, SQL Server, ASP/ASP.NET),vì MySQL được tích hợp sử dụng chung với apache, PHP nên nó phổ biến nhất thế giới Vì MySQL ổn định và dễ sử dụng(đối với tui thì ko chắc, 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ì được nhiều người hỗ trợ mã nguồn mở mà) và Mysql cũng có cùng một cách truy xuất và mã lệnh tương tự với ngôn ngữ SQL chính vì thế nên MySQL được sử dụng và hỗ trợ của những lập trình viên yêu thích mã nguồn mở Nhưng Mysql không bao quát toàn bộ những câu truy vấn cao cấp như SQL Server Vì vậy Mysql chỉ đáp ứng việc truy xuất đơn giản trong quá trình vận hành của website, thích hợp cho các ứng dụng có truy cập CSDL trên internet và có thể giải quyết hầu hết các bài toán trong PHP, Perl MySQL miễn phí hoàn toàn cho nên bạn có thể tải về MySQL từ trang chủ
Nó có nhiều phiên bản cho các hệ điều hành khác nhau: phiên bản Win32 cho các hệ điều hành dòng Windows, Linux, MacOSX, Unix, FreeBSD, NetBSD, Novell NetWare, SGI Irix, Solaris, SunOS
MySQL là một trong những ví dụ rất cơ bản về Hệ Quản trị Cơ sở dữ liệu quan hệ sử dụng Ngôn ngữ truy vấn có cấu trúc (SQL)
MySQL là một phần mềm quản trị CSDL dạng server-based (gần tương đương với SQL Server của Microsoft) MySQL quản lý dữ liệu thông qua các CSDL, mỗi CSDL có thể có nhiều bảng quan hệ chứa dữ liệu MySQL có cơ chế phân quyền người sử dụng riêng, mỗi người dùng có thể được quản lý một hoặc nhiều CSDL khác nhau, mỗi người dùng có một tên truy cập (user name) và mật khẩu tương ứng để truy xuất đến CSDL
MySQL là 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
MySQL server hoạt động trong các hệ thống nhúng hoặc client/server
1.2.3 Tạo cơ sở dữ liệu và người dụng
❖ Kết nối và tạo CSDL Để kết nối cơ sở dữ liệu ta có thể thực hiện theo hai cách:
- Kết nối và tạo CSDL bằng Command line
- Kết nối và tạo CSDL bằng giao diện đồ họa: MySQL Administrator hoặc phpmyadmin
- Để đăng nhập vào MySQL ta có thể sử dụng user là root và pass là rông
- Ngoài tài khoản này ta có thể tạo thêm các tài khoản cho người dùng với các users và pass khác nhau
❖ Cấp quyền cho người dùng
- Với quyền root ta có thể thực hiện mọi thao tác trên CSDL: select, update, insert, delete,
- Tuy nhiên, khi tạo quyền người dùng ta cũng có thể hạn chế bớt một số quyền nhất định nào đó
1.2.4 Các kiểu dữ liệu trong MySQL
Việc xác định đúng kiểu dữ liệu của các trường trong một bảng rất quan trọng đối với việc tối ưu hóa cơ sở dữ liệu của bạn Bạn chỉ nên sử dụng kiểu dữ liệu và kích cỡ của trường thực sự cần sử dụng Ví dụ: không định nghĩa trường rộng 10 ký tự, nếu bạn biết rằng chỉ sử dụng 2 ký tự
❖ Kiểu dữ liệu trong MySQL có thể được chia thành 3 kiểu như sau:
MySQL sử dụng tất cả các loại dữ liệu số ANSI SQL tiêu chuẩn, vì vậy nếu bạn đã từng tiếp cận với một hệ thống cơ sở dữ liệu khác, kiểu dữ liệu numeric tương tự như vậy
Với rất nhiều dạng dữ liệu của number thì theo mình thường khi lập trình web, chúng ta thường sử dụng kiểu dữ liệu là int.Nên nếu cứ có cột là số, thì lựa chọn kiểu int là phù hợp nhé.Những kiểu dữ liệu còn lại cũng ít dùng.Tuy nhiên khá ít kh sử dụng
- Kiểu dữ liệu Date và Time trong MySQL
- Dạng dữ liệu String (Chuỗi hay còn gọi là text)
Ngoài các kiểu dữ liệu số hoặc kiểu dữ liệu date và time, thì còn một kiểu dữ liệu mà bạn thường sử dụng nhất trong MySQL là kiểu dữ liệu chuỗi
Có rấy nhiều kiểu dữ liệu dạng string, tuy nhiên theo kinh nghiệm của mình thường chúng ta sử dụng 2 dạng phổ biên nhất :
1.2.5 Các câu lệnh SQL a Creat Table:
• Dùng để tạo bảng trong CSDL
CREATE TABLE ten_bang(cot1 kieu_du_lieu,cot2 kieu_du_lieu,cot3 kieu_du_lieu, cotN kieu_du_lieu,PRIMARY KEY( mot hoac nhieu cot ));
• Sửa đổi cấu trúc 1 bảng chú ý có thể gây xung đột giữa thông tin đang có trong bảng và thuộc tính mới sửa lại
ALTER TABLE ten_bang {ADD|DROP|MODIFY} ten_cot {kieu_du_lieu}; c Select:
• Dùng để chọn dữ liệu từ cơ sở dữ liệu
FROM ten_bang;` o Loại bỏ giá trị trùng lặp:
`SELECT DISTINCT cot1, cot2 cotN
FROM ten_bang;` o Kết hợp mệnh đề điều kiện WHERE:
WHERE DIEU_KIEN;` o Kết hợp mệnh đề IN:
WHERE ten_cot IN (gtri-1, gtri-2, gtri-N);` o Kết hợp mệnh đề BETWEEN:
FROM ten_bang WHERE ten_cot BETWEEN gtri-1 AND gtri-2;` o Kết hợp mệnh đề LIKE:
WHERE ten_cot LIKE { PATTERN };` o Kết hợp mệnh đề ORDER BY:
ORDER BY ten_cot {ASC|DESC};` o Kết hợp mệnh đề GROUP BY:
GROUP BY ten_cot;` o Kết hợp mệnh đề COUNT:
WHERE DIEU_KIEN;` o Kết hợp mệnh đề Having:
HAVING (dieu kien la ham so hoc);` d Insert:
• Chèn thêm 1 bản ghi vào trong bảng
`INSERT INTO ten_bang( cot1, cot2 cotN) VALUES ( giatri1, giatri2 giatriN);` e Update:
• Sửa thông tin 1 bản ghi đã có trong bảng
SET cot1 = giatri1, cot2 = giatri2 cotN=giatriN [ WHERE DIEU_KIEN ];`
• Xóa 1 bản ghi đã có trong bảng:
DELETE FROM ten_bang WHERE {DIEU_KIEN}; g Drop Table:
Dưới đây liệt kê tất cả các hàm MySQl quan trọng Mỗi hàm đều được giải thích chi tiết và có ví dụ phù hợp
• Hàm COUNT trong MySQL : Hàm tập hợp COUNT trong MySQL được sử dụng để đếm số hàng trong một bảng dữ liệu
• Hàm MAX trong MySQL : Hàm tập hợp MAX trong MySQL cho phép chúng ta lựa chọn giá trị lớn nhất (tối đa) trong một cột cụ thể
• Hàm MIN trong MySQL : Hàm tập hợp MIN trong MySQL cho phép chúng ta lựa chọn giá trị nhỏ nhất (tối thiểu) trong một cột cụ thể
• Hàm AVG trong MySQL : Hàm tập hợp AVG trong MySQL cho phép chúng ta lựa chọn giá trị trung bình trong một cột cụ thể
• Hàm SUM trong MySQL : Hàm tập hợp AVG trong MySQL cho phép chúng ta lựa chọn giá trị trung bình trong một cột cụ thể
• Hàm SQRT trong MySQL : Được sử dụng để tính căn bậc hai của một số đã cho
• Hàm RAND trong MySQL : Được sử dụng để tạo một số ngẫu nhiên bởi sử dụng lệnh trong MySQL
• Hàm CONCAT trong MySQL : Được sử dụng để nối bất kỳ chuỗi nào trong bất kỳ lệnh MySQL nào
• Hàm xử lý DATE và Time trong MySQL : Danh sách đầy đủ các hàm liên quan tới Date và Time trong MySQL
• Hàm xử lý số trong MySQL : Danh sách đầy đủ các hàm cần thiết để thao tác với số trong MySQL
• Hàm xử lý chuỗi trong MySQL : Danh sách đầy đủ các hàm cần thiết để thao tác với chuỗi trong MySQL
1.2.7 Tại sao sử dụng MySQL Server
- Khả năng mở rộng và tính linh hoạt
MySQL cho phép người dùng mở rộng và có thể tùy chỉnh để thay đổi linh hoạt cấu trúc bên trong
Máy chủ cơ sở dữ liệu MySQL đáp ứng nhiều tính năng linh hoạt, nó có sức chứa để xử lý các ứng dụng được nhúng sâu với 1MB dung lượng để chạy kho dữ liệu khổng lồ lên đến hàng terabytes thông tin Đặc tính đáng chú ý của MySQL là sự linh hoạt về flatform với tất cả các phiên bản của Windows, Unix và Linux đang được hỗ trợ Và đương nhiên, tính chất mã nguồn mở của MySQL cho phép tùy biến theo ý muốn để thêm các yêu cầu phù hợp cho database server
Với kiến trúc storage-engine cho phép các chuyên gia cơ sở dữ liệu cấu hình máy chủ cơ sở dữ liệu MySQL đặc trưng cho các ứng dụng chuyên biệt Dù ứng dụng là website dung lượng lớn phục vụ hàng triệu người/ngày hay hệ thống xử lý
12 giao dịch tốc độ cao thì MySQL đều đáp ứng được khả năng xử lý khắt khe của mọi hệ thống Với những tiện ích tải tốc độ cao, cơ chế xử lý nâng cao khác và đặc biệt bộ nhớ caches, MySQL đưa ra tất cả nhưng tính năng cần có cho hệ thống doanh nghiệp khó tính hiện nay
MySQL đảm bảo sự tin cậy và có thể sử dụng ngay MySQL đưa ra nhiều tùy chọn có thể “mì ăn liền” ngay từ cấu hình tái tạo chủ/tớ tốc độ cao, để các nhà phân phối thứ 3 có thể đưa ra những điều hướng có thể dùng ngay duy nhất cho server cơ sở dữ liệu MySQL
- Hỗ trợ giao dịch mạnh mẽ
MySQL đưa ra một trong số những engine giao dịch cơ sở dữ liệu tốt nhất trên thị trường Các đặc trưng bao gôm, khóa mức dòng không hạn chế, hỗ trợ giao dịch ACID hoàn thiện, khả năng giao dịch được phân loại và hỗ trợ giao dịch đa dạng (multi-version) mà người đọc không bao giờ cản trở cho người viết và ngược lại Dữ liệu được đảm bảo trong suốt quá trình server có hiệu lực, các mức giao dịch độc lập được chuyên môn hóa, khi phát hiện có lỗi khóa chết ngay tức thì
- Điểm mạnh của Web và Data Warehouse
MySQL với điểm mạnh là cho phép xử lý ở tốc độ cao, hỗ trợ các tính năng chuyên dụng cho website
MySQL là nơi cho các website trao đổi thường xuyên bởi nó có engine xử lý tốc độ cao, khả năng chèn dữ liệu cực nhanh và hỗ trợ mạnh các chức năng chuyên dụng của web Các tính năng này cũng được sử dụng cho môi trường lưu trữ dữ liệu mà MySQL tăng cường đến hàng terabyte cho các server đơn Những tính năng khác như chỉ số băm, bảng nhớ chính, bảng lưu trữ và cây B đã được gói lại để giảm các yêu cầu lưu trữ tới 80% Vì thế, MySQL là sự chọn lựa tốt nhất cho cả ứng dụng web và các ứng dụng của doanh nghiệp
- Bảo vệ dữ liệu mạnh mẽ
Khảo sát bài toán
Khảo sát thực tế từ các cửa hàng điện thoại di động trên thị trường - thấy:
Phần lớn các cửa hàng đều chưa có phần mềm quản lý cũng như chưa có một Website bán hàng online nào, các phương pháp quản lý hầu như đều thực hiện một cách thủ công chủ yếu bằng ghi chép sổ sách, Thao tác thủ công, mang lại hiệu quả không có tính chính xác cao trong công tác quản lý hoạt động kinh doanh Các phương pháp quản lý thông thường vì quá đơn giản, sơ sài nên khả năng lưu trữ bị giới hạn rất nhiều, lại khó tìm kiếm khi cần gấp, gây cản trở quá trình kinh doanh của chủ cửa hàng
PHÂN TÍCH VÀ THIẾT KẾ HÊ THỐNG
Phân tích hệ thống
2.2.1 Xác định các Actor và vai trò của Actor
- Khách hàng (Customer): Tìm hàng, xem hàng, đăng nhập, đặt hàng, đăng xuất, thanh toán
- Nhân viên bán hàng (Sale): Đăng nhập, tìm kiếm, quản lý sản phẩm, quản lý giảm giá, quản lý hóa đơn, xuất hóa đơn, quản lý comment, quản lý thanh toán
- Nhân viên viết bài (Writer): Quản lý tin tức, quản lý liên hệ, quản lý hình ảnh, quản lý thông tin cửa hàng, quản lý ưu đãi, quản lý logo, quản lý comment, quản lý thiết bị
- Admin: Quản lý được tất cả các chức năng trong hệ thống
2.2.2 Sơ đồ Use Case a User Case
Gồm các User Case sau:
- UC - Quản lý bán hàng
- UC - Quản lý sản phẩm
- UC - Báo cáo thống kê
- UC - Quản lý khách hàng
- UC - Quản lý người dùng
- UC - Quản lý quyền người dùng
- UC - Quản lý hóa đơn
- UC - Quản lý tin tức
- UC - Quản lý liên hệ
- UC - Quản lý giảm giá
- UC - Quản lý ưu đãi
- UC - Quản lý bình luận
20 b Xác định mối quan hệ giữa Actor va UC
❖ Quan hệ giữa Actor admin với các UC
UC - Quan ly Nguoi dung
UC - Quan ly quyen nguoi dung
UC - Quan ly san pham
UC - Quan ly nha san xuat
UC - Quan ly hoa don
UC - Quan ly ban hang
UC - Quan ly tin tuc
UC - Quan ly giam gia
UC - Quan ly uu dai
UC - Quan ly binh luan
Hình 2.1 : Quan hệ giữa Actor với UC
❖ Quna lý Actor nhân viên bán hang với các UC
UC - Quan ly san pham
UC - Quan ly hoa don
UC - Quan ly ban hang
UC - Quan ly giam gia
UC - Quan ly uu dai
UC - Quan ly binh luan
Hình 2.2 : Quan hệ giữa Actor nhân viên bán hang với các UC
❖ Quan hệ giữa Actor nhân viên viết bài với các UC
UC - Quan ly binh luan
UC - Quan ly tin tuc
UC - Quan ly lien he
UC - Quan ly uu dai
Hình 2.3 : Quan hệ giữa Actor nhân viên viết bài với các UC
❖ Quan hệ giữa Actor Khách hàng với các UC
Hình 2.4 : Quan hệ giữa Actor Khách hàng với các UC
22 c Xác định mối quan hệ giữa UC và UC
Hình 2.5 : Xác định mối quan hệ giữa UC và UC d Sơ đồ User Case tổng quát
UC - Quan ly quyen nguoi dung
UC - Quan ly nha san xuat
UC - Quan ly nguoi dung
UC - Quan ly ban hang
UC - Quan ly giam gia
UC - Quan ly tin tuc UC-Dang nhap
UC - Quan ly lien he
UC - Quan ly hoa don
UC - Quan ly san pham
UC - Quan ly binh luan
UC - Quan ly uu dai
Hình 2.6: Sơ đồ User case tổng quất
23 e Đặc tả các User Case có trong hệ thống
➢ Tác nhân chính: Quản lý, người bán hàng, người viết bài, khách hàng
➢ Đặc tả: người dùng đăng nhập vào hệ thống với vai trò khác nhau: Admin thì thực hiện quản trị, khách hàng thì đăng nhập vào trang bán hàng để thực hiện chức năng đặt hàng,…
• B1: Chọn chức năng đăng nhập vào hệ thống
• B2: Hệ thống hiển thị form đăng nhập và yêu cầu người dùng nhập Username và Password
• B3: Người dùng nhập Usename và password sau đó nhấn đăng nhập
• B4: Hệ thống kiểm tra thông tin nhân viên vừa nhập và xác nhận thông tin hợp lệ
• B5.1: Hệ thống thông báo đăng nhập thành công
• B5.2: Hệ thống sẽ báo lỗi nếu tài khoản không đúng và đăng nhập lại hoặc hủy đăng nhập
• B6: Người dùng thoát khỏi chức năng đăng nhập
❖ UC - Quản lý bán hàng
➢ Tác nhân: Quản lý, nhân viên bán hàng, khách hàng
➢ Đặc tả: Quản lý quá trình bán hàng, xem hàng, đặt hàng
• B1: Khách hàng truy cập vào hệ thống
• B2: Khách hàng tìm kiếm hàng hóa cần tìm
• B3: Khách hàng xem thông tin chi tiết hàng hóa
• B4: Khách hàng đặt mua hàng hóa
• B5: Khách hàng kiểm tra hàng trong giỏ hàng
• B6: Khách hàng thêm, xóa, sửa hàng hóa trong giỏ hàng
• B7: Khách hàng nhập thông tin đặt hàng
• B8: Khách hàng tiến hành đặt hàng
➢ Tác nhân chính: Quản lý
➢ Đặc tả: Báo cáo thống kê của tất cả các đơn hàng được đặt
• B1: Đăng nhập vào trang quản lý với quyền đã quy định
• B2: Chọn ngày 7 tháng 7 năm bắt đầu và ngày 7 tháng 7 năm kết thúc để thống kê
• B3: Hệ thống sẽ hiển thị đơn hàng trong khoảng thời gian được chọn nếu có và thông báo không có đơn hàng nếu trong khoảng thời gian đó không có đơn hàng nào được đặt
❖ UC - Quản lý giảm giá
➢ Tác nhân chính: Quản lý, người bán hàng
➢ Đặc tả: Quản lý giảm giá, gồm mã giảm giá theo mức phần trăm giảm giá, có thể tạo, sửa, xóa mức giảm giá
• B1: Đăng nhập vào trang quản lý với quyền đã quy định
• B2: Có thể xem danh sách các loại giảm giá
• B3: Thêm giảm giá mới, kiểm tra phần trăm giảm giá đã tồn tại chưa, nếu chưa thì tạo mới, nếu rồi thì quay tạo lại
• B4: Xóa một giảm giá, tìm theo Id để xóa giảm giá, nếu có id thì xóa, ngược lại thực hiện xóa lại hoặc thoát khỏi quá trình
• B5: Sửa một giảm giá, tìm theo Id để sửa giảm giá, nếu có id thì sửa, ngược lại thực hiện sửa lại hoặc thoát khỏi quá trình
❖ UC - Quản lý người dung
➢ Tác nhân chính: Quản lý
➢ Đặc tả: Quản lý thành viên người dùng trong hệ thống, cũng như khách hàng đăng ký thành viên
• B1: Đăng nhập vào trang quản lý với quyền đã quy định
• B2: Hiển thị danh sách tất cả người dùng
• B3: Xem chi tiết thông tin người dùng
• B4: Thêm mới người dùng: Thêm thông tin vào các trường yêu cầu, hệ thống kiểm tra thông tin dùng và kiểm tra thông tin như email, tên đăng nhập đã tồn tại hay chưa, nếu nhập đúng thì cho tạo tài khoản và ngược lại thì bao lõi
❖ UC - Quản lý nhà sản xuất
➢ Tác nhân chính: Quản lý, nhân viên bán hàng
➢ Đặc tả: Quản lý nhà sản xuất của sản phẩm bao gồm : Mã nhà sản xuất, tên nhà sản xuất,
• B1: Đăng nhập vào trang quản lý với quyền đã quy định
• B2: Hiển thị danh sách nhà sản xuất
• B3: Thêm một nhà sản xuất mới: Thêm thông tin vào các trường yêu cầu, hệ thống kiểm tra thông tin đúng thì cho tạo và ngược lại thì báo lõi
❖ ÚC - Quản lý hóa đơn
➢ Tác nhân chính: Quản lý, nhân viên bán hàng
➢ Đặc tả: Xem lại thông tin đặt hàng bao gồm: Số lượng, Tên sản phẩm, ngày đặt hàng, tổng giá,
• B1: Hiển thị danh sách thông tin sản phẩm mà khách hàng đã đặt
• B2: Người dùng có thể xuất hóa đơn sang PDF
• B3: Người dùng thay đổi trạng thái thanh toán khi khách hàng đã thanh toán thành công
❖ UC - Quản lý sản phẩm
➢ Tác nhân chính: Quản lý, nhân viên bán hàng
➢ Đặc tả: Quản lý sản phẩm, gồm mã sản phẩm, có thể thêm, sửa, xóa sản phẩm
• B1: Đăng nhập vào trang quản lý với quyền đã quy định
• B2: Có thể xem danh sách các sản phẩm
• B3: Thêm sản phẩm, kiểm tra thông tin, nếu sản phẩm chưa tốn tại thì thêm vào, ngược lại thực hiện lại kết thúc quá trình
• B4: Sửa sản phẩm, sửa theo id, kiểm tra id, nếu tồn tại thì sửa, ngược lại thực hiện lại, hoặc kết thúc quá trình
• B5: Xóa sản phẩm, xóa theo id và kết thúc quá trình
❖ UC - Quản lý ưu đãi
➢ Tác nhân chính: Quản lý, nhân viên bán hàng
➢ Đặc tả: Quản lý ưu đãi, gồm mã ưu đãi có thể tạo, sửa, xóa ưu đãi
• B1: Đăng nhập vào trang quản lý với quyền đã quy định
• B2: Có thể xem danh sách các loại ưu đãi
• B4: Xóa một ưu đãi, tìm theo Id để xóa ưu đãi, nếu có id thì xóa, ngược lại thực hiện xóa lại hoặc thoát khỏi quá trình
• B5: Sửa một ưu đãi, tìm theo Id để sửa ưu đãi, nếu có id thì sửa, ngược lại thực hiện sửa lại hoặc thoát khỏi quá trình
❖ ÚC - Quản lý tin tức
➢ Tác nhân chính: Quản lý, nhân viên bán hàng, nhân viên viết bai
➢ Đặc tả: Quản lý tin tức, gồm thông tin của tin tức, có thể thêm, sửa, xóa tin tức
➢ Điều kiện: Có sự thay đổi cho quá trình
• B1: Đăng nhập vào trang quản lý với quyền đã quy định
• B2: Có thể xem danh sách các tin tức đã có
• B3: Thêm tin tức, nhập đúng các trường theo yêu cầu Nếu nhập đúng thì hệ thống sẽ hiển thị thông báo thể thành công ngược lại sẽ báo lội và nhập lại hoặc thoát
• B4: Sửa tin tức, sửa theo id, kiểm tra id, nếu tồn tại thì sửa, ngược lại thực hiện lại, hoặc kết thúc quá trình
• B5: Xóa tin tức, xóa theo id và kết thúc quá trình
❖ UC – Quan lý liên hệ
➢ Tác nhân chính: Quản lý, nhân viên viết bài
➢ Đặc tả: Đọc liên hệ và gửi mail phản hồi khách hàng
• B1: Đăng nhập vào trang quản lý với quyền đã quy định
• B2: Có thể xem danh sách các liên hệ mà khách hàng gửi đến
• B3: Hệ thống sẽ thay đổi trạng thái nếu như người quản trị đã xem và ngược lại sẽ không thay thay đổi trạng thái nếu như người dùng chưa xem
➢ Tác nhân: Quản lý, nhân viên bán hàng, khách hàng
➢ Đặc tả: Khách hàng sau khi đặt hàng thì sẽ tiến hành thanh toán và người quản trị hệ thống tiến hành thay đổi trạng thái cho khách hàng
• B1: Yêu cầu thông tin đặt hàng từ khách hàng
• B2: Kiểm tra thông tin đặt hàng và thời hạn nhận hàng
• B3: Khác hàng thanh toán tiền
• B4: Quản lý tiến hành thanh toán
- Nhân viên ( Nhân viên bán hàng, nhân viên viết bài )
2.2.4 Biểu đồ tương tác a Biểu đồ tuần tự
❖ Biểu đồ tuần tự “UC – Đăng nhập”
: NV GD He Thong GD He Thong GD Dang Nhap GD Dang Nhap Xu Ly Dang
2: Goi GD dang nhap 3: Hien thi giao dien dang nhap 4: GD dang nhap
5: Nhap thong tin dang nhap
8.1: True : Hien thi dang nhap 9.1: Thong bao dang nhap thanh cong
8.2: False: Thong bao loi 9.2: Hien thi thong bao loi
Hình 2.7: Biểu đồ tuần tự “UC – Đăng nhập”
❖ Biểu đồ tuần tự “UC – Quan lý bán hàng
GD Gio Hang GD Form Dang Ky
GD Form Dang Ky Khach Hang
2: Danh sach phan bon co ban
5: Yeu cau xem thong tin SP
6: GD thong tin can tim
7: Yeu cau them, xem, sua phan bon can mua vao gio hang
8: Luu thong gio hang vao csdl 9: Thong bao hang hoa da duoc cap nhat vao gio hang
10: Khach hang dien thong tin vao form dat hang
11: Xu ly dang ky khach hang 13.1 True : dat hang thanh cong
12: Luu thong tin khach hang va gio hang vao csdl
14.1: Thong bao dat hang thanh cong
13.2: False: loi 15: Tra ve ket qua
14.2: Thong bao dat hang khong thanh cong
Hình 2.8 : Biểu đồ tuần tự “UC – Quan lý bán hàng
❖ Biểu đồ tuần tự “UC – Quan lý hàng hóa”
: NV GD He Thong GD He Thong GD Hang Hoa GD Hang Hoa Form Chinh
Form Chinh Sua Hang Hoa
2: Yeu cau giao dien chinh sua hang hoa
3: Yeu cau form chinh sua hang hoa
4: Truy van thong tin hang hoa 5: Tra thong tin hang hoa
6: Tra lai form chinh sua thong tin hang hoa 7: Tra ve thong tin hang hoa
8: Tra ve thong tin hang hoa
9.1: Them hang hoa 9.2: Chinh sua hang hoa 9.3: Xoa hang hoa
10: Xu ly chinh sua hang hoa
11: Luu thong tin chinh sua
12.1: True: Thong bao chinh sua thanh cong 12.2: False: Thong bao chinh sua khong thanh cong
Hình 2.9 : Biểu đồ tuần tự quản lý bán hàng
❖ Biểu đồ tuần tự “UC – Thanh toán”
: NV : NV GD HeThong GD HeThong GD Thanh Toan GD Thanh Toan 1: Yeu cau thanh toan
2: Yeu cau GD thanh toan 3: Tra ve GD thanh toan 4: Yeu cau thong tin dat hang tu khach hang
5: Tra cuu thong tin khach hang 6: Tra ve ket qua
9: Hoan tat qua trinh thanh toan cho khach hang
10: Luu thongtin da thanh toan vao csdl 11: Thong bao thanh toan thanh cong
12: Nhan hoa don va hang da dat
Hình 2.10 : Biểu đồ tuần tự “UC – Thanh toán”
❖ Biểu đồ tuần tự “UC – Thống kê”
: NV : NV GD Thong Ke GD Thong Ke Form Thong ke Form Thong ke Bang Thong Ke Bang Thong Ke CSDL CSDL 1: Dang nhap vao he thong
3: Chon chuc nang thong ke
4: Truy van thong tin thong ke 5: Tra lai ket qua thong ke 6: Hienthi bang thong ke
7: Tra ve thong ke thanh cong 8: Tra ve thong ke thanh cong
Hình 2.11 : Biểu đồ tuần tự “UC – Thống kê”
❖ Biểu đồ tuần tự “UC – Quản lý người dung
: Ad min GD He Thong GD He Thong GD Quan Ly
GD Quan Ly Nguoi Dung
Form Chinh Sua Nguoi Dung
Form Chinh Sua Nguoi Dung
2: Yeu cau giao dien quanly nguoi dung
3: Yeu cau form chinh sua nguoi dung
4: Truy van thong tin nguoi dung 5: Tra thong tin nguoi dung 6: Tra lai form chinh sua thong tin nguoi dung
7: Tra ve thong tin nguoi dung 8: Tra ve thong tin nguoi dung
9.1: Them nguoi dung 9.2: Chinh sua thong tin nguoi dung 9.3: Xoa nguoi dung
10: Xu ly cap nhat nguoi dung
11: Luu thong tin da cap nhat
12.1: True : Thong bao cap nhat thanh cong
12.2: False: thong bao cap nhat khong thanh cong Tra ve ket qua
Hình 2.12: Biểu đồ tuần tự Quản lý người dung
❖ Biểu đồ tuần tự “UC – Quản lý tin túc”
: NV GD He Thong GD He Thong GD Quan Ly
GD Quan Ly Nguoi Dung
Form Chinh Sua Nguoi Dung
Form Chinh Sua Nguoi Dung
2: Yeu cau giao dien quan ly tintuc
3: Yeu cau form chinh sua tin tuc
4: Truy van thong tin 5: Tra thong tin cua mot tin tuc 6: Tra lai form chinh sua thong tin tin tuc
7: Tra ve thong tin tin tuc 8: Tra ve thong tin tin tuc
9.1: Them mot tin tuc moi 9.2: Chinh sua mot tin tuc 9.3: Xoa mot tin tuc
10: Xu ly cap nhat tin tuc
11: Luu thong tin da cap nhat
12.1: True : Thong bao cap nhat thanh cong
12.2: False: thong bao cap nhat khong thanh cong 13: Tra ve ket qua
Hình 2.13: Biểu đồ tuần tự Quản lý tin tuc
❖ Biểu đồ tuần tự “UC – Quản lý đăng xuất”
: NV GD He Thong GD He Thong GD Dang Xuat GD Dang Xuat Xu Ly Dang
Xu Ly Dang Xuat 1: Dang nhap he thong
2: Bam vao button dang xuat 3: Hien thi button dang xuat
4: Tra lai form chinh sua thong tin tin tuc
6: Kiem tra hanh dong dang xuat 7: Thong bao dang xuat thanh cong
Hình 2.14: Biểu đồ tuần tự Quản lý đăng xuất
DEMO CHƯƠNG TRÌNH
Demo chương trình
Hình3.1: Giao diện trang web
3.1.2 Giao diện trang quản lý
3.1.3 Giao diện quản lý nhân viên
Hình3.2: Giao diện quản lý nhân viên
Hình 3.3: Giao diện đăng ký nhân viên
3.1.4 Giao diện các loại sản phẩm
Hình 3.4: Giao diện các loại sản phẩm
3.1.5 Giao diện quản lý sản phẩm
Hình 3.5: Giao diện quản lý sản phẩm
3.1.6 Giao diện thêm sản phẩm
Hinh 3.6 : Giao diện thêm sản phẩm