Progress Log

Semester 1 Week 2
05/03/12 - Orientation to the building and meetings concerning scope.
07/03/12 - Introduction to some systems and additional orientation.

Semester 1 Week 3
12/03/12 - More in depth look into the systems currently in use and Point of Sales.
14/03/12 - Began to look into developing a small web service that uses SQL to demonstrate familiarity with systems as well as my abilities. Created a simple HTML interface for the web service.

Semester 1 Week 4
19/03/12 - Met with David to further refine the scope and what ideally he wants in the final product, also continue researching how to create web services.
22/03/12 - Attended the Windows 8 Camp lecture from 9am to 5pm
23/03/12 - Attended the Windows 8 Camp lab from 2pm to 4pm

Semester 1 Week 5
26/03/12 - Created a document outlining the scope of the final project and a simple use case diagram.
28/03/12 - Created a similar document for the scope and use case of the simple web application. Also started creating a nice WPF interface for the web service and prepare a powerpoint for the initial BTech project introductory seminar.
29/03/12 - Gave my five minute introductory seminar showing my project and what had been done so far.

Semester 1 Week 6
02/04/12 - Further development of the interface and starting to look into WCF applications
04/04/12 - Created and used a WCF web service using SQL connecting to Bridgestone's Data Warehouse and implement it on the simple HTML interface created previously

Semester 1 Mid-Semester Break

Semester 1 Week 7
23/04/12 - Went over what was done in the previous half of the semester and discussed where we would go from now. Made some final touches to the WCF application. Also discussed with Philip and Robert about a proposed trip to the end users, fleet technicians, discussing equipment needed and writing up what questions to ask them.

Semester 1 Week 8
30/04/12 - Went to a Bridgestone store and looked over their work process, how they handle job cards currently and when/what they write in them. Also went with a fleet technician out to jobs to monitor how they work in the field and how a tablet would be incorporated.
02/05/12 - Wrote up proper documentation based on all notes that were taken on the Monday, outlining flow diagrams of work processes and potential for improvements where a tablet could help.

Semester 1 Week 9
09/05/12 - Met with Philip to discuss the final project scope and go over David and Robert's wish lists. Had a meeting including those two to present our findings from the fleeties and the scope.

Semester 1 Week 10
19/05/12 - Revised project scope document and updated it based on new information. Also stared producing other diagrams (use case and data flow) for the project.

Semester 1 Week 11
21/05/12 - Meeting with Philip to discuss the flow of the applications in depth and make sure mine and Vishal's sections are defined and distinct.
23/05/12 - Made work flow diagrams based off our discussion earlier in the week. Also gathered and sorted all documentation we had done in preparation for the BTech report and seminar.

Semester 1 Week 12
28/05/12 - Work on research and class diagrams for the report, gathering together all documents we had done and all information we could use which Bridgestone had made available to us.
30/05/12 - Work on mid-year seminar and go over it with Philip and Robert to make sure it is acceptable and does not contain sensitive information. Also go over what I will be including in the report to make sure that will also be alright to use.
31/05/12 - Gave my fifteen minute mid-year seminar showing the current progress of the project, what has been done, researched and achieved.

Between-Semester Break
05/06/12 - Hand in the Mid-Year Report by uploading it to my project website.
05/07/12 - Went to Bridgestone during the break. Windows 8 Computers were set up with MSDN subscriptions so I now have access to the new versions of Visual Studio and Blend. Created some test Metro Style apps and tested some basic functions and how they differed in these apps. For example screen splitting and the default visual fade in of objects on navigation.
09/07/12 - Met with my academic supervisor Mano. Discussed the importance of doing various implementations of his assignment. I now am completely sure that I will do these so I can write about them in my report.
12/07/12 - Did some more work on the project in the break, drawing out the screens of my design and detailing options I have for how to handle certain inputs (more natural flows between screens or more directly related to current forms).

