Tải bản đầy đủ (.docx) (32 trang)

Xây dựng Website giới thiệu sản phẩm và bán hàng Nông sản

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.71 MB, 32 trang )

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
======***======

BÁO CÁO BÀI TẬP LỚN
MƠN: LẬP TRÌNH ỨNG DỤNG CƠ SỞ DỮ LIỆU TRÊN WEB

ĐỀ TÀI: Xây dựng Website giới thiệu sản
phẩm và bán hàng Nơng sản
GVHD:
Nhóm:
Sinh viên:

Ths Đỗ Ngọc Sơn
12
1. Nguyễn Viết Trí
2. Đặng Ngọc Đăng
Huy
3. Dương Thị Nhung
4. Nguyễn Phương
Thảo

Lớp: 202110503134011

Khóa: 13

Hà Nội - Năm 2022


2


LỜI MỞ ĐẦU
Nền tin học càng phát triển thì con người càng có nhiều những phương
pháp mới, cơng cụ mới để xử lý thông tin và nắm bắt được nhiều thông tin hơn,
Tin học được ứng dụng trong mọi ngành nghề, mọi lĩnh vực của đời sống xã hội,
việc áp dụng tin học vào quản lý, sản xuất, kinh doanh du lịch là một xu hướng
tất yếu.
Đối với việc kinh doanh, việc áp dụng tin học trong quản lý bán hàng là
một giải pháp đúng đắn và hiệu quả trước nhu cầu mua sắm của thị trường ngày
nay ngày càng tăng.
Xuất phát từ thực tế đó, đề tài “ Xây dựng website cho cửa hàng sản phẩm
nông sản” mà chúng em đang xây dựng dưới đây mong muốn được góp phần đưa
một cách bán hàng mới tới người tiêu dùng hiện nay. Tuy nhiên việc nghiên cứu
vẫn còn gặp nhiều khó khăn nên đề tài vẫn chưa được khai thác tuyệt đối, đề tài
vẫn cịn có nhiều thiếu sót. Rất mong được thầy cơ và các bạn đóng góp ý kiến
để chương trình ngày càng hồn thiện và được đưa vào sử dụng.
Chúng em xin chân thành cảm ơn !

Lập trình ứng dụng CSDL trên Web


3

MỤC LỤC

Lập trình ứng dụng CSDL trên Web


4

Bảng phân công công việc

Mã SV

Họ tên

Công việc được
phân

2018604596

Nguyễn Viết Trí

+ Layout client
+ Slider
+ Tìm kiếm sản
phẩm
+ Oder , giỏ hàng ,
thanh toán .
+ Thiết kế cở sở dữ
liệu .
+ Quản lý đơn đặt
hàng

2018604110

Đặng Ngọc Đăng
Huy

+ Thiết kế cở sở dữ
liệu
+ Layout admin

+ Quản lý tài khoản
+ Quản lý Sản
phẩm
+ Liên hệ
+ Quản lý contact

2018603799

Dương Thị Nhung

+ Đăng Ký
+ Tin tức , giới
thiệu
+ Quản lý Danh
Mục Sản phẩm
+ Quản lý , Tìm
kiếm đơn đặt hàng
+ Phân trang
+ Hiện thị sản
phẩm theo chủng loại

2018603850

Nguyễn Phương

+ Đăng Nhập

Thảo

+ Xem chi tiết sản

phẩm
+ Quản lý danh

mục
+ Đăng Xuất
Lập trình ứng dụng CSDL trên Web


5

+ Quản lý Blog
+ Quản lý Footer,
About

Phần 1. TÌM HIỂU WEBSITE THỰC TẾ
1.1 Mô tả các chức năng của Website thực tế
Cài đặt Website trong đó:
‐ Trang người dùng:
1. Xây dựng giao diện website như trang mẫu.
2. Đăng ký, đăng nhập, có kiểm tra hợp lệ của dữ liệu trước khi gửi đi.
3. Hiển thị sản phẩm nông sản theo chủng loại.
4. Tìm kiếm sản phẩm theo tên loại, khoảng giá và nhiều tiêu chí khác.
5. Xem chi tiết ảnh, thông tin từng sản phẩm nông sản .
6. Đặt mua được sản phẩm nông sản.
7. Quản lý được sản phẩm vừa đặt nhưng chưa gửi (xem lại, sửa, xóa).
8. Các trang hiển thị có phân trang.
9. Xem được các tin tức liên quan tới các sản phẩm nơng sản.
‐ Phía người quản trị
1. Giao diện website có bố cục hợp lý, đồng nhất về màu sắc, font chữ.
2. Có đăng nhập, tạo user, phân cấp user

