Difference between revisions of "Swim Sheets"

From ESE205 Wiki
Jump to navigation Jump to search
Line 65: Line 65:
  
 
Blue Host: $3.95 per month for 3 months
 
Blue Host: $3.95 per month for 3 months
 
==ERD==
 
An ERD is a way to model data that "graphically illustrates an information system's entities and the relationships between those entities". To generate this, we organized our data tables into separate entities on the graphs. We then put connections between the ID's that matched up in order to show how the different data tables interact with each other.
 
[[File:ERD.png]]
 
 
https://www.techopedia.com/definition/1200/entity-relationship-diagram-erd
 
 
  
 
==Draft of App Layout==
 
==Draft of App Layout==

Revision as of 21:08, 17 November 2017

Overview

A common problem at swim meets is the backup that occurs from timers having to record the times for each swim on paper. The times then have to be manually entered in case one of the touchpads in the water does not register the swimmers touch, resulting in a false time. The objective of our project is to create an IPhone app to assist with swim meets. We want timers at swim meets to be able to input the time they recorded for the swimmer, based on the event number, lane number, and heat number, into the app instead of writing it on paper. This will allow the times recorded to go directly into the database instead of having to be manually entered at the conclusion of each swim event.

Here is a link to the weekly log that will contain updates on our progress for the project: https://classes.engineering.wustl.edu/ese205/core/index.php?title=Swim_Sheets_Log

Team Members

Hailey Jenkins
Rebecca Bruce

Objectives

We want the IPhone app’s interface to prompt the user for the event number, heat number, and lane number. The app should then return the swimmer’s name based off the psych sheet for the overall meet. The user can then double check the accuracy of the name and override it if necessary. Once the swim is complete, a time will be entered and stored in an excel spreadsheet that could then be inputted into a swim database at a later time.


The main goals of this app are to:
1. Create a database that takes in the psych sheet and can report the swimmers name.

2. Prompt the user for event number, heat number, and lane number

3. Display data in an organized manner for overall meet results and analysis.

4. The database should take in an input of data, consisting of rosters, events, heat, and lane. These should be imported into the database from a .txt file that can be used by various teams to import into the database.

5. Results will be generated and be viewable from the database for the coaches use. These results can also be exported into a spreadsheet for viewing.

6. The data for each race will be received from inputs from the app, not an external source.

Challenges

Learn how to create a public IP address to update the times.

Learn how to create a database and PHP files.

Learn how to use Apple’s IDE to create the application.

Learn how to import the data from a document.

Learn how to use the iCloud server.

Learn how to override errors in the input process.

Gantt Chart

Gantt Chart UpDate.png












Budget

Blue Host: $3.95 per month for 3 months

Draft of App Layout

Design and Solutions

Design Components The Swimsheets app was designed to...

  1. Allow coaches to fill out a simple Excel XML file
  2. Have the file be uploaded, and the entries entered into a datatable automatically
  3. Have an app read the datatable and display the swimmer for each specific event and heat to the corresponding lane on an app
  4. Allow timers to input the time for each swim
  5. Have the time data uploaded back into the datable
  6. Display the results in an organized manner that can be found on the Swimsheets.com website

Interface

Server and Database

  • We used Bluehost to set an SQL database and a web domain (swimsheets.com)
  • Used myphpadmin to set up the data table that has columns consisting of: ID (an auto incremented number), Team, First Name, Last Name, Event Number, Event Name, Heat Number, Lane Number, Time (this value can be null)
  • Data is inserted into this table when the coaches go online and download the excel XML file, fill it out, and upload it at swimsheets.com/upload.php based on the instructions listed on swimsheets.com
  • Created various php files needed to execute our commands using sql queries:

upload.php: this is where coaches can submit the entries for the meet, once the submit button is hit, the page is directed to swimsheets.com/import.php

import.php: uploads the meet entry files into the datatable

getdata.php: establishes a connection with the SQL database, displays the entries datatable as an array that can be accessed using Xcode in swift

updateresult.php: takes in the time that is entered in the app and adds it to the entries datatable, if there is a blank time given for a Swimmer, "No Show" will be entered into the time field

displaybyevent.php: displays the entries table, sorted by event number and lane number

displaybyname.php: displays the entries table, sorted alphabetically by last name

displaybyteam.php: displays the entries table, sorted by team

emptydata.php: this php codes empties the entries datatable so that a new meet can be started with a clean database

newmeet.php: creates a button that allows the user to empty the database before beginning a new meet

Results

Final App Layout

Demo Poster

Comparison to Objectives

  • Database

Objective: Create a database of swim entries that can be updated by the Swimsheets app

Our implementation: Successfully created a database that can take in a meet entries file and insert each entry into a new row of the entries datatable. Additionally, we created an auto incremented ID that is unique to each swim that each swimmer has in order to simplify keeping track of swims as the meet progresses and to streamline the process of finding where the time should be updated after each swim is swam.

  • Connection between Database and App

Objective: Our implementation:

  • Demo

Objective: Our implementation:

  • User Interface

Objective: Our implementation:

  • Results Display

Objective: Our Implementation:

Critical Decisions

One of the decisions we made was to simplify the structure of the database we created. Instead of doing multiple tables that are linked together as shown in the ERD, we created one data table called entries and used that to run all the php files and inputs/outputs from the app. The reason for this was that we lost a group member and needed to reassess how to finish the project in a timely manner. Given more time, the structure of the database would mimic that of the ERD, which would allow the app to be used in multiple swim meets more efficiently. The way we did it still allows for the app to be used, but the user must click a clear button on swimsheets.com to clear the data table before a new meet can be run.

Source Code