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
© Copyright 2026 Paperzz