PPTX - UCONN School of Engineering

Semester Project Requirements
CSE
4701
Prof. Steven A. Demurjian
Computer Science & Engineering Department
The University of Connecticut
191 Auditorium Road, Box U-155
Storrs, CT 06269-4155
[email protected]
http://www.engr.uconn.edu/~steve
(860) 486 - 4818
Important Note: When Emailing Questions, Please Include
All Emails of your Entire Team so that David and I can do a
GROUP Response to your email.
Project-1
Phase II Due Dates
CSE
4701



Optional Intermediate Due Date - 11:59pm 11/28
 Your Team Should get ½ or more Screens
Completed
 Submit Code and .sql DB
Project Phase II: Application D & D
 Thursday, December 8, 11:59p, with as needed
Demos Finals Week
Individual Self Assessments to [email protected]
 Due Friday December 9, 11:59p
Project-2
Reviewing Phase I Solution
CSE
4701

Available Files on the Web






http://www.engr.uconn.edu/~steve/Cse4701/cse4701projectp
res.pptx
http://www.engr.uconn.edu/~steve/Cse4701/cse4701ProjInstr
ucts.pptx
http://www.engr.uconn.edu/~steve/Cse4701/DBDDLFORN
ORTHWIND.docx
http://www.engr.uconn.edu/~steve/Cse4701/PhaseINorthwin
dEER.mwb
http://www.engr.uconn.edu/~steve/Cse4701/SteveNorthwind.
sql
http://www.engr.uconn.edu/~steve/Cse4701/SamplePHPC
ode.zip
Project-3
Phase II Sample PHP Code
CSE
4701

Posted sample code at:
http://www.engr.uconn.edu/~steve/Cse4701/SamplePH
PCode.zip
The code is for the screenshots that are in the Project
PPT:
http://www.engr.uconn.edu/~steve/Cse4701/cse4701pr
ojectpres.pptx
The files login.php, login_admin_employee.php,
register.php in the upper level directory are for slide 47
of the PPT.
The customer directory has files for the dashboard,
searching, and modifying a user's profile. There is also
Project-4
Phase II Sample PHP Code
CSE
4701

The files login.php, login_admin_employee.php,
register.php in the upper level directory are for slide 47
of the PPT.
The customer directory has files for the dashboard,
searching, and modifying a user's profile. There is also
an includes subdirectory with a config file, a header
file, and an arrays file ... this corresponds to slide 49
for the dashboard and slide 52 for search.
The globalincludes directory has a config file, footer,
and logout.
Project-5
Reviewing Phase I Solution
CSE
4701
Project-6
Reviewing Phase I Solution
CSE
4701



Items 1 and 2 – Modify Shippers with new Columns
Move common info into new Company Entity
Add new Payment/PaymentType Entities
Project-7
Reviewing Phase I Solution
CSE
4701


New Entities for: DeliveryType, ShipmentType,
Shipments, ProductsToAddress, ShipAddresses
Move Order columns to Shipments/ShipAddresses
Project-8
Reviewing Phase I Solution
CSE
4701



Focus on DBDDLFORNORTHWIND.docx
Contains
 DDL for Migrating SteveNorthwind.sql
Changes
 Create New Entities
 Modify Existing Entities
