ECT 455 E-Commerce Web Site Engineering

Deliverable D
Technical Requirements

.doc Word Format

Table of Contents

  • Purpose
  • 1. Project Description and Scope
  • 2. Detailed Design
    • 2.1 Overview of Application
    • 2.2 Significant Algorithms
      • 2.2.1 Class diagrams
      • 2.2.2 Class List
      • 2.2.3 Pseudo code
    • 2.3 Data Structures
      • 2.3.1 Entity Relationship Diagram (ERD)
      • 2.3.2 SQL
  • 3. Screen Layouts
    • 3.1 Interface Design
      • 3.1.1 Medium Fidelity Prototype
      • 3.1.2 Screen Layout for Mobile
      • 3.1.3 Website DOCTYPE Declaration
      • 3.1.4 Mobile Site DOCTYPE Declaration
      • 3.1.5 Cascading Style Sheet
    • 3.2 Information Architecture
    • 3.3 Page Content
      • 3.3.1 High Fidelity Prototype
      • 3.3.2 Page Content Description
    • 3.4 Navigation Schemes
      • 3.4.1 Horizontal Navigation Bar
      • 3.4.2 Left-Side Navigation
      • 3.4.3 Navigation for Mobile Phone
  • 4. Testing Consideration
    • 4.1 Usability Testing
  • 5. Approvals
  • Team Contribution

Purpose

The purpose of this project is to encourage mentors, provide educational assistance, and allow parents to take their children to participate in activities and program in order to gain knowledge, experience, and self improvement.

1. Project Description and Scope

The object of Forever Moving Forward (FMF) is to develop a website that persuades mentees, mentors, donors and other visitors to take part in the activity and program. In each section, it will provide a short description of the application that was designed for the FMF website including requirement analysis, design prototype, implementation and usability testing. In addition, visitors will be able to create an account to get involved with any of the programs. They can also sign in, view previous events, and check available upcoming activities. Moreover, donors can donate money through the website.

2. Detailed Design

The object of Forever Moving Forward (FMF) is to develop a website that persuades mentees, mentors, donors and other visitors to take part in the activity and program. In each section, it will provide a short description of the application that was designed for the FMF website including requirement analysis, design prototype, implementation and usability testing. In addition, visitors will be able to create an account to get involved with any of the programs. They can also sign in, view previous events, and check available upcoming activities. Moreover, donors can donate money through the website.

2.1 Overview of Application
  • DD 2.1.1 (Reference TR 4.1) Registration - Users can register and create an account
  • DD 2.1.2 (Reference TR 4.2) Login - Users can login to access privilege content
  • DD 2.1.3 (Reference TR 4.3) Calendar - Site Owner can update Events Calendar
  • DD 2.1.4 (Reference TR 4.4) Search Content -Users can search site content
  • DD 2.1.5 (Reference TR 4.5) Message Board - Registered users may view message boards, post new items
  • DD 2.1.5 (Reference TR 4.5) Donation - Users can donate money, payment processing
2.2 Significant Algorithms

Forever Moving Forward web site will use the MVC architecture. Each controller class is the entry point of the services for retrieval of data and database transactions.

   2.2.1 Class Diagrams

