Build a Windows application (using .NET 2.0, C# and Windows Forms) that will scan an iTunes library and automatically assign a 1-to-5 star rating (values 2 through 10 I believe) to each song. Unlike other auto-rate applications, this one should determine the rating based on a number of interesting factors, each one contributing to the overall score. Some factors should probably contribute more than others, so in the application's configuration dialog box, it should let the user assign a weight (0 to 100% importance) to each one. Here are the factors:
1) # of times a song has been listened to in comparison with other songs of the same particular album
2) Same as #1 but skipped, not listened
3) Number of times a song has been listened to in comparison with other songs in the entire library that were added during the same time period (plus or minus 1 month)
4) Same as #3 but skipped, not listened
5) # of times the song has been listened to and skipped without comparing it to other songs at all (the typical "auto-rate" formula other apps use)
6) The average rating of the artist (let's make use of those ratings we already made!)
7) The average rating of the album
There should be a "preferences" dialog box (set weights of the ratings techniques, other options).
Songs that are already rated should not have their ratings altered. User can optionally force everything to be rated.
Users should be able to pick which part of their iTunes library they wish to rate: The entire library, or a specific playlist.
The app. should directly open the iTunes XML file, not use the iTunes COM API to tell iTunes to change the ratings. This can be discussed though.
1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done.
2) No installer necessary, I'll do that. (A software installation package that will install the software in ready-to-run condition on the platform(s) specified in this bid request.)
3) All deliverables will be considered "work made for hire" under U.S. Copyright law. Buyer will receive exclusive and complete copyrights to all work purchased. (No GPL, GNU, 3rd party components, etc. unless all copyright ramifications are explained AND AGREED TO by the buyer on the site per the coder's Seller Legal Agreement).
4) Attention should be given to having a nice, clean, logically layed out UI. Example: during processing, show feedback (progress bar), errors should have easy to error text with an explanation of what the user should do, etc.
5) No splash screen necessary. Only a main window and a preferences dialog. Pay attention to typical Windows apps do's and don'ts: proper and consistent spacing of the UI elements (buttons, groups, listboxes / comboboxes, etc.), functioning Tab orders, window being resizable or not (if necessary), and the usual checks to make sure the user didn't run the program twice and having two instances open, etc.
Must work under XP and Vista.
Support the current iTunes version (7.x)
Write in C# and .NET 2.0, using Windows Forms, and the project should be in Visual Studio 2005.