Semester 2 Week 1
19/07/12 - Discussed my designs with Vishal at Bridgestone and reconfirmed the cut off points now in design form, what inputs are required in which. I looked into the differences between a standard Windows application and a Metro Style one, finding out it was mainly a design style however Metro Style apps created for Windows 8 require an appropriate developers MSDN subscription in order to distribute them outside of tests as in my report. Also created some simple forms for basic data input.

Semester 2 Week 2
26/07/12 - Worked mainly on trying to implement an interactive vehicle configuration diagram and attempted a few possible methods to implement this. This ranged from boxes with text that changed to indicate three states, separate images for three states, separate buttons placed into the locations of the tyres in the diagram. There were more complications than expected with these implementations as all diagrams are not consistent sizes, metro style buttons not acting as I intended, trouble with making other objects interactive.
27/07/12 - Met with Mano and discussed work done since last meeting. Also discussed the standards that should be met for the final report and what should be done to meet these standards as best as possible. Also discussed that from here I should work on his assignment, prototypes and a document for software architecture in order to demonstrate that progress has been made.

Semester 2 Week 3
01/08/12 - Attempted to work on an HTML implementation of the contingency tables assignment however ran into some issues. Instead worked on Software Architecture for Mano and some other written documents that Bridgestone had expressed an interest in seeing.
02/08/12 - Had two meetings at Bridgestone which lasted 1 and 2 hours respectively. In the first meeting we showed Robert out plan for the rest of the semester and what milestones we hope to meet and by when, which Robert gave some feedback on. In the second meeting Robert gave us a comprehensive list of 'modules' he would like to see be done in these applications which can massively increase the scope as some could be projects on their own. In between these I worked on creating the interface for my final project with minimal functionality.
03/08/12 - As I had not completed as much of my prototype as I had wished to the previous day due to meetings I went into Bridgestone again in order to work further on it. I also wrote up a document making what was talked about in the meetings on Thursday clearer and commenting on how each module could be implemented and the implications of it, they were ranked to imply the likelihood of each module being included time permitting. Robert expressed confusion about the end point of both mine and Vishal's projects and stated he wanted to change the primary focus, and cut-off points between the two, different from previously discussed and designed around. In an attempt to understand the new direction I talked with Robert instead of working on my prototype which may now need to be redesigned from scratch. In the afternoon I met with Mano and discussed the sudden explosive scope creep and how we may compromise.

Semester 2 Week 4
08/08/12 - Again attempted to work on the contingency tables assignment not with the username and password. Ran into more issues, still getting a 401 error when trying to use svcutil or WCFTestClient, also SoapUI will not load the wsdl.
09/08/12 - Shared ideas with Vishal about how to merge our two applications into a single application and how the data would flow. Scrapped my previous work on the application I was building last week and started on the new singular primary application. I worked on the interactive configuration diagram getting it to show all 44 configurations appropriately on screen with axels and drive axels noted with backend coding that allows for easy implementation of pulling the configuration type from a database.
10/08/12 - Figured out how to implement popup functionality into the wheel buttons of the configuration diagram, adjusting button colours and adjusting button images based on how the user interacts with them through backend C# coding. Some of this took longer than expected due to the difference in commands in Windows 8.

Semester 2 Week 5
16/08/12 - Had a brief meeting with Robert in which he desired a more specific timetable of our planned work on the new design. So we added this information into our functionality listing and sent it to him. Robert also said to stop working on the primary task and instead start on something new, an Incident Reporting form. Started creating the form application and outlined the flow of data for the more complex sections (one form creating a variable number of children forms which also need to be filled in).
17/08/12 - Met with Mano and updated him on our progress. He mentioned some good things to write about in the final report and talked about hopefully having the primary application completed before the second half of the semester, and the report done after the third week back.

