CHƯƠNG 1 CƠ SỞ LÝ THUYẾT Hệ thống website giới thiệu các món ăn của Việt Nam được phân tích hướng đối tượng UML, sử dụng hệ quản trị cơ sở dữ liệu MySQL, ngôn ngữ lập trình PHP kết hợp v
Trang 1LỜI CẢM ƠN
Để hoàn thành được tốt báo cáo này, em xin gửi lời cảm ơn chân thành nhất
đến thầy giáo TS Vũ Vinh Quang thầy đã hướng dẫn dìu dắt và tạo điều kiện giúp
đỡ em trong thời gian thực hiện đề tài báo cáo đồ án Thầy không chỉ truyền lại cho chúng em những kiến thức chuyên nghành mà còn rèn luyện cho chúng em nghị lực, khát khao vươn lên, phát huy khả năng tư duy sáng tạo trong mọi lĩnh vực Bên cạnh đó, em còn có cơ hội được tiếp xúc và làm việc trong một môi trường chuyên nghiệp và thực tế
Sau một thời gian tìm hiểu đề tài, em đã hoàn thành đúng tiến độ dự kiến Để đạt được kết quả này, em đã nỗ lực thực hiện và đồng thời cũng nhận được rất nhiều
sự giúp đỡ, quan tâm, ủng hộ của các thầy cô bạn bè và gia đình
Em xin chân thành cảm ơn các thầy cô và ban lãnh đạo trường Đại học Công nghệ thông tin và truyền thông – Đại học Thái Nguyên đã nhiệt tình giảng dạy và truyền đạt kiến thức quý báu và bổ ích trong suốt quá trình em học tập tại trường
Vì thời gian có hạn nên không thể tránh khỏi những thiếu sót, em rất mong nhận được sự đóng góp ý kiến từ thầy cô và các bạn Em xin chân thành cảm ơn!
Thái Nguyên, ngày tháng năm 2017
Sinh viên thực hiện
Phạm Trường Giang
Trang 2LỜI CAM ĐOAN
Sinh viên: Phạm Trường Giang xin cam đoan:
- Đồ án tốt nghiệp là thành quả từ sự nghiên cứu hoàn toàn thực tế trên cơ sở các số liệu thực tế và được thực hiện theo hướng dẫn của giáo viên hướng dẫn
- Đồ án được thực hiện hoàn toàn mới, là công trình nghiên cứu khoa học của bản thân, không sao chép theo bất cứ đồ án tương tự nào
- Kết quả trình bày trong đồ án là trung thực, chưa từng được công bố trước đây
- Mọi sự tham khảo sử dụng trong đồ án đều được trích dẫn các nguồn tài liệu trong báo cáo và danh mục tài liệu tham khảo
- Mọi sao chép không hợp lệ, vi phạm quy chế của nhà trường, em xin hoàn toàn chịu trách nhiệm
Thái Nguyên, ngày tháng năm 2017
Sinh viên cam đoan
Phạm Trường Giang
Trang 3MỤC LỤC
LỜI CẢM ƠN 1
LỜI CAM ĐOAN 2
MỤC LỤC 3
DANH MỤC HÌNH 5
LỜI NÓI ĐẦU 6
CHƯƠNG 1 CƠ SỞ LÝ THUYẾT 7
1.2 Tìm hiểu UML 7
1.2.1 Giới thiệu tổng quan UML 7
1.3 Ngôn ngữ PHP 8
1.3.1 Giới thiệu 8
1.3.2 Một số quy tắc cơ bản 8
1.4 Giới thiệu về Laravel Framework 10
1.4.1 Giới thiệu chung 10
1.4.2 Sơ lược các tính năng cơ bản của Laravel Framework 10
1.4.3 Làm việc với dữ liệu trong laravel 17
CHƯƠNG 2: KHẢO SÁT VÀ PHÂN TÍCH THIẾT KẾ HỆ THỐNG 19
2.1 Khảo sát thực trạng và tìm hiểu nhu cầu 19
2.1.1 Thực trạng 19
2.1.3 Yêu cầu bài toán 20
2.2 Phân tích và thiết kế hệ thống 20
2.2.1 Yêu cầu hệ thống 20
2.2.2 Phân tích yêu cầu hệ thống 21
2.3 Phân tích thiết kế hệ thống 23
2.3.1 Biểu đồ Usecase của hệ thống 23
2.3.2 Biểu đồ trình tự 29
2.3.3 Biểu đồ lớp 41
CHƯƠNG 3: CÁI ĐẶT HỆ THỐNG 42
3.1 Trang chủ 42
Trang 43.3 Đặt hàng – giỏ hàng 44
3.4 Thanh toán 44
3.5 Đặt hàng thành công 45
3.6 Quản trị 45
3.6.1 Quản lý – Thêm mới bài viết 46
3.6.2 Quản lý sản phẩm 46
3.6.3 Quản lý danh mục sản phẩm 47
3.6.4 Quản lý đơn hàng 47
3.6.5 Chi tiết đơn hàng 48
3.6.4 Quản lý người dùng 48
KẾT LUẬN 49
TÀI LIỆU THAM KHẢO 50
Trang 5DANH MỤC HÌNH
Hình 2.1: Biểu đồ usecase tổng quát 24
Hình 2.2: Biểu đồ usecase chuyên mục 25
Hình 2.3 : Biểu đồ usecase danh mục 25
Hình 2.4: Biểu đồ usecase sản phẩm 26
Hình 2.5: Biểu đồ usecase đơn hàng 26
Hình 2.6: Biểu đồ usecase tin tức 27
Hình 2.7: Biểu đồ usecase quản lý thống kê 27
Hình 2.8: Biểu đồ usecase người quản trị 28
Hình 2.9: Biểu đồ trình tự đăng nhập 29
Hình 2.10: Biểu đồ trình tự đăng xuất 29
Hình 2.11: Biểu đồ trình tự tìm kiếm 30
Hình 2.12: Biểu đồ trình tự cho sản phẩm vào giỏ hàng 30
Hình 2.13: Biểu đồ trình tự cập nhật giỏ hàng 31
Hình 2.14: Biểu đồ trình tự đặt hàng 32
Hình 2.15: Biểu đồ trình tự quản lý xem chuyên mục 33
Hình 2.16: Biểu đồ trình tự quản lý thêm chuyên mục 33
Hình 2.17: Biểu đồ trình tự quản lý sửa chuyên mục 34
Hình 2.18: Biểu đồ trình tự quản lý xóa chuyên mục 34
Hình 2.19: Biểu đồ trình tự quản lý xem danh mục 35
Hình 2.20: Biểu đồ trình tự quản lý thêm danh mục 36
Hình 2.21: Biểu đồ trình tự quản lý sửa danh mục 37
Hình 2.22: Biểu đồ trình tự quản lý xóa danh mục 37
Hình 2.23: Biểu đồ trình tự quản lý xem sản phẩm 38
Hình 2.24: Biểu đồ trình tự quản lý thêm sản phẩm 38
Hình 2.25: Biểu đồ trình tự quản lý sửa sản phẩm 39
Hình 2.26: Biểu đồ trình tự quản lý xóa sản phẩm 39
Hình 2.27: Biểu đồ trình tự quản lý xem đơn hàng 40
Hình 2.28: Biểu đồ trình tự quản lý sửa đơn hàng 40
Hình 2.29: Biểu đồ trình tự quản lý xóa đơn hàng 41
Hình 2.30: Biểu đồ lớp 41
Trang 6LỜI NÓI ĐẦU
Tin học đã và đang được phát triển rộng rãi trong hầu hết các lĩnh vực của nền kinh tế xã hội Việc ứng dụng rộng rãi của tin học đã đem lại những thành tựu
vô cùng to lớn trong nhiều nghành, nhiều lĩnh vực khác nhau, đặc biệt trong lĩnh vực quản lý và lưu trữ Trước tình hình đó, là một sinh viên nghành công nghệ thông tin đang được học tập trong ĐH CNTT& TT- Đại học Thái Nguyên em luôn
có nguyện vọng muốn đem những kiến thức mới về công nghệ thông tin áp dụng vào đời sống nói chung và công tác quản lý nói riêng
Với công nghệ Word Wide Web, hay còn gọi là Web sẽ giúp bạn đưa những thông tin mong muốn của mình lên mạng Internet cho mọi người cùng xem một cách dễ dàng với các công cụ và những ngôn ngữ lập trình khác nhau Sự ra đời của các ngôn ngữ lập trình cho phép chúng ta xây dựng các trang Web đáp ứng được các yêu cầu của người sử dụng PHP (Personal Home Page) là kịch bản trên phía trình chủ (Server Script) cho phép chúng ta xây dựng trang Web trên cơ sở dữ liệu Với nhiều ưu điểm nổi bật mà PHP và MySQL được rất nhiều người sử dụng
Với lí do đó, được sự hướng dẫn và giúp đỡ của thầy giáo Tiến sĩ Vũ Vinh
Quang, em lựa chọn đề tài “Xây dựng website thương mại điện tử cho shop mĩ phẩm xách tay bằng Laravel”
* Mục đích nghiên cứu
- Khảo sát yêu cầu thực tế tại cửa hàng mĩ phẩm xách tay để nắm bắt các thông tin về sản phẩm mà cửa hàng đang kinh doanh, quy trình quản lý, đồng thời thu nhập các biểu mẫu chứng từ thực tế tại công ty
- Phân tích thiết kế hệ thống dựa trên các nội dung khảo sát
- Tìm hiểu các ngôn ngữ lập trình cần thiết để thiết kế và xây dựng website
Trang 7CHƯƠNG 1 CƠ SỞ LÝ THUYẾT
Hệ thống website giới thiệu các món ăn của Việt Nam được phân tích hướng đối tượng UML, sử dụng hệ quản trị cơ sở dữ liệu MySQL, ngôn ngữ lập trình PHP kết hợp với JavaScript, HTML, CSS, các thư viện của jQuery, PHP Framework: Laravel 5.2
1.2 Tìm hiểu UML
1.2.1 Giới thiệu tổng quan UML
Ngôn ngữ mô hình hóa thống nhất (Unified Modeling Language, viết tắt thành UML) là một ngôn ngữ mô hình gồm các ký hiệu đồ họa mà các phương pháp hướng đối tượng sử dụng để thiết kế các hệ thống thông tin một cách nhanh chóng
Cách xây dựng các mô hình trong UML phù hợp mô tả các hệ thống thông tin cả về cấu trúc cũng như hoạt động Cách tiếp cận theo mô hình của UML giúp ích rất nhiều cho những người thiết kế và thực hiện hệ thống thông tin cũng như những người sử dụng nó; tạo nên một cái nhìn bao quát và đầy đủ về hệ thống thông tin dự định xây dựng Cách nhìn bao quát này giúp nắm bắt trọn vẹn các yêu cầu của người dùng; phục vụ từ giai đoạn phân tích đến việc thiết kế, thẩm định và kiểm tra sản phẩm ứng dụng công nghệ thông tin Các mô hình hướng đối tượng được lập cũng là cơ sở cho việc ứng dụng các chương trình tự động sinh mã trong các ngôn ngữ lập trình hướng đối tượng, chẳng hạn như ngôn ngữ C++, Java, Phương pháp
mô hình này rất hữu dụng trong lập trình hướng đối tượng Các mô hình được sử dụng bao gồm Mô hình đối tượng (mô hình tĩnh) và Mô hình động
UML sử dụng một hệ thống ký hiệu thống nhất biểu diễn các Phần tử mô hình (model elements) Tập hợp các phần tử mô hình tạo thành các Sơ đồ UML (UML diagrams) Có các loại sơ đồ UML chủ yếu sau:
● Sơ đồ lớp (Class Diagram)
● Sơ đồ đối tượng (Object Diagram)
● Sơ đồ tình huống sử dụng (Use Cases Diagram)
● Sơ đồ trình tự (Sequence Diagram)
● Sơ đồ cộng tác (Collaboration Diagram hay là Composite Structure
Trang 8● Sơ đồ trạng thái (State Machine Diagram)
● Sơ đồ thành phần (Component Diagram)
● Sơ đồ hoạt động (Activity Diagram)
● Sơ đồ triển khai (Deployment Diagram)
● Sơ đồ gói (Package Diagram)
● Sơ đồ liên lạc (Communication Diagram)
● Sơ đồ tương tác (Interaction Overview Diagram - UML 2.0)
● Sơ đồ phối hợp thời gian (Timing Diagram - UML 2.0)
1.3 Ngôn ngữ PHP
1.3.1 Giới thiệu
PHP là một ngôn ngữ lập trình kịch bản hay một loại mã lệnh chủ yếu được dùng để phát triển các ứng dụng viết cho máy chủ, mã nguồn mở, dùng cho mục đích tổng quát Nó rất thích hợp với web và có thể dễ dàng nhúng vào trang HTML
Do được tối ưu hóa cho các ứng dụng web, tốc độ nhanh, nhỏ gọn, cú pháp giống C
và Java, dễ học và thời gian xây dựng sản phẩm tương đối ngắn hơn so với các ngôn ngữ khác nên PHP đã nhanh chóng trở thành một ngôn ngữ lập trình web phổ biến nhất thế giới
1.3.2 Một số quy tắc cơ bản
Bắt đầu viết mã PHP
● Các câu lệnh PHP phải được đặt trong file có đuôi mở rộng là php
● Thẻ <?php và thẻ ?> sẽ đánh đấu sự bắt đầu và sự kết thúc của phần mã
PHP qua đó máy chủ biết để xử lý và dịch mã cho đúng
● Khai báo biến: $tên_biến = [giá trị];
Trang 9● Khai báo hằng: define(‘ten_hang’, ‘gia_tri’);
Trong đó $array là mảng cần lặp, $key là số chỉ mục (mảng có chỉ mục) hoặc
là key (trong mảng kết hợp), $value là giá trị của phần tử ở vị trí $key
vô hạn nếu biểu thức điều kiện bạn truyền vào luôn luôn đúng
Khai báo class và hàm
● Tạo class
class <tên class> [extends <tên class>]{
// các câu lệnh;
}
● Khai báo hàm tự định nghĩa
function <tên hàm>([các tham số]){
// Các câu lệnh;
}
Trang 10Có thể khai báo tên hàm trùng tên class để khai báo hàm khởi tạo Hàm khởi tạo tự động chạy đầu tiên khi đối tượng được tạo
● Hàm hủy: function destruct(){[ câu lệnh] }
Hàm khởi tạo tự động load cuối cùng khi đối tượng được tạo
1.4 Giới thiệu về Laravel Framework
1.4.1 Giới thiệu chung
Laravel được tạo ra bởi Taylor Otwell và phát hành chính thức vào 06/2011 Laravel là 1 open source, là một framework dùng để xây dựng web application, được thiết kế dựa trên mô hình MVC (Model, Controller, View), toàn bộ source code được đặt trên github Theo kết qủa khảo sát của các Developer vào tháng 12 năm 2013, thì Laravel Framework đứng top 1 một trong những framework phổ biến nhất, tiếp sau là Phalcon, Symfony2, CodeIgniter và các framework khác Tháng 8 năm 2014, Laravel Framework được xem như là một dự án PHP phổ biến nhất trên Github
1.4.2 Sơ lược các tính năng cơ bản của Laravel Framework
1.4.2.1 Route
Route trong laravel có nhiệm vụ định hướng request của laravel
Hầu hết các route của laravel định nghĩa trong file app/Http/routes.php Và
đây là danh sách các loại Route bao gồm các loại cơ bản và thường được sử dụng sau:
● Route::get phương thức GET
● Route::post phương thức POST
● Route::match kết hợp hiều phương phức
● Route::any nhận tất cả các phương thức
● Route::filter tạo ra bộ lọc nhằm mục đích nào đó, ví dụ tạo bộ lọc kiểm tra
đã đăng nhập hay chưa
● Route::group gom các route lại với nhau thành một nhóm
● Route::controller gọi đến controller tương ứng
● Route::resource sử dụng với resource controller
Sử dụng route:
Trang 11Route::<loại route>( $uri, $action );
Trong đó $action có thể là 1 mảng, hàm hoặc 1 chuỗi
1.4.2.2 Controller
Sau khi route nhận được request thì sẽ chuyển hướng request đến cho controller và giao cho controller này xử lý Controller sẽ gọi tới Model để tương tác với cơ sở dữ liệu (database) và đưa dữ liệu tới View và View sẽ nhận dữ liệu và chuyển thành những đoạn mã HTML rồi gửi về cho Client
Tất cả controller trong laravel được chứa trong thư mục app/Http/controllers
và việc tạo tên file, đặt tên controller cũng phải tuân theo nguyên tắc của nó như sau:
● Trong laravel có một lớp xử lý Controller chính của nó, do đó các Controller tạo mới phải kế thừa controller này
● Tên controller phải trùng với tên file
Có hai cách tạo controller:
● Tạo trực tiếp trong thư mục app/Http/controllers:
Class <Tên controller> extends Controller{
//Các action
}
● Tạo bằng câu lệnh artisan:
Trỏ đến thư mục gốc chứa project laravel, sau đó nhập câu lệnh:
php artisan make:controller tên_controller
Tạo các action trong controller
Khi làm việc với Route::controller thì cần chú ý việc đặt tên action phải tuân
theo quy tắc methodUri như sau:
● method là post, get, và viết thường
● Uri: Chữ cái đầu tiên của Uri sẽ bắt buộc viết in hoa, cứ 1 chữ in hoa sẽ được tính là 1 đoạn uri được phân cách bởi dấu -
Ví dụ: action getDemoAction sẽ có method là get và Uri là demo-action
Trang 12● Khi làm việc với Route::resource thì controller laravel hỗ trợ 8 action:
index, create, store, show, edit, update, destroy nhưng trong controller không nhất thiết phải tạo đủ 8 action này
Ngoại trừ những điều trên thì action bạn có thể đặt tên tùy ý
1.4.2.3 View
View là một thành phần khá quan trọng trong mô hình MVC Nhiệm vụ của View là nhận dữ liệu từ Controller và sau đó dựa vào layout của giao diện nó sẽ xử
lý dữ liệu theo yêu cầu
Trong laravel 5.2, mặc định tất cả các file view sẽ được lưu trong thư mục
app/resources/views với đuôi file là php hoặc blade.php nếu ta sử dụng
blade-template (khuyên dùng), việc tạo thì 2 loại file này tương tự nhau, bạn chỉ việc tạo
file mới trong thư mục app/resources/views là được
Để gọi một view trong laravel ta dùng cú pháp sau:
view($view, $data = array(), $mergeData = array());
Trong đó:
● $view là tên view mà bạn đã tạo
● $data là mảng dữ liệu bạn truyền cho view thao tác để hiển thị
● $mergeData là mảng dữ liệu sẽ được merge với $data bằng hàm array_merge
● $view là bắt buộc, còn 2 tham số còn lại là tùy chọn
Nếu bạn muốn gọi sub-view thì sử dụng dấu chấm để biểu thị cho 1 cấp thư mục Ví dụ bạn gọi đến sub-view login ở thư mục auth như ví dụ ở trên thì bạn viết
như sau:
view(‘auth.login’);
Trang 13Theo mô hình MVC thì View sẽ được gọi trong Controller nên trong laravel tương tự như vậy, tuy nhiên bạn có thể gọi nó trong route cũng được
- Truyền biến qua view
Có 3 cách để truyền biến qua view:
● Truyền biến ngay khi gọi view
view(‘$view’, [‘$key’ => ‘$value’]);
Trong đó:
● $view (string): là tên view sẽ được gọi
● $key(string): là tên biến
● $value(string): là giá trị của biến;
● Sử dụng with
view(‘<view>’)->with($key, $value);
Trong đó:
● $view (string): là tên view sẽ được gọi
● $key (string hoặc array): nếu là chuỗi thì $key sẽ đóng vai trò là biến dùng
để sử dụng trong view nếu là mảng thì mỗi khóa của mảng sẽ là 1 biến trong view
● $value (string): nếu $key là chuỗi thì $value chính là giá trị của $key trong view, ngược lại thì $value không có giá trị trong view
- with sẽ là bắt buộc có và viết hường
- Name ở đây là tên biến sẽ gọi trong view và chữ cái đầu tiên viết in hoa và các chữ cái còn lại viết thường
- $value: giá trị của biến của $name
Ngoài ra ta có thể sử dụng hàm compact để truyền biến trong view
Cú pháp: view($view, compact(‘$var’));
Trang 14Trong đó:
- $view (string): là tên view sẽ được gọi
- $var(string): là biến cần truyền
1.4.2.4 Sử dụng blade engine trong laravel
Template engine có tác dụng giúp sạch đi những đoạn code PHP nằm trong View nên tách biệt hoàn toàn giữa người cắt CSS và người code PHP Hiện nay có khá nhiều template engine như Smarty, tuy nhiên việc sử dụng nó đang là một câu hỏi lớn vì tốc độ xử lý của ứng dụng sẽ trở nên chậm hơn Lý do mỗi khi render qua view thì PHP sẽ phải duyệt toàn bộ nội dung của view và tìm những biểu thức của engine và gán dữ liệu vào Template engine Blade là một engine khá đơn giản nhưng đầy mạnh mẽ Template engine này được tích hợp sẵn bên trong laravel và
tất cả blade template engine đều có phần mở rộng là blade.php
- Tạo Blade template engine
Tất cả các Blade template engine đều có phần mở rộng là blade.php và nằm trong thư mục app/resources/views
Các đoạn mã htlm trong file viết như file html bình thường Ví dụ:
- Các cú pháp sử dụng trong Blade template engine
● Blade sử dụng cặp ngoặc {{}} hoặc {!! !!} để echo giá trị
Ví dụ: Hôm nay là ngày: {{date("d-m-Y")}}
● Sử dụng or để xuất giá trị mặc định
Trang 15Ví dụ: Hello, {{ $name or 'Buzz' }}
Nếu biến $name không tồn tại thì sẽ echo ra Buzz
● Sử dụng 3 cặp ngoặc {{{}}} để xuất giá trị dưới dạng HTML entities
● Sử dụng các vòng lặp, câu lệnh điều kiện
Để sử dụng vòng lặp hoặc câu điều kiện if thì ta chỉ việc thêm @ ngay trước câu lệnh (theo cú pháp PHP) và kết thúc bằng @end +tên hàm
Lưu ý: Giả sử file a.blade.php include file b.blade.php thì những biến sử
dụng được ở file a.blade.php thì đều có thể sử dụng trong file b.blade.php
Trang 16Laravel 5 đi kèm với model User mặc định app/User.php và class này sẽ đại
diện cho User trong toàn bộ ứng dụng của chúng ta
Migration trong laravel giúp quản lý sự thay đổi cấu trúc dữ liệu Sử dụng migration giúp lập trình viên giảm nhẹ việc triển khai ứng dụng
- Tạo model:
● Tạo file trong thư mục app với quy tắc tên file phải trùng tên model, hoặc
tạo với câu lệnh:
Php artisan make:model model_name
Trong đó model_name là tên model
● Với mỗi một model thì đều phả kế thừa Model của laravel để nó có thể
chấp nhận và xử lý model ta tự tạo
- Tạo Migration
Lệnh tạo:
Php artisan make:migration minration_name
Trong đó: minration_name là tên của migration ta định tạo
Trang 17Sau khi tạo thì migration sẽ nằm trong thư mục app/database/migrations
1.4.3 Làm việc với dữ liệu trong laravel
1.4.3.1 Eloquent
Để sử dụng được Eloquent thì cần tạo model và định nghĩa model đó
Ví dụ: Tạo model User.php trong thư mục app/models/User.php
class User extends Eloquent {
protected $table = 'my_users';
protected $fillable = ['name', 'email'];
protected $hidden = ['password', 'remember_token'];
}
● Khi model được định nghĩa là chúng ta có thể thao tác trên nó,và lớp model đều phải kế thừa từ lớp Eloquent
● Thuộc tính $table sẽ khai báo bảng dữ liệu mà ta sẽ thao tác
● Thuộc tính $fillable khai báo những trường dữ liệu nào có thể hiển thị
● Thuộc tính $fillable khai báo các trường ẩn
- Thao tác với dữ liệu
Cú pháp:
$Model::bieuthuc->laydulieu();
Trong đó:
- $Model: là model đã được định nghĩa
- Bieuthuc: là các biểu thức mà trong câu truy vấn sẽ thực
- laydulieu(): là phương thức để thực thi câu truy vấn bao gồm các biểu thức trước đó
Các biểu thức truy vấn dữ liệu:
● get(): kiết xuất dữ liệu
● find($id): tìm và chọn bộ dữ liệu có id là $id
● where($where): Truy vấn dữ liệu với điều kiện $where
● orderBy($name, $type): Sắp xếp dữ liệu trả về theo trường $name và kiểu
$type
Trang 18● paginate($number): Phân trang tự động với số bộ trên một trang là
$number
● all(): lấy tất cả dữ liệu được chọn trong bảng;
● take($n1)->skip($n2): Lấy $n2 bộ dữ liệu bắt đầu từ bộ thứ $n1
Ngoài ra còn một sơ biểu thức khách như: orWhere, whereIn, groupBy, …
Trang 19CHƯƠNG 2: KHẢO SÁT VÀ PHÂN TÍCH THIẾT KẾ HỆ THỐNG 2.1 Khảo sát thực trạng và tìm hiểu nhu cầu
Muốn thực hiện được thì cần có phương tiện quảng bá cũng như bán hàng cho khách hàng có thể dễ dàng tiếp cận và sử dụng
Hiện tại việc mua bán của cửa hàng vẫn thực hiện trên giấy tờ, việc kiết xuất thông tin, cập nhật hàng hóa được ghi chép lưu trữ trên sổ sách, không có những trang web quảng cáo cho công ty nên việc bán hàng trở lên kém hiệu quả, tốn công sức cho tổng hợp thống kê và báo cáo tổng hợp, ngoài ra còn có thể dẫn đến thông
tin thiếu sót, thừa hoặc bị sai lệch
Nguồn cung cấp mĩ phẩm là các đại lý lớn trong thành phố
Việc tra cứu tìm kiếm thông tin các loại mĩ phẩm mất nhiều thời gian, công sức, khách hàng chỉ có thể xem qua các tờ quảng cáo của cửa hàng nhưng lại không thực sự đầy đủ
Khó cập nhật thường xuyên các thông tin thay đổi, như mỗi khi cửa hàng có các loại mĩ phẩm mới
- Khác hàng đến với cửa hàng để lựa chọn mặt hàng và mua
- Khác hàng xem thông tin chi tiết về mặt hàng, lựa chọn loại mĩ phẩm ưng ý
Trang 20 Chưa biết rõ các dịch vụ bảo hành của công ty
- Thanh toán
Sau khi khách hàng đã tìm hiểu đầy đủ thông tin sách và quyết định mua sách, khách hàng sẽ đến bàn thanh toán để thực viện việc mua hàng với nhân viên của cửa hàng:
Khách hàng cung cấp chi tiết thông tin cá nhân cho quá trình thanh toán: tên, tuổi , địa chỉ, số điện thoại…
Nhân viên dựa vào thông tin khách hàng cung cấp sẽ ghi hóa đơn thanh toán
Khách hàng xác nhận vào hóa đơn rồi trả tiền
Sau khi khách hàng đã mua hàng, hàng sẽ được chuyển tới đúng địa chỉ
- Nhân viên bán hàng tổng hợp báo cáo việc bán hàng theo định kỳ tháng, quý, năm Tổng hợp những sách bán chạy, sách tồn kho…
- Cửa hàng đầu tư kinh phí vào quảng cáo các loại mĩ phẩm, để tăng lượng khách hành, tăng doanh số bán hàng
Phương châm: Website là nơi giới thiệu,trưng bày hình ảnh thông tin liên
quan đến sản phẩm qua đó người sử dụng tham khảo là đặt hàng,mua sản phẩm thông qua website
Đối tượng khách hàng : nữ học sinh,sinh viên,người đi làm…
2.1.3 Yêu cầu bài toán
Cửa hàng yêu cầu tạo một website giúp người sử dụng tra cứu, theo dõi thông tin sản phẩm, các loại mĩ phẩm có mặt trên thì trường Website là công cụ để nguwofi mua giao tiếp với cửa hàng.Website phải hoạt động tốt,đầy đủ chức năng ,là kênh thông tin đáng tin cậy giữa người mua và cửa hàng
2.2 Phân tích và thiết kế hệ thống
2.2.1 Yêu cầu hệ thống
Xác định yêu cầu hệ thống
Yêu cầu chức năng:
- Đảm bảo tính bảo mật thông tin
Trang 21- Trang hiển thị bao gồm: Trang chủ hiển thị các sản phẩm mới nhất, tin tức
mới nhất,…
- Trang quản trị bao gồm: quản lý các trang menu, quản lý sản phẩm, quản
lý tin tức, đăng tin tức, đăng sản phẩm, quản lý hình ảnh,…
- Chức năng danh sách tin tức chính của website, bao gồm các tin tức liên
quan đến website
Yêu cầu phi chức năng:
- Giao diện thân thiện, dễ sử dụng
- Đảm bảo tính chính xác trên mọi trình duyệt khác nhau
- Đáp ứng độ tin cậy, cũng hiệu quả trên thời gian và không gian
- Chuyển giao dễ dàng và dễ triển khai
- Nội dung hiển thị một cách khoa học và chi tiết theo từng chuyên mục được
bố trí một cách rành mạch rõ ràng, nhằm thúc đẩy tốt nhất việc giao thương trên website, tương tác hệ thống cao
2.2.2 Phân tích yêu cầu hệ thống
Sau khi khảo sát và xác định được các yêu cầu của hệ thống, có thể phân tích
để đưa ra các quy trình nghiệp vụ chung của hệ thống bao gồm các phần:
Thao tác với thông tin khách hàng trong hệ thống
Người quản trị Admin là người có quyền thao tác với toàn bộ hệ thống Để đảm bảo tính bảo mật, yêu cầu có hệ thống phân quyền cụ thể và mật khẩu cho người dùng phải được mã hóa Các mục yêu cầu phải đạt được với thông tin người quản trị viên là:
Thêm mới, sửa, xóa thông tin sản phẩm, tin tức
Phân cấp quản lý làm 2 cấp: Admin và khách hàng truy cập Trong đó Admin là người có toàn quyền thao tác với hệ thống về vệc phân quyền và cập nhật người dùng, có toàn bộ thao tác quản lý tin tức trên website đối với việc đăng tin, duyệt tin, Còn đối với khách hàng thì có quyền xem sản phẩm, xem tin tức…
Thao tác với chuyên mục
Việc thiết lập chuyên mục là yêu cầu bắt buộc Các yêu cầu gồm có:
Trang 22- Thời gian thực hiện: khi hệ thống có nhu cầu mở thêm các chuyên mục mới đáp ứng nhu cầu trao đổi đối với khách hàng
- Tác nhân thực hiện: quản trị viên (Admin)
- Các bước thực hiện
1 Quản trị viên mở phần quản trị website rồi nhập những thông tin cần thiết
để thêm mới vào form
2 Hệ thống kiểm tra thông tin rồi lưu lại vào trong cơ sở dữ liệu
Sửa thông tin chuyên mục:
- Thời gian thực hiện: khi quản trị viên muốn cập nhật thông tin của chuyên mục đó
- Tác nhân thực hiện: quản trị viên
- Các bước thực hiện:
1 Quản trị viên chọn chuyên mục cần sửa trong trang quản lý chuyên mục
2 Quản trị viên sửa thông tin trong các điều khiển hiển thị trong chuyên mục vừa chọn
3 Thông tin chuyên mục được lưu lại vào trong cơ sở dữ liệu thay thế thông tin chuyên mục cũ
Xóa thông tin chuyên mục:
- Thời gian thực hiện: Khi chuyên mục đã không cần thiết nữa
- Tác nhân thực hiện: quản trị viên
- Các bước thực hiện:
1 Quản trị viên chọn chuyên mục cần xóa trong bảng thông tin
2 Quản trị viên nhấn nút xóa trên trang quản lý chuyên mục
3 Thông tin được xóa khỏi csdl
Thao tác với tin tức
Việc thiết lập tin tức là yêu cầu bắt buộc Các yêu cầu gồm có: thêm mới tin tức, hình ảnh,
Thêm mới tin tức:
- Thời gian thực hiện: Cập nhật thường xuyên, tùy vào người quản trị hệ thống
Trang 23- Tác nhân thực hiện: quản trị viên (Admin)
- Các bước thực hiện
1 Quản trị viên mở phần quản lý tin tức rồi nhập những thông tin cần thiết
để thêm mới
2 Hệ thống kiểm tra thông tin rồi lưu lại vào trong cơ sở dữ liệu
Sửa thông tin tin tức:
- Thời gian thực hiện: khi quản trị viên muốn cập nhật thông tin của tin tức đó
- Tác nhân thực hiện: quản trị viên
- Các bước thực hiện:
1 Quản trị viên chọn tin tức cần sửa trong trang quản lý tin tức
2 Quản trị viên sửa thông tin trong các điều khiển hiển thị trong tin tức vừa chọn
3 Thông tin tin tức được lưu lại vào trong cơ sở dữ liệu thay thế thông tin tin tức cũ
Xóa thông tin tin tức:
- Thời gian thực hiện: Khi tin tức đã không phù hợp hoặc không cần thiết nữa
- Tác nhân thực hiện: quản trị viên
- Các bước thực hiện:
1 Quản trị viên chọn tin tức cần xóa trong bảng thông tin
2 Quản trị viên nhấn nút xóa trên trang quản lý tin tức
3 Thông tin được xóa khỏi csdl
2.3 Phân tích thiết kế hệ thống
2.3.1 Biểu đồ Usecase của hệ thống
Biểu đồ Usecase tổng quát
Biểu đồ cho cái nhìn tổng quát về hệ thống bao gồm đầy đủ các chức năng
mà hệ thống cung cấp Quản trị viên sẽ quản lý các chức năng cung cấp đến cho khách hàng các dịch vụ của mình
Trang 24Hình 2.1: Biểu đồ usecase tổng quát
Danh sách các Usecase
1 Quản lý hệ thống Dùng để quản lý việc admin đăng nhập hay đăng
xuất vào hệ thống
2 Quản lý chuyên mục Dùng để quản lý các chuyên mục sản phẩm
3 Quản lý danh mục Dùng để quản lý danh mục sản phẩm
4 Quản lý hãng Dùng để quản lý hãng sản phẩm
5 Quản lý sản phẩm Dùng để quản lý sản phẩm
6 Quản lý đơn hàng Dùng để quản lý đơn hàng khách hàng đã đặt
7 Quản lý tin tức Dùng để quản lý các tin tức của công ty
8 Quản lý người quản trị Dùng để quản lý người quản trị
Bảng 2.1: Danh sách Usecase
Trang 25Biểu đồ Usecase chức năng quản lý chuyên mục
Hình 2.2: Biểu đồ usecase chuyên mục
Biểu đồ Usecase chức năng quản lý danh mục
Hình 2.3 : Biểu đồ usecase danh mục