Modulediễn đàn 2 256 SE x13 3131111 11112 11x11 rkrrred

Một phần của tài liệu báo cáo tốt nghiệp tìm hiểu và xây dựng ứng dụng wed siêu thị trực tuyến với asp net mvc (Trang 28 - 115)

I h.0i in

1.2.5. Modulediễn đàn 2 256 SE x13 3131111 11112 11x11 rkrrred

Người dựng nạc danh cú thể duyệt xem bài bỡnh luận trong Cỏc diễn đàn, tuy nhiờn đề gửi bài hay bỡnh luận họ phải đăng nhập vào hệ thụng.

Chức năng quản lớ diễn đàn, quản lớ cỏc bài thỏa luận dành cho người dựng cú vai trũ là editor. (biờn tập)

1.2.6. Module tỡm kiếm siờu thị

Người dựng cú thờ sử dụng module này đề tỡm kiếm cỏc siờu thị gần nơi mỡnh ở

theo khoảng cỏch và tỡm đường ởi đờn một siờu thị nào đú.

Với người dựng cú vai trũ là admin thỡ cũn cú thờm chức năng thờm vị trớ siờu thị mới vào hệ thụng.

1.2.7. Module bài bỏo, tin tức, và blog

Người dựng sử dụng module này cú thờ xem toàn bộ cỏc bài bỏo, xem theo đầu

mục, xem chỉ tiờt bài bỏo , việt lời bịnh và đỏnh giỏ .

Người dựng với vai trũ là editor cú thờm cỏc chức năng như quản lớ cỏc đầu mục bỏo, tạo đầu mục mới , xúa đõu mục đang cú trong hệ thụng. Quản lớ cỏc bài bỏo (chỉnh sửa, xúa), tạo bài bỏo mới

1.2.8. Module quốc tế húa

Module này cho người dựng biết thụng tin địa phương của người dựng qua thụng tin ở hụ sơ đăng kớ như thời gian, tiờn dựng tại địa phương (chẳng hạn như ở Mĩ là USD, ở Việt nam là VND)

1.2.9. Module kiểm thử

Ở module này chỉ kiểm thử với hai module khỏc trong hệ thống là module bài bỏo ,

tin tức, blog và module gửi thư.

2. MODULE Hề SƠ NGƯỜI DÙNG VÀ THÀNH VIấN

2.1. Tổng quan về module

Module sẽ sử dụng built-in ASP.NET 2.0 membership system (hệ thống quản lớ thành viờn xõy dựng sẵn cho ASP.NET 2.0) cung cấp bởi Microsoft cho phộp người dựng (user) thực hiện cỏc chức năng gồm cú đăng kớ tài khoản, đăng nhập ,

thay đổi mật khẩu, lấy lại mật khẩu, nhập thụng tin hồ sơ , cho phộp nhà quản trị

hệ thống (admin) đăng nhập vào hệ thống, quản lớ quyền, quản lớ người dựng

(trong đú cú xem toàn bộ người dựng trong hệ thống, tỡm người dựng và xúa

người dựng, thay đổi vai trũ người dựng... ).

Trước khi lưu trữ mật khẩu người dựng vào CSDL để bảo mật tất cả cỏc mật khẩu

sẽ được thay đổi thụng qua hàm băm .

Hỡnh 3.2 — Sơ đồ tổng quan người dựng và cỏc chức năng của module Ghi chỳ: Module này được sử dụng bởi hầu hết cỏc module khỏc như module cộng đồng, module tin tức bài bỏo, hay module đỏnh giỏ và cho điểm cỏc luồng

thảo luận trong diễn đàn,..

2.2. Sơ đồ chức năng

Hỡnh 3.3 — Sơ đồ tổng quan chức năng của module theo mụ hỡnh UC

2.3. Cỏc bảng DL của module

2.3.1. Tạo bảng DL

