jPersonnel v0.4 --------------- Claudio M. Camacho Table of contents ----------------- 1. Introduction 2. Motivation 3. Design and Implementation 4. Installation and Configuration 5. User Functionality 6. Troubleshooting 7. License 1. Introduction --------------- jPersonnel stands for 'Java Personnel', which is a small program developed in Java (using AWT and Swing user interface components) for personnel contact's information management. However, as opposite as it happens with other address books, jPersonnel is more oriented to manage personal and professional information for people working in companies, which is suitable for human resource management departments. This software is totally free (under the terms of the GPLv2) and it is one of the projects I have developed for my studies in Software Engineering. 2. Motivation ------------- As mentioned above, the main motivation for writing this project was that it was a mandatory final assignment for my studies. Moreover, I wanted to start playing around with Java and do my first object-oriented program. From the usability point of view, this program might be not very necessary, but it is a good example of a simple graphical interface developed in Java, which perfectly works in every platform thanks to the portable virtual machine which runs across platforms. 3. Design and Implementation ---------------------------- jPersonnel was designed to be simple and provide a very well definted functionality. The program offers three different views to the end-user: 1) Full list of contacts (on the most left) 2) Relevant information about the current contact (middle panel) 3) Picture and navigation buttons (on the most right part) jPersonnel has been written in Java, and it is compilable with, at least, Java Compiler version 1.5. Initially, it was written using some innovations present in version 6, but finally, for usability reasons, it was downgraded to 1.5. Note that the functionality was not affected, but the number of lines increased slightly. The internal design is based on a layered model, where each class lays on the top of another class, using lower-level functionalities. Consider the following diagram: ------------------ | | | jPersonnel | | | ------------------ | ------------------ | | | GUI | | | ------------------ | ------------------ | | | Manager |------- Storage | | ------------------ | ------------------ | | | Person | | | ------------------ Basically, the class 'Manager' is the one which is in charge of the most important lower-level competencies, whereas the class 'GUI' is the one in charge of interfacing the user and issuing the class 'Manager' for internal management. The class 'jPersonnel' is the uppermost layer, which basically contains the 'main' function and initializes the user interface. The class 'Person' provides the description of a person object and the very basics for manipulating contact information at a very low level. According to this representation, a jPersonnel class must initialize a GUI, which must initialize a Manager class for creating an addressbook structure in memory. When a new person has to be added or modified, then Manager takes benefit from the functionality provided by the lower-level class Person. Finally, it is to be remarkable that the class 'Manager' is the one in charge of permanently storing the addressbook into the harddisk, as well as it is in charge of restoring such structure from the harddisk into memory. This is achieved by the already existing 'serialization' feature of Java. 4. Installation and Configuration --------------------------------- jPersonnel, as a Java application, is runnable itself and it does not need any type of installation in order to work. In order to run jPersonnel, the user must go into the directory containing the jPersonnel.java and simply issue the command: 'java jPersonnel'. For GNU/Linux users, jPersonnel is also distributed in Debian Package format, which will install the contents of the directory into standardized paths in the operating system. Furthermore, the Debian package will create a runnable item named 'jpersonnel' that will be included in the PATH. jPersonnel does not provide any way of configuration and it is directly runnable. No options nor user preferences are provided for now. 5. User Functionality --------------------- jPersonnel provides personal information management and it basically offers contact creation, modification and deletion. Moreover, it offers the possibility of storing a list of contacts as a small database with the extension .jpd. An extended feature, included in version 0.4, is the possibility of alphabetically sorting contacts (only by name), which enriches the experience of using contacts management programs. Contacts search is achieved from the menu Edit and Find... In this case, you will be prompted for entering any keyword or number and press 'Go'. jPersonnel will look in the whole contact list and select the first occurrence which satisfies the search criteria. Moreover, in order to find more occurrences, the menu Edit, Find next will have to be used. Note that the search is quite simple and based on first names and family names only. 6. Troubleshooting ------------------ Here I write down a list of common problems and the solutions: 1) I cannot open contact files or it doesn't load any contacts. This is due to the different versions of the contacts file. Before jPersonnel 1.0, the version of this file changes with every release, so JPD files saved with v0.3 cannot be opened with jPersonnel v0.4. 7. License ---------- This is free software. You may redistribute copies of it under the terms of the GNU General Public License The author of this software is Claudio M. Camacho , and his name has to be included in any reproduction of any kind of this software. Furthermore, commercial reproductions of this software cannot be used to generate incomes. There is NO WARRANTY, to the extent permitted by law. For more information, please read LICENSE. -- Claudio M. Camacho February 2008