Project-9
CREATE TABLES FOR DeliveryType, ShipmentType
CSE
CREATE TABLE NORTHWIND.DeliveryType
4701
(DeliveryTypeId INT NOT NULL, DeliveryTypeName VARCHAR(15), Description MEDIUMTEXT,
PRIMARY KEY
INSERT INTO
INSERT INTO
INSERT INTO
(DeliveryTypeId));
NORTHWIND. DeliveryType VALUES (1, 'Overnight', 'Next Business Day');
NORTHWIND. DeliveryType VALUES (2, 'Two Day', 'Two Business Days');
NORTHWIND. DeliveryType VALUES (3, 'Other', 'Show Up Whenever');
CREATE TABLE NORTHWIND.ShipmentType
(ShipmentTypeId INT NOT NULL, ShipmentTypeName
PRIMARY KEY (ShipmentTypeId));
INSERT INTO NORTHWIND. ShipmentType VALUES (1,
INSERT INTO NORTHWIND. ShipmentType VALUES (2,
INSERT INTO NORTHWIND. ShipmentType VALUES (3,
VARCHAR(15), Description MEDIUMTEXT,
'Ground', 'By Truck');
'Air', 'By Plane');
'Sea', 'By Boat');
Project-10
CREATE TABLES FOR Payment, PaymentType
CSE
4701
CREATE TABLE NORTHWIND.Payment (PaymentID INT NOT NULL, OrderID INT NULL,
Total DECIMAL(10,2), PaymentTypeID INT, ConfNum NVARCHAR(24),
PRIMARY KEY (PaymentID));
CREATE TABLE NORTHWIND.PaymentType (PaymentTypeID INT NOT NULL,
Name NVARCHAR(120),PRIMARY KEY (PaymentTypeID));
INSERT INTO NORTHWIND. PaymentType VALUES (1, 'Android Pay');
INSERT INTO NORTHWIND. PaymentType VALUES (2, 'Apple Pay');
INSERT INTO NORTHWIND. PaymentType VALUES (3, 'Credit Card');
INSERT INTO NORTHWIND. PaymentType VALUES (4, 'Debit Card');
INSERT INTO NORTHWIND. PaymentType VALUES (5, 'Paypall');
INSERT INTO NORTHWIND. PaymentType VALUES (6, 'Bank Account');
Project-11
CREATE Shipments, ShipAddresses, ProductToAddresses
CSE
4701
CREATE TABLE NORTHWIND.Shipments (ShipmentsID INT NOT NULL AUTO_INCREMENT,
OrderID INT NULL, RequiredDate DATETIME NULL,PRIMARY KEY (ShipmentsID));
CREATE TABLE NORTHWIND.ProductsToAddress (ProductToAddressID INT NOT NULL
AUTO_INCREMENT,OrderID INT, ShipmentsID INT NULL,ShipAddrID INT NULL,
ProductID INT NULL, ShipmentTypeID INT NULL, DeliveryTypeID INT NULL, PRIMARY KEY
(ProductToAddressID));
CREATE TABLE northwind.ShipAddresses (ShipAddrID INT NOT NULL AUTO_INCREMENT,
ShipmentsID INT NOT NULL, RequiredDate
DATETIME NULL, ShippedDate DATETIME NULL, ShipVia INT NULL,
Freight DECIMAL(10,4) NULL, ShipName VARCHAR(40) NULL, ShipAddress
VARCHAR(60) NULL, ShipCity VARCHAR(15) NULL, ShipRegion VARCHAR(15) NULL,
ShipPostalCode VARCHAR(10) NULL, ShipCountry VARCHAR(15) NULL,
PRIMARY KEY (ShipAddrID));
Project-12
Copy of Orders into Shipments and ProductsToAddresses
CSE
4701
INSERT INTO NORTHWIND.Shipments (NORTHWIND.Shipments.ShipmentsID,
NORTHWIND.Shipments.OrderID)
SELECT NORTHWIND.ORDERS.OrderID, NORTHWIND.ORDERS.OrderID
FROM NORTHWIND.ORDERS;
SELECT * FROM NORTHWIND.Shipments;
INSERT INTO NORTHWIND.ProductsToAddress (NORTHWIND.ProductsToAddress.OrderID,
NORTHWIND.ProductsToAddress.ShipmentsID,
NORTHWIND.ProductsToAddress.ProductID)
SELECT NORTHWIND.`order details`.OrderID,
(NORTHWIND.`order details`.OrderID+30000), NORTHWIND.`order details`.ProductID
FROM NORTHWIND.`order details`;
Project-13
Copy Address Info of Orders into ShipAddresses
CSE
4701
INSERT INTO NORTHWIND.ShipAddresses (NORTHWIND.ShipAddresses.ShipAddrID,
NORTHWIND.ShipAddresses.ShipmentsID, NORTHWIND.ShipAddresses.RequiredDate,
NORTHWIND.ShipAddresses.ShippedDate, NORTHWIND.ShipAddresses.ShipVia,
NORTHWIND.ShipAddresses.Freight, NORTHWIND.ShipAddresses.ShipName,
NORTHWIND.ShipAddresses.ShipAddress, NORTHWIND.ShipAddresses.ShipCity,
NORTHWIND.ShipAddresses.ShipRegion,NORTHWIND.ShipAddresses.ShipPostalCode,
NORTHWIND.ShipAddresses.ShipCountry)
SELECT NORTHWIND.orders.OrderID, (NORTHWIND.orders.OrderID+30000),
NORTHWIND.orders.RequiredDate, NORTHWIND.orders.ShippedDate,
NORTHWIND.orders.ShipVia, NORTHWIND.orders.Freight, NORTHWIND.orders.ShipName,
NORTHWIND.orders.ShipAddress, NORTHWIND.orders.ShipCity,
NORTHWIND.orders.ShipRegion, NORTHWIND.orders.ShipPostalCode,
NORTHWIND.orders.ShipCountry
FROM NORTHWIND.orders;
SELECT * FROM NORTHWIND.ShipAddresses;
Project-14
Alter ORDERS can’t Drop ShipVia since FK
CSE
4701
// Now alter the ORDERS Table – can’t Drop ShipVia since foreign key.
ALTER TABLE NORTHWIND.ORDERS DROP RequiredDate;
ALTER TABLE NORTHWIND.ORDERS DROP ShippedDate;
ALTER TABLE NORTHWIND.ORDERS DROP Freight;
ALTER TABLE NORTHWIND.ORDERS DROP ShipName;
ALTER TABLE NORTHWIND.ORDERS DROP ShipAddress;
ALTER TABLE NORTHWIND.ORDERS DROP ShipCity;
ALTER TABLE NORTHWIND.ORDERS DROP ShipRegion;
ALTER TABLE NORTHWIND.ORDERS DROP ShipPostalCode;
ALTER TABLE NORTHWIND.ORDERS DROP ShipCountry;
Project-15
Create Company/Drop Columns
CSE
CREATE TABLE NORTHWIND.ProductsToAddress (ProductToAddressID INT NOT NULL
4701
AUTO_INCREMENT,OrderID INT, ShipmentsID INT NULL,ShipAddrID INT NULL,
ProductID INT NULL, ShipmentTypeID INT NULL, DeliveryTypeID INT NULL, PRIMARY KEY
(ProductToAddressID));
INSERT INTO NORTHWIND.Company (NORTHWIND.COMPANY.CompanyId, NORTHWIND.COMPANY.CompanyName,
NORTHWIND.COMPANY.ContactName, NORTHWIND.COMPANY.ContactTitle, NORTHWIND.COMPANY.Address,
NORTHWIND.COMPANY.City, NORTHWIND.COMPANY.Region, NORTHWIND.COMPANY.PostalCode,
NORTHWIND.COMPANY.Country,NORTHWIND.COMPANY.Phone, NORTHWIND.COMPANY.Fax)
SELECT NORTHWIND.SUPPLIERS.SupplierId, NORTHWIND.SUPPLIERS.CompanyName,
NORTHWIND.SUPPLIERS.ContactTitle,NORTHWIND.SUPPLIERS.ContactName, NORTHWIND.SUPPLIERS.Address,
NORTHWIND.SUPPLIERS.City, NORTHWIND.SUPPLIERS.Region, NORTHWIND.SUPPLIERS.PostalCode,
NORTHWIND.SUPPLIERS.Country, NORTHWIND.SUPPLIERS.Phone, NORTHWIND.SUPPLIERS.Fax
FROM NORTHWIND.SUPPLIERS;
ALTER
ALTER
ALTER
ALTER
ALTER
ALTER
ALTER
ALTER
ALTER
ALTER
TABLE
TABLE
TABLE
TABLE
TABLE
TABLE
TABLE
TABLE
TABLE
TABLE
NORTHWIND.SUPPLIERS
NORTHWIND.SUPPLIERS
NORTHWIND.SUPPLIERS
NORTHWIND.SUPPLIERS
NORTHWIND.SUPPLIERS
NORTHWIND.SUPPLIERS
NORTHWIND.SUPPLIERS
NORTHWIND.SUPPLIERS
NORTHWIND.SUPPLIERS
NORTHWIND.SUPPLIERS
DROP
DROP
DROP
DROP
DROP
DROP
DROP
DROP
DROP
DROP
CompanyName;
ContactName;
ContactTitle;
Address;
City ;
Region;
PostalCode;
Country;
Phone;
Fax;
Project-16
Remaining Changes and Initialization
CSE ALTER TABLE NORTHWIND.SUPPLIERS ADD CompanyId INT;
4701
UPDATE NORTHWIND.SUPPLIERSSET NORTHWIND.SUPPLIERS.CompanyId =
NORTHWIND.SUPPLIERS. SupplierId;
SELECT * FROM NORTHWIND.SUPPLIERS;
INSERT INTO NORTHWIND.Company (NORTHWIND.COMPANY.CompanyId,
NORTHWIND.COMPANY.CompanyName,NORTHWIND.COMPANY.Phone)
SELECT (NORTHWIND.SHIPPERS.ShipperId+1000),
NORTHWIND.SHIPPERS.CompanyName, NORTHWIND.SHIPPERS.Phone
FROM SHIPPERS;
ALTER TABLE NORTHWIND.SHIPPERS DROP
ALTER TABLE NORTHWIND.SHIPPERS DROP
ALTER TABLE NORTHWIND.SHIPPERS ADD
CompanyName;
Phone;
CompanyId INT;
UPDATE NORTHWIND.shippers SET NORTHWIND.shippers.CompanyId =
NORTHWIND.shippers.ShipperID;
SELECT * FROM NORTHWIND.SHIPPERS;
Project-17
Development Strategy for Phase II

