Semester Project Requirements Prof. Steven A. Demurjian Computer Science & Engineering Department The University of Connecticut 191 Auditorium Road, Box U-155 Storrs, CT 06269-4155 steve@engr.uconn.edu 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.
Phase I Deliverables 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 (etim@engr.uconn.edu) with name
Project Domain Design, Develop, and Test the Information System for Northwind DB Bleeding Edge of Capabilities and Features Three Phases Tuesday, October 18 Finalize Groups for the Project Project Phase I: Friday, October 28, 11:59pm (EER to Relational Design) Project Phase II: Thursday, December 8, 11:59p, with as needed Demos
Project Requirements 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
Clients and Software Architecture Mobile App Web Client Customer Connect and Interact with MySQL REST php API 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 Requirements 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
Phase I Project Requirements Relational DB Design, DB Change, DB Migrate: Extend Shippers to also include attributes ContactName, ContactTitle, ShipmentType (Ground, Air, Sea), DeliveryType (Overnight, Two-Day, Other). Abstract common information from Suppliers and the Extended Shippers entity into a new Company Entity. Reformulate Categories as a set of entities in an inheritance hierarchy where Extend and/or reformulate Orders/Order Details to ship of an Order to different addresses Extend Northwind with entities for Payment Migrate the current Northwind schema to the new schema Due Date: Thursday, October 28, 11:59pm
ER For Phase I - Northwindmodel.mwb
Explaining Phase I Project Requirements Examine EER and Make Sure Everything Makes Sense Extend Shippers to include attributes ContactName, ContactTitle, ShipmentType (Ground, Air, Sea), DeliveryType (Overnight, Two-Day, Other) Define new Tables for ShipmentType and DeliveryType 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
Explaining Phase I Project Requirements Examine EER and Make Sure Everything Makes Sense 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
Explaining Phase I Project Requirements Examine EER and Make Sure Everything Makes Sense 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
Explaining Phase I Project Requirements Examine EER and Make Sure Everything Makes Sense 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?
Explaining Phase I Project Requirements Examine EER and Make Sure Everything Makes Sense Extend Northwind with appropriate entities for Payment Capabilities Off of the Order and/or OrderDetails Entities? 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
CREATE TABLE AND INSERT INTO Examples CREATE TABLE GROUPZNorthwind.SampleTable (SampleTableId INT NOT NULL, DataItem VARCHAR(120), PRIMARY KEY (SampleTableId )); INSERT INTO GROUPZNorthwind.SampleTable VALUES (1, ‘Hello World');
INSERTING WITH SELECT 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.
Phase I Deliverables 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 (etim@engr.uconn.edu) with name
MySQL Data Export
GroupZNorthwind.sql
Phase II Due Dates Optional Intermediate Due Date - 11:59pm 11/16 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 Individual Self Assessments to steve@engr.uconn.edu Due Friday December 9, 11:59p
Development Strategy for Phase II 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
Customer Capabilities 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
Employee Capabilities 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
Administrative Capabilities 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 Overview of Capabilities 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-and-Feel Note – see also link below for html based Mockups http://www.engr.uconn.edu/~steve/Cse4701/OtherSampleProjectScreens.docx Phase II Requirements in terms of Screens and Capabilities are at a High Level Team Needs to Provide the Details/Solutions
LOGIN/REGISTRATION/EDIT SCREENS 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
LOGIN/REGISTRATION/EDIT SCREENS
DASHBOARD SCREENS - CUSTOMER 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
DASHBOARD SCREEN - CUSTOMER
DASHBOARD SCREEN - CUSTOMER
Basic Customer Search
Advanced Customer Search
Payment and Shopping Carts
DASHBOARD SCREEN - EMPLOYEE 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
DASHBOARD SCREEN - EMPLOYEE
DASHBOARD SCREEN - EMPLOYEE
EDIT/ENTER NEW PRODUCT
ADMINISTRATIVE SEARCH SCREENS 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
DASHBOARD SCREEN - ADMIN
DASHBOARD SCREEN - ADMIN
Sample Report Generation Screen
Sample Report Generation Screen
Sample Report Generation Screen
Sample Report Generation Screen
Sample Report Generation Screen
Sample Report Generation Screen
Phase II Additional Information 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-country-list.sql Utilize these to load your DB Tables for the Relevant Drop Downs Loaded them into Workbench
Phase II Dashboard Quick Search 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 Generate a Query as Below Generate […] if Product Name is entered, Generate { …} if Category Type Selected, Generate <and> if Both Category Type Product Name Enter String 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";
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 Product Name Enter String To: From: Location Choices Customer Choices Category Category Select City Last Name Enter String Supplier Name Enter String Select State Select City In Stock Enter Integer Select Country Select State Select Country
Phase II Employee Productivity Reporting 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 Select Emp Product Name Enter String Duration Category Category To: From: Location Choices Customer Choices Supplier Name Enter String Select City Last Name Enter String In Stock Enter Integer Select State Select City Select Country Select State Select Country
Phase II Inventory Reporting 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 DeliveryType Category Category ShipmentType Supplier Name Enter String Amount Min Max In Stock Enter Integer Other Amount Min Max
Phase II Customer Productivity Reporting 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 Select Cust Duration To: From: Location Choices Customer Choices Product Name Enter String Select City Last Name Enter String Category Category Select State Select City Supplier Name Enter String Select Country Select State In Stock Enter Integer Select Country
Phase II – Dividing Work for Teams Two Person Teams Customer & Employee Screens (Dashboards/Other Screens) Admin Screen (Employee Screen plus link to Reports) Inventory Reporting Three Person Teams Sales Reporting Four Person Teams All Four Reporting Screens (Sales, Employee Productivity, Inventory, Customer Preferences)
Continuing Step - Organize your Team 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)
Phase II Project Requirements 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
Final Thoughts 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
Other Sample UConnJobSearch Screens In this first sample, the front end is HTML/Javascript GUI where each page is dynamically generated by the PHP in the applications layer in Mozilla. In this second sample, the client layer is written using HTML, CSS and Javascript which is in explorer.
Other Team1 Screens Posted
Other Team1 Screens Posted
validator.php
Sample Reporting Screens
register.php
First Sample
First Sample
First Sample
First Sample
First Sample
First Sample
First Sample
Second Sample
Second Sample
Second Sample
Second Sample
Second Sample
Second Sample
Second Sample
Sample Reports from CT Insurance Dept. Main Menu
Sample Reports from CT Insurance Dept.
Sample Reports from CT Insurance Dept.
GUI from CSE4701 Spring 2003 Project
GUI from CSE4701 Spring 2003 Project
GUI from CSE4701 Spring 2003 Project
GUI from CSE4701 Spring 2003 Project
GUI from CSE4701 Spring 2003 Project
GUI from CSE4701 Spring 2003 Project
GUI from CSE4701 Spring 2003 Project