1. Trang chủ
  2. » Luận Văn - Báo Cáo

Bài tiểu luận học phần lập trình web nâng cao Đề tài xây dựng website bán Đồ Điện tử

46 1 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 46
Dung lượng 2,02 MB

Nội dung

Không chỉ đơn giản là một phươngtiện giải trí, internet còn trở thành một nền tảng mua bán mạnh mẽ, tạo điều kiệnthuận lợi cho việc kinh doanh và tiếp cận khách hàng.. Trong bối cảnh này

Trang 1

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

Khóa : 2020-2024

Giảng viên hướng dẫn : ThS.Bùi Thị Hòa

Thái Bình, tháng 12 năm 2023

Trang 2

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

Khóa : 2020-2024

Giảng viên hướng dẫn : ThS.Bùi Thị Hòa

Thái Bình, tháng 12 năm 2023

Trang 3

MỤC LỤC

CHƯƠNG 1: GIỚI THIỆU CHUNG 9

1.1 Lý do chọn đề tài : 9

1.2 Mục đích : 9

1.3 Phương pháp nghiên cứu : 9

1.4 Công cụ thực hiện: 9

CHƯƠNG 2: THIẾT KẾ TRANG WEB 10

2.1 Thiết kế cơ sở dữ liệu 10

2.2 Phân tích thiết kế hệ thống của website: 18

2.2.1 Sơ đồ Use-Case với tài khoản quản trị viên 18

2.2.2 Sơ đồ Use-Case với tài khoản người dùng 19

2.3 Xây dựng các thuật toán 19

2.3.1 Thuật toán liên kết cơ dở dữ liệu 19

2.3.2 Thuật toán đăng kí tài khoản 20

2.3.3 Thuật toán đăng nhập 23

2.3.4 Thuật toán thêm vào giỏ hàng 24

2.3.5 Thuật toán thêm mới sản phẩm 25

2.3.6 Thuật toán sửa thông tin sản phẩm 28

2.3.7 Thuật toán quản lý đơn hàng 29

2.3.8 Thuật toán xoá sản phẩm và khôi phục sản phẩm 31

2.3.9 Thuật toán quản lý danh mục sản phẩm 31

2.3.10 Thuật toán thống kê đơn hàng 34

CHƯƠNG 3: GIAO DIỆN TRANG WEB 35

Trang 4

3.1 Giao diện chính 35

3.2 Giao diện đăng kí 36

3.3 Giao diện đăng nhập 37

3.4 Giao diện sản phẩm 37

3.5 Giao diện giỏ hàng 38

3.6 Giao diện đơn hàng 38

3.7 Giao diện quản lý sản phẩm 40

3.8 Giao diện quản lý đơn hàng 41

3.9 Giao diện thống kê đơn hàng 41

KẾT LUẬN 43

Trang 5

DANH MỤC BẢNG BIỂU

Bảng 2.1 Bảng sản phẩm 11

Bảng 2.2 Bảng loại sản phẩm 11

Bảng 2.3 Bảng liên hệ 12

Bảng 2.4 Bảng nhà sản xuất 12

Bảng 2.5 Bảng nhóm người dùng 13

Bảng 2.6 Bảng người dùng 14

Bảng 2.7 Bảng nhóm khách hàng 14

Bảng 2.8 Bảng nội dung 15

Bảng 2.9 Bảng đặt hàng 15

Bảng 2.10 Bảng chi tiết đặt hàng 16

Bảng 2.11 Bảng huyện 16

Bảng 2.12 Bảng tỉnh 16

Bảng 2.13 Bảng mã giảm giá 17

Bảng 2.14 Bảng thanh trượt 17

Bảng 2.15 Bảng hệ thống 18

Trang 6

DANH MỤC HÌNH ẢNH

Hình 2.1 Cơ sở dữ liệu của website 10

Hình 2.2 Sơ đồ Use-Case admin 18