MVC Architecture
As is depicted by Fig 2.2.1 we will be making use of the MVC architecture and will link our controllers to our classes via the model layer.

    2.2.2 Class List
  • Events – Data object for calendar events
  • EventController – Controller for event actions
  • Users – Data object for system users
  • UserController – Controller for user actions
  • Mentors – Data object for mentors profiles
  • Topics – Data object for message board topics
  • Posts – Data object for message board posts
  • ForumController – Controller for forum actions
  • Galleries – Data object for image galleries
  • Images – Data object for images
  • ImageController – Controller for gallery actions
  • SearchController – Controller for searches
    2.2.3 Pseudo Code
  • DD 2.2.3.1.1 Class name: User (Reference to TR 4.1.)
  • DD 2.2.3.1.2 Package name: FMF.User
  • DD 2.2.3.1.3 Method: login
  • DD 2.2.3.1.4 Purpose: Validate username and password and set logged in session status. This feature will be implemented in our web and mobile site.
  • DD 2.2.3.1.5 Input parameters userName, passWord
  • DD 2.2.3.1.6 Return type: boolean (login successful)
  • DD 2.2.3.1.7 Code:

    Retrieve userRec from Users table using userName, password
    If userRec not returned
      Return false
    Else
      Return true
    Endif

  • DD 2.2.3.2.1 Class name: Event (Reference to TR 4.3.)
  • DD 2.2.3.2.2 Package name: FMF.Event
  • DD 2.2.3.2.3 Method: getEvents
  • DD 2.2.3.2.4 Purpose: Validate Retrieve event listing for date entered. This feature will be implemented in our web and mobile site.
  • DD 2.2.3.2.5 Input parameters day, month, year
  • DD 2.2.3.2.6 Return type: event[]
  • DD 2.2.3.2.7 Code:

    Retrieve events[] from Events table using day, month, year
    If events[] returned
      Return events[]
    Endif

  • DD 2.2.3.3.1 Class name: User (Reference to TR 4.1.)
  • DD 2.2.3.3.2 Package name: FMF.User
  • DD 2.2.3.3.3 Method: register
  • DD 2.2.3.3.4 Purpose: Validate username, password, zip code, and email address and create a user account in initiated status. This feature will be implemented in our web and mobile site.
  • DD 2.2.3.3.5 Input parameters userName, passWord, email, address, city, state, zipCode
  • DD 2.2.3.3.6 Return type: boolean (registration initiated)
  • DD 2.2.3.3.7 Code:

    Var EmailExp = /^[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-z0-9]{2,4}$/
    If not Email matches EmailExp
      Throw error message “Email Invalid”
    Endif
    If not Email is unique
      Throw error message “Email already exists”
    Endif
    If not Password is 10 characters in length and contains at least one number
      Throw error message “Password Invalid”
    Endif
    Increment last userID
    Create row in Users table using new userID
    If error
      ROLLBACK
      Return false
    Else
      COMMIT
      Return true
    Endif
2.3 Data Structures
    2.3.1 Entity Relationship Diagram (ERD)

Entity Relationship Diagram

    2.3.2 SQL

DROP TABLE GalleryImage
DROP TABLE Gallery
DROP TABLE FMFEvent
DROP TABLE Post
DROP TABLE Topic
DROP TABLE Mentor
DROP TABLE FMFUser
DROP TABLE AccessLevel

CREATE TABLE AccessLevel
(
  AccessLevelID INT PRIMARY KEY,
  AccessDesc NVARCHAR(50)
)

CREATE TABLE FMFUser
(
  UserID INT IDENTITY(1, 1) PRIMARY KEY,
  FName NVARCHAR(50),
  LName NVARCHAR(50),
  Address NVARCHAR(50),
  City NVARCHAR(50),
  State NCHAR(2),
  ZIP NVARCHAR(10),
  Email NVARCHAR(50),
  Username NVARCHAR(50),
  Password NVARCHAR(50),
  AccessLevelID INT,

  CONSTRAINT FK_FMFUser_AccessLevel FOREIGN KEY (AccessLevelID)
    REFERENCES AccessLevel(AccessLevelID)
)

CREATE TABLE Mentor
(
  UserID INT PRIMARY KEY,
  ImageFileLoc NVARCHAR(50),
  MentorDesc NTEXT

  CONSTRAINT FK_Mentor_User FOREIGN KEY (UserID)
    REFERENCES FMFUser(UserID)
)

CREATE TABLE Topic
(
  TopicID INT PRIMARY KEY,
  Subject NVARCHAR(200),
  TopicContent NTEXT,
  CreatedByUserID INT,
  CreatedOn DATETIME,

  CONSTRAINT FK_Topic_User FOREIGN KEY (CreatedByUserID)
    REFERENCES FMFUser(UserID)
)

CREATE TABLE Post
(
  PostID INT PRIMARY KEY,
  TopicID INT,
  PostContent NTEXT,
  PostByUserID INT,
  PostOn DATETIME,

  CONSTRAINT FK_Post_Topic FOREIGN KEY (TopicID)
    REFERENCES Topic(TopicID),

  CONSTRAINT FK_Post_User FOREIGN KEY (PostByUserID)
    REFERENCES FMFUser(UserID)
)

CREATE TABLE FMFEvent
(
  EventID INT IDENTITY(1,1) PRIMARY KEY,
  EventName NVARCHAR(50),
  EventDesc NVARCHAR(1000),
  Location NVARCHAR(100),
  EventDate DATETIME,
  StartTime DATETIME,
  EndTime DATETIME,
)

CREATE TABLE Gallery
(
  GalleryID INT IDENTITY(1,1) PRIMARY KEY,
  EventID INT,
  GalleryDesc NTEXT,

  CONSTRAINT FK_Gallery_FMFEvent FOREIGN KEY (EventID)
    REFERENCES FMFEvent(EventID)
)

