Author Topic: Project Definition  (Read 5602 times)

Lucas V

  • Guest
Project Definition
« on: January 16, 2016, 11:31:10 PM »
The project is well-defined and progressing, but there are still things prone to change.

Lucas V

  • Guest
Re: Project Definition
« Reply #1 on: January 17, 2016, 02:35:08 PM »
There are four major parts to the whole project:
  • The Tablet Side
  • The Computer Side
  • The Database
  • The End Game
They are all connected in a ring-like form. The life of a form submission can be sumarized as
Tablet Side --> Computer Side <--> Database --> End Game

Andy K

  • Guest
Re: Project Definition
« Reply #2 on: January 17, 2016, 03:26:36 PM »
The tasks, as I seem them are as follows:

Android Tablet.

1. Create an android program for the tablet form factor that contains, to start, three form items:
     a. An entry that returns an integer.
     b. An entry that returns a Boolean.
     c. An entry that returns a string.

2. On save, create a delimited text string with the value for each item, with an ID that matches the ID for the item in the database. This string will also contain the match number and team number. The suggested delimiter is a pipe "|" character. Suggest one pipe between the ID and value, and two pipes between entries.

3. Generate a QR Code via the Android program. If you have not already, you need to find some sort of Java Library or SDK that allows you to generate and display a QR Code.

Windows Computer

Populate the database Item and Option table. We created example SQL code for inserting information into the Item table. This code needs to be extended so that you can insert related records into the Option table for each item. Also, we need to evaluate whether MySQL database is actually stable. If not, we will need to go to the next option, which is MS Access.

Data Upload and storage

1. Create a program that can read QR codes and save them to a specified folder on the Windows Computer.

2. Create a file watcher service program that can read the files when they are saved to a specified folder.
     a. This program has to be able to parse the delimited file into information which needs to be entered into the database.
     b. Create the SQL insert query to insert each entry into the Record table in the database.
     c. Create the code to connect to the database and put each entry into the database.
     d. Once the file has been processed, it should be moved to another folder as an archive.

3. Investigate and decide how to import data from the database to the Tableau software. Questions that need to be answered:
    a. Can Tableau connect directly to the MySQL database?
    b.  If not, what is the most efficient format for exporting the data from the database to Tableau?
    c.  What are some basic reports that need to be created by Tableau. Create the templates for those reports.

4. Windows Forms program which does the following:
    a. view and edit Records
    b. add new Items
    c. add new Item Options
    d. activate and deactivate items.
    e. Generate reports for export to Tableau, if necessary.

Note that we can take advantage of a MS Framework called the entity framework, which can automatically generate the methods needed to do Items a through d.

Once all the components are debugged and working, generate a full blown Android tablet program containing all the initial fields for scouting.
The program will need to be user tested to find bugs and check for usability.

In addition, you will need to be able to test the speed with which you can create reports in Tableau and modify the tablet application on the fly to adjust for changed data collection and reporting needs.

Stretch Goals
1. Make the android program be able to dynamically generate forms based on templates downloaded from the database.

Louis L

  • Administrator
  • Hero Member
  • *****
  • Posts: 567
Re: Project Definition
« Reply #3 on: January 17, 2016, 05:28:47 PM »
Due to the way matches progress, we want the following:

Tablet - Ideally we want to transmit data immediately but that's not always possible. So we need an option to save a match's data to a file for transmission later. Match data can therefore be transferred immediately or later (batch mode).

Lucas V

  • Guest
Re: Project Definition
« Reply #4 on: January 17, 2016, 07:11:23 PM »
From a general point of view over the whole project, the workload was agreed to be divided as follows:
                         Lucas                        Rebonto
                      Tablet Side                  End Game
                       Database                Computer Side(UI)
               Computer Side(service)

Lucas V

  • Guest
Re: Project Definition
« Reply #5 on: January 21, 2016, 09:24:12 PM »
The database in MySQL is stable. I was able to add/delete rows, insert columns and even add foreign keys while playing with it, and it didn't break!  :)
We can continue with MySQL safely for now.

Lucas V

  • Guest
Re: Project Definition
« Reply #6 on: January 23, 2016, 02:10:56 PM »
Due to time and availability constraints, we're defaulting to a plan B:

1- QR Codes will become a sort of 'work in progress', an improvement for the future but not something integrate right now. In order to meet the deadline (Feb. 15) we're going to transfer data through a USB stick. This means:
  • No 3rd party app on Tablet Side
  • No 3rd party app on Computer Side
  • A microUSB/USB flash drive will be needed to transfer the data
2- The UI in C# for the Computer Side will also become 'work in progress'. It is more important to get the background service in with no UI (quicker to make). This means:
  • No UI for the Computer Side
  • The background application will be written in Java (no learning required)