Tuesday, February 03, 2009

Announcing Gobi

I’m going to be starting on a new application very soon.  It’s designed for/targeted at professional window tinters.  The goal is to make it easier for those folks to figure out how much window tint they will need in order to complete a given residential or commercial job.

Since I’m going to be learning some new things, I thought I’d take the opportunity to share my process for building this app.  This will be my first commercial, only for-sale application, and I’m pretty excited about it.

A good friend of mine is a professional tinter, and he mentioned that it was hard to get these estimates done, since there’s a fair bit of calculation involved in minimizing the number of rolls of tint you have to order.  Tint rolls are sold by different companies, with different properties, and in different widths.  One of the tint manufacturers produces a piece of software to help with this process, but the software only supports their brand of tint (duh, right?).

Since I’m a software dev and not a tint manufacturer, my plan is to support products from multiple manufacturers.

The basic design of the app will be a desktop application which does the calculation and layout.  I will provide a cutlist diagram, so the tinter can easily see which windows’ tint should be cut from each roll, and how to optimally lay those cuts out, to maximize tint usage and minimize the material needed.

The software will save these quotes/proposals locally, and let you come back to edit/revisit them later.  This will help tinters to create an estimate for a customer, then edit that estimate if the customer wants to make changes.  A new cutlist will be generated every time the size and/or number of windows in the job gets changed. 

The application will also have a webservice that i can contact in order to receive updates to the tint products database.  This way, I can easily keep all the copies up to date as I add support for more manufacturers and tint products.  The database will be stored locally as an XML dataset, since I expect it to be pretty small.  If the DB size grows larger than I expect it to, I’ll move to using SQL Express (or perhaps the embedded sql solution).  I’d prefer to avoid that, so I can avoid having that dependency in my code.  The less people have to download to get up and running, the better.

The UI will be done using WPF.  I’ve not done any WPF coding before, so this is a good chance for me to learn what’s up with WPF, and use it in a real application.  Turns out that working at MS, on a software service, tends to keep you behind on new desktop UI technologies.  I need to get caught back up on the cutting edge, so this project will help me do that.

I picked Gobi as a codename because thinking of window tint always makes me think of heat, and Sahara is pretty well taken by the movie :).

No comments: