My journey to create Java Loghours was a long and tedious one. My vision was to produce a applet driven system to log work hours into a Microsoft Access database. A web server would serve as the connection agent and the Java JDBC-ODBC bridge would handle the transactions. I ran into many obstacles in the course of my journey, including learning the Java language and the advance features of Java. Design and implementation were also factors that made me change the course of this journey. But my changes did not effect my main goal which was to design a program that would efficiently log work hours to a Microsoft Access database so that the results could be used for payroll purposes.
My plan was to create a product for use in the workplace to log hours and print reports that could be used in personnel, payroll, business offices, etc. It had to be quick and efficient to make it a convenience and not a hassle. My original vision was to make this accessible by a group of persons by incorporating this into an Intranet based office setting. The front end would be a Java applet, and the JDBC-ODBC Bridge would pass and receive the proper SQL and data to the database. By using security keys and authenticated pages, I expected to be able to accomplish this in a timely manner. But I found that the only way to make it truly network ready would be to build it as a multi-tiered web application.
I did not feel that a program of so small a magnitude needed to be made multi-tiered, nor did I have the time or resources. I created a program that will allow users to log work hours into a Microsoft Access database. The program uses a series of windows to obtain and validate numerous values. Users are assigned a username and password. Then users can enter the amount of time worked- up to 12 hours and 59 minutes per day. These values can be changed to the users demand. The JDBC-ODBC Bridge passes and receives data and SQL to the database. The front-end hides the critical information from the users, while the JDBC-ODBC Bridge is actively passing and receiving data.
It is written to run on one machine. If properly done, the procedure for entering ones time will be around 15 seconds. If the program was written to do more, such as allow you to change your address or phone number, then it may be justifiable to build it as multi-tiered. By not making it multi-tiered, the program uses less system resources and executes faster. This would allow it to be installed on a broader base platform. Because I had no users for this program, the database details are kept at a minimum. There are a few choice reports and queries but the user would want to customize these and build new one to fit their organization. The database is basically a template for integrating into an existing system. Tables for information as well as new queries and reports can be added with little threat of changing the operation of Java Loghours. Tables for information such as Federal and State exemptions, insurance, etc could be constructed quickly and linked to existing employees. This freedom allows Java Loghours to be very versatile and scaleable for small offices that may be using a PC based payroll system.