Post on 17-Jan-2016
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