Sau khi tạo CSDL GlobalStore với SQL Server Management Studio , chạy file aspnet_regsdql trong thư mục C:\Windows\Microsofft.NET\FEramework\v2.0.50727 đề tạo cỏc bảng dành cho module thành viờn và hồ sơ mà ASP.NET phiờn bản 2.0

đó cung cấp sẵn.

Ngoài ra ta xõy dựng thờm bảng language để dựng cho việc tạo mục ngụn ngữ trong hụ sơ người dựng như sau:

Column Name Data Type Àlloww Nulls

XÃ annuanell) uniqueidentifter

Lannuanelame varchar(100)

Hỡnh 3.4 Bảng Langugage

2.3.2. Cõu hỡnh trong web.config cho membership, role và profile:

Mục membership:

<membership> <providers>

<clear/>

<add name=”AspNetSqalMembershipProvider"

type="System.Web. Security.SqlMembershipProvider,System.Web, Version=2.0.0.0,

Culture=neutral,PublicKey Token=b03f5f7f11d50a3a" connectionStringName=”GlobalStoreConnectionString" enablePasswordRetrieval="false" enablePasswordReset='"true” requiresQuestionAndAnswer="true” applicatiũnName="”GlobalStore" requiresUniqueEmail="false" passwordFormat="Hashed" maxlInvalidPasswordAttempts="5" minRequiredPasswordLength="”6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" passwordStrengthRegularExpression=”"/> <iproviders> </membership>

Qua nội dung phõn config cú thờ thấy ta dựng ASPNETSglMembershipProvider

phiờn bản 2.0 . Mật khõu trước khi lưu xuụng CSDL được thay đụi thụng qua hàm băm passwordFormat="Hashed",... Mục Role: <roleManager enabled="true"> <providers> <clear/> <add connectionStringName="GlobalStoreConnectionString” applicatiũonName="”GlobalStore"name="AspNetSaqlRoleProvider" type="System.Web.Security.SqlRoleProvider,System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f1 1d50a3a”/> <iproviders> </roleManager>

Mục Profile:

ASP.NET cung cấp một cơ chế cú sẵn đề quản lớ hồ sơ người dựng. Ta chỉ cần

khai bỏo cỏc thụng tin cần thiệt lưu trong hỗ sơ. Khi ứng dụng chạy thụng tin thuộc tớnh của hỗ sơ sẽ được thờm vào lớp Page .

<profile> <properties>

<add name="”Subscription" type=”String"/> <add name=”Language" type="String"/>

<add name="ShoppingCart” type=”"GlobalStore.Models.ShoppingCart"

serializeAs="Binary" allowAnonymous=true ”/> <group name=”Personallnformation">

<add name=”FirstName" type="String"/> <add name=”LastName" type="String”/> <add name=”Gender" type="String"/> <add name=”BirthDate” type="DateTime"/> <add name=”Occupation” type="String”/> <add name= Website” type="String"/> </group>

<group name="Contactlnformation”> <add name="”Street" type=”String”/> <add name=”City" type="String”/> <add name="”State” type="String"/> <add name=”ZipCode”" type="String”f> <add name=”Country" type="String"/> </group>

<iproperties> <iprofile>

2.4. Models

2.4.1. Lớp UserInformafion

Hệ thống sẽ cú một số trang mà người dựng sẽ sử dụng liờn quan với việc đăng

nhập và quản lớ tài khoản của họ. Đề truyền dữ liệu mà khụng phải tạo một số

lượng lớn biến cho mỗi phương trức hành động chỳng ta tự tạo lớp

Userlnformation để dựng. ằ Í UIserinformation Class = Properties “3! ChannePaseworr 7 ConfirnFas=worrd SẼ. Email F k nó Paszword $f. RetumLil P=p Rcle=

7 Sec retll nsuuer

*#? SecretQuestion

m Liserhlame

Hỡnh 3.5 Sơ đồ lớp Userlnformation 2.4.2. Lớp ProfileInformation

Lớp này được dựng đề quản lớ thụng tin hồ sơ đồng thời hỗ trợ để tạo cỏc chọn

