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

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

Embed Size (px)

Citation preview

Page 1: 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

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

SITE WALKTHROUGHSection One:

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

USER INTERFACE DESIGNSection Two:

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

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

Phase III

Navigation (#2)

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

SITE REQUIREMENTS & IMPLEMENTATION OF CODE

Section Three:

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

Sign-in Page

Sign-in Components

•Use Valid E-mail Address

•Store Info In Session

•Initiate Shopping Session

•Return To Previous Page

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

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"/>

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

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); }

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

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

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

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*" />

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

<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" />

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

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; }}}

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

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"); }

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

Invalid Submission

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

Phase IIIDATABASE ACCESS & SESSION TRACKING

SLIDES HERE

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

(6, 7, and 8 – Samer)

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

David Hood

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

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

The CartData Class

• Static Methods– getCartFromSession()– saveCartToSession()

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

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

Default Page

User Not Logged In

User Logged in

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

Default Page

• Login Restriction

Returns Boolean value indicating if user is logged in.

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

Default Page

• Adding an item to the cart

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

The Shopping Cart

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

The Shopping Cart

• Cart GridView control binding

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

COLLABORATION & DEVELOPMENT TOOLS

Section Four:

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

Team Web Site, Yahoo Groups, and Google Code

slides here