CREATE TABLE GalleryImage
(
  ImageID INT IDENTITY(1,1) PRIMARY KEY,
  GalleryID INT,
  ImageFileLoc NVARCHAR(50),

  CONSTRAINT FK_GalleryImage_Gallery FOREIGN KEY (GalleryID)
    REFERENCES Gallery(GalleryID)
)

3. Screen Layouts
3.1 Interface Design
    3.1.1 Medium Fidelity Prototype

Medium Fidelity Prototype

    3.1.2 Screen Layout for Mobile

Mobile Prototype

    3.1.3 Website DOCTYPE Declaration
  • The FMF website interface will utilize the XHTML 1.0 STRICT DOCTYPE:
    <!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Strict//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd”>
    3.1.4 Mobile Site DOCTYPE Declaration
  • The FMF mobile interface will utilize the XHTML MP 1.0 DOCTYPE:
    <?xml version=”1.0”?>
    <!DOCTYPE html PUBLIC “-//WAPFORUM//DTD XHTML Mobile 1.0//EN” “http://www.wapforum.org/DTD/xhtml-mobile10.dtd”>
    3.1.5 Cascading Style Sheet

body {
  font: 100% Arial, Verdana, Helvetica, sans-serif;
  background: #000000;
  margin: 0;
  padding: 0;
  text-align: center;
  color: #000000;
}
.oneColLiqCtrHdr #container {
  width: 800px;
  background: #FFFFFF;
  margin: 0 auto;
  border: 1px solid #000000;
  text-align: left;
}
.oneColLiqCtrHdr #header {
  background: #FFFFFF;
  padding: 0 0px 0 0px;
}
.oneColLiqCtrHdr #header h1 {
  margin: 0;
  padding: 0 0px;
}
.oneColLiqCtrHdr #header h2 {
  margin: 0;
  padding: 0 0px;
  text-align: center;
}
.oneColLiqCtrHdr #menu {
  margin: 0;
  padding: 0 0px;
  text-align: center; vertical-align:middle;
  background-image:url(../images/menu.jpg); background-repeat:no-repeat;
  padding: 0px;
  width: 800px;
  height: 50px;
}
.oneColLiqCtrHdr #mainContent {
  padding: 0 0px;
  background-image:url(../images/centerpanel.jpg); background-repeat:no-repeat;
  width: 400px;
  height: 375px;
  float: left;
}
.oneColLiqCtrHdr #leftPane {
  float: left;
  width: 200px;
  height: 375px;
  background-image:url(../images/leftpanel.jpg); background-repeat:no-repeat;
  padding: 0px;
}
.oneColLiqCtrHdr #rightPane {
  float: left;
  width: 200px;
  height: 375px;
  background-image:url(../images/rightpanel.jpg); background-repeat:no-repeat;
  padding: 0px;
}
.oneColLiqCtrHdr #centerBox {
  float: left;
  width: 250px;
  height: 100px;
  background: #FFFFCC;
  border: thick; border-color: #CCFF66;
  padding: 2px;
}
.oneColLiqCtrHdr #box {
  width: 125px;
  height: 100px;
  background: #FFFFCC;
  border: thick; border-color: #CCCCCC;
  padding: 2px;
}
.oneColLiqCtrHdr #footer {
  padding: 0 10px;
  background:#FFFFFF;
}
.oneColLiqCtrHdr #footer p {
  font: 100% Arial, Verdana, Helvetica, sans-serif;
  background: #FFFFFF;
  margin: 0;
  padding: 0;
  text-align: center;
  color: #000000;
}
.button {
  font: 100% Arial, Verdana, Helvetica, sans-serif;
  background-image:url(../images/clearbutton.png); background-repeat:no-repeat; background-repeat: none; border-style:none; vertical-align:text-top; width:90px;height:31px;
}
.menuButton {
  font: 100% Arial, Verdana, Helvetica, sans-serif; border-style:none; vertical-align:text-top; width:90px;height:31px;
}
.menuButton:hover {
  font: 100% Arial, Verdana, Helvetica, sans-serif;
  background-image:url(../images/selected.jpg); background-repeat:no-repeat; background-repeat: none; border-style:none; vertical-align:text-top; width:90px;height:31px;
}

3.2 Information Architecture

Site Architecture
Mobile Architecture

