CSCI 4230 Homework #3 Group Three Samer Al Jefri * Kevin Odom * David Hood * JD * Phil.

Post on 17-Jan-2016

217 views 0 download

Tags:

Transcript of CSCI 4230 Homework #3 Group Three Samer Al Jefri * Kevin Odom * David Hood * JD * Phil.

CSCI 4230Homework #3

Group Three

Samer Al Jefri * Kevin Odom * David Hood * JD * Phil

SITE WALKTHROUGHSection One:

USER INTERFACE DESIGNSection Two:

Phase IIDesign Elements (#1)Home Page (#2)

Phase III

Navigation (#2)

SITE REQUIREMENTS & IMPLEMENTATION OF CODE

Section Three:

Sign-in Page

Sign-in Components

•Use Valid E-mail Address

•Store Info In Session

•Initiate Shopping Session

•Return To Previous Page

Input Field

<asp:TextBox runat="server" ID="txtUserName" />

Validation Controls

<asp:RegularExpressionValidator ID="loginRegExValidator" runat="server" ControlToValidate="txtUserName" ErrorMessage="Please, enter a valid email address."

ValidationExpression="^\w+[\w\.]*\@(\w+\.)+((com)|(net)|(org)|(edu))$" />

<asp:RequiredFieldValidator ID="loginRequiredFieldValidator" runat="server" ControlToValidate="txtUserName" ErrorMessage="This field is required." />

Submission Button

<asp:Button ID="cmdLogin" runat="server" Text="Login“ onclick="cmdLogin_Click"/>

protected void cmdLogin_Click(object sender, EventArgs e) { //Clear session for new user Session.Clear();

//Save the user id to the Session Session["userID"] = txtUserName.Text;

// Goto default page unless a different path is requested string path = "Default.aspx"; if (Request.Params["returnTo"] != null) { path = Request.Params["returnTo"]; }

Response.Redirect(path); }

Shipping Page

Shipping Components

•Remove Leading & Trailing Whitespace

•Reject Invalid Characters From Input

•Ensure Input Length is Reasonable

•Use Server-side Code For Field Validation

Input Field

<asp:TextBox ID="txtName" runat="server" Columns="65" />

Validation Controls

<asp:RequiredFieldValidator ID="nameRequiredFieldValidator" runat="server" ErrorMessage="Required“ ControlToValidate="txtName“ Display="Dynamic"/>

<asp:RegularExpressionValidator ID="nameRegExValidator" runat="server" ErrorMessage="Please only enter letters, numbers, spaces, or periods." ControlToValidate="txtName“ ValidationExpression="\s*[a-zA-Z\s\.]+\s*" Display="Dynamic" />

<asp:RegularExpressionValidator ID="nameRegExFirstLast" runat="server" Display="Dynamic" ErrorMessage="Please enter a first and last name, no middle names" ControlToValidate="txtName“ ValidationExpression="\s*[A-Za-z]+\s+[A-Za-z]+\s*" />

<asp:TextBox ID="txtStreet1" runat="server" Columns="65" />

<asp:RequiredFieldValidator ID="street1RequiredFieldValidator" runat="server" ErrorMessage="Required” ControlToValidate="txtStreet1" Display="Dynamic" />

<asp:RegularExpressionValidator ID="street1RegExValidator" runat="server" ErrorMessage="Please enter a street number and name“ ControlToValidate="txtStreet1“ ValidationExpression="^\d+\s+[A-Za-z\s\.]+“

Display="Dynamic" />

<asp:TextBox ID="txtZip" runat="server" />

<asp:RequiredFieldValidator ID="zipRequiredFieldValidator" runat="server“ErrorMessage="Required“ ControlToValidate="txtZip“ Display="Dynamic" />

<asp:RegularExpressionValidator ID="zipRegExValidator" runat="server"

ErrorMessage="Please enter in the form of #####.“ ControlToValidate="txtZip“ ValidationExpression="^\d{5}\s*$“ Display="Dynamic" />

protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { Page.Form.DefaultFocus = txtName.ClientID; Page.Form.DefaultButton = cmdShipFormSubmit.UniqueID;

// Populate fields with existing shipping info if (Session["ShippingData"] != null) { ShippingData shipping = (ShippingData)Session["ShippingData"]; txtName.Text = shipping.FullName; txtStreet1.Text = shipping.Street1; txtStreet2.Text = shipping.Street2; txtCity.Text = shipping.City; ddState.SelectedValue = shipping.State; txtZip.Text = shipping.Zip; }}}

protected void cmdShipFormSubmit_Click(object sender, EventArgs e) { //check for valid page if (!Page.IsValid) { return; }

ShippingData shipping = new ShippingData(); shipping.FullName = txtName.Text.ToString(); shipping.Street1 = txtStreet1.Text.ToString(); shipping.Street2 = txtStreet2.Text.ToString(); shipping.City = txtCity.Text.ToString(); shipping.State = ddState.SelectedValue.ToString(); shipping.Zip = txtZip.Text.ToString();

Session["ShippingData"] = shipping;

Response.Redirect("Checkout.aspx"); }

Invalid Submission

Phase IIIDATABASE ACCESS & SESSION TRACKING

SLIDES HERE

(1, 3, 4, and 5 – David)

(6, 7, and 8 – Samer)

David Hood

Default Page * Sign-in Page * Shopping Cart * CartData class

The CartData Class

• Static Methods– getCartFromSession()– saveCartToSession()

• Public Methods– addItem()– removeItem()– reset()– setQuantity()– getTotal()– exists()– getCartTable()

Default Page

User Not Logged In

User Logged in

Default Page

• Login Restriction

Returns Boolean value indicating if user is logged in.

Default Page

• Adding an item to the cart

The Shopping Cart

The Shopping Cart

• Cart GridView control binding

COLLABORATION & DEVELOPMENT TOOLS

Section Four:

Team Web Site, Yahoo Groups, and Google Code

slides here