3. Cập nhật tất cả các bảng trong cơ sở dữ liệu
4. Quản lý được hóa đơn đặt hàng nơng sản (xem, sửa, xóa, in)
5. Hiển thị 3 sản phẩm nông sản được khách hàng mua.
6. Các trang hiển thị có phân trang.
Trang Web mẫu:
- Tên website mẫu: />- Địa chỉ : Phòng 912 CT1 - X2 Bắc Linh Đàm, phường Hoàng Liệt, quận Hoàng
Mai, Tp. Hà Nội
- Số điện thoại: 0358.241.421
-

Một số trang giao diện của WebSite thực tế tham khảo.

Lập trình ứng dụng CSDL trên Web


6

Hình 1.1 Trang Chủ

Hình 1.2 Đăng nhập và đăng kí.

Lập trình ứng dụng CSDL trên Web


7

Hình 1.3. Chi tiết sản phẩm.

Hình 1.4 Giỏ hàng và đặt hàng.


Hình 1.5. Danh mục sản phẩm.
Lập trình ứng dụng CSDL trên Web


8

Hình 1.6. Blog về sản phẩm.

Hình 1.7. List trang Home

Lập trình ứng dụng CSDL trên Web


9

Hình 1.8. Thơng tin về trang Web

Lập trình ứng dụng CSDL trên Web


10

Hình 1.9. Đặc trưng của trang WebSite.

Lập trình ứng dụng CSDL trên Web


11

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

-

Sơ đồ USE CASE
Sơ đồ quan hệ

Bảng Sản phẩm.

Lập trình ứng dụng CSDL trên Web


12

Bảng User

Bảng Danh Mục Sản Phẩm

Bảng order

Bảng ảnh sản phẩm

Lập trình ứng dụng CSDL trên Web


13

Phần 2. Thiết kế và cài đặt chương trình
2.1 Giao diện phía khách hàng
2.1.1 Trang Layout

2.1.2 Các trang màn hình tương ứng với các chức năng hỗ trợ khách hàng

2.1.2.1

Đăng Nhập và Đăng Ký

Lập trình ứng dụng CSDL trên Web


14

2.1.2.2

Chi tiết sản phẩm

Lập trình ứng dụng CSDL trên Web


15
2.1.2.3

Tìm kiếm sản phẩm

2.1.2.4

Giỏ hàng và thanh tốn

Lập trình ứng dụng CSDL trên Web


16
2.1.2.5


Liên Hệ

2.2 Giao diện phía quản trị
2.2.1 Trang Layout

Lập trình ứng dụng CSDL trên Web


17

2.2.2 Các trang màn hình tương ứng với các chức năng quản trị hệ thống
-

Quản lý sản phẩm (thêm, sửa, xóa , tìm kiếm)

-

Quản lý danh mục (thêm, sửa, xóa , tìm kiếm)

-

Quản lý danh mục sản phẩm (thêm, sửa, xóa , tìm kiếm)

Lập trình ứng dụng CSDL trên Web


18

-


Quản lý tài khoản (thêm, sửa, xóa , tìm kiếm)

-

Quản lý blog (thêm, sửa, xóa , tìm kiếm)

Lập trình ứng dụng CSDL trên Web


19
-

Quản lý đơn đặt hàng (thêm, sửa, xóa , tìm kiếm)

-

Quản lý giao diện (thêm, sửa, xóa , tìm kiếm)

Lập trình ứng dụng CSDL trên Web


20

2.3 Chương trình
2.3.1 Homecontroller
using
using
using
using

using
using
using
using

Model.DAO;
Model.EF;
ShopFruit.Models;
System;
System.Collections.Generic;
System.Linq;
System.Web;
System.Web.Mvc;