CSE
4701



One Person Focusing on Database Query Support
Two to three Team Members Focusing on Web Screens
 Design/Implement Screens for Customers and Employees
Repeat Process for all screens – Core Functionality
Administrative Screen/Queries
 Sales Reporting: Unit Price/Total Sales by Product,
Category, Location, Customer
 Employee Productivity Reporting: Most Work by EmpID by
Duration, Product, Location, Customer
 Inventory Reporting: Stock Info on Product
 Customer Reporting: Buying Preferences by Duration,
Location, Product, Customer
Project-18
Customer Capabilities
CSE
4701





Register, create, and manage an account;
Set and management various payment types;
Look up information by Produce Name, Category,
SupplierName, etc.
Place an order for Products
Monitor Existing/Past Orders
Project-19
Employee Capabilities
CSE
4701




Entering new Products for a Supplier
Inventory to Search and Order Products
Review information on each customer including a
customer’s demographics and play list
Interact with customers to approve each “order” of
customer which involves generating the invoice
Project-20
Administrative Capabilities
CSE
4701


Run a Variety of Reports on
 Individual and Overall Sales
 Employee Productivity re. Customers/Sales
 Inventory Reports by Product Name, Category,
Units in Stock, Units on Order, Supplier Name, etc.
 Customer Reports on Preferences