Semester 2 Week 6
23/08/12 - Worked on the Injury and Incident Reporting, creating pages for the form and making sure all inputs were appropriate. I wanted to make user input easy so for all sections where I could I used toggle buttons that the user could select if the criteria applied to them. I had to put in come back end C# coding for parts of the forms where only one toggle from a group of toggle buttons could be selected at a time, as well as for when an 'other' toggle button was selected it showed a text box allowing for input that would not be displayed otherwise. This helps make the form less cluttered and doesn't confuse the user with text boxes they do not need to fill in.
24/08/12 - Briefly met with Mano and told him about the progress that had been made on the Incident and Injury Reporting.

Semester 2 Mid-Semester Break
30/08/12 - Continued working on the Incident and Injury Reporting, finishing up all pages of the form and adding some code to only show certain questions if they were necessary (like for employees only) as well as for auto-filling in some text boxes that it can infer based on previous decisions.
31/08/12 - Fixed an issue with the application that meant it was restricted to only the screen size in the design view in Visual Studio, while the monitor we were using was larger when the program was run. Now it will automatically stretch or shrink to the screen size. I also started on fleshing out my job card form as I had previously only worked on the configuration diagram part of it. I now added a pop-up after a wheel is clicked that will let you select types of jobs based on options, allowing the user to input all necessary information about a wheel-specific job. This popup changes and allow different inputs based on user decisions as different jobs require different information.
05/09/12 - I added some more configurations to the current configurations that were available for less common but still used vehicles, I also found identifiers in the database for these configurations so that they would be shown when an appropriate vehicle was loaded. I wrote the classes for my three forms (Incident, Injury and Job Card) to hold all the data for each field, including arrays where necessary as well as some binary-based maths to save responses to parts of the form that allow for zero to many specific options to be selected, and store it as a single int (if option a is selected, add 1 to the int, if option b add 2, c add 4 etc, and then you can do a bit-wise check to find out which options were selected).
06/09/12 - Wrote code that will allow a number of jobs to be added to a job cart once a job is selected from a wheel. The job cart will grow with each new item and if it runs out of space it is in a scroll viewer which still allows the user to see all items without clutter. Jobs that are in the cart can be removed and all subsequent jobs will be moves up in the job card, not compromising their values. This was all coded in the backend without any pre-existing controls. I also added a popup for IPC searches that are required for some jobs if the user does not know the IPC off hand, as well as a stock lookup screen which will allow the user to search for locations of known IPC which they are also again able to search for if they do not know. This Stock Lookup screen is accessible both from the application home page or the Job Card page without compromising any currently entered information.
07/09/12 - I added an option for vehicle-specific jobs on the job card which will add to the job cart however there were space issues with some of the rare larger configuration types, so I put this option to be in a common easy-to-see place for most of the vehicles but if it loads one of the rare larger types this option will automatically move to the corner. Also wrote options and back end code to allow every single page on all forms to be able to load previously saved forms and automatically populate fields if it detects this is the case and reads them from a class. Some of the classes had to have attributes added or be re-written in order to accomplish this such as having the class for one form now a child of a previous form class, as opposed to a separate class altogether, this allows for easier passing of information between pages as well as an adaptable amount of the child class depending on how many are needed.

Semester 2 Week 7
12/09/12 - Created images for the Windows 8 icon for the application and splash screen briefly shown while the application is loading. Also created images for a human diagram on the Injury reporting form which has different body parts able to be visibly selected.
13/09/12 - Fixed some bugs in the Incident/Injury Reporting that caused some buttons to affect unrelated screens as well as in order to properly handle the application using the same pages for multiple different child forms without compromising the cache of currently input data for each form.
14/09/12 - Started writing code to read from and write to a local database. Tables for different forms were created and then a web service was written and consumed by the application to interact with those tables. Currently only a few select pieces of data are used.