Hình 2.3 Sơ đồ Use-Case User 19

Hình 3.1 Giao diện chính 33

Hình 3.2 Giao diện đăng kí 34

Hình 3.3 Giao diện đăng nhập 35

Hình 3.4 Giao diện sản phẩm 35

Hình 3.5 Giao diện giỏ hàng 36

Hình 3.6 Giao diện đơn hàng 36

Hình 3.7 Giao diện đặt hàng 37

Hình 3.8 Giao diện quản lý sản phẩm 38

Hình 3.9 Giao diện quản lý đơn hàng 39

Hình 3.10 Giao diện thống kê đơn hàng 39

Trang 7

LỜI MỞ ĐẦU

Trong thời đại công nghệ ngày nay, sự phát triển vượt bậc của internet đã mở ranhững cánh cửa mới cho việc mua sắm trực tuyến Không chỉ đơn giản là một phươngtiện giải trí, internet còn trở thành một nền tảng mua bán mạnh mẽ, tạo điều kiệnthuận lợi cho việc kinh doanh và tiếp cận khách hàng Trong bối cảnh này, việc xâydựng một website bán đồ điện tử không chỉ là một quyết định thông minh mà còn làbước tiến quan trọng, mở ra những cơ hội kinh doanh rộng lớn

Đồ điện tử, với sự đa dạng và tiện ích cao, ngày càng trở thành một phần khôngthể thiếu trong cuộc sống hàng ngày của chúng ta Từ điện thoại thông minh, máy tínhbảng cho đến các thiết bị gia dụng thông minh, thị trường này đang trở thành điểmđến lý tưởng cho người tiêu dùng muốn nâng cao chất lượng cuộc sống của mình Với

sự tăng cường về cảm biến, hiệu suất và tính năng, việc mua sắm những sản phẩm nàytrực tuyến thông qua một website chất lượng là sự lựa chọn đúng đắn và thuận tiện.Website được xây dựng với các chức năng chính như đăng nhập, mua hàng,quản lý đơn hàng, Tuy nhiên do thời gian nghiên cứu và khả năng còn hạn chế nêncòn nhiều thiếu sót, nhóm chúng em mong nhận được sự nhận xét của thầy cô và cácbạn Chúng em xin chân thành cảm ơn!

Trang 8

NHẬN XÉT CỦA GIẢNG VIÊN

Trang 9

Trang 10

CHƯƠNG 1: GIỚI THIỆU CHUNG

1.3 Phương pháp nghiên cứu :

Kết hợp lý thuyết và phân tích thực tế Website được xây dựng dựa trên việcnghiên cứu các kiến thức lý thuyết liên quan đến học phần phát triển ứng dụng webnâng cao, đồng thời nghiên cứu các website bán hàng nhằm thiết kế ra một websitebán hàng tốt nhất có thể

1.4 Công cụ thực hiện:

Website được thực hiện bởi phần mềm Visual Code

Cơ sở dữ liệu được thực hiện trên Xampp

Trang 11

CHƯƠNG 2: THIẾT KẾ TRANG WEB

2.1 Thiết kế cơ sở dữ liệu

Từ việc phân tích thực tế, chúng em xây dựng được một cơ sở dữ liệu như sau :

Hình 2.1 Cơ sở dữ liệu của website

Cơ sở dữ liệu được xây dựng trên các bảng tương ứng:

Trang 12

Number buy Int(11)

Trang 19

Tên Kiểu dữ liệu

Bảng 2.15 Bảng hệ thống

Trang 20

2.2 Phân tích thiết kế hệ thống của website: 2.2.1 Sơ đồ Use-Case với tài khoản quản trị viên

Hình 2.2 Sơ đồ Use-Case admin

Trang 21

2.2.2 Sơ đồ Use-Case với tài khoản người dùng

Hình 2.3 Sơ đồ Use-Case User

2.3 Xây dựng các thuật toán

2.3.1 Thuật toán liên kết cơ dở dữ liệu

