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 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. Project-1 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-2 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 – Media Type and Artist Name Media Type (Load drop down from DB) Can use either Drop Down (one) or Check Box (one or more) Artist Name Can Fill a Drop Down with Artist.Name Values Can have an Option to do a Search String Media Type Artist Name Enter String Generate a Query as Below Generate […] if Name is entered, Generate { …} if Media Type Selected, Generate <and> if Both SELECT Artist.Name, Album.Title, Genre.Name ANYOTHERSYOUWANTTODISPLY FROM Artist, Album, Genre WHERE [Artist.Name = ‘FILLINNAME>] <and> {Genre.Name = ‘FILLIN’}; Project-3 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 Invoice/Invoice Line Table for Total Sales, Unit Price/Track, Quantity, and Others you think are relevant Some Queries may Need Aggregation Load all Drop downs from DB Media Choices Duration Choices CSE 4701 Album Name Enter String Track Name Enter String Enter String Artist Name Enter String Select State Select City Composer Name Enter String Select Country Select State To: From: Location Choices Select City Customer Choices Last Name Select Country Genre Media Project-4 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 Invoice/Invoice Line Table for Total Sales, Unit Price/Track, Quantity, and any Others you think are relevant – these are now all by selected employee Some Queries may Need Aggregation Media Choices Emp Name Duration To: Location Choices Select City Select State Select Emp From: Customer Choices Last Name Enter String Album Name Enter String Track Name Enter String Artist Name Enter String Composer Name Enter String Select City Genre Select Country Select State Media Select Country Project-5 Phase II Inventory Reporting CSE 4701 Inventory Reporting - 8 Data Entry Options Names Should Likely be String Searches Genre/Media Drop Downs Milliseconds/Bytes – Ranges May want to do %EnteredName% for all String Searches Generate a Set of Results with Appropriate Labeled Columns What Should be our Output? Album Name Enter String Genre Track Name Enter String Media Artist Name Enter String Milliseconds Min Max Composer Name Enter String Bytes Min Max Project-6 Phase II Inventory Reporting CSE 4701 Possible Outputs: If a Genre and/or Media and/or millisec and/or Bytes is in the Search, you only need to Print out the total number of Tracks that Satisfy the Query The entry of one or more name strings will just constrain that query If a Album and/or Track and/or Artist and/or Composer name are entered (and there is NO Genre/Media/Milli/Bytes) then Print out If one of Album/Track/Artist/Composer: print total number of X and list of X If more than one, print total number and list one of the columns of (Album, Track, Artist and/or Composer) that were asked for. Listing all – too much width unless you truncate. Chose Artist/Composer (should be shorter) if can Album Name Enter String Genre Track Name Enter String Media Artist Name Enter String Milliseconds Min Max Composer Name Enter String Bytes Min Max Project-7 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 Artist, Album, Genre, Media, etc. Constraint by Duration, Location, etc. For one or All (will card on last name) Media Choices Cust Name Duration To: Location Choices Select City Select State Select Cust From: Customer Choices Last Name Enter String Album Name Enter String Track Name Enter String Artist Name Enter String Composer Name Enter String Select City Genre Select Country Select State Media Select Country Project-8 Phase I Deliverables CSE 4701 The ER Design in: GroupZchinookmodel.mwb where Z is your Group Letter Your generated GroupZchinook.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-9 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-10 Inventory, Customer Preferences) Project Domain CSE 4701 Design, Develop, and Test the Information System for Chinook DB Bleeding Edge of Capabilities and Features Three Phases Tuesday, October 20 Finalize Project Phase I: Friday, Groups for the Project October 30, 11:59pm (EER to Relational Design) Project Phase II: Thursday, December 10, 11:59p, with as needed Demos Project-11 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 Eclipse PHP or Aptana Studio 3 – To be Decided Overview/Other Sample Screens Strongly Encouraged to Enhance/Extend Documentation of Proposed Enhancements Should Work on Chrome and Explorer Project-12 Clients and Software Architecture CSE 4701 Web Client Job Seeker Connect and Interact with MySQL REST API php MySQL Web Client Job Poster 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-13 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-14 Phase I Project Requirements CSE 4701 Relational DB Design, DB Change, DB Migrate: 1. Abstract common information from Customer and Employee into a new Person or User Entity. 2. Extend Chinook with entities for MyPlaylist and MyPlaylistTrack 3. Extend Chinook with entities for Ordering 4. Extend Chinook with entities for Payment 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 6. Migrate the current Chinook schema to the new schema Due Date: Thursday, October 30, 11:59pm Project-15 ER For Phase I - chinookmodel.mwb CSE 4701 Figure 1: The Chinook ER Diagram from MySQL Workbench. Project-16 Explaining Phase I Project Requirements CSE 4701 Examine EER and Make Sure Everything Makes Sense 1. Abstract common information from Customer and Employee into a new Person or User Entity. Change and Extend chinookmodel.mwb New PersonID or UserID, but still keep EmployeeID 2. Extend Chinook with MyPlaylist/MyPlaylistTracks Customers Create/Manage Own Lists Mirror Playlist and PlaylistTrack Need to link to CustomerID Customers have Multiple Playlists Project-17 Explaining Phase I Project Requirements CSE 4701 Examine EER and Make Sure Everything Makes Sense 3. Extend Chinook with entities for Orders Order consists of one or more playlists Selected From MyPlayList or Playlist Order can also just contain a list of tracks 4. Extend Chinook with appropriate entities for Payment Capabilities Extend Chinook with appropriate entities for Payment Off of the Invoice Entity Project-18 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-19 Explaining Phase I Project Requirements CSE 4701 Examine EER and Make Sure Everything Makes Sense 6. Migrate the current Chinook schema to new schema Create New Person/User, MyPlaylist/MyPlaylistTrack, Orders, and Payment Tables See 4.22 of the chapter 4 PPTs Run Queries Against Customer/Employee to extract Shared Info to Store in new Person/User See 4.72 of Chapter 4 PPT for INSERT w/SELECT Remove Columns from Customer/Employee via Alter Table Add Data into MyPlaylist/MyPlaylistTrack, Orders, and Payment Tables Project-20 CREATE TABLE AND INSERT INTO Examples CSE 4701 CREATE TABLE GROUPZCHINOOK.SampleTable (SampleTableId INT NOT NULL, DataItem VARCHAR(120), PRIMARY KEY (SampleTableId )); INSERT INTO GROUPZCHINOOK.SampleTable VALUES (1, ‘Hello World'); Project-21 INSERTING WITH SELECT CSE 4701 INSERT INTO GROUPZCHINOOK.SampleTable (GROUPZCHINOOK.SampleTableId, GROUPZCHINOOK.DataItem) SELECT GROUPZCHINOOK.GenreID+1000), GROUPZCHINOOK.GenreName FROM GROUPZCHINOOK.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-22 Phase I Deliverables CSE 4701 The ER Design in: GroupZchinookmodel.mwb where Z is your Group Letter Your generated GroupZchinook.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-23 MySQL Data Export CSE 4701 Project-24 GroupZChinook.sql CSE 4701 Project-25 Reloaded and Queried CSE 4701 Project-26 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-27 Phase II Project Requirements CSE 4701 Design, Development, Test an Info System Front-End Web Site Connecting to Chinook 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-28 Phase II Due Dates CSE 4701 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 10, 11:59p, with as needed Demos Individual Self Assessments to steve@engr.uconn.edu Due Friday December 11, 11:59p Project-29 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 Duration, Media, Location, Customer Employee Productivity Reporting: Most Work by EmpID by Duration, Media, Location, Customer Inventory Reporting: Stock Info on tracks, artists, composers, genre, media, milliseconds, bytes, composer Customer Reporting: Buying Preferences by Duration, Media, Customer Project-30 Customer Capabilities CSE 4701 Register, create, and manage an account; Set and management various payment types; t Look up information by track name, album name, artist name, composer name, genre name, and/or media name; the capability to Create/review/modify his/her playlist (MyPlaylist and MyPlaylistTrack for Phase I) Place an order for one or more playlists or tracks Chinook Playlist Customer Defined MyPlaylist Project-31 Employee Capabilities CSE 4701 Entering new media that includes track name, album name, artist name, composer name, genre name, millisecond, bytes, and/or media name Create/review/modify playlists (stored into Playlist and PlaylistTrack) 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-32 Administrative Capabilities CSE 4701 Run a Variety of Reports on Individual and Overall Sales Employee Productivity re. Customers/Sales Inventory Reports by name, artist, composer, genre, media, and/or composer Customer Reports on Preferences Reports Parameterizeable Based on Duration search by day, month, year, or date range. Location search by city/state/country Media combination of track, album, artist, composer, genre, and/or media Single customer, set of customers, customers in a city, customers in a state, customers in a country Project-33 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-34 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-35 LOGIN/REGISTRATION/EDIT SCREENS CSE 4701 Project-36 DASHBOARD SCREEN - 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 media type and artist name. Link to a screen that for a Customer to create/manage/modify his/her playlists (new MyPlaylist and MyPlaylistTrack entities/tables) Link to Order Screen that lets a customer select a playlist to order (from MyPlaylist or Playlist) or as selected by track MyPlaylist and Order Screens both need detailed searching of tracks by track name, album name, artist name, composer name, genre name, and/or media name The Order screen is tied to a Shopping Cart. Project-37 DASHBOARD SCREEN - CUSTOMER CSE 4701 Project-38 DASHBOARD SCREEN - EMPLOYEE CSE 4701 Button to log off. 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. Processing order and interacting with customers that is enabled from click. Links to separate screens for: Enter/Edit New Media Screen and Review Customer Demographic Screen. Link to a screen to create/manage/modify his/her playlists (new Playlist and PlaylistTrack) maintained by the Chinook web app which involves detailed searching of tracks by track name, album name, artist name, composer name, genre name, and/or media name. Project-39 DASHBOARD SCREEN - EMPLOYEE CSE 4701 Project-40 LIST OF CUSTOMER SCREENS CSE 4701 Edit Profile Screen Set/edit payment types Screen – design a screen for credit card, check, paypal, Google Pay, and Apple Pay options Pending/Completed Orders and Status Screen – View and Check on a Specific Order Create/Manage MyPlaylists Screen: Create/manage/modify his/her playlists (new MyPlaylist and MyPlaylistTrack entities/tables) Order Screen: Select playlist (from MyPlaylist or Playlist) or a set of tracks searched by track name, album name, artist name, composer name, genre name, and/or media name Shopping Cart Screen: In progress order with the ability to edit tracks and/or playlists Project-41 Create/Manage MyPlaylist Screen CSE 4701 Detailed search by track name, album name, artist name, composer name, genre name, and/or media name Display a list of a customer’s play list and when clicking upon a list will show all of the tracks Ability to modify an existing play list (add or remove tracks or remove the entire playlist) Ability to create a new named play list which will allow the customer to perform a detailed search and select tracks Need to support multiple pages for the result sets since there can be many results based on the search criteria Project-42 SEARCH SCREEN - CUSTOMER CSE 4701 Need Search Boxes for track name, album name, artist name, composer name, genre name, and/or media name Show and Page through Results Project-43 LIST OF EMPLOYEE SCREENS CSE 4701 Active Order Screen - where clicking an order from the dashboard screen goes to another screen to show the status and content of each order Similar to “Pending/Completed Orders” of the Customer Enter/Edit New Media Screen (see next slide) to enter new artists, albums, genres, media types, and tracks Create/Manage Playlists – Similar to Customer Version but operates on Playlist and PlaylistTrack. Review Customer Demographic Screen Similar to the edit profile screen (shown earlier) First and Last Names, Company Name, Address/City/State/Country/Postal Code, Phone, Fax, and Email; whatever seems appropriate. Project-44 EDIT/ENTER NEW MEDIA SCREEN CSE 4701 Screen to enter all of the information on a new media item including: track name, album name, artist name, composer name, genre name, and/or media name You may also need to add new track names as well Can Utilize Combination of Data Entry, Drop Downs, Check Boxes, etc. Next Slide Illustrates example from UconnJobSearch Project-45 EDIT/ENTER NEW MEDIA SCREEN CSE 4701 Project-46 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 name, artist, composer, genre, media, and/or composer 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 Media combination of track, album, artist, composer, genre, and/or media Single customer, set of customers, customers in a city, customers in a state, customers in a country Project-47 Sample 1 Report Generation Screen CSE 4701 Project-48 Sample 2 Report Generation Screen CSE 4701 Project-49 Sample 3 Report Generation Screen CSE 4701 Project-50 Sample 4 Report Generation Screen CSE 4701 Project-51 Sample 5 Report Generation Screen CSE 4701 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 Other Sample UConnJobSearch Screens CSE 4701 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. Project-54 Other Team1 Screens Posted CSE 4701 Project-55 Other Team1 Screens Posted CSE 4701 Project-56 validator.php CSE 4701 Project-57 Sample Reporting Screens CSE 4701 Project-58 register.php CSE 4701 Project-59 First Sample CSE 4701 Project-60 First Sample CSE 4701 Project-61 First Sample CSE 4701 Project-62 First Sample CSE 4701 Project-63 First Sample CSE 4701 Project-64 First Sample CSE 4701 Project-65 First Sample CSE 4701 Project-66 Second Sample CSE 4701 Project-67 Second Sample CSE 4701 Project-68 Second Sample CSE 4701 Project-69 Second Sample CSE 4701 Project-70 Second Sample CSE 4701 Project-71 Second Sample CSE 4701 Project-72 Second Sample CSE 4701 Project-73 Sample Reports from CT Insurance Dept. CSE 4701 Main Menu Project-74 Sample Reports from CT Insurance Dept. CSE 4701 Project-75 Sample Reports from CT Insurance Dept. CSE 4701 Project-76 GUI from CSE4701 Spring 2003 Project CSE 4701 Project-77 GUI from CSE4701 Spring 2003 Project CSE 4701 Project-78 GUI from CSE4701 Spring 2003 Project CSE 4701 Project-79 GUI from CSE4701 Spring 2003 Project CSE 4701 Project-80 GUI from CSE4701 Spring 2003 Project CSE 4701 Project-81 GUI from CSE4701 Spring 2003 Project CSE 4701 Project-82 GUI from CSE4701 Spring 2003 Project CSE 4701 Project-83