namespace ShopFruit.Controllers
{
public class HomeController : Controller
{
public ActionResult Index()
{
ViewBag.Slides = new SlideDAO().ListAll();
var productDAO = new ProductDAO();
var DanhMucDAO = new DanhMucDAO();
var DanhMucSanPhamDAO = new CategoryProductDAO();
ViewBag.NewProducts = productDAO.ListNewProduct(4);
ViewBag.NewProducts1 = productDAO.ListNewProduct1(4);
ViewBag.ListFeatureProducts = productDAO.ListFeatureProduct(4);
ViewBag.SanPhamBanChay = productDAO.SanPhamBanChay(4);
ViewBag.DanhMuc = DanhMucDAO.ListAll();
ViewBag.DanhMucSanPham =

DanhMucSanPhamDAO.ListCategoryProduct();
return View();
}
public PartialViewResult HeaderCart()
{
var cart = Session[Common.CommonConstants.CartSession];
var list = new List<CartItem>();
if (cart != null)
{
list = (List<CartItem>)cart;
}
return PartialView(list);
}
public ActionResult Footer()
{
var model = new FooterDAO().GetFooter();
return PartialView(model);
}
public ActionResult About()
{
return View("About");
}
Lập trình ứng dụng CSDL trên Web


21
[HttpGet]
public ActionResult Contact()
{
return View();

}
[HttpPost]
public ActionResult Contact(MessageContact messageContact)
{
if (ModelState.IsValid)
{
var dao = new UserDAO();
long id = dao.InsertMessage(messageContact);
if (id > 0)
{
ModelState.AddModelError("", "Gửi thành công");
return RedirectToAction("Contact", "Home");
}
else
{
ModelState.AddModelError("", "Thêm user không thành công");
}
}
return View();
}
}
}

2.3.2 Userscontroller
using
using
using
using
using
using

using
using
using
using
using
using

Facebook;
Model.DAO;
Model.EF;
Model.ViewModel;
ShopFruit.Common;
ShopFruit.Models;
System;
System.Collections.Generic;
System.Configuration;
System.Linq;
System.Web;
System.Web.Mvc;