Dưới đây là đoạn code liên kết cơ sở dữ liệu :

Trang 22

2.3.2 Thuật toán đăng kí tài khoản

$this -> load -> helper('string' );

$today = date('Y-m-d' );

// giới hạn mã giảm giá mới có hạn 30 ngày từ khi đăng ký tài khoản

$todaylimit = strtotime(date("Y-m-d" , strtotime( $today )) " +1 month" );

$todaylimit = strftime("%Y-%m-%d" , $todaylimit );

$this -> load -> library('form_validation' );

$this -> load -> helper('form' );

$this -> form_validation -> set_rules('usernamé 'Tên đăng nhập' 'required|min_length[6]|max_length[32]| , , is_unique[db_customer.username]');

$this -> form_validation -> set_rules('namé 'Họ và tên' 'required|min_length[5]' , , );

$this -> form_validation -> set_rules('password' 'Mật khẩú 'required|min_length[6]|max_length[32]' , , );

if ( $this -> session -> userdatắsessionKhachHang' )){

$this -> form_validation -> set_rules('email' 'Email' 'required|is_unique[db_customer.email]' , , ); }

$this -> form_validation -> set_rules('re_password' 'Nhập lại mật khẩú 'required|matches[password]' , , );

Trang 23

if ($this -> form_validation -> run () == TRUE ){

$data = array (

'username' => $this -> input -> post('username' ),

'fullname' => $this -> input -> post('name' ),

'email' => $this -> input -> post('email' ),

'phone' => $this -> input -> post('phone' ),

//Lưu tt mã và ngày giới hạn để gửi mail

$tempcoupon = $newcoupon ['code' ];

$tempdatelimit = $newcoupon ['expiration_date' ];

// tao mã giảm giá random

$this -> Mcoupon -> coupon_insert( $newcoupon );

$this -> Mcustomer -> customer_insert( $data );

// gui mail ma giam gia

$email = $this -> input -> post('email' );

$this -> load -> library('email' );

$this -> load -> library('parser' );

Trang 24

$config ['protocol' ] = 'smtp' ;

$config ['smtp_host' ] = 'ssl://smtp.gmail.com' ;

$config ['smtp_port' ] = '465' ;

$config ['smtp_timeout' ] ; = '7'

$config ['smtp_user' ] = 'sale.smart.store.2019@gmail.com' ;

$config ['smtp_pass' ] = 'cqfmfmrtudhcmahw' ;

$config ['charset' ] = 'utf-8' ;

$config ['newline' ] = "\r\n" ;

$config ['wordwrap' ] = TRUE ;

$config ['mailtype' ] = 'html' ;

$config ['validation' ] = TRUE ;

$this -> email -> initialize( $config );

$this -> email -> from('sale.smart.store.2019@gmail.com' 'Smart Store' , );

$this -> email -> to( $email );

$this -> email -> subject('Hệ thống Smart Store - Quà thành viên mới' );

$this -> email -> message('Bạn đã trở thành thành viên mới của cửa hàng Smart Store, Cửa hàng tặng bạn 1

mã giảm giá giảm 100.000 đ : ' $tempcoupon ' , Mã này có giá trị tới ngày ' $tempdatelimit '

Hãy sử dụng tài khoản để mua hàng để tích lũy nhận thêm nhiều ưu đãi !!!!');

$this -> email -> send ();

$this ->data ['success'] = 'Đăng ký thành công! Bạn đã nhận được 1 mã giảm giá cho thành viên mới, vui lòng kiểm tra email !!';

}

$this ->data ['title'] = 'Smart store - Đăng ký tài khoản' ;

$this ->data ['view'] = 'dangky' ;

$this -> load -> view('frontend/layout',$this ->data );

}

$username = $this -> input -> post('username' );

if ($this -> Mcustomer -> customer_check_username( $username )){

$this -> form_validation -> set_message( FUNCTION , 'Tên đăng nhập để trống hoặc đã được sử dụng' ); return FALSE ;

}

return TRUE ;

}

Trang 25

$email = $this -> input -> post('email' );

if ($this -> Mcustomer -> customer_detail_email( $email ))

2.3.3 Thuật toán đăng nhập

// Hàm khởi tạo

parent :: construct ();

$this -> load -> model('frontend/Mcategorý );

$this -> load -> model('frontend/Mcustomer' );

$this -> load -> model('frontend/Mcoupon' );

$this -> load -> model("frontend/Mproduct" );

$this ->data ['com'] = 'dangnhap' ;

}

$this -> load -> library('form_validation' );

$this -> form_validation -> set_rules('usernamé 'Tài khoản' 'required|min_length[6]|max_length[32]' , , ); $this -> form_validation -> set_rules('password' 'Mật khẩú 'required|min_length[6]|max_length[32]' , , );

if ($this -> form_validation -> run () == TRUE ){

$username = $_POST ['usernamé ];

$password = md5( $_POST ['password' ]);

if ($this -> Mcustomer -> customer_login( $username $password , ) != FALSE ){

$row = $this -> Mcustomer -> customer_login( $username $password , );

$this -> session -> set_userdatắsessionKhachHang', $row );

$this -> session -> set_userdatắid', $row ['id' ]);

$this -> session -> set_userdatắemail' , $row [ 'email' ]);

$this -> session -> set_userdatắsessionKhachHang_namé, $row ['fullnamé ]);

if ($this -> session -> userdatắcart' )){

Trang 26

$this ->data ['view'] = 'dangnhap' ;

$this -> load -> view('frontend/layout',$this ->data );

}

} else {

$this ->data ['titlé] = 'Smart store - Đăng nhập tài khoản' ;

$this ->data ['view'] = 'dangnhap' ;

$this -> load -> view('frontend/layout',$this ->data );

}

}

$array_items = array ( 'email' 'fullnamé , ,

'id' 'sessionKhachHang' 'sessionKhachHang_namé 'coupon_pricé 'id_coupon_pricé , , , , ); $this -> session -> unset_userdată $array_items );

redirect('trang-chú 'refresh' , );

}

2.3.4 Thuật toán thêm vào giỏ hàng

$this -> load -> library('session' );

$id $_POST = ['id' ];

if ($this -> session -> userdatắcart' )){

$cart = $this -> session -> userdatắcart' );

if (array_key_exists( $id $cart , )){

$cart [ $id ] ++ ;

} else {

$cart [ $id ] = 1 ;

}

Trang 27

$cart [ $id ] = ;

}

$this -> session -> set_userdatắcart', $cart );

echo json_encode ( $cart );

}

2.3.5 Thuật toán thêm mới sản phẩm

$user_role = $this -> session -> userdatắsessionadmin' );

$this -> load -> library('session' );

$this -> load -> library('alias' );

$this -> form_validation -> set_rules('catid' 'Loại sản phẩm' 'required' , , );

$this -> form_validation -> set_rules('producer' 'Nhà cung cấp' 'required' , , );

( if $this -> form_validation -> run () == TRUE ){

$mydata= array (

'catid' =>$_POST ['catid' ],

'producer' =>$_POST ['producer' ],

'namé =>$_POST ['namé ],

'alias' => $string = $this -> alias -> str_alias( $_POST ['namé ]),

'detail' =>$_POST ['detail' ],

'sortDesc' =>$_POST ['sortDesc' ],

'number' =>$_POST ['number' ],

'salé =>$_POST ['sale_of' ],

'pricé =>$_POST ['price_root' ],

Trang 28

//thuc mục chứa file

$config ['upload_path'] = './public/images/products/' ;

//Định dạng file được phép tải

$config ['allowed_types' ] = 'jpg|png|gif' ;

//Dung lượng tối đa

$config ['max_size' ] = '500' ;

$config ['encrypt_name' ] = TRUE ;

//Chiều rộng tối đa

$config ['max_width' ] = '1028' ;

//Chiều cao tối đa

$config ['max_height' ] = '768' ;

//load thư viện upload

//bien chua cac ten file upload

$name_array = array ();

//lưu biến môi trường khi thực hiện upload

$file = $_FILES ['image_list' ];

$count = count( $file ['name' ]);

$img = '' ;

$this -> load -> library('upload' , $config );

for ( $i= ; $i <= $count - 1 ; $i++ ){

$_FILES ['userfile' 'name' ][ ] = $file ['name'][ $i ]; //khai báo tên của file thứ i

$_FILES ['userfile' 'type' ][ ] = $file ['type'][ $i ]; //khai báo kiểu của file thứ i

$_FILES ['userfile' 'tmp_name' ][ ] = $file ['tmp_name'][ $i ]; //khai báo đường dẫn tạm của file thứ i $_FILES ['userfile' 'error' ][ ] = $file ['error'][ $i ]; //khai báo lỗi của file thứ i

$_FILES ['userfile' 'size' ][ ] = $file ['size'][ $i ]; //khai báo kích cỡ của file thứ i

Trang 29

//thực hiện upload từng file

if ($this -> upload -> do_upload ()){

//nếu upload thành công thì lưu toàn bộ dữ liệu

$data = $this -> upload -> data ();

//in cấu trúc dữ liệu của các file

$img = $data ['file_namé] '#' ;

}

}

//Lưu nhóm hình ảnh chi tiết

$img = rtrim( $img , ); '#'

$mydata ['img'] = $img ;

( if $this -> upload -> do_upload('img' )){

$data = $this -> upload -> data ();

$mydata ['avatar'] =$data ['file_namé ];

}

$this -> Mproduct -> product_insert( $mydata );

$this -> session -> set_flashdatắsuccess' 'Thêm sản phẩm thành công' , );

redirect('admin/product' 'refresh' , );

} else {

$this ->data [ 'view' ] = 'insert';

$this ->data [ 'titlé ] = 'Thêm sản phẩm mớí;

$this -> load -> view('backend/layout', $this ->data );

}

}

function check (){

$giaban = $this -> input -> post('price_buý);

$giagoc = $this -> input -> post('price_root');

Trang 30

2.3.6 Thuật toán sửa thông tin sản phẩm

$user_role = $this -> session -> userdatắsessionadmin' );

$this -> load -> library('session');

$this -> load -> library('alias');

$this -> form_validation -> set_rules('namé, 'Tên sản phẩm' 'required' , );

$this -> form_validation -> set_rules('catid', 'Loại sản phẩm' 'required' , );

$this -> form_validation -> set_rules('producer', 'Nhà cung cấp' 'required' , );

$this -> form_validation -> set_rules('price_buý ,'Giá bán', 'required|callback_check' );

if ( $this -> form_validation -> run () == TRUE ){

$mydata= array (

'catid' =>$_POST [ 'catid' ],

'producer' =>$_POST [ 'producer' ],

'namé =>$_POST [ 'namé ],

'alias' => $string= $this -> alias -> str_alias( $_POST [ 'namé ]),

'detail' =>$_POST [ 'detail' ],

'sortDesc' =>$_POST [ 'sortDesc' ],

'salé =>$_POST [ 'sale_of' ],

'pricé =>$_POST [ 'price_root' ],

'price_salé =>$_POST [ 'price_buý ],

'modified' =>$today ,

'modified_bý => $this -> session -> userdată 'id' ),

'status' =>$_POST [ 'status' ]

);

$this -> Mproduct -> product_update( $mydata $id , );

$this -> session -> set_flashdatắsuccess' 'Cập nhật sản phẩm thành công' , );

redirect('admin/product' 'refresh' , );

Ngày đăng: 04/12/2024, 17:45

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

TÀI LIỆU LIÊN QUAN

w