Semester 2 Week 8
20/09/12 - Completed writing to the local tables I created for Job Cards. Also together with Vishal we compiled both parts of the application and web services we had been working on together into a single application, this took longer than expected as we had to attempt to make page names, web service names and variables used consistent, as well as adjust the work flow of our single applications to work as a single thing.
21/09/12 - Finished making all current pages of the application flow properly and then worked on reading a list of IPCs based on a given product description, this went well and the application can now give appropriate IPCs used for each item, and add these items to a list of jobs in the job card, which then can get written to the local database.

Semester 2 Week 9
27/09/12 - Worked on making more of the interface screens consistent (button sizes, navigation text etc.) and clear. Also created some colour schemes for the application to show to Philip and Robert when they are next in the office.
28/09/12 - Modified my web service method which returned IPCs based on a product description to also give the prices associated with that IPC. There were some complications as returning a two dimensional array in the web service gave errors so the web service classes and methods needed to be re-written. Also created a web service method to return a number of columns relating to a location, based on an input product IPC for Stock Lookup. As this was similar to the IPC lookup but with different tables and many more columns this was a simple task once the 2 dimensional array issue was solved.

Semester 2 Week 10
03/10/12 - Worked on finally writing web service methods and creating database tables for the Incident and Injury reports. There were some difficulties in writing one incident report with multiple injury reports at the same time, as well as with attempting to add data to the database for things that had not been filled in by a user, however I got both writing and reading based on a user input key working. I also added the IPC lookup from the stock lookup page to the job card allowing the user to find an IPC, and added that IPC with corresponding price to the job cart.
04/10/12 - Philip and Robert looked over what we had done so far and suggested some modifications to how we handle adding items to a job. I modified the job card and stock lookup to also display the product description which Robert said was very useful for a user to see, I also added and decremented a total price of the total items in a job. I fixed some issues dealing with the state cache not clearing after a job card was completed if a second job card was to be done, as well as text boxes not clearing after the user confirms adding a specific item to a job card. Also modified prices to display correctly with two decimal places.
05/10/12 - As the complications with how I was handling the job cart (using a growing number of text blocks as opposed to a listview) and the current displayed IPCs/Locations on the stock lookup page were messy I took the time to research how to do some more advanced work with listviews. I followed some tutorials and bound my listview items to an observablecollection as opposed to adding items individually, this allowed me to use them as a datacontext for the listview and then modify the design of the listview to add different parts of that collection to different properly aligned columns. Continuing on with this will prove to make any adjustments to this and the job cart much easier from here on out, as well as allow for more customization as to how data is displayed.

