Dashboard basics

   Editing your documents in Google Drive

   Login difficulties: make sure cookies are enabled

   Filtering by players

   How to use the headers

   Summary of upcoming features

(For developers only)

   File System


TOPICS: offline capabilities of the dashboard, dashboard fields, .csv spreadsheet, html5 local storage, server database, internet connection, update browser

The dashboard provides two ways to upload data: 1) manual entry into the provided dashboard fields, and 2) upload of the master .csv spreadsheet on the upload page.

Local storage works like this: HTML5 compliant browsers (see note below) have a dumbed down version of a database (db) embedded in the browser. When the browser detects the user is offline, data is sent to the browser db instead of uploaded to the server db (the ultimate destination of your data.) In this regard, while you can store data into the browser db offline via the dashboard fields, nothing actually goes to the server db until you create an internet connection. Local storage is meant for situations where internet strength is intermittent and can drop out from time to time and internet is temporarily dropped.

This means that you must be online at some point to actually gain access to the dashboard application. If you are offline and decide you want to work on something, you won't be able to access the application unless the page already exists so be sure to load the dashboard into a browser window before you go offline.

(* The capability for .csv spreadsheet local storage in the browser db has been disabled as a safeguard in the event you forgot you uploaded the .csv spreadsheet offline and it uploads at a later date when the .csv you carry around has been changed. This could wipe out all your new data with old data so this feature has been disabled. It's also not encouraged you try storing it even though this feature has been disabled.)

Check if your browser is HTML5 compliant here:

then scroll down to just under the middle of the page where it says 'Storage' .. if 'Local Storage' is checked off as 'Yes', you're good to go.

If not update your browsers here:


Safari: click the Apple icon in the upper left of your screen and click 'Software Update'


Internet Explorer



TOPICS: software, microsoft excel, .xls, .csv, google drive, online editing, cloud

If you don't have Microsoft Excel for some reason you can still access and edit any Excel spreadsheet in .csv or .xls format via Google Drive:

1) Go here:

2) Login to your Google account

3) On the left side click the red upload icon and upload the file

4) After the file is uploaded, on a PC right-click the file (on a Mac click the ctrl key and click the mouse) and note the drop-down menu .. hover over 'Open with' then choose 'Google Sheets' which is Google's cloud version of Excel. Edit to your heart's content.

5) Don't choose Google Docs to view or edit as Google Docs is basically just a viewer .. do everything in Google Drive.


TOPICS: cookies, login, preferences, settings, android, admin, security

If you are not able to log in, one reason may be that you do not have cookies enabled (which some administrators may do for security reasons, or a personal preference.) This is also an issue with some (not all) Androids - if cookies are disabled in the default Android browser, you will not be able to log in. To enable cookies, go to your browsers preferences or settings and enable your browser to accept cookies.


TOPICS: filtering, edit, delete, player position, dropdown menu

You can filter by player positions on the Edit Player and Delete Player pages. You select the player position first and a new dropdown will appear after that. The next drop down will show only players who are in the position you selected in the first dropdown.

To EDIT a player position - on any Edit Player Position page (accessed from the Edit Player page), the player position is a dropdown field, so you can edit a player's position there.

To CREATE a new player position - there are two ways to create new positions that do not exist already, 1) on the Create Player page, 2) as well as still in the master spreadsheet.


TOPICS: headers, header name, column names, workflow, golden rule, application misfunction, application breaking, statistics, master spreadsheet, upload, database, special characters, validation

This is the workflow users must follow in order for headers to work properly, that is, there is a 'golden rule' you must follow to avoid having the application misfunction.

New statistics will only be created by the master spreadsheet. Add in any new statistic(s) as a header name in the master spreadsheet and when uploading the player information, it will automatically create the new header/statistic. This new statistic will be applied to every player in the database and all new players in the future. This statistic will also show up in the front end if a value exists for that player, for that statistic.

