Hello world!

Welcome to WordPress.com. This is your first post. Edit or delete it and start blogging!

Posted in Uncategorized | 1 Comment

Football Pool Pet Project – Report #4

So work and health have snagged this project somewhat.  I won’t bother with details, but my lofty goal of finishing in time for the season opener in a couple weeks is in jeopardy.  I started writing some code for the first time in a week today, adding a breadcrumb navigation, and some CSS.  Light stuff that my brain can handle.

I’m going to populate the rest of the weeks’ games for the current season to make it easy on my guinea pig manager, that should save me a little training time.  The two major remaining items I need to crank out are:

  • Calculating and displaying cumulative results.  Maybe some simple graphing if possible.
  • Email notifications

Updated screenshot of the manager page:

More (hopefully) later!

Posted in Pet Projects | Leave a comment

Football Pool Pet Project – Report #3

So I wrestled some with some display-type stuff that ended up just spinning my wheels.  Stick to functionality first, I should be telling myself!  Make it “pretty” later.

But all in all, I’m still making progress.  Regular-day-job stuff is slowing my work, but I’m still able to carve out little pockets of time here and there in the evenings.

I’ve now figured out (probably) the best XML structure to allow concurrent access to data.  Each “season” gets its own XML file, and each player gets his/her own “picks” file to track their picks.

The most notable progress I’ve made:

  • The league manager can now enter results (winning teams, plus total score for the tiebreaker game) for any given week
    • The site provides warning messages if the deadline to make picks hasn’t hit yet
  • Each player can make their picks.  They can actually make picks for any week whose deadline hasn’t lapsed.  This can be useful if someone knows they’re going to be out of town for a certain week, they can make their picks weeks in advance.
  • After the manager enters results for a given week, standings for the week are automatically calculated and displayed on the “Standings” page.  It handles calculation of tiebreakers as well.

So I think I might see a faint light at the end of the tunnel!  I mainly need to implement email notifications (“you need to make your picks!”, “Here are the results for the week!”, etc.), cumulative standings, and I’m sure I’ll need to take another look at the site’s navigation to see if it can be simplified.

Posted in Pet Projects | Leave a comment

Football Pool Pet Project – Report #2

Things are cranking right along.  I found a couple items along the way which I could use to save me some time on the more menial tasks, such as authentication and design.

First, I pulled a free theme from Free CSS Templates which puts a clean look to the site.  Then I grabbed the ASP.NET XML Provider from CodePlex to handle my authentication.  These both saved me a lot of time and allowed me to get right to the meat of my project.

Here’s where I’m at so far:

I’ve got the following namespace hirearchy:

  • FootballPool.Core
  • FootballPool.Core.Picks
  • FootballPool.Core.Standings
  • FootballPool.Core.Results

I’ve been able to leverage ASP.NET 3.5’s built-in AJAX support, as well as the Ajax Control Toolkit.

Here’s a quick screenshot of one of the pages (the manager’s page for entering game results):

As you can see, it’s nothing overly complex, but it seems to be working just fine (so far!).  I’m going to need to make some aesthetic improvements at some point, such as extra styling and some control beautification.

Like the application’s title, “Pigskin Puddle”?  It’s like a little “football pool”, get it?  Well, I like it anyway.

Posted in Pet Projects | Leave a comment

Football Pool Pet Project – Report #1

Aside from a couple buddies who asked me to build them some not-so-hardcore websites, I’ve never been paid to write code.  That said, I really want to get better than my current skill set which is best categorized as “good enough to get myself into trouble.”

I learned VB and C++ in college, but stuck more with VB.  However, while I’ve been able to read C#, I’ve never really given myself reason to learn how to write it.

This spring I took on a challenge of trying to create a landing page/portal for my region’s team which, among other things, attempts to aggregate multiple event calendars (RSS feeds) into one.  As I wrote that in C#, I very quickly began to appreciate its elegance and power.

A powerful capability of .NET 3.5 is LINQ (Language Integrated Query), and more specifically LINQ to XML.  I’ve always been intrigued by the flexibility of XML, but aside from using it for storing configuration options (web.config, settings.xml, etc.), I’ve never really investigated XML very deeply.

I want to get deeper.  While I still never expect to ever be paid to write code, I want to learn (besides, the circles of people I work with are way, way more educated in code development than me, and it’d be nice to better speak their language).  My job at Microsoft is about the tools & software used to write code, not necessarily the code itself.  But as the tools and .NET framework advance, they become more closely coupled. 

Enter my pet project:  A web-based football pool application.  I know there are several out there, but given that I participate in at least one football pool each season, and managing them via Excel or Word can be cumbersome, I thought this would be a good project to tackle.

I gave myself the following high-level requirements:

  • The site shall be build using ASP.NET 3.5 (C#)
  • The site shall use XML for all data storage (no dependency on a database), making it very, very portable
  • The site shall use as little code in “App_Code” as possible, but rather encapsulate the Football Pool engine logic in a class library
  • The site shall manage three (3) roles, and provide the following capabilities to each:
    • Administrators
      • Create leagues & seasons
      • Create & manage user accounts
      • Create & manage NFL teams
    • Managers
      • Create & manage seasons for their league
        • Create & manage weeks for a season
          • Add games & set deadlines for a given week
        • Enter results for any given week
      • Automatically send email alerts to players in the league
      • Invite players to join their league
    • Players
      • Join a league to which they’ve been invited (via email & embedded link in that email)
      • Submit picks for a given week
      • View standings for a given week
      • View standings for a given season
      • View their success rate trend (how many picks are they getting right vs. wrong, etc.)
  • All users shall be able to update their profile (name, email, timezone)

So that’s it, stay tuned!  This obviously falls outside my normal job description, so I’ll be working on this when time allows.  I’m hoping that I can bite this off in time for the start of the 2009 season.  I even have an old friend from high school who’s willing to be my guinea pig.

Posted in Pet Projects | 2 Comments