lựa dropdown phõn điờn thụng tin trờn trang quản lớ hụ sơ như nghệ nghiệp, nước hiện tại ở, ngụn ngữ, ... Cỏc thuộc tớnh của lớp tương ứng với cỏc thuộc tớnh khai bỏo trong web.config và cỏc phương thức tạo dropdown tương ứng cho phần quản

lớ hồ sơ người dựng gồm cú dropdown cho cỏc mục:

e Counlry. Gender. Language. Occupatfion. Subscription. :„. 27

nniieinỏfosrmadion Clóss =' Broperties ZŠf. BirthDate S ty ZŠ*f Country Fấf FirstName mm Genrler [se ffF Lanquaqe Iấƒ LastName j Orrupation FấP State HP. Street 7 SulscrI2tIar [yipe FŠ*!. Website m7 Zipcode E=l Methods GetCountryList tsetGsenrlerl Is† GetLanquageList GetệccupationList GetSubsrcriEticnList Ê Ê€ Ê ¿ 4 Hỡnh 3.6 Sơ đồ lớp Profilelnformation 2.5. Controllers xài

Tương ứng với cỏc chức năng của module ta cỏc phương thức cho controller của module này như sau:

Phương thức hành động Bảo mật ' Cỏc tham số

Logout _——= _——

Login _—=- _—-

Login_OnPost _—= string userName, sftring password, bool persistent, string returnUrl

ForgotPassword _——- _——-

ForgotPassword_OnPost _—- string userName, string secretAnswer

Register _ _—-

Register_OnPost _—- Userlnformation userlnformation ChangePassword _—- string resetPassword

ChangePassword OnPost ' -—- Userlnformation userlnformation

UserProfile _— _——-

UserProfile_OnPost _— Profilelnformation profilelnformation

GetErrorMessage _—— MembershipCreateStatus

membershipCreateStafus

ManageUser Admin siring searchType, string searchlnput DeleteUser Admin string Ăd

ManageRole Admin _——-

Tại hhọœC

CreateRole Admin sfring newRole

DeleteRole Admin sfring Ăd

EditUser Admin string id

EditUser_OnPost Admin string Ăd, bool approved

2.6. Views

Module này tạo thành từ nhiều view trong đú cú những views được sử dụng bởi

` 1 ` Ấ: ` ~ " ` Ã x "sA ơ " ơ ^ Kả

người dựng cuụi và những views được dựng đờ hồ trợ việc quản trị bảo mật của

x5 ^ ` r$ JL.ơ r$ Kả x " `

module. Dưới đõy là thờ hiện cụ thờ của cỏc views trong module này:

Liờn kết tới trang login được hiễn thị trờn cựng phớa bờn phải ngay sau mục túm

lược việc mua hàng — shopping summary của mỗi trang bất kể khi nào mà người dựng là nạc danh. Sau khi người dựng đăng nhập vào hệ thống thỡ liờn kết này sẽ

được õn đi thay vào đú là cỏc chức năng mà người dựng đó đăng nhập cú đú là

đăng xuất — logout, quản lớ hồ sơ — manage profile, và thay đổi mật khẩu — change

password.

View đăng kớ cho phộp người dựng mới đăng kớ tài khoản với hệ thống. Trong quỏ

trỡnh đăng kớ người dựng mới sẽ tạo hồ sơ với cỏc thụng tin : FirstName (string) ,

LastName (string) , Gender (string) , BirthDate (datetime), Occupation (sring) , và

website (siring) . Nhúm thụng tin về địa chỉ trong hồ sơ cú cỏc thuộc tớnh phụ trợ sau: Street, PostCode, City, State và Country tất cả đều cú kiểu string. Nhúm cuối

cựng về Preferences cú cỏc thuộc tớnh Cultrure và Newsletter .

View quờn mật khẩu cho phộp người dựng thay đổi mật khẩu bằng việc trả lời một

