<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://tools.usyvl.org/wiki/index.php?action=history&amp;feed=atom&amp;title=Overview_of_Services_under_Rainier</id>
	<title>Overview of Services under Rainier - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://tools.usyvl.org/wiki/index.php?action=history&amp;feed=atom&amp;title=Overview_of_Services_under_Rainier"/>
	<link rel="alternate" type="text/html" href="https://tools.usyvl.org/wiki/index.php?title=Overview_of_Services_under_Rainier&amp;action=history"/>
	<updated>2026-05-14T11:56:02Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.3</generator>
	<entry>
		<id>https://tools.usyvl.org/wiki/index.php?title=Overview_of_Services_under_Rainier&amp;diff=67&amp;oldid=prev</id>
		<title>Aaron: 1 revision imported: Hopefully full import</title>
		<link rel="alternate" type="text/html" href="https://tools.usyvl.org/wiki/index.php?title=Overview_of_Services_under_Rainier&amp;diff=67&amp;oldid=prev"/>
		<updated>2023-06-21T00:25:40Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported: Hopefully full import&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 00:25, 21 June 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Aaron</name></author>
	</entry>
	<entry>
		<id>https://tools.usyvl.org/wiki/index.php?title=Overview_of_Services_under_Rainier&amp;diff=66&amp;oldid=prev</id>
		<title>Aaron: /* Challenges in such a migration: */</title>
		<link rel="alternate" type="text/html" href="https://tools.usyvl.org/wiki/index.php?title=Overview_of_Services_under_Rainier&amp;diff=66&amp;oldid=prev"/>
		<updated>2015-02-19T22:32:11Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Challenges in such a migration:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Introduction==&lt;br /&gt;