Reports Parameterizeable Based on
 Duration search by day, month, year, or date range.
 Location search by city/state/country
 Product combination of Product Name, Category,
Units in Stock, Units on Order, Supplier Name
Single customer, set of customers, customers in a
city, customers in a state, customers in a country
Project-21
Project Overview of Capabilities
CSE
4701





Briefly, Let’s Review the Entire Process
The Figures are Mock-Ups
 You can Deviate and Customize Depending on your
Approach
 Need to Maintain Content and Consistent Look-andFeel
Note – see also link below for html based Mockups
 http://www.engr.uconn.edu/~steve/Cse4701/OtherSa
mpleProjectScreens.docx
Phase II Requirements in terms of Screens and
Capabilities are at a High Level
Team Needs to Provide the Details/Solutions
Project-22
LOGIN/REGISTRATION/EDIT SCREENS
CSE
4701


Separate screens to:
 Register for an account on the web app
 Login to a registered account (but no need for
password recovery)
 Edit/Modify your profile
Registration Fields
 First and Last Names, Company Name (optional),
Address/City/State/Country/Postal Code, Phone,
Fax, and Email
Project-23
LOGIN/REGISTRATION/EDIT SCREENS
CSE
4701
Project-24
DASHBOARD SCREENS - CUSTOMER

CSE
4701






Buttons to log off, edit profile (goes to another screen), and
set/edit payment types (goes to another screen).
List of active and completed orders where clicking an order goes
to another screen to show the status and content of each order.
Quick Search in order to look up by Product Name, Category,
Supplier, etc.
Link to Order Screen that lets a customer create an Order that is
sent to multiple Addresses – links to Search Screen
Set/edit payment types Screen
Shopping Cart Screen
Pending/Completed Orders and Status Screen
Project-25
DASHBOARD SCREEN - CUSTOMER
CSE
4701
Project-26
DASHBOARD SCREEN - CUSTOMER
CSE
4701
Project-27
Basic Customer Search
CSE
4701
Project-28
Advanced Customer Search
CSE
4701
Project-29
Payment and Shopping Carts
CSE
4701
Project-30
DASHBOARD SCREEN - EMPLOYEE
CSE
4701





List of Active Customer Order (to be filled) where
clicking an order goes to another screen to show the
status and content of each order.
Links to separate screens for: Enter/Edit New
Products/Categories and Review Customer
Demographic Screen.
Search Screen: A search screen that allows
Employees to search Products
Inventory/Purchasing Screen to: monitor the
inventory (via Search) and to order new and existing
inventory items (products) from Suppliers.
Review Customer Demographics
Project-31
DASHBOARD SCREEN - EMPLOYEE
CSE
4701
Project-32
DASHBOARD SCREEN - EMPLOYEE
CSE
4701
Project-33
EDIT/ENTER NEW PRODUCT
CSE
4701
Project-34
ADMINISTRATIVE SEARCH SCREENS