cõu hỏi bảo mật sau khi đó điền đỳng tờn người dựng vào ụ người dựng. Sau khi trả lời đỳng cõu hỏi bảo mật lỳc này người dựng sẽ được phộp tạo mật khẩu mới

và dựng tài khoản của mỡnh với mật khõu mới này.

Trang quản lớ hồ sơ người dựng sẽ chỉ truy cập được bởi người dựng . Nú cho

phộp người dựng thay đổi cỏc thụng tin trờn hồ sơ mà họ thiết lập từ lỳc họ tạo tài

khoản.

Cỏc trang để quản lớ người dựng dành cho người quản trị như view dành cho quản

lớ người dựng ManageUser view giỳp nhà quản trị tỡm kiếm người dựng hoặc bằng

tờn hoặc bằng địa chỉ , view dành cho việc chỉnh sửa — edit user , sẽ hiển thị cỏc chỉ tiế thờm về người dựng và cho phộp nhà quản trị để hoặc khụng để tài khoản đú hoạt động , hay thay đổi cập nhật vai trũ người dựng.

Ngoài ra cũn cú view dành cho quản lớ vai trũ - ManageRole được sử dụng để tạo

, xúa cỏc vai trũ trong hệ thống.

Như vậy ta cú cỏc views của module này

ChangePassword.aspx Trang này dựng thay đổi

mật khõu của người dựng user/changepassword/

EditUser.aspx Trang này cho phộp thay

đổi quyền người dựng,

ngăn hoạt động của tài khoản

user/edituser/4{id)}

ForgotPassword.aspx . Trong trường hợp người user/forgotpassword dựng quờn mật khõu

Login.aspx Trang đăng nhập user /login

ManageRole.aspx Trang dành cho nhà quản trị tạo / xúa cỏc vai trũ ỏp

dụng cho hệ thống

user/managerole

ManageUser.aspx Trang dành cho nhà quản trị xem danh sỏch người dựng, qua đú xúa người dựng

user/manageruser

Register.aspx Trang này cho phộp người dựng nạc danh trở thành người dựng đó đăng kớ

bằng việc điền thụng tin

người dựng và đăng kớ

uSer/register

UserProfile.aspx

Trang hồ sơ dành cho

người dựng thay đổi thụng

tin hồ sơ của mỡnh user/profile

2.7. Sử dụng Javascriptf

Trong view content của trang quản lớ người dựng (ManageUSser.aspx) việc xúa người dựng sẽ được sử lớ bằng kĩ thuật Ajax với đoạn mó javascript nằm trong tệp manage-user.js với nguụn /content/scripts/manage-user.js.

Đoạn mó lệnh xúa người dựng sẽ được sử dụng để triệu gọi phương thức xúa người dựng DeleteUser trong UserController . Nội dung của đoạn lệnh:

