The STEM Academy Data Solution Progress Report Shannon Ernst, Kyle Nichols, Javier Franco Group 48 CS 461 Fall 2016 1 1
Problem STEM Academy is a self funded organization that relies on donations and other funding that requires results based on data on STEM Academy Data is collected through surveys that are given to students that attend the program Surveys are administered on paper and tabulated by hand by volunteers Inefficient method for collecting data for obtain more funding STEM Academy needs: System for electronically distributing surveys and being able to print them Database for storing all of their survey information Report generation for viewing most recent data in a meaningful way 2 2
Solution Overview Web app for Survey Generation and Distribution: STEM Academy will now be able to create digital surveys Database: store and own all data Report Generation: STEM Academy will now be able to query their data quickly and generate printable reports Alternatives Qualtrics Survey Monkey 3 3
Solution Survey Generation Requirements Create and edit surveys Add, delete, reorder questions in survey Three question types Text Entry Matrix (Likert Scale) Multiple Choice (Both single and many answer) Preview, save and distribute survey 4 4
Potential View and Flow of Survey Generation Survey Title Textbox Question Area Text Matrix Multi-Single Multi-Many Question Text Answer Choice 1 Add Answer Save Add Question Save Preview Distribute
Survey Generation Details Surevy JSON Question JSON { survey_id: random alphanumeric unique id title: alphanumeric string questions: [array of questions represented by JSON] } { question_id: random alphanumeric unique id qtext: alphanumeric string type: string representing question string answers: [array of answers represented as strings] } 6 6
Solution Database Management 7 7
Organization of the Database Three core tables and supporting tables. The Survey table describes survey title and program. The Question table describes the question text. The Responder table describes the personal information of survey takers. Has Student and Parent specializations. The Contains table describes the many-to-many relationship of Surveys and Questions. The Response table describes the many-to-many relationship between Responders and Questions. Three specializations save answers: Multiple_Choice, Matrix, and Text. 8 8
Relational Schema 9
Creation and Location of Database Each table created using SQL CREATE TABLE command. AUTO_INCREMENT to generate unique keys. Where database will be stored and accessed still unknown. Central Services has been contacted. 10 10
Interaction with Database Survey generation will interact by sending JSON strings. These will be parsed to create the necessary SQL queries. Similarly, report generation will provide information for a SQL query and result of query will be sent back. Both will use mysqli objects in PHP. 11 11
Solution Report Generation Program X Add First Name X Add Submit Print Title Caption Query Result X Caption Query Result X Save 12
Report Generation Interaction Search Form Input text boxes will be used for each input field Each input field will have an “x” delete button on the right Each search criteria for the form will have a name and an add button for adding additional fields for their query By default the search form will have one input field for each search criteria Submit button for submitting query Text input boxes will be used for query results, caption, and title 13
Report Generation Interaction Continued Report Form Edited reports will display the query results in the report form New reports will have an empty report by default Each query results will have a caption above it and a delete button on the right side Report form will contain a centered title at the top There will be a save button for the report at the bottom right Print button on the top right hand side of the report 14
Difficulties Encountered Difficult finding tools and examples for creating a search form for querying information. These two links gave me the idea for the search form and got me familiar with AngularJS: http://www.shanidkv.com/blog/angularjs-adding-form-fields-dynamically (Adding/removing form fields) http://www.keyboardninja.eu/demo/angularjs/searchform.htm (Basic search form example) 12/3/16 15
Tools for Creating Report Generation AngularJS, HTML, and PHP Printing a Report Two CSS style sheets will be used for printing only the report form Href=“javascript:window.print()” will be added to a print button to display print dialogue box Saving Query Results Create two tables for saving a reports and queries PHP SELECT and INSERT statements will be used to retrieve and save 16
JSON Objects for Generating Report Form JSON report object: { id: unique identifier title: name of report queries: array of query objects } JSON query object: { id: unique identifier caption: description of query result: result of query } 12/3/16 17
Summary of Progress We have designed our solution but have not started implementation. Implementation dependent on STEM Academy's accessible services for database. 18 18
Future Plans Verify that if the client decides on using Qualtrics to solve their problem we will need to start coming up with a new idea to solve along with a solution. Hopefully this does not happen. Code prototyping for user interface webpages Improving our design document We will be making sure that our design solutions our correct and if they are not we will come up with new design solutions, so that our projects development goes smoothly. We will verify that there is no missing components to our design to prevent our development from hitting a stand still. 19 19