CSE
4701


Access to Employee Dashboard: Active Order Screen,Enter/Edit
New Media Screen, and Review Customer Demographic Screen
Screens for
 Individual and Overall Sales
 Employee Productivity re. Customers/Sales
 Inventory Reports by Products and Suppliers
 Customer Reports on Preferences
Need to Define Drop Downs/Selections/etc. for
 Duration search by day, month, year, or date range.
 Location search by city/state/country
 Product combination Names, Amounts, Suppliers, etc.
 Single customer, set of customers, customers in a city,
customers in a state, customers in a country
Project-35
DASHBOARD SCREEN - ADMIN
CSE
4701
Project-36
DASHBOARD SCREEN - ADMIN
CSE
4701
Project-37
Sample Report Generation Screen
CSE
4701
Project-38
Sample Report Generation Screen
CSE
4701
Project-39
Sample Report Generation Screen
CSE
4701
Project-40
Sample Report Generation Screen
CSE
4701
Project-41
Sample Report Generation Screen
CSE
4701
Project-42
Sample Report Generation Screen
CSE
4701
Project-43
Phase II Additional Information
CSE
4701


Need to Load Cities/States/Countries
Following Sites for .sql file




http://www.farinspace.com/wp-content/uploads/us_cities_and_states.zip
https://github.com/raramuridesign/mysql-country-list/blob/master/mysql-countrylist.sql
Utilize these to load your DB Tables for the Relevant
Drop Downs
Loaded them into Workbench
Project-44
Phase II Dashboard Quick Search

CSE
4701

Search/Admin Queries Take Input and Plug into to an SQL Template
Consider Dashboard Quick Search

Two Data Entry Options – Category Type and Product Name

Category Type (Load drop down from DB)
 Can

use either Drop Down (one) or Check Box (one or more)
Product (or Supplier) Name
 Can
Fill a Drop Down with Artist.Name Values
 Can have an Option to do a Search String
Category Type

Product Name
Enter String
Generate a Query as Below
 Generate […] if
Product Name is entered, Generate { …} if Category
Type Selected, Generate <and> if Both
SELECT northwind.products.productname,
northwind.products.QuantityPerUnit, northwind.categories.CategoryName
FROM northwind.products, northwind.categories
WHERE northwind.products.ProductName ="Chang" and
northwind.categories.CategoryName="Beverages";
Project-45
Phase II Sales Reporting
Consider Duration, Location, Media, Customer Dimensions

I left off set of customers – too difficult – not worth the effort.

Generate a report from the Order/Order Details Tables for

Total Sales, Unit Price, Quantity, and Others you think are relevant

Some Queries may Need Aggregation

Load all Drop downs from DB
Choices
Duration Choices

CSE
4701
To:
From:
Location Choices
Select City
Customer Choices
Last Name
Enter String
Select State
Select City
Select Country
Select State
Product Name
Enter String
Category
Category
Supplier Name
Enter String
In Stock
Enter Integer
Select Country
Project-46
Phase II Employee Productivity Reporting

CSE
4701


Augment Duration, Location, Media, Customer Dimensions with Employee
Need to add Employee Drop down loaded from DB
Generate a report from the Order/Order Details Tables for

Total Sales, Unit Price, Quantity, and Others you think are relevant

Some Queries may Need Aggregation
Choices
Emp Name
Duration
To:
Location Choices
Select City
Select Emp
From:
Customer Choices
Last Name
Product Name
Enter String
Category
Category
Supplier Name
Enter String
In Stock
Enter Integer
Enter String
Select State
Select City
Select Country
Select State
Select Country
Project-47
Phase II Inventory Reporting

CSE
4701



Inventory Reporting - 8 Data Entry Options
 Names Should Likely be String Searches
 Category Drop Downs
 Amounts – Ranges
May want to do %EnteredName% for all String Searches
Generate a Set of Results with Appropriate Labeled Columns
What Should be our Output?
Choices
Product Name
Enter String
Category
Category
Supplier Name
Enter String
In Stock
Enter Integer
DeliveryType
ShipmentType
Amount
Min
Max
Other Amount
Min
Max
Project-48
Phase II Customer Productivity Reporting

CSE
4701


Augment Duration, Location, Media, Customer Dimensions with Customer
Need to add Employee Drop down loaded from DB
Generate a report for WHAT they buy as opposed to AMOUNT they buy

