About This Project
This project started as a result of my desire to accomplish several things at one time. I had worked for several employers that were quite dis-organized and did not use a bug tracker, user complaint, or job request system. I had never used SqLite3 or SQL PDO and had attempted several times to have projects approved using these tools. Finally, I became unemployed and wanted to brush up on some technical areas. This project was born in the summer of 2010 out of these issues.
The very latest information and updates for this project are located at [BugLite.SourceForge.net]. I can be contacted through the [SourceForge e-mail] project page. Copyright 2010-2011 by Jan Zumwalt, www.neatinfo.com, all rights reserved.
This software is free and open to the public. You may use, copy, modify, distribute, and sell this program (and any variants) without restriction, so long as you do not restrict others from doing the same.
BugLite was designed to satisfy 95% of the needs of small project users up to a medium sized organization, division or department. It is best suited for applications where less than 50-100 users would daily access the database. Some features are not incorporated for the sake of simplicity. For example there is no automatic e-mail notification. It would be easy to incorporate, but the extra database and administration menus would thwart the simple lean and mean design goal.
BugLite and SqLite3 where not designed for applications that demand heavy simultaneous multiuser work loads. No bullet proof file locking or data collision control is used. SqLite3 does incorporate modest record collision control, but speed is given precedence over robustness. That being said, extensive testing of BugLite in a multi-user environment has been unable to have data collision corruption. It is possible that several hundred daily users my over task the collision control safety measures, just not very likely.
• BugLite uses SqLite3 which does not require an Apache/MySql installation.
• SqLite3 support is built into PHP.
• Uses PDO which is a native driver to PHP and does not require an installation.
• Simple menu system allows access to all user settings through intuitive interface.
• Expanded error warnings describe in simple terms what has happened.
• Code has generous comments to assist customizing.
• Compatible with most, if not all major browsers.
• Commercial look and feel that does not compromise usability.
• Dark color scheme eases eye strain.
• Formatted to fit small legacy screen resolutions.
BugLite performance is primarily a function of the SqLite3 database engine. By far, the most popular industrial strength database engine is MySql. In speed comparison tests between SqLite3 and MySql, both ran at nearly identical speed - except for new record insertions.
SqLite3 takes about 4 times longer than MySql to create a new record. MySql is able to create about 50 new records per second on a avergae 3ghz computer, compared to SqLite3's 10 records per second - who cares? (That's about the speed it takes to blink an eye.) Most of the hidden database operations going on behind the scene is query searching. SqLite3 compares very nicely to all the other databases, even extremely optimized engines.
The other speed bottle neck is Internet or Lan network latency issues. Since this equally hinders all database communication it is not an issue here. If page refreshes are taking longer than a few seconds, the problem is probably a slow network and not the program.
Here is a list of possible improvments in future versions.
• Improved reports with graphs and charts.
• Replace text menu links with graphic buttons.
• Context sensitive help and mouse hints.
• Multiple databases (projects) based on user login or choice.
The very latest information and updates for this project are located at [BugLite.SourceForge.net].
What is SqLite3
SqLite3 is an Open Source project developed by volunteers at [SqLite3.org]. The volunteers that maintain SqLite3 wanted a small lightweight feature rich database that would compare to MySql. SqLite3 takes less than 1mb of disk storage space compared to 80 to 100mb for MySql. To keep SqLite3 lean and mean the developers chose to forfeit complicated multitasking and multiuser criteria that loaded down MySql. This is not a problem, it is a feature.
SqLite3.org describes SqLite3 is a software library that implements a self-contained, serverless, zero-configuration, transactional SQL database engine. SqLite3 is the most widely deployed SQL database engine in the world. The source code for SqLite3 is in the public domain.
At some point, some of the original ways of doing things in earlier versions of SqLite3 became such a problem that the developers decided to create an entirely new command and database structure between version 2 & 3. As part of the new Ver 3 support, PDO became supported.
What is PDO
PDO is a PHP extension to PHP's database connection commands that provides a uniform interface. This allows developers to create code which is portable across many database engines and platforms. Simply explained, PDO lets you use the same commands in PHP for different database engines. This makes programming a whole lot easier!
PDO is already a part of PHP. The PDO drivers for PHP are supposed to be shipped with all copies of PHP. In most cases no setup is needed to start using a PDO - PHP - SqLite3 application. In rare cases, a PHP configuration file will need to be told that PDO can be used. This will be covered in the next section.