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,
We built a cross-platform desktop application using Node-Webkit with an SQLite database. We chose Node-Webkit for two reasons,
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.
The front-end team's responsibility was,
The back-end team's responsibility was,
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.
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.