The amount they buy by Product Name, Category, Supplier, etc.

Constraint by Duration, Location, etc.

For one or All (will card on last name)
Cust Name
Duration
To:
Location Choices
Select City
Select State
Select Country
Select Cust
From:
Customer Choices
Last Name
Product Name
Enter String
Category
Category
Supplier Name
Enter String
In Stock
Enter Integer
Enter String
Select City
Select State
Select Country
Project-49
Phase II – Dividing Work for Teams

CSE
4701


Two Person Teams
 Customer & Employee Screens (Dashboards/Other Screens)
 Admin Screen (Employee Screen plus link to Reports)
 Inventory Reporting
Three Person Teams
 Customer & Employee Screens (Dashboards/Other Screens)
 Admin Screen (Employee Screen plus link to Reports)
 Sales Reporting
 Inventory Reporting
Four Person Teams
 Customer & Employee Screens (Dashboards/Other Screens)
 Admin Screen (Employee Screen plus link to Reports)
 All Four Reporting Screens (Sales, Employee Productivity,
Project-50
Inventory, Customer Preferences)
Continuing Step - Organize your Team

CSE
4701


Choose Teams – Two Versions
 V01 - 10 3-person teams and 5 4-person teams.
 V02 -11 4 person teams and 2 3-person teams.
Organize Teams Effectively - Objectives
 Allow Team Members to Work in Parallel
 Must Come to Agreement w.r.t. Common Software
 Arrive at a Working Plan
 Set Achievable Milestones/Deadlines for Team
Assigning Responsibilities:
 Each Team Member Must Work with the DB!
 1 Person - Database Creation and Maintenance (early) Shifts
to GUI/Report Screens/Capabilities
 1 Person – REST API - Server Development
 1 Person – GUIs (1 Person on GUIs)
Project-51
Phase II Project Requirements

CSE
4701


Design, Development, Test an Info System
Front-End Web Site Connecting to Northwind
 Screens/Capabilities for Customers
 Screens/Capabilities for Employees
 Screens/Capabilities for Administrators – Reports
Objectives of Phase II
 Organize your Team
Database
Creation and Maintenance
DB API (Middle Layer) Development – REST API
GUIs for Customers and Employees – html/css
Project-52
Final Thoughts

CSE
4701

Phase II Report (see 6 Bullet Items)
 Purpose, Tasks, System Requirements, Revisions to
Phases I and II
 Problems Found and Solutions
 System Architecture and Choices
 User Manual with Screen Shots
 Conclusion, Assessment, Evaluation
 Team Member Contributions
 .sql file, Source Code, DB Instances, Screen Shots
Demos in Person if needed
Project-53
PHP and MySQL Links
CSE 
4701




http://www.freewebmasterhelp.com/tutorials/phpmysql
https://www.siteground.com/tutorials/php-mysql/
http://www.mysqltutorial.org/php-mysql/
http://www.killerphp.com/mysql/
https://netbeans.org/kb/docs/php/wish-list-lesson1.html
Project-54
PHP Frameworks
CSE 
4701
PHP html Frameworks




http://www.aptana.com/
https://codegeekz.com/a-roundup-of-best-php-html5-and-cssframeworks/
http://www.mpsoftware.dk/phpdesigner.php
PHP Mobile Frameworks



http://ionicframework.com/
https://www.sencha.com/products/touch/
http://phonegap.com/
Project-55
Other Sample Screens and PHP Code
CSE
4701

Additional PHP Examples



http://www.engr.uconn.edu/~steve/Cse4701/SampleScreens.
docx
http://www.engr.uconn.edu/~steve/Cse4701/samplephp.zip
Files
 header.php –
for top of all web pages
 footer.php – for bottom of all web pages
 validator.php – check data values entered by users from web pages
 index.php – main page
 register.php – for registration
 search.php – for seaching
Project-56
Other Team1 Screens Posted
CSE
4701
THIS SCREEN IS IN index.php
Also from index.php – Orange
Items Pulled from DB
Project-57
Other Team1 Screens Posted
THIS SCREEN IS IN register.php
CSE
4701
THIS SCREEN IS
IN search.php
Project-58
First Sample
CSE
4701
Project-59
First Sample
CSE
4701
Project-60
validator.php
CSE
4701
Project-61
Sample Reporting Screens
CSE
4701
Project-62
register.php
CSE
4701
Project-63
Phase I Deliverables
CSE
4701



