Introducing eLibrary

For the past few months I’ve been working on a program which I’ve named eLibrary. Here are some details as to what it is and stuff.

The Purpose

My mom has a very big library of books at our house in Haiti. I’m talking about a whole lotta books. She doesn’t even know how many books she has that’s how many she has. Counting them would take a while too. Anyway, she needed a program to manage all of these books. That way she can keep track of all of her books. Now there are a lot of programs out there that can do this. But why buy one if you have a son that is a programmer.

Requirements

The program had to have a simple and clean interface, powerful and yet easy-to-use search function. It also needed some sort of database to store all of the books and their information.

Programming Language

Originally I started writing it in Visual Basic 6. That was back in Fall of 2004. Yeah, that’s almost 2 years ago. I used a Microsoft Access database to store the books. I also implemented a search function. You could add, edit, and delete a book. You could search for a book using different categories. It worked well enough and I let my mom use one of the early versions when I came to Haiti in December 2004. After that, I stopped working on it because I was having trouble creating an installer for it and I was having trouble getting it to work on a computer that didn’t have Visual Basic 6 installed. For some reason, the VB6 runtime environments didn’t work.

Then I wanted to write it in C++. I didn’t know a lot of C++ but it was an opportunity for me to learn it. I needed a windowing library that was easy to use. I didn’t like wxWidgets too much. So I wanted to write my own windowing library. This is where I started writing my own C++ windowing classes. I got it to the point where you could easily create a window, add buttons, labels and text fields. It had all of the basic methods like getText(), setText(), etc… But I soon abandonned the project. I did get a good deal of C++ knowledge out of it, especially when it comes to OOP in C++.

For a while, I contemplated writing it in XUL on top of XULRunner. But I’m not good enough in JavaScript, plus XULRunner is pretty new. So I scrapped that idea.

So at the beginning of this year, I decided to rewrite the entire program from scratch in Java. I settled on Java because I have a more experience writing programs in Java than any other programming language. I set off to writing it in Java using the NetBeans IDE. NetBeans made it easy for me to create the GUI, something that usually takes a lot of time in Java, especially when it comes to layouts, ugh. Well, after about 3 months of on and off labor, I have written an app that is on the same level as the Visual Basic version I had, if not better.

Implementation

I dumped the Microsoft Access database in favor of a CSV file. The advantage to this is that it’s more universal in my opinion and a user can edit the CSV file using a modern spreadsheet application.

In the past year, I switched from using Windows Media Player to using iTunes. I love the iTunes instant search, aka incremental find, function. Nowadays more and more application are using incremental find instead of the classic type-in-a-word-and-click-search search which can get annoying. So I decided to implement this for eLibrary.

Besides that, I can’t think of anything else to say. I have a lot of other features planned for this, like autocomplete of fields by downloading the information from Amazon.com and having the thumbnail of each book.

Screenshots

elibrary-main.jpg elibrary-edit.jpg elibrary-search.jpg elibrary-about.jpg

Distribution

I decided to go with Nullsoft Scriptable Install System for the installer. It was easy to learn and the syntax reminded me of x86 assembly language. All the Java bytecode is inside of several Jar files, so upgrading the application won’t involve replacing a bunch of files. Furthermore, there is an executable file written in C++ that launches the Java Runtime Environment using the Win32 CreateProcess() function. It’s pretty neat but I still have a bug that I need to work out for that.

User Interfaces Evolution

First GUI

elibrary-old-main.jpg

Second GUI

elibrary-old-main-1.jpg

Final Thoughts

If anyone wants me to post the installer, just ask me. Concerning the source code, I don’t know yet under which license I should post it, but I’m leaning towards the GPL. We’ll see…

6 Responses to “Introducing eLibrary”

  1. Hades
    May 3rd, 2006 | 11:31 am

    Hey,
    Thats pretty good.
    So you wrote it completly in Java? I still haven’t tried to write a program in Java, but I was planing to work on that this summer. I’m a C++ specialist :), still a bit confused with Microsoft MFC classes but I think the language is kind of easy to understand… Do you think Java is better? Which one do you prefer?

    Actually, do you know a website where I could find a good tutorial? I’ve tried some and I though they weren’t very detailed.

    Also, if you could post the installer so I could try it, it’d be nice ;)
    See ya marv
    – Hades –

  2. May 4th, 2006 | 9:25 am

    Yeah, it’s all in Java. Personally, I think Java is good to build programs fast and I’m faster with it since I don’t have to worry about dealing with pointers.

    I prefer Java for now. But I don’t like to have language preferences. It was just a good tool for the job and I knew I would be quick with it.

    What I hate about Java is that it’s slow compared to C++. But that’s to be expected when you’re running something off of a virtual machine.

    As for tutorials, I don’t know any good ones for Java. I learned Java from books and from my classes here at school. I’ll try posting the installer some time next week, I’m in the process of moving and buying a car, so I’m all over the place.

  3. June 7th, 2007 | 9:35 am

    Hi Marv,
    Your E-library software is very interesting. My book-shelf is full of books with many categories and I’m going to classify them by using your tool. I am looking forward to your installer.
    Thank you.

    - Linh Tran -

  4. October 2nd, 2007 | 8:59 am

    pls what is the purpose of elibrary in the society

  5. July 15th, 2014 | 11:25 pm

    Finally i quit my day job, now i earn decent money online you should try too, just search
    in google – bluehand roulette system

  6. January 4th, 2015 | 11:02 pm

    Yesterday i spent 300 dollars for platinium roulette system , i hope that i will earn my first $$$ online

Leave a reply