portfolio /

Gulf Directory

hero-image

Objective

A business-directory company wanted to transition from physical books to computers. As a first step, they required a standalone desktop application with the following requirements,

Our solution

We built a cross-platform desktop application using Node-Webkit with an SQLite database. We chose Node-Webkit for two reasons,

  1. We could implement the solution using HTML, CSS and JavaScript (NodeJS) - a stack we use daily.
  2. We could use the same codebase for both windows and mac versions. Speed up development and reduce testing time.

The Process

We started with simple hand-drawn wireframes of the user interface. After finalising the user-interface, we grouped ourselves into two teams - front-end and back-end.

Front-end

The front-end team's responsibility was,

Back-end

The back-end team's responsibility was,

Challenges

We developed the application using two thousand test records provided by the client. We had to do load testing with less than ten thousand test records which were far less in comparison with the production data - close to a hundred and fifty thousand records.

Besides, the production data had many inconsistencies compared to the test data. Implementing a robust ETL script to handle such cases without breaking/corrupting the database was a challenge.

The major challenge came when we ran the application directly from CD/DVD instead of installing it on the hard disk. During tests, we found drives with slower throughput caused performance issues. App loading times and search results took longer than expected.

To tackle this, we cached the application on the user's hard disk. The application generated the cache on startup and cleared it upon exit. This tweak, however, caused the application loading time to increase (when run from CD/DVD) but decreased the search times to be well within limits.

Reception

We delivered the project on-time, on-budget fulfilling all the business objectives. The client was so happy that they hired us again to build the subsequent year's version.