The ER Design in: GroupZNorthwindmodel.mwb
where Z is your Group Letter
Your generated GroupZNorthwind.sql
In MySQL Workbench (see following slides)
Select Server/Data
Export
Select the Database (checkbox)
Export to Self-Contained File


A Report that explains your ER design entities
(additions and changes) and details who did what on
which portions of the team.
Upload all to Huskyct under one teammates name.
Project-64
Project Requirements

CSE
4701



Team Project - Discussion Between Teams Allowed if
you are Helping with DB Configuration, Programming
Question, etc., NOT Joint Design/Development!
Implementation Languages/Platform
 MySQL Workbench, php, html/css
 Aptana Studio 3 for web
 Mobile UI Framework for mobile
Overview/Other Sample Screens
 Strongly Encouraged to Enhance/Extend
 Documentation of Proposed Enhancements
Should Work on Chrome
Project-65
Project Domain

CSE
4701

Design, Develop, and Test the Information System for
Northwind DB
 Bleeding Edge of Capabilities and Features
Three Phases
 Thursday, October 20
Finalize

Project Phase I:
Friday,

Groups for the Project
October 31, 11:59pm (EER to Relational Design)
Project Phase II:
Thursday,
December 8, 11:59p, with as needed Demos
Project-66
Clients and Software Architecture
Mobile App
CSE
4701
Web Client
Customer
Connect and Interact
with MySQL
REST
API
php
MySQL
Web Client
Employee
Front half contains
API (Java calls) that
hide DB interactions
from Client
Back half is the implementation of
the classes that contains code to open
the database connection, perform a
query, collect results, etc.
Project-67
Project Requirements

CSE
4701

Phase I Report
 ER diagram with Additions
 Ported Database .sql File with Tuples for Testing
 Submit to HuskyCT
Phase II:
 Project File loadable into IDE
 .sql File with Tuples for Testing
 User Manual
 Individual Contribution/Self Assessment
 Individual: Requires a
Log
 Self Assessment: Overall Teamwork
See Phase II Assignment Requirements
Final Demo – TBD if a Team’s code Won’t Run


Project-68
Phase I Project Requirements

CSE
4701

Relational DB Design, DB Change, DB Migrate:
1. Extend Shippers to also include attributes ContactName,
ContactTitle, ShipmentType (Ground, Air, Sea),
DeliveryType (Overnight, Two-Day, Other).
2. Abstract common information from Suppliers and the
Extended Shippers entity into a new Company Entity.
3. Reformulate Categories as a set of entities in an inheritance
hierarchy where
4. Extend and/or reformulate Orders/Order Details to ship of
an Order to different addresses
5. Extend Northwind with entities for Payment
6. Migrate the current Northwind schema to the new schema
Due Date: Monday, October 31, 11:59pm
Project-69
ER For Phase I - Northwindmodel.mwb
CSE
4701
Figure 1: The Northwind ER Diagram.
Project-70
PhaseINorthwind.mwb
CSE
4701
Project-71
PhaseINorthwind.mwb
CSE
4701
Project-72
PhaseINorthwind.mwb
CSE
4701
Project-73
What Are?
CSE
4701




Define Views
Also Represent Queries that
can are Reports
Can View them in
Workbench
May be Useful for Admin
Reports of Phase II
Project-74
Viewable in Workbench
CSE
4701
Project-75
Products by Category
#CSE----------------------------------------------------------- #
#4701
Add View "Products by Category"
#
# ---------------------------------------------------------- #
CREATE VIEW `Products by Category` AS
SELECT Categories.CategoryName,
Products.ProductName,
Products.QuantityPerUnit,
Products.UnitsInStock,
Products.Discontinued
FROM Categories
INNER JOIN Products ON Categories.CategoryID =
Products.CategoryID
WHERE Products.Discontinued <> 1
Project-76
Sales Summary by Year
#CSE--------------------------------------------------------------4701
------#
# Add View "Summary of Sales by Year"
#
# --------------------------------------------------------------------- #
CREATE VIEW `Summary of Sales by Year` AS
SELECT
Orders.ShippedDate,
Orders.OrderID,
`Order Subtotals`.Subtotal
FROM Orders
INNER JOIN `Order Subtotals` ON Orders.OrderID = `Order
Subtotals`.OrderID
WHERE Orders.ShippedDate IS NOT NULL
Project-77
Explaining Phase I Project Requirements
CSE
4701
Examine EER and Make Sure Everything Makes Sense
1. Extend Shippers to include attributes ContactName,
ContactTitle, ShipmentType (Ground, Air, Sea),
DeliveryType (Overnight, Two-Day, Other)
Define
new Tables for ShipmentType and DeliveryType
2. Abstract common information from Suppliers and
Extended Shippers entity into new Company Entity
Change
and Extend Northwindmodel.mwb
New CompanyID but keep SupplierID and ShipperID
Project-78
Explaining Phase I Project Requirements
CSE
4701
Examine EER and Make Sure Everything Makes Sense
3. Reformulate Categories into inheritance hierarchy
where there is shared information in the parent and
category specific information in the child entities
Beverages,
Condiments, Confections, Dairy Products
Grains/Cereals, Meat/Poultry, Produce, Seafood
What are common attributes? Name, Description?
What are unique to children?