3.3 Page Content
    3.3.1 High Fidelity Prototype

High Fidelity Prototype

    3.3.2 Page Content Description
  • I. Home Page: This page will contain minimum content of information, this will include the Mission Statement and flash video of images. The page will include windows and links to other pages.
  • II. About Us: This page will automatically open in the sub-category History page.
    • a. History:
      • i. An overview of the organization
      • ii. Left-Side Navigation – About Us
    • b. Photos and Testimonials
      • i. Photos of events and activities
      • ii. Testimonial quotes from various members of the organization
      • iii. Left-Side Navigation – About Us
    • c. Meet our Team (opens to sub-category Program Directors page)
      • i. Bios and photos of the organization leaders
      • ii. Left-Side Navigation – About Us
    • d. Mentors
      • i. Bios and photos of the Mentors
      • ii. Left-Side Navigation – About Us
    • e. Partners
      • i. List of partners and sponsors, includes links to their websites and information about how to become a partner/sponsor
      • ii. Left-Side Navigation – About Us
    • f. Join our Team (opens to sub-category Becoming a Mentor page)
      • i. Information about how to become a mentor
      • ii. Left-Side Navigation – About Us
    • g. Becoming a FMF
      • i. Information about how to become a mentee
      • ii. Left-Side Navigation – About Us
  • III. Community: This page will automatically open in the sub-category News page
    • a. News
      • i. Information about the program; reports; notices
      • ii. Left-Side Navigation – Community
    • b. Activities and Events
      • i. Information about past and future events. Photos of past events.
      • ii. Left-Side Navigation – Community
    • c. Calendar
      • i. Event Calendar
      • ii. Left-Side Navigation – Community
    • d. Message Board
      • i. A community forum with several topics to post messages about; available for all registered members.
      • ii. Left-Side Navigation – Community
  • IV. Donate: This page will automatically open in the sub-category How to Donate page.
    • a. How to Donate
      • i. Information about how to donate and where the donations go towards
      • ii. Left-Side Navigation – Donate
    • b. Submit a Cash Donation
      •   i. A PayPal cash donation form
      •   ii. Left-Side Navigation – Donate
    • c. Donate your Time
      • i. Information about volunteering, a contact form
      • ii. Left-Side Navigation – Donate
    • d. Thank Yous
      • i. A list and tribute to individuals/groups who have donated to the organization
      • ii. Left-Side Navigation – Donate
  • V. Contact Us: Information about how to contact FMF
  • VI. Login/Register: A form for members to either login to the website, or register as a user. A registered user will have access to certain items such as the message board.
3.4 Navigation Schemes

A global navigation scheme will include a horizontal navigation bar on each page that links to the 6 top line category pages (Home, About Us, Community, Donate, Contact Us, Login Register). Each top-line page will have a Left-Side Navigation to the sub-category pages for the related top-line page (only if there are sub-category pages)

    3.4.1 Horizontal Navigation Bar

Navigation Bar

    3.4.2 Left-Side Navigation

Left Navigation

    3.4.3 Navigation for Mobile Phone

Mobile Navigation

4. Testing Consideration
4.1 Usability Testing
    4.1.1 Registration - Users can register and create an account (Reference DD 2.1.1)
    4.1.2 Login - Users can login to access privilege content (Reference DD 2.1.2)
    4.1.3 Calendar - Site Owner can update Events Calendar (Reference DD 2.1.3)
    4.1.4 Search Content -Users can search site content (Reference DD 2.1.4)
    4.1.5 Donation - Users can donate money, payment processing (Reference DD 2.1.5)
5. Approvals
  • Kristina Wu (Project Lead): 5/18/2010
  • Martha Fitt (Media/Graphic Designer): 5/18/2010
  • Jake Lake (DBA / Programmer): 5/18/2010
  • Patarika Tipwong, DBA / Programmer: 5/18/2010
  • Siebert Keith Hardeman, Programmer/Analyst: 5/18/2010
  • Adam Barr, Analyst: 5/18/2010
Contributions
Kristina Wu

Coordinated work, created work breakdown, ERD, SQL script

Martha Fitt

Information architecture, low/high fidelity prototype, mobile prototype, converted to html

Jake Lake

Created task breakdown for backend work. Class diagram, document template

Patarika Tipwong

ERD, purpose section, scope/description section, usability testing section

Siebert Keith Hardeman

Class description, pseudo code

Adam Barr, Analyst

Web site navigation design, content description, mobile navigation design