Semester 2 Week 11
10/10/12 - I modified the job cart and IPC search on the job card to use the same kind of listview binding that I used the previous week on stock lookup. I did this new one in a way that will show the user information about the type of item added, the IPC and the price for each item. I then started creating and implementing unique IDs for the Job Card to use as a key. I decided to handle these in a way that the application will use the next available ID and then write a row in the database for this ID with non-key values empty, this ensures nobody else will be able to use the same key during the information editing process. After the job card is completed that empty row is cleared and then re-written with complete information.
11/10/12 - I gave unique IDs as a key for VIRs as well, changing the tables in the database and classes to account for this value. These were handled in the same was as the job cards IDs. I wrote code to load previous VIRs and Job Cards based on these IDs and show proper job carts and other user inputted information in the state they were saved as, this required adding columns to some tables to read load some pieces of data that we were not previously storing. I wrote a quick method to change the colour of the wheels on the VIR if the user has inputted information for those wheels as an indication to the user what wheels have information. Mainly I started working on coding the items to be added to the job cart, previously I could do a database lookup based on a description and get an IPC and then a price corresponding to that IPC however this is only used for new wheels, not services. I started hard coding the IPCs for services based on button and dropdown selections the user makes, however this requires a lot of work changing the dropdown and button options depending on the type of vehicle, and each option having different things to add (some items include mileage, some are multiplied by hours worked etc)
12/10/12 - I modified the starting pages for the VIR and Job Card to allow a user to input an ID and then read the information from the database as I wrote earlier in the week (it was hardcoded to one ID before). I also added the option to do a search by a vehicle rego, and display in a listbox all IDs that relate to those regos, and the date they were done on for the user to select if they do not know the ID they want to work with offhand. I also wrote code to write a second row to the VIR tables after a Job Card as a 'Completion Report' showing the state of the vehicle after work is done, this is just using a service Vishal wrote that I send new data to. I made the wheels on the job card change colour depending on the tred depths written in the corresponding VIR, if they are too low it will colour the wheel orange or red as an indication that work should likely be done on that wheel. I also fixed a huge error I just noticed, where when clearing the empty database row to write a completed one it would sometimes just clear the row and not write (it tried to write before the row was finished clearing, could not write as the row was still there, then it cleared it), I managed to make the write service only go through after the clear service was completed which fixed the issue. I handled all exceptions that could be encountered throughout the application and try to give feedback where necessary about what the user is doing wrong to cause these exceptions (trying to read with null values, or looking up a vehicle that doesn't exist etc)
13/10/12 - I fixed some issues in the prices for mileage not being calculated correctly, not showing the user what units the mileage is in, some buttons overlapping, rotation not stopping when it should, and the type of item written to the job cart not being reset for some kinds of items. I then worked with Vishal on some colour schemes and a questionnaire to show the people at Bridgestone on Monday. I also managed to install and implement an external tool for the use of DatePickers and both get and set these values.
14/10/12 - This entire day was spent in hardcoding the logic for converting the user input from various dropdowns and togglebuttons that those dropdowns may enable. The logic from all of these needed to be hardcoded in order to match up with chargeable IPCs. For every vehicle type different services could be performed, and each service for each vehicle type had a different IPC and cost associated to it that needed to be found and written to the job cart. Finding these costs was easy however there was a lot of work that needed to be put into converting the input fields into these IPCs. Also some services required multiple IPCs to be found and added, such as for a strip and fit where an IPC for the tyre to be fitted, the type of strip to be done on what configuration, and the disposal to be done on what configuration all needed to be found based on selected buttons for each configuration. I also created and implemented images for a progress bar to be shown on all pages to give feedback to the user as to where they currently are in a work flow.

Semester 2 Week 12
15/10/12 - I fixed some more minor things inside the app, such as sorting the results of SQL queries, using an appropriate job card number block. I also fixed some caching errors that occasionally resulted in parts of pages being disabled when the back button was used. We showed Robert and Philip at Bridgestone the colour schemes we had created and received feedback on which parts were best and what they wanted to draw focus on, after this the schemes were implemented on every background on every page and for each button on every page.
16/10/12 - As all the local data portions of the app were now complete and accurate I was able to use a CRM web service to interact with Bridgestone's POS system to write quotes. This took a little bit of logic to know what pieces of information the service required and some pages and classes needed to be modified to pass the appropriate data to the page that used this service.
17/10/12 - Me and Vishal discussed out planned presentations and modified our structures in order to ensure we did not repeat any information about Bridgestone, the application or the research we had done. These presentations were given to Bridgestone for checking. We refined our presentations and did some quick run-throughs of how we planned to present. At home I did some more preparation for my presentation however I did not have the tablet at this time so the demonstration I wanted to do could not be accurately timed.
18/10/12 - Gave my final presentation on my project and noted down the feedback I received.
19/10/12 - I went into Bridgestone in order to gather screenshots and statistics of the application for use in my report. I also looked over the whole application and cleaned up the code, making sure it was all properly indented and had comments so it was understandable. I researched into deployment methods for Windows 8 applications as this was mentioned during my presentation. I informed Bridgestone of deployment methods available to them that they could use when they have hardware available. I also formalised the structure of my final report and included all information I had been writing throughout the semester as things that had potential academic relevance. From this date onwards up until the final report submission all time was devoted to completing this report. This report was sent to Bridgestone for checking when ready.

Copyright © Scott Patterson 2012
Contact: spat239@aucklanduni.ac.nz