namespace ShopFruit.Controllers
{
public class UserController : Controller
{
private string groupID = "MEMBER";
private Uri RedirectUri
{
get
{
var uriBuilder = new UriBuilder(Request.Url);

Lập trình ứng dụng CSDL trên Web


22
uriBuilder.Query = null;
uriBuilder.Fragment = null;
uriBuilder.Path = Url.Action("FacebookCallback");
return uriBuilder.Uri;
}
}
public ActionResult Index()
{
return View();
}
public ActionResult QuanLyDonHang()
{
return View();
}
public PartialViewResult DonHangDangDat()
{
var session =
(UserLogin)Session[CommonConstants.USER_SESSION];
var thongTinDonHangDAO = new ThongTinDonHangDAO();
ViewBag.DonHangDangDat =
thongTinDonHangDAO.DonHangChuaGiao(session.UserID);
return PartialView();
}
public PartialViewResult TatCaDonHang()
{
var session =

(UserLogin)Session[CommonConstants.USER_SESSION];
var thongTinDonHangDAO = new ThongTinDonHangDAO();
ViewBag.TatCaDonHang =
thongTinDonHangDAO.ToanBoDonDatHang(session.UserID);
return PartialView();
}
public PartialViewResult DonHangDaGiao()
{
var session =
(UserLogin)Session[CommonConstants.USER_SESSION];
var thongTinDonHangDAO = new ThongTinDonHangDAO();
ViewBag.DonHangDaGiao =
thongTinDonHangDAO.DonHangDaGiao(session.UserID);
return PartialView();
}
[HttpGet]
public ActionResult ChiTietDonHang(string orderID)
{
var session =
(UserLogin)Session[CommonConstants.USER_SESSION];
var thongTinDonHangDAO = new ThongTinDonHangDAO();
var TatCaDonHang =
thongTinDonHangDAO.ToanBoDonDatHang(session.UserID);
DonHangViewModel dHModel = new DonHangViewModel();
Lập trình ứng dụng CSDL trên Web


23
foreach (var item in TatCaDonHang)
{

if (item.OrderID.Trim() == orderID.Trim())
{
dHModel.OrderID = item.OrderID;
dHModel.SanPhamID = item.SanPhamID;
dHModel.DonGia = item.OrderID;
dHModel.Quantity = item.Quantity;
dHModel.ThanhTien = item.ThanhTien;
dHModel.CreateDate = item.CreateDate;
dHModel.ShipName = item.ShipName;
dHModel.ShipMobile = item.ShipMobile;
dHModel.ShipAddress = item.ShipAddress;
dHModel.ShipEmail = item.ShipEmail;
dHModel.UserID = item.UserID;
dHModel.TongTien = item.TongTien;
dHModel.TenSanPham = item.TenSanPham;
dHModel.Status = item.Status;
}
}
return View(dHModel);
}
public ActionResult Login(LoginModel model)
{
if (ModelState.IsValid)
{
var dao = new UserDAO();
var result = dao.Login(model.Gmail,
Encryptor.MD5Hash(model.Password));
if (result == 1)
{
var user = dao.GetByGmail(model.Gmail);

var userSession = new UserLogin();
userSession.UserID = user.UserID;
userSession.Gmail = user.Gmail;
userSession.Name = user.Name;
userSession.Address = user.Address;
userSession.Phone = user.Phone;
string groupID = "ADMIN";
var Group = dao.GetByGroup(userSession.Gmail, groupID);
Session.Add(CommonConstants.USER_SESSION, userSession);
if (Group.Count > 0)
{
return RedirectToAction("Index", "Home_Admin", new { area
= "Admin" });
}
else
{
return RedirectToAction("Index", "Home");
}
Lập trình ứng dụng CSDL trên Web


24
}
else if (result == 0)
{
ModelState.AddModelError("", "tài khoản không tồn tại");
}
else if (result == -1)
{
ModelState.AddModelError("", "tài khoản đang bị khóa");

}
else if (result == -2)
{
ModelState.AddModelError("", "Tài khoản mật khẩu không
đúng không đúng");
}
else
{
ModelState.AddModelError("", "Tài khoản mật khẩu không
đúng không đúng");
}
}
return PartialView("Index");
}
public ActionResult LoginFacebook()
{
var fb = new FacebookClient();
var loginUrl = fb.GetLoginUrl(new
{
client_id = ConfigurationManager.AppSettings["FbAppID"],
client_secret =
ConfigurationManager.AppSettings["FbAppSecret"],
redirect_uri = RedirectUri.AbsoluteUri,
response_type = "code",
scope = "email",
});
return Redirect(loginUrl.AbsoluteUri);
}
public ActionResult FacebookCallback(string code)
{

var fb = new FacebookClient();
dynamic result = fb.Post("oauth/access_token", new
{
client_id = ConfigurationManager.AppSettings["FbAppID"],
client_secret =
ConfigurationManager.AppSettings["FbAppSecret"],
redirect_uri = RedirectUri.AbsoluteUri,
code = code
});
var accessToken = result.access_token;
if (!string.IsNullOrEmpty(accessToken))
{
fb.AccessToken = accessToken;
Lập trình ứng dụng CSDL trên Web


25
dynamic me = fb.Get("me?
fields=first_name,middle_name,last_name,id,email");
string email = me.email;
string name = me.first_name + " " + me.middle_name + " " +
me.last_name;
groupID = "MEMBER";
var user = new User();
user.Gmail = email;
user.Password = "NULL";
user.Phone = "NULL";
user.Address = "NULL";
user.GroupID = groupID;
user.Name = name;

user.Status = true;
ViewBag.Email = user.Gmail;
var resultInsert = new UserDAO().InsertForFacebook(user);
if (resultInsert > 0)
{
var userSession = new UserLogin();
userSession.Gmail = user.Gmail;
userSession.UserID = resultInsert;
Session.Add(CommonConstants.USER_SESSION, userSession);
return View("UpdateLoginFacebook");
}
}
return RedirectToAction("Index", "Home");
}
public ActionResult UpdateLoginFacebook(User user)
{
var dao = new UserDb();
var userSession =
(UserLogin)Session[CommonConstants.USER_SESSION];
user.UserID = userSession.UserID;
user.Password = Encryptor.MD5Hash(user.Password);
var update = dao.UpdateLoginFacebook(user);
ViewBag.Update = "Cập nhật thành công";
return View("Index");
}
public ActionResult Logout()
{
Session[Common.CommonConstants.USER_SESSION] = null;
return View("Index");
}

public ActionResult Register(RegisterModel model)
{
if (ModelState.IsValid)
Lập trình ứng dụng CSDL trên Web


×