This information originally compiled on 2015-02-19 in preparation for a meeting.&lt;br /&gt;
&lt;br /&gt;
The major headings below this introductory section are ordered by where they fit in temporally in the USYVL workflow (not by creation date or importance).&lt;br /&gt;
&lt;br /&gt;
===Possibly Migrating away from Rainier===&lt;br /&gt;
====Such a migration would be an opportunity to:====&lt;br /&gt;
*re-architect how the data and products are dealt with&lt;br /&gt;
**utilize a single db end to end - event creation, integrated web distribution of schedules, via both desktop and mobile&lt;br /&gt;
**Generate site pages and pdfs on the fly&lt;br /&gt;
&lt;br /&gt;
====Challenges in such a migration:====&lt;br /&gt;
*providing a few key tools&lt;br /&gt;
**Intersite tournament scheduler that tracks how many away vs home games&lt;br /&gt;
**Intersite pool editor - to create entries in pool layout db for new cases&lt;br /&gt;
*expressing the data for the above tools concisely, accurately and in a way that allows for expansion&lt;br /&gt;
*simplifying/automating things where they can be&lt;br /&gt;
**Tournament Pool Layouts&lt;br /&gt;
*duplicating some of the batch/bulk processing that current system does&lt;br /&gt;
**95% of work is done with pressing a series of buttons and verifying that there are no errors along the way&lt;br /&gt;
*handling the odd-duck cases and one-off situations.&lt;br /&gt;
**Programs where the schedule structure is different (ie: only one court, used over the course of several hours instead of the usual: multiple courts over 1 hour)&lt;br /&gt;
**Extended events&lt;br /&gt;
*teambuilder (from Rainier)&lt;br /&gt;
&lt;br /&gt;
====Other Opportunities====&lt;br /&gt;
*Open source any additions/external mods for the h2 site&lt;br /&gt;
&lt;br /&gt;
==Workflow==&lt;br /&gt;
Originated in 2008 while looking for a solution to USYVL issues with tracking progress for programs.&lt;br /&gt;
*Program coordinators work from a single, shared excel spreadsheet.  &lt;br /&gt;
*No Centralized progress status/summary information&lt;br /&gt;
&lt;br /&gt;
Created a database structure designed to create tasks and allow them to be completed.&lt;br /&gt;
DB tables covered:&lt;br /&gt;
*programs&lt;br /&gt;
*facilities&lt;br /&gt;
*users&lt;br /&gt;
**program coordinators - programs assigned to them via administrator&lt;br /&gt;
*School districts&lt;br /&gt;
*holidays - used to restrict event creation during certain periods&lt;br /&gt;
&lt;br /&gt;
===Summary===&lt;br /&gt;
*About 21000 lines of code.  &lt;br /&gt;
*Probably half is relatively unused now&lt;br /&gt;
*Of the remaining, probably 40% is kruft at this point.&lt;br /&gt;
&lt;br /&gt;
===What is provided===&lt;br /&gt;
*Organize Intersite Tournament Schedule&lt;br /&gt;
**what sites play each other on a given day&lt;br /&gt;
**done at program level&lt;br /&gt;
**needs to be done pre-season&lt;br /&gt;
*Create events based on the above scheduling to import into Rainier&lt;br /&gt;
**start date, stop date defined&lt;br /&gt;
**skip &amp;quot;holiday&amp;quot; dates&lt;br /&gt;
**1000+ events per season typical (50+ sites * 16-18 days per season)&lt;br /&gt;
&lt;br /&gt;
===How it&amp;#039;s provided===&lt;br /&gt;
*Local sqlite databases with various tables and a spreadsheet style editor&lt;br /&gt;
*Geocoding to get locations&lt;br /&gt;
*Tournament scheduling tool&lt;br /&gt;
**Utilizes geocoded locations&lt;br /&gt;
**Two stage proximity algorithm determines viable candidates &lt;br /&gt;
**Create pull down menus of viable candidates&lt;br /&gt;
*Event export - db based&lt;br /&gt;
**Intrasite events created in table&lt;br /&gt;
**Intersite events created &lt;br /&gt;
***Table triggers replace conflicting Intrasite events with the Intersite event&lt;br /&gt;
** is CSV of events&lt;br /&gt;
&lt;br /&gt;
==Scheduling==&lt;br /&gt;
During the Spring 2005 Season USYVL was still using hand crafted schedules.  &lt;br /&gt;
Pretty sure it was at one of the Ventura tournaments that I approached Randy about exploring digital generation of the schedules as PDFs.&lt;br /&gt;
It looks like I started exploring that more heavily during the Fall 2005 season as reflected in emails between Aaron and the site maintainer at the time, Bonnie.&lt;br /&gt;
&lt;br /&gt;
===Summary===&lt;br /&gt;
*Created in ~Fall 2005 to work with CMI and output a completely static html subsite of the main usyvl site at the time.&lt;br /&gt;
**Initially used pdflib, migrated to fpdf later&lt;br /&gt;
**Used the raw input text files, derived data using php in an ad hoc db style&lt;br /&gt;
*Modified in Fall 2008 to add support for Rainier&lt;br /&gt;
*Modified in 2009 to get input directly from workflow during the stint with Active&lt;br /&gt;
*Modified in 2009 (?) to get output into something joomla could work with (strip away outer html).&lt;br /&gt;
*Currently ~37,000 lines of code&lt;br /&gt;
**probably 20-25% of the total is semi duplicated code - similar functionality but input and/or output is in an alternate format.&lt;br /&gt;
**probably 40% of that remainder is kruft from the various input/import system changes over time&lt;br /&gt;
**probably about 30% of that remainder could be done away with a rewrite using a database&lt;br /&gt;
***instead of dealing directly with the 2 imported reports and then deriving various subsets of the data into secondary input files&lt;br /&gt;
**probably 50% of that remainder is support for having to, in essence, reverse engineer the database contents via the 2 reports&lt;br /&gt;
&lt;br /&gt;
The scheduling code has the most kruft and has the greatest need for a complete rewrite due to its history.&lt;br /&gt;
It started out as almost a proof of concept, with a very limited scope and then major stuff has been tacked on over the years.&lt;br /&gt;
It&amp;#039;s been a part time, incremental build over the course of ten years, with lots of external changes forcing kludgey code adaptation.&lt;br /&gt;
Some parts of the code are clever, but a lot of the logic is now widely distributed in the code.&lt;br /&gt;
&lt;br /&gt;
===Provides===&lt;br /&gt;
*Data consistency checks for Rainier&lt;br /&gt;
**Event consistency&lt;br /&gt;
***Rainier has no way to track scheduled events between programs (Intersite Tournaments)&lt;br /&gt;
****Scheduling code relies on event naming conventions to determining those match-ups&lt;br /&gt;
****So, if events have been updated since the workflow import, the data can easily be inconsistent&lt;br /&gt;
**Team information consistency&lt;br /&gt;
***Detect default team names that have not been updated&lt;br /&gt;
***Detect missing information (Division not set)&lt;br /&gt;
*Round Robin tournament schedule for each division&amp;#039;s Intrasite events&lt;br /&gt;
**Attempts merge of divisions with one team into another division&lt;br /&gt;
**produces PDFs&lt;br /&gt;
***multipage PDF with 1 sheet per day containing all the divisions&lt;br /&gt;
**produces sqlite db table for export to mobile site&lt;br /&gt;
*Division based Tournament Schedules for Intersite events&lt;br /&gt;
**Utilizes a pool layout DB - probably the best way forward&lt;br /&gt;
***USYVL personnel provide a tournament pool breakdown for a specific configuration, reused for other tournaments with the same configuration&lt;br /&gt;
*Instructional Summary - Daily entries associated with dates and with Intersite events reflected (as opposed to USYVL Redbook with is just Practice 1, Practice 2, Game day 1, etc...)&lt;br /&gt;
**PDF produced&lt;br /&gt;
**HTML produced&lt;br /&gt;
*Geocoding&lt;br /&gt;
**embedded google maps provided on each program page&lt;br /&gt;
**maps.google.com links provided for each program that has to travel on the Intersite Tournament page&lt;br /&gt;
*Provides filtering for when Intersite Tournament Schedules are actually opened for download&lt;br /&gt;
**To avoid different locations/users downloading early revisions of schedules that end up getting changed&lt;br /&gt;
*FTPs files (PDF, indexes, etc...) to live FTP site&lt;br /&gt;
&lt;br /&gt;
===How its Provided===&lt;br /&gt;
*Rainier database is reconstructed from 2 CSV reports (programs, events) exported from Rainier&lt;br /&gt;
*Instructional Summary&lt;br /&gt;
**Matches program event entries to db based version of the USYVL redbook&lt;br /&gt;
***Relies on Event Name conventions, so is a bit shakey&lt;br /&gt;
&lt;br /&gt;
==Mobile Site==&lt;br /&gt;
===Summary===&lt;br /&gt;
*Created in May 2013&lt;br /&gt;
*2800 lines of code&lt;br /&gt;
*Easily replaced if the db structure can provide the information&lt;br /&gt;
&lt;br /&gt;
===What it provides===&lt;br /&gt;
*Daily schedules on cell phones&lt;br /&gt;
*Can pull all matches for a given team for the entire season&lt;br /&gt;
*Instructional summaries on cell phones&lt;br /&gt;
*Tournament schedules on cell phones&lt;br /&gt;
*Limited location support&lt;br /&gt;
**Goal is to provide user with information based on location and date&lt;br /&gt;
*Scorekeeper app (not widely used, but a fun jquery app).&lt;br /&gt;
&lt;br /&gt;
===How its provided===&lt;br /&gt;
*Uses Mobile Web Framework (MWF)&lt;br /&gt;
*Uses a single sqlite3 database created during Scheduling processing&lt;br /&gt;
*Uses AJAX for some tasks&lt;br /&gt;
*Uses page templating&lt;/div&gt;</summary>
		<author><name>Aaron</name></author>
	</entry>
</feed>