fresh, frozen, dried for Meat/Poultry,
 Farm raised/will for Seafood,
Reuse
CategoryID
Project-79
Explaining Phase I Project Requirements
CSE
4701
Examine EER and Make Sure Everything Makes Sense
5. Add a new entity or entities that would add links
for clips of songs that would reference web
addresses of Google Play and iTune
Provided
a Discussion of the Available Ways to Find
Music Online
Intended to Provide you with an understanding of what
Needs to be Stored in an Entity for Clips
One Option: Google Search as a Means to Find Address
Another Option: APIs for Google Play and iTunes
Project-80
Explaining Phase I Project Requirements
CSE
4701
Examine EER and Make Sure Everything Makes Sense
4. Extend and/or reformulate Orders/Order Details to
ship of an Order to different addresses
Each
Order has Mutliple Products
Different subsets of OrderID/ProductID to different
Addresses
Need
to track multiple Addresses
Split off some Attributes from Shipper into new Table?
Project-81
Explaining Phase I Project Requirements
CSE
4701
Examine EER and Make Sure Everything Makes Sense
5. Extend Northwind with appropriate entities for
Payment Capabilities
Off
of the Order and/or OrderDetails Entities?
6. Migrate current Northwind schema to new schema
Create
New Company, ShipmentType, DelieryType, new
inheritance Category, and Payment Tables.
See 4.22 of the chapter 4 PPTs
Run Queries Against Supplier/Shippers to extract Shared
Info to Store in new Company
See 4.72 of Chapter 4 PPT for INSERT w/SELECT
Remove Columns from Supplier/Shippers Alter Table
Similar process if Order Split into Two Classes
Project-82
CREATE TABLE AND INSERT INTO Examples
CSE
4701
CREATE TABLE GROUPZNorthwind.SampleTable
(SampleTableId INT NOT NULL,
DataItem VARCHAR(120),
PRIMARY KEY (SampleTableId ));
INSERT INTO GROUPZNorthwind.SampleTable
VALUES (1, ‘Hello World');
Project-83
INSERTING WITH SELECT
CSE
4701
INSERT INTO GROUPZNorthwind.SampleTable
(GROUPZNorthwind.SampleTableId,
GROUPZNorthwind.DataItem)
SELECT GROUPZNorthwind.GenreID+1000),
GROUPZNorthwind.GenreName
FROM GROUPZNorthwind.Genre;
This Copies all of the Genre ids (+1000) and
genre names into the SampleTable.
Notice that all Column Types MUST match.
Why have we Added 1000?
There are 59 Employees and 8 Customers.
EmpIds go from 1 to 59; CustIds from 1 to 8
New PersonId/UserId Can’t Reuse these.
Project-84
Phase I Resources
CSE
4701




The EER diagram: PhaseINorthwind.mwb
 http://www.engr.uconn.edu/~steve/Cse4701/PhaseI
NorthwindSolnModelVersion01.mwb
The Northwind Schema:
 http://www.engr.uconn.edu/~steve/Cse4701/SteveN
orthwind.sql
http://www.engr.uconn.edu/~steve/Cse4701/cse4701ph
aseI.pdf
Changes to: PhaseINorthwind.mwb but be migrated to
loaded: SteveNorthwind.sql and then Stored
Project-85
Phase I Deliverables
CSE
4701



The ER Design in: GroupZNorthwindmodel.mwb
where Z is your Group Letter
Your generated GroupZNorthwind.sql
In MySQL Workbench (see following slides)
Select Server/Data
Export
Select the Database (checkbox)
Export to Self-Contained File



A Report that explains your ER design entities
(additions and changes) and details who did what on
which portions of the team.
Upload all to Huskyct under one teammates name.
Email David ([email protected]) with name
Project-86
MySQL Data Export
CSE
4701
Project-87
GroupZNorthwind.sql
CSE
4701
Project-88