0002: Behold: the revelation of OLGAtherer ;)
Today I’d like to share my concepts regarding OlGatherer with you. I will explain planned architecture of this application, tolls that we will try to use, target systems that application will be aimed to, etc.
1) As I said previously, we want OlGatherer to be an application that will help users with managing their collections. First supported kind of collection will be Book set. Main functionality consists of, of course, basic operations like adding books to the set, removing them, changing book’s data/properties, listing books, get books that meets specific conditions, like e.g. genre, author and so on. In the future I would like to implement borrowing actions (if user borrows lends a book, he/she will be able to note this in the program, together with borrower data – name, phone, address), statistical features (charts that will depict some information about the collection, I don’t know now what information exactly), and other that, I hope, get from your feedback.
2) Program will be coded in Visual Studio 2010 Express. I choose SQLite as the database. This is because I want the application be as “agile” as possible, so I don’t want user to install some powerful servers like Microsoft SQL Server only for purposes of our small application. SQLite seems to be reasonable choice, because all it needs to run is database file and simple driver. I will describe DB structure later. I think I pick SVN to control source code. Rest of the tools that will be used in the future is unknow at the moment.
3) I still think about database structure. Do it on the “transactional” (data splited to separate tables such as “books”, “authors”, “genres”, “translators”, “illustrators”, “borrowers”, and so on), or maybe on “data warehouse” (data in one “books” table) way. I must admit that first option is more tempting, but second one seems to have some advantages too. However, first question is – what fields should describe one book? Today I can see only*:
“Title, Subtitle, Author, Binding, Purchase Date, Purchase Price, Publisher, Edition, Copyright Year, Publication Year, ISBN#, LCCN#, Pages, Language, Genre, Keywords, Series, Series Number, Condition, Signed, Read, Gift, Loaned, Rating, Front Cover, and Comments”
4) Graphical user interface: I’m not sure about this. Obvoius choice is Windows Forms technology. I don’t know WPF/Silverlight now, but maybe this is right time to get familiar with them?
5) Last but not least – you probably figured it out earlier – program will be made using C# language, framework version 3.5. Why not 4? I don’t know, probably because we won’t use additional features that this version consists of, and I think that many people doesn’t have 4.0 on their machines. 2.0 doesn’t have Linq, and that technology I’m planning to use so 3.5, as the middle version, seems to be right choice.
This is it for now. I hope that next post will introduce implementation plans.
Best regards, Paweł
PS. I’m writing project name inconsistently – OlGatherer/OLGAtherer. I haven’t decided which form is correct yet 🙂
* while writing this post I’ve noticed that great program for managing collections already exists! It’s Tellico, application for KDE environment:
(Un)fortunately, there is no version for Windows 🙂 I think that Tellico is the target that we should aim at. Regarding this, I decided to copy book data fields from this application. They’ve been done very nice, so why not to borrow this idea 🙂 We must remember that main purpose of this application is to learn programming language and techniques.