$(".delete-user-button").click(function() { var userld = $(this).attr("meta:id"); $.post( "/User/DeleteUser", {Ăd: userld }, function(data) { $("#user-" + data.object.id).rernove(); } Ison” return false; b› Tại hhọœC U: ThăngLonp 30

Tương tự vậy thỡ trong view content của trang quản lớ vai trũ (ManageRtole.aspx)

chức năng xúa vai trũ cũng được xử lớ bảng kĩ thuật này với đoạn mó xúa nằm trong tệp manage-role.js nguụn /content/scripts/manage-role.js.

2.8. Cầu hỡnh định tuyến

Sử dụng định tuyến mặc định

routes.MapRoute( "Default",

"{controller}/{action}',

new { controller = (string)null, action = (string)null } )

2.9. Xử lớ xỏc thực người dựng

public void FormsAuthentication_ OnAuthenticate(object sender, FormsAuthenticationEventArgs args)

lf (FormsAuthenticatlon.CookiesSupported)

If (Request.Cookies[lFormsAuthenticatlon.FormsCookieName] != null)

{ try

FormsAuthentication Ticket ticket =

EormsAuthentIcation.Decrypt(Request.Cookies[F ormsAuthentication.FormsCookie Name].Value);

args.User = new GenericPrincipal( new Forrnsldentity(ticket),

new string[0] // The roles are handled by the //RoleManager

)›

args.Context.User = args.User;

catch (Exception) { /* decryption failed ”/ }

} } else {

throw new HttpException("Cookieless Forms Authentication is not supported for this application.");

}

3. MODULE THƯƠNG MẠI :„.

3.1. Tổng quan về module

Chuỗi cỏc siờu thị của cụng ty Golbal Store Pte. đều cú chung cấu trỳc về cỏc gian

hàng như thiết bị õm thanh — Audio, đồ cho ụ tụ và thiết bị định vị - Car and GPS, mỏy tớnh — Computers , điện thoại cố định và đồ văn phũng — Mobilephones and

Office, õm nhạc, phim và sỏch truyện — Music , Movies and Books. Tuy nhiờn cú một số gian hàng trống tạo khụng gian mở cho người dựng thuờ. Khỏch hàng khi

thuờ gian hàng trống phải đăng kớ tài khoản , những khỏch hàng này cú toàn quyền quản lớ gian hàng của mỡnh.

Khỏch hàng khi mua hàng trực tuyến với Global Store Pte họ sẽ cú thể duyệt cỏc

gian hàng của siờu thị - xem danh sỏch cỏc gian hàng. Danh sỏch cỏc gian hàng

sẽ cú tờn gian hàng và đặc tả về gian hàng.

Khi khỏch hàng chọn xem một gian hàng - xem danh sỏch cỏc sản phầm cú trong

một gian hàng cụ thể . Danh sỏch cỏc sản phẩm với mỗi sản phẩm sẽ cú kốm theo

thụng tin vắn tắt về sản phẩm (tờn sản phẩm, thụng tin vắn tắt về sản phẩm, giỏ

bỏn, giỏ bỏn giảm giỏ nếu cú,số lượng sản phẩm cũn trong cửa hàng) ,nỳt Add To

Cart cho phộp người dựng chọn đưa sản phẩm vào giỏ hàng và một liờn kết cho

phộp xem chỉ tiết sản phẩm, hỡnh ảnh sản phẩm thường là nhỏ hơn so với hỡnh ảnh trong mục xem chỉ tiết.

Khi khỏch hàng chọn xem chỉ tiết sản phẩm thỡ sẽ được chuyờn đến view dành cho xem chỉ tiết sản phẩm. Trờn view này người dựng sẽ thấy được thụng tin chỉ tiết

sản phẩm như tờn sản phẩm, số hiệu sản phẩm, hỡnh ảnh sản phẩm to hơn nếu cú, thụng tin chỉ tiết về sản phẩm nếu cú, giỏ bỏn, giỏ bỏn đó cú khuyến mói giảm

giỏ nếu cú, số lượng hàng cú trong kho, ụ chọn số lượng mua (khỏch hàng hoàn toàn cú thể chọn mua với số lượng mong muốn vỡ siờu thị cú thể điều động hàng), cuối cựng là nỳt Add to Cart.

Nếu người dựng chọn mua sản phẩm thỡ sẽ thấy được một hoạt cảnh (animation)

dạng hỡnh ảnh sản phẩm bay vào giỏ hàng (fly-into-cart) . Ở đõy là sản phẩm sẽ

bay vào vị trớ cú thụng tin túm tắt mua hàng (shopping summary) cỏc thụng tin vẫn

tắt mua hàng sẽ được cập nhật đú là số tiền phải trả và số mặt hàng trong giỏ

hàng (items). Trong shopping summary cũng cú liờn kết check out đưa người dựng

tới thụng tin mua sắm chỉ tiết (view shoppingCart) để qua đú người dựng cú thể kiểm tra chỉ tiết hơn những gỡ mỡnh đó mua.

Khỏch hàng khi chọn check out ở mục shopping summary sẽ được chuyờn tới

view thụng tin chỉ tiết mua sắm của khỏc hàng.

với người dựng (nhõn viờn , quản trị - store room worker , admin) thực hiện việc nhận lệnh đặt mua, quản lớ hàng trong kho (xem, thờm, xúa , cập nhật sỏch), với hệ thống bờn ngoài (Paypal system, shipping system) giỳp thực hiện việc thanh toỏn trực tuyến và giao hàng tới người mua.

Người dựng với vai trũ quản lớ siờu thị - Store Keeper khi đăng nhập vào hệ thống cú thể quản lớ gian hàng mà mỡnh tạo ra như thờm mới cỏc sản phẩm vào gian hàng, xúa sản phõm của gian hàng, ...

Ghi chỳ: Với phần mua hàng thỡ khụng bắt buộc người dựng phải cú tài khoản và

đăng nhập vào hệ thống trỏnh trường hợp đụi khi người dựng khụng muốn mắt

thời gian đăng kớ tài khoản

3.2. Sơ đồ chức năng

Hỡnh 3.7 Sơ đồ chức năng theo mụ hỡnh UC của module thương mại

3.3. Tỡm hiểu , sử dụng Paypal cho chức năng thanh toỏn (check

ouf)

Paypal cú 3 loại tài khoản sử dụng tiền thật cho khỏch hàng, những người buụn bỏn trực tuyến và cỏc doanh nghiệp và 1 loại tài khoản dựng tiền ảo và dành cho cỏc nhà phỏt triển ứng dụng để thử nghiệm ứng dụng của mỡnh. Ở đõy ta quan tõm tới loại hỡnh tài khoản thứ tư : Sandbox Account vỡ ứng dụng chỉ ở dạng thử nghiệm.

3.3.1. Tạo tài khoản ảo cho mục đớch kiểm thử

Sandbox Account: Là tài khoản cú thể ở dạng dựng cho doanh nghiệp , hoặc cho người buụn bỏn trực tuyến hay cho cỏ nhõn tuy nhiờn lại chỉ được tạo ra và sử dụng được trong mụi trường thử nghiệm và dĩ nhiờn chỉ dựng cho mục đớch thử

nghiệm mà thụi. Để kiểm nghiệm chỉ cần 2 tài khoản : 1 doanh nghiệp , 1 cỏ nhõn

là đủ. Trước khi tạo 2 tài khoản này ta cần tạo tài khoản dành cho nhà phỏt triển ứng dụng (Dựng Paypal cho website thương mại của mỡnh) sau đú với tài khoản này cú thể tạo bao nhiờu tài khoản Sandbox tựy theo ý muốn. Tạo tài khoản dành cho lập trỡnh viờn tại địa chỉ sau: htfps://developer.paypal.com/

Sau đú tạo 2 tài khoản Sandbox dành cho người mua và bỏn như hỡnh vẽ sau

Test Accounts

Yaur test azcounts are lizted belaw. Yau must have ọ Business accouint ta represent ọ marcharnt, and a Eezrsnunal accnunt ta represent a buyer. To simulate an actinn on the live site (PayEal.coam),

select a test account and click Enter Sandbox Test Site.

Create Accourt: Przconflgured | Crazatz Mlanually Website Pavmients Pro (LIS, LIk<]

Lag-in Email Payment Review “g2 nebiSE Reset

8! dangti 1273804062 biz@tyahoo.com Disablad Di=ahlan Recet Businass Varifiad

View Details

danuti_ 1270051072. nerfmyahoo.cam Disablsd MA Re=et

Eer=unal werified

BH view Details

Helete

Hỡnh 3.8 — Cỏc tài khoản kiểm thử với sandbox

Như vậy là ta đó cú tài khoản để thực hiện cỏc giao dịch ảo cho mục đớch kiểm thử với website thương mại của mỡnh.

Một phần của tài liệu báo cáo tốt nghiệp tìm hiểu và xây dựng ứng dụng wed siêu thị trực tuyến với asp net mvc (Trang 28 - 115)

Tải bản đầy đủ (PDF)

(115 trang)