Golden Rule
The way the names in the header should be written out is proper cased with no spaces and should start with a letter, and no special characters (ie: !@#$%^&*()-_+=|\/ etc) - only numbers and letters are allowed by this application. Each word that is capitalized will end up with a space between that letter and the previous automatically in the application. For example:

    »  PlayerName as a header name ends up as Player Name in the application.
    »  So to create a new statistic that shows up as Dodge Ball Points, the header would be written as DodgeBallPoints

These are MANDATORY rules because column names are being created based off the header name so if they are not created properly, the update will either fail or the application may break somewhere. ('Validation' is written into the application to prevent breaking, but it's best to be aware of these rules in order to prevent rejection of any master spreadsheet upload.)


TOPICS: statistics, master spreadsheet, admin, admin page, statistic filtering, player positions, checkboxes, database, mapping table, table columns, headers, auto update, logic, validation, database corruption

»  You will be able to add any new statistics you want via the master spreadsheet, and will be able to link/unlink stats to positions at your own discretion without the need for developer intervention to do so. These are admin level changes so these changes will have an effect on the entire control panel. Any new statistics you create will also show up in the player's profile if that statistic has a value.

»  You will also have statistic filtering pushed to the front end. What this means is if you have a particular statistic filled out for several player positions under several players and then you decide later you do not want that stat linked to those positions - as it stands right now you will have to go back and delete that stat's value from every player to get it off the front end before unlinking it.

But with pushing filtering through to the front end, then just unlinking the stat from the player position is all that will be needed in order to remove it from the player's profile in the front end.

»  There will be a page created that will allow you to link/unlink statistics to player positions. You can select a position, then all 93+ fields appear (including any newly created ones) with a checkbox next to each stat. Checking the checkboxes will trigger the field to show for creating and editing a player. Unchecking will hide.

»  The database will have a mapping table that auto updates itself with any new player positions added, since stats are linked to positions.

»  The database will auto create table columns in the players table based on any new headers in the master spreadsheet.

»  The master spreadsheet will regenerated every time a new column is added so that it stays current with the database.

»  The Edit Player form will show/hide appropriate fields/statistics based on the player position.

»  There will be a new admin page to link/unlink player statistics to player positions and save to database accordingly. This page will auto update based on any new fields created by the master spreadsheet.

»  The Master Spreadsheet upload process will have logic added to trigger new table columns being added.

»  Validation will be added against new table columns to prevent database corruption from bad header names.

(For developer's only)

TOPICS: admin, ajax, backups, css, classes, data, database, global data, global variables, forms, functions, img, images, js, javascript, jquery, login, tmp, php, html, backend, spreadsheet, upload, download, .csv, fonts, file names

Below is a breakdown of the file system. Most of the filenames describe their purpose but there may be a couple that aren't easily understood without looking at the code first (only those types of files are described.)

Contains the control panel file. This is the main file that drives the entire Dashboard.

These are all the ajax calls site wide.

* DoUpload.php - this uploads the spreadsheet file and handles storing data to the db
* UploadSS.php - returns the upload page for uploading a spreadsheet
* DoUploadImg.php - this uploads an image and handles storing its filename to the db
* UploadImg.php - returns the upload image form
* GetPlayerThumbData.php - this returns all the data needed to build a thumbnail
* validate.php - this validates user login credentials

Contains the page to download a new master.csv spreadsheet, as well as holds a fresh copy of the master.csv spreadsheet

Stores objects

* Db.php - handles database connectivity

CSS - obvious

Stores different types of global data

* globals.php - stores all main site global variables

These are the forms that are used by the Dashboard to create, edit, delete players

This folder contains function libraries. These are php ONLY

* general.php - basic functions that are commonly used
* security.php - any security methods needed go here

This folder contains all your images. They are further broken down to fonts (I think you put that there) and players. All player images will go in the players folder. The folder names are MD5 hashed signatures from the player's unique identifier. Altering any filenames here will remove the link between the player and their image!

JS - obvious

* localstorage.js - a library I wrote for driving local storage
* tasks.js - similar to general.php - it is a common library of javascript related functions

Login - obvious

Temporarily stores the uploaded spreadsheet.