Swim Sheets Log
Weekly log for Swim Sheets project
Hailey Jenkins and Rebecca Bruce
Here is a link to the project's main page: https://classes.engineering.wustl.edu/ese205/core/index.php?title=Swim_Sheets#Overview
- 1 Week of September 1-September
- 2 Week of September 8-September 15
- 3 Week of September 15-September 22
- 4 Week of September 22-September 29
- 5 Week of September 29-October 6
- 6 Week of October 6-October 13
- 7 Week of October 13-October 20
- 8 Week of October 20-October 27
- 9 week of October 27-November 3
- 10 Week of November 3-November 10
- 11 Week of November 10-November 17
- 12 Week of November 18-November 25
- 13 Week of November 25-December 1
- 14 Week of December 1-December 8
Week of September 1-September
This week, we formed our group and decided on our project. We came up with the idea of creating an app that will allow timers at swim meets to input the time into, in order to streamline the process of timing for competitions.
Week of September 8-September 15
We met with our TA Amelia to discuss our project ideas and finalize our project proposal.
We worked on our initial project proposal and developed our gantt chart to prepare for the semester. We considered the steps of creating an iPhone app and discussed the possible ways to approach the project.
We worked on research for the project goals. Hailey researched how to create a database and found bluehost as a possible webpage host for our database. This has a cost of $3.95 that would need to be budgeted for. Bluehost would allow us to link our database to the app that we will code because it is a mySQL database.
Nish and Rebecca worked on the layout for the app. They developed 5 different screens. The first one consists of a welcome input for the date, meet, and timekeeper's name. The second page consists of the event, heat, lane and if the person at the block matches the name that appears on the screen. Based on if the name is correct, the screen will either go to a place to enter the time or a screen to enter the correct name. The 5th page is for the recap of the information and gives the user the ability to move to the next race or exit the meet.
Week of September 15-September 22
This week we focused on more research for our project. In order to be ready to start developing the database and begin coding for the app within the next week.
Hailey researched about creating a database and started an account with BlueHost, which is a mySQL database. She went through the PHP tutorials and used youtube videos to better understand how to create a database that can hold a table and have data imported. She spent about 5 hours working this week.
Rebecca downloaded Xcode 9 and Swift 4 and began the program called swift tour. Swift is a programming language that is supported by apple and used for iOS, MacOS, watchOS, and tvOS app development. It uses similar language to C and objective C. She spent about an hour this week doing research.
Nish also downloaded Xcode an began learning how to operate C in order to be able to program the app. He spent about two hours this week researching Xcode.
Week of September 22-September 29
This week, Hailey looked into pre-existing apps such as meet mobile and meet manager as a possible way to connect our data and for a method of inserting our information; however, the price to work with meet manager is above our price range for the project. She also worked on setting up the database by creating a table to insert data into under Bluehost. She did this by going to myPHP and setting up a table that includes Swimmer's First Name, Swimmer's Last Name, Meet Name, Team Name, Event Number, Heat Number, Lane Number, and time. She also generated an ERD that is posted on the project page as a pdf that gives an overview of how the database flows. Overall, she has spent 4 hours working this week.
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.
Rebecca spent 3 hours setting up her Xcode and creating a test app interface. She ran into a problem with making her apple ID comparable with the apple developer website; this problem will need to be resolved before beginning coding for the app. All code that she completed is currently stored on her laptop.
Nish spent about 30 minutes working with simple print statements and algorithms in swift this week.
Week of September 29-October 6
Hailey did more research in meet mobile; however, the site that meet mobile is run under, active.com, has protective measures that prohibit us from viewing the coding they used as a means to help in our project. She worked on getting a service.php up and running this week. Some complications arose as the coding she used was making the service.php page say "error establishing connection". In order to resolve this, she will be calling the database hosting site, bluehost,to get advice on how to work around this problem. Overall, she spent about 3 hours working this week.
Rebecca and Nish worked on putting the powerpoint presentation together for our group project presentation this Friday, October 6th. Here is the link to our powerpoint presentation. File:Swim sheet .pdf
Rebecca began research on how to use drop down boxes on swift, which was difficult as drop down menu is a web control term. To get around this problem, she used UIPickerViewDataSource and UIPickerViewDelegate. She is going to start working on the code this weekend and will hopefully have a functional drop box by next Friday. She put in 4 to 5 hours of work.
Nish worked through swift tutorials for an hour this week.
Week of October 6-October 13
Hailey met with Professor Feher on October 11 to work on developing a new structure for the database tables. The new format that will be used will have a table for the meet, a table for the swimmer, a table for the roster, and a table for results. This meeting lasted about 1 hour. She also generated an ERD to follow the new format for the database; this has been uploaded to the main project page. It took about an hour to generate this. She did about an hour research on how to code in SQL formats in order to better understand how to write the commands that the app will need.
This week Rebecca uploaded a copy of the new story bored (To be used by the app) and worked on creating a functioning "MainStoryBoard" on Xcode. Rebecca has called the new Xcode protect "SwimSheet:1" The first page of the layout is in place and she is learning how to I"mplementing Multiple View Controllers". Coding and research 2 hours (10/13/17)
This week Nish learned PHP. He downloaded xampp and notepad ++ in order to run preliminary tests. He began coding a rough input webpage that will allow someone to upload a .csv file (from excel) into the database. Reseach and coding: 4 hours (10/9/17, 10/10/17, 10/12/17, 10/13/17)
Week of October 13-October 20
Rebecca completed the draft layout of the app pages with button transitions that she had started working on yesterday. The iOS article was very helpful with explaining how to make a new View Controller class for each page. After testing the transitions the next step is now to change the button on page 5 (change name page) into a textfield that will then store the input and send it back to the database with a note of the change. In order to display the dater from the database on the app (pages 2, 3,4) we will use "WebKit View". This Kit displays embedded web content and allows for web navigation. Rebecca needs to talk to Nish and Hailey about the communication between the app and the web database. In the mean time she will learn more about the kit. (2.5 hours code - 10/14/2017) An hour before meeting with Hailey, Rebecca worked on setting up a new swift project "DaterbaseTutorial". This project was made flowing the tutorial from Code with Chris on the best way to Connect Your iOS App to MySQL Database. (tutorial was tailored for Bluehost).The protect is now set up ready to connect with the MySQL. ( 1 hour coded -10/18/2017)
Hailey spent two hours researching the SQL terms required to be able to import, select, and insert data into the various data tables that are shown in the ERD posted on the main wiki page. She read through descriptions on this website: http://beginner-sql-tutorial.com/sql-select-statement.htm and began experimenting with coding between the tables in the myphp page. She spent 2.5 hours talking bluehost representatives, first over chat and then on a phone call in order to get the website domain up and running. After working through the issues involved, she switched the domain design to weebly from wordpress because weebly is better suited for custom databases. The website, swimsheets.com, now pulls up without displaying a forbidden 403 error. (10/14) On 10/17, she spent an hour and a half doing the SQL coding to connect the different data tables together according to the setup of the ERD. She used the inner join command for SQL to do this.
(10/16/17) Nish spent one-hour coding a file input for .csv files in php and getting that code to return a .txt file with necessary input data parsed and organized. Currently the code only uploads the file. Troubleshooting the second feature of the code begins tomorrow. (10/17/17) Nish spent one hour troubleshooting a pathway error. Could not resolve issue. Bringing up error tomorrow at the meeting with Feher.
On 10/18, Rebecca and Hailey met up for an hour to organize the process of merging the database with the app. We also met with Professor Feher for about 45 minutes to go over the entire structure for our project.
Hailey spent 2 hours working on SQL coding for the interactions between the database and the swift app. She also looked into how to export the results datatable into the results page on the webpage. Since weebly does not accept coding from PHP, she is looking into exporting the table using cvs to be able to upload results to the website (swimsheets.com) (10/18)
Rebecca worked on the "DaterbaseTutorial" it can read and print the first line of a simple test php file. The swimsheets php file is to complicated to be read at this stage and Rebecca ran into a lot of errors when trying to make her way through the the file. Rebecca couldn't get any more work done on the "DaterbaseTutorial" so she then went and worked on the main project to upload an image. ( 2 hour coded -10/19/2017)
Rebecca Finished the layout of the first page. (1.5 hours -10/20/2017)
Week of October 20-October 27
Hailey called bluehost in order to switch the account back to weebly and to try to figure out why the test html files were only writing the php coding out and not reading it. (Oct 21-2 hours). She also seen time researching possibly reasons that the database and wordpress site were not connecting (1 hr on Oct 21). She spent 1 hour working with Jack on debugging the swimsheets.php file and 1 hour on her own continuing to work (10/23). She tested multiple plugins to see if those would help solve the problem, but none of them got the php code reading under wordpress. On 10/24, she spent 1 hour trying to debug with Professor Feher. She continued to work for another 2 hours that day and was able to get the database connection working and the swimsheets.com website formatted to give instructions to coaches on how to upload their meet entry file and how to download the file to fill out their entries. On 10/24, Hailey spent an hour working on the php coding to be able to read the csv file.
Rebecca meet with Jack on the (10/23 half an hour) and started on page three of the app. She created 3 3 text Field (Hours, Minutes, Seconds) and then set up perimeters so to only accepted numbers, and limit the input length to two charters. The user input is then displayed for Confirmation. This was completed on (10/24 4 hours). Rebecca spent time today debugging page 3 of the app. Big problem with code crashing at line 3 of page 3 after Rebecca add a 4th text field (milliseconds) spent a hour trying to fix issue only to realize that it was self placed "brake" (very frustrating). Added a lane number text Field to page 1 working on how to best deal with all the inputed dater on different pages (something to talk to Jack about). page 3 is now almost ready to start coding the date to the php file, once commutation between pages is worked out. (10/25 3 hours)
week of October 27-November 3
Hailey spent 1.5 hour reading through different php files online in order to get a better understanding of how to get her php code to read the excel file. She then spent 2 hours working on getting an html link working that would read the excel file that is uploaded. (10/29). She spent 1.5 working on debugging the php that uploads the excel file to the database (10/30). She has been using this link https://www.ibm.com/developerworks/library/os-phpexcel/index.html to help with php coding. Hailey spent 1 hour meeting with Professor Feher to go over basic layouts of the datatable and to find the issue with uploading the data into the database. This was successful and an excel xml file can now be inputted into the database. (11/1). She also spent 2 hours working on sql coding statements and finding sample php to execute these statements (11/1).stackoverflow to work on Segue. The app now will only progress from page one to page two if a lane number between 1-9 is entered and from page 3 to page 4 when all text files have a valid 2 digit input otherwise an error is printed . Rebecca then worked with Jack on php reading code. As of now the code can not read the php file and leaves the print table blank. Rebecca and Jack where able to identify the problem by using print statements. The problem arrises In class HomeModel when setting the jsonResult dater array. The Php file is read but then can not make a jsonObject array with the retrieved dater. This might be a problem with the php file as it does create an array for a different test php file. Rebecca and Jack then worked on sending the lane number input from page one to a label to display on page three. This was done with the function "override func prepare(for segue: UIStoryboardSegue, sender: Any?)". The lane number input is now printed in a label on page three. (10/30) Total 2.5 hours (1.5 with Jack). Rebecca can now read the whole php File! The swift app creates a NSArray of the downloaded information.Now that the app can read the file Rebecca created a while loop that looks uses a variable "count" to read each item in the freedItem array. It then cheeks for if item.laneNumber is equal to the input lane number, if so the while loop is broken and count = count +1 is saved for the next race so that it will start looking the next event in the lane when the page is nexted called. Rebecca then had to work on the display of the php file dater on page 2. The layout is now drafted and the information from the file is pasted on to page three. This took 3 hours (2 for code 1 for display) 11/3
Week of November 3-November 10
Hailey spent an 1.5 working on setting up the project's wiki page and starting to publish different descriptions about our project and the steps we took to accomplish things. She spent 2 hours working on a sql statement to go in the import.php file in order to solve the problem of each entry being entered into the datatable twice. This is not finished yet, but it is a sql cleanup statement to delete any double entry for the same event for the same person. (11/5) She spent an hour working with Jack on fixing up some of the coding (11/6). She has a test html created to make sure that her updateresults.php, which is meant to intake the time that is sent from the app and update the database with the time that corresponds to each swim ID. Hailey spent 2 hours finalizing the import.php file and getting the emptydata.php file to run correctly (11/9). The data is now properly inputted into the database, importing each swimmer only once. The emptydata.php file can clear the entries in the database. She worked on getting a button working in order to be able to clear the database from the website. In reality, this would be a security concern as anyone can access this button, but for the purpose of this project, it works to start a new meet (30 min).
Rebecca spent 2 hours working on layout and dater organization for page 2,3, and 4 on (11/4). She then worked on debugging the transitions and run time problems for a 1.5 (11/5). Rebecca then meet with Jack for half an hour to come up with a plain for page 5 for displaying all simmers in a team and then selecting a new swimmer (11/6). Rebecca spent 2 hours coding the tableview for page 5 so that it displays all unique names. She did this by creating a new array and writing to while loops to test is the name is new or already add to the display. (11/9) After having the table display unique names Rebecca add in a search bar to will only display inputs that match the input array. 2 hours. This still has to be tested with more with more than one name starting with the same letter. (11/10)
Week of November 10-November 17
Hailey spent about 2 hours working on styling aspects of the website. She spent 30 minutes researching how to use CSS background stuff including font, image backgrounds, and headings.
Rebecca finished functionality of app (2 hours), worked on debugging code (0.5 hours). (11/16) Meet with Jack (*Best TA) for an hour to try and debug code. Problem code no longer connects to dater base on my laptop. (runs on other Laptops) (11/17)
Week of November 18-November 25
Rebecca spent hours trying to fix database connection issues. (3 hours) tried copying code into new swift project, sent code to TA, updating laptop, no solution. Now using other laptops to work on code. (11/18). Worked on poster layout and wiki page (1.5) (11/19). Meet with Jack for (1.5 hours) to try and fix laptop problem. Tried coding and calling a different JSON method (did not work). Then created a bitbucket for code. https://firstname.lastname@example.org/swimsheets/swimsheet.git. We used the terminal so that I can push and commit files from Swimsheet Repo file on my laptop . Created diagram of php files and swift classes to show data is past from the database to swift and then back to the database. (2 hours) edited and uploaded photos of app layout to wiki. (11/20)
Hailey worked on adding comments to all the php files to explain what each part does (1 hr). She also worked on the wiki page and helped get the poster information ready to be printed (2 hours).
Week of November 25-December 1
Hailey and Rebecca met up with Jack to go over the format of our poster. We then went to engineering services to print the poster and get it on the posterboard for the demo on Friday (1.5 hrs) We ran through the codes one final time to make sure things were working properly for the demo (1/2 hr) We both spent time working on the wiki page to get it almost complete.
Rebecca spent an hour getting set up and ready for the demo presentation. Rebecca worked on a readme for the code in our bitbucket for (2hr)
Hailey spent time double checking that the files were uploading correctly (1/2 hr). She also created a how to on uploading an excel file into a database (1 hr).
Week of December 1-December 8
Rebecca and Hailey met with Jack to go over last minute course information. We also met with Jim to demo our project together (1 hr total)
Hailey spent 30 minutes creating more detailed instructions for how coaches on how to upload their file into the database.