32
Fixed Assets Management System Abstract The present project report paper introduces java Desktop Application called “Fixed Assets Manager” that I have developed for Accounting Department of an organization. This work represents a design and development process of the system using Java Programming Language with NetBeans Platform. The main objective is to design a computerized system for the Accounting Department with the purpose of speeding up the process which might be very slow in paper based system. The system provides general functions that are performed during Accounting activities, such as storing and retrieving information about fixed assets along with updating editing and other activities related to managing assets in an organization.

Fixed Assets Management System

Embed Size (px)

DESCRIPTION

Project Report on Fixed Assets Management System.

Citation preview

Page 1: Fixed Assets Management System

Fixed Assets Management System

Abstract

The present project report paper introduces java Desktop Application called “Fixed Assets

Manager” that I have developed for Accounting Department of an organization. This work

represents a design and development process of the system using Java Programming

Language with NetBeans Platform. The main objective is to design a computerized system for

the Accounting Department with the purpose of speeding up the process which might be very

slow in paper based system. The system provides general functions that are performed during

Accounting activities, such as storing and retrieving information about fixed assets along with

updating editing and other activities related to managing assets in an organization.

Page 2: Fixed Assets Management System

TABLE OF CONTENTS

1.0 Statement of work……………………………………………………… …………..…51.1 Proposed System………………… ………………………………………………… 51.2 Scope of the System……………… ……………………………………………... 5

2.0 Components Table……………………………………………………………………….6

3.0 System Analysis……...…………………..……………………………………………….73.1 Task Analysis……...…………………………………………………………………73.2 System Description ….…………………………………………………...………….8

4.0 Design Rationale………………………………………………………………………….8

5.0 Usability Evaluation ……………………………………...……………………………10

6.0 Appendix……………………………….…………………………………………..……116.1 Screenshots….……………………………..………………………………….……116.2 Setup Guide………….………………………………..……………….……….…..146.3 Annotated Source…………………………………………………………………..15

7.0 References……………………………………………………………………………….28

\

Page 2

Page 3: Fixed Assets Management System

1.0 Statement of Work

1.1 Proposed System

In today`s business world, almost all kinds of business organizations rely on computerized

systems to perform their operational, decision-making, and other management related activities.

This paper introduces Java Desktop Application called “Fixed Assets Manager”(FAM) that can

be one possible solution to business organization`s accounting department, in terms of making

fixed assets management process quick, easy and reliable.

This paper consists of demonstration of all the phases of the development lifecycle of my project,

in particular, System investigation section focuses on discussion on possible problems of the

paper-based system along with opportunities of the organization with consideration of business

objectives and I will talk about the benefits that can be achieved by computerizing accounting

process. The next section which comes with name System Analysis includes studies of paper-

based system and its work process as well as strengths and opportunities for the intended system.

In System Design section I will be discussing how I designed the application including design

specifications and procedures that are performed while using the program. Next sections point up

operational instructions and assistance for users, and boundaries along with foremost code

listing. My report will end with the final phase where I will sum up and give some

recommendations for further development of the system.

1.2 Scope of the System

The scope of the proposed application is stated below:

Supporting fixed assets management process

Maintenance of fixed assets information

Adding, editing, removing assets categories

Creating, removing and updating fixed assets

Storing, processing and retrieving information about fixed assets of an organization

Page 3

Page 4: Fixed Assets Management System

Displaying assets by different methods, such as by category, condition, useful lifetime

and its current usage.

The application software will work for the organization`s accounting department and all the

activities such as editing, updating, storing, deleting data will be done by users, who are mostly

accountants and managers and other users can use the system to obtain information, which

means the program can generate reports for managers about fixed assets of their organization.

2.0 Components Table

Data Item Data

Type

Entry

Method

Format/

Length

Default Tool Tip Short

cut

Category Id character textfield 15 Generated

id

- -

Category

Name

character textfield 25 - Enter category Name -

Category

description

character textfield 200 - Give Description -

Category

Name Search

Character textfield 100 - Enter category name

to search

-

Asset Name character textfield 25 - Enter asset Name -

Date acquired character date - - Choose date from

calendar

-

Category

description

character textarea 300 - Give asset description -

Useful

Lifetime

integer spinner * 5 Enter Useful lifetime

of asset

-

Cost character textfield 25 - Cost of asset -

Category character Combo box - Select

Category

- -

Employee character textfield 25 - Employee records it -

Page 4

Page 5: Fixed Assets Management System

Condition character Combo box - Select

Condition

- -

Location character textfield 25 - Location of asset -

Currently used character Radio button - - -

3.0 System Analysis

System analysis problem analyzing process which also requirements capturing for substituting

system. In this section I introduced overall system description and following that, I analyzed user

and task analysis which play very important role in software development.

3.1 Task Analysis

Task Analysis demonstrates tasks that are performed by the users. The following diagram

illustrates tasks that are performed while using FAM in Hierarchical Task Analysis approach

which is one of the most important methods of task analysis:

Page 5

Edit categories

Search a category

Run application

Add new category

Enter category

name

Enter category descript.

Save category

Open Assets Management

Select approach to

display

Enter new information

Apply sortingEnter category

nameSearch

category

Open Category Management

Display all categories

Delete category

Clear Form

Add new asset

Edit fixed assets

Delete fixed assets

Fill Form Save AssetSave category

Page 6: Fixed Assets Management System

3.2 System Description

The main goal of FAM is to speed up fixed assets management process and help accounting

managers to do their daily activities efficiently and easily and benefit the organization by

reducing costs. These objectives are achieved by developing a desktop application with

Graphical User Interface which visualizes objects in graphically meaningful representation

which makes it easy to remember and learn. More essentially, it provides functions that are

required by the accounting department. Particularly using FAM users can easily record fixed

asset information and display assets and categories with different conditions and edit information

or delete.

4.0 Design Rationale

The diagram above which shows Task Analysis can be used as paper prototype to show users at

the initial stage of the system design with the purpose of making it clear for them how it works

and what can be done with it. This process is quite essential, because user participation in

software development life cycle is one of the most important aspects of user centered design. It

enables early usability analysis and user feedback might lead to some changes from beginning

phases of the development process. Overall, the initial blueprint is designed and given to the user

for evaluation and this is mainly for user to know what the system will do.

When we run the application, the home page will appear containing three buttons at the bottom of the window:

Page 6

Page 7: Fixed Assets Management System

Every button directs to the related page when clicked, except Exit button. When user clicks Exit button program stops and window closes. I used standard buttons with standard colors and text. Because it is intended to be used by accounting managers, it is not needed to make it colorful with pictures and so on.

Assets category management page contains components as can be seen from snapshot below:

Here I used picture which represents folder or specifically category as is related to content of the page and title of the page is blue which suits to the picture. Other components have standard colors and sizes, namely white background for fields where users enter records and gray for overall background which is generally used for different forms. As for layout, I split it into two, one is for searching and another is for displaying assets and updating its information. This layout is clear for users to see what part is used for specific purpose.

Page 7

Page 8: Fixed Assets Management System

In addition, I used message windows in case user makes some mistake while entering data, or performing all other components. For example, the picture below shows one of such message window which will appear when user attempts to delete record from database:

5.0 Usability Evaluation

Evaluation is one of the most important stages of software development life cycle, because it

allows designer to find out weaknesses and errors of the system before actually releasing it. I

chose observation method for evaluation, because it shows actual activities of user while

Page 8

Page 9: Fixed Assets Management System

performing program tasks. This means I can observe user and get note of how he\she using

application efficiently and how easy the application to learn for him\her.

While evaluating the program I gave my project to a accounting department manager of one

business company called Akfa Lighting, and observed how the user is performing tasks, what

parts may be difficult to learn, and so on. After this evaluation I got initial feedback and applied

it to my project. In testing I mainly focused on efficiency, effectiveness, learnability of the

system as well as user satisfaction. These aspects are evaluated in terms of speed, errors made,

user performance and satisfaction as illustrated in table below:

1st time 2nd time 3rd time

Expected Given Expected Given Expected Given

Speed Slow Quick enough

Fast Faster Fast Very fast

Errors Many Less Very few Almost no None None

Performance Good Good Very good Very good Very good Excellent

User satisfaction

70% 85% 80% 90% 90% 95%

As is clear from the evaluation statistics, user performance and usability of the system are

improved each time after modifications are implemented. And the user performed tasks better

than expected which means the application does not require much training and can be easily

learned and used.

6.0 Appendix

6.1 Screenshots

Page 9

Page 10: Fixed Assets Management System

Page 10

Page 11: Fixed Assets Management System

Page 11

Page 12: Fixed Assets Management System

Page 12

Page 13: Fixed Assets Management System

6.2 Setup Guide

The application is located in folder called MyProject. As mentioned above it requires java

runtime environment to be executed and Netbeans Platform to start database server. The

user must follow these guidelines to execute application:

1. Open netbeans.exe program from Program files

2. Go to Services section at top-left corner

3. Select Java DB properties by right-click

4. Show path to database location. It is JavaDB folder from main folder of the project

5. Right-click Java DB and start server

6. Right click assets_db and connect

7. Run MyProject.jar by going to dist folder of the project.

Page 13

Page 14: Fixed Assets Management System

6.3 Annotated source code

private void exitMenuItemActionPerformed(java.awt.event.ActionEvent evt) {

System.exit(0);

}

private void btn_catActionPerformed(java.awt.event.ActionEvent evt) {

internalFrame.setVisible(true);

txtf_search_cat.setText("");

}

private void clear_category(){

txtf_catID.setText("");

txtf_catName.setText("");

txtf_catDesc.setText("");

txtf_catID.setEnabled(false);

txtf_catName.setEnabled(false);

txtf_catDesc.setEnabled(false);

catTable.clearSelection();

}

private void btn_clearActionPerformed(java.awt.event.ActionEvent evt) {

clear_category();

}

private int getLargestId(String query) throws SQLException {

int result=0;

Page 14

Page 15: Fixed Assets Management System

Connection con = DriverManager.getConnection("jdbc:derby://localhost:1527/assets_db",

"jamol", "jamol");

Statement st = null;

try {

st = con.createStatement();

ResultSet rsmax = st.executeQuery(query);

while (rsmax.next()){

if(rsmax.getInt(1)==0){

result = 100;

} else{

result = rsmax.getInt(1);

}

}

} catch (SQLException e ) {

JOptionPane.showMessageDialog(null, "SQL Syntax Error");

} finally {

if (st != null) { st.close(); }

}

return result;

}

private void btn_newActionPerformed(java.awt.event.ActionEvent evt) {

int newId;

Page 15

Page 16: Fixed Assets Management System

txtf_catID.setEnabled(true);

txtf_catName.setEnabled(true);

txtf_catDesc.setEnabled(true);

txtf_catName.requestFocusInWindow();

try{

newId = getLargestId("SELECT MAX(CATID) FROM APP.ASSETCATEGORY")+1;

txtf_catID.setText(""+newId);

} catch (SQLException e ) {

JOptionPane.showMessageDialog(null, "SQL Syntax Error");

}

}

private void getCatToCbox() throws SQLException {

cbox_cat.removeAllItems();

Connection con = DriverManager.getConnection("jdbc:derby://localhost:1527/assets_db",

"jamol", "jamol");

Statement st = null;

st = con.createStatement();

String query = "select * from APP.ASSETCATEGORY";

ResultSet rs = st.executeQuery(query);

cbox_cat.addItem("Select Category");

while (rs.next()){

Page 16

Page 17: Fixed Assets Management System

String catName = rs.getString("CATNAME");

cbox_cat.addItem(catName);

}

cbox_cat.addItem("New Category");

if (st != null) { st.close(); }

}

private void getCatsToCbox() throws SQLException {

cbox_cats.removeAllItems();

Connection con = DriverManager.getConnection("jdbc:derby://localhost:1527/assets_db",

"jamol", "jamol");

Statement st = null;

st = con.createStatement();

String query = "select * from APP.ASSETCATEGORY";

ResultSet rs = st.executeQuery(query);

cbox_cats.addItem("All Categories");

while (rs.next()){

String catName = rs.getString("CATNAME");

cbox_cats.addItem(catName);

}

if (st != null) { st.close(); }

}

private void getLifetimesToCbox() throws SQLException {

cbox_lifetimes.removeAllItems();

Page 17

Page 18: Fixed Assets Management System

Connection con = DriverManager.getConnection("jdbc:derby://localhost:1527/assets_db",

"jamol", "jamol");

Statement st = null;

st = con.createStatement();

String query = "select * from APP.FIXEDASSETS";

ResultSet rs = st.executeQuery(query);

String lifecheck = "All";

cbox_lifetimes.addItem(lifecheck);

while (rs.next()){

String lifetime = rs.getString("LIFETIME");

if(lifetime.equals(lifecheck)){

}else {

cbox_lifetimes.addItem(lifetime);

lifecheck=lifetime;

} }

if (st != null) { st.close(); }

}

private void ViewTable(String catname) throws SQLException {

String query, querycount;

if(catname.isEmpty())

{

query = "select * from APP.ASSETCATEGORY";

querycount = "select count(*) FROM APP.ASSETCATEGORY";

Page 18

Page 19: Fixed Assets Management System

} else {

query = "select * from APP.ASSETCATEGORY where CATNAME='"+catname+"'";

querycount = "select count(*) FROM APP.ASSETCATEGORY where

CATNAME='"+catname+"'";

} Connection con =

DriverManager.getConnection("jdbc:derby://localhost:1527/assets_db", "jamol", "jamol");

Statement st = null;

try {

st = con.createStatement();

int count=0;

ResultSet rscount = st.executeQuery(querycount);

while (rscount.next()){

count = rscount.getInt(1);

}

DefaultTableModel tableModel = (DefaultTableModel) catTable.getModel();

tableModel.setRowCount(count);

catTable.setModel(tableModel);

ResultSet rs = st.executeQuery(query);

int i = 0;

while (rs.next()){

String catID = rs.getString("CATID");

String catName = rs.getString("CATNAME");

String catDesc = rs.getString("CATDESCRIPTION");

Page 19

Page 20: Fixed Assets Management System

//calling data into jtable for display

catTable.setValueAt(i+1, i, 0);

catTable.setValueAt(catID, i, 1);

catTable.setValueAt(catName, i, 2);

catTable.setValueAt(catDesc, i, 3);

i++;

}

} catch (SQLException e ) {

JOptionPane.showMessageDialog(null, "SQL Syntax Error");

} finally {

if (st != null) { st.close(); }

}

}

private void btn_saveActionPerformed(java.awt.event.ActionEvent evt) {

if ((txtf_catID.getText().equals("")) ||

(txtf_catName.getText().equals("")) ||

(txtf_catDesc.getText().equals(""))) {

JOptionPane.showMessageDialog(this, "Please Fill in All Fields", "Information

Message", WIDTH);

} else{

try {

Class.forName("org.apache.derby.jdbc.EmbeddedDriver");

} catch (ClassNotFoundException e){

Page 20

Page 21: Fixed Assets Management System

JOptionPane.showMessageDialog(this, "There is a problem in JavaDB embedded driver",

"Warning", WIDTH);

}

try{

Connection con = DriverManager.getConnection("jdbc:derby://localhost:1527/assets_db",

"jamol", "jamol");

Statement stmt = con.createStatement();

String sqlquery = "select * from APP.ASSETCATEGORY where

CATNAME='"+txtf_catName.getText()+"'";

String sqlcheckid = "select * from APP.ASSETCATEGORY where

CATID="+txtf_catID.getText();

ResultSet rsid = stmt.executeQuery(sqlcheckid);

int intid=0;

while (rsid.next()){

intid = rsid.getInt("CATID");

}

ResultSet rs = stmt.executeQuery(sqlquery);

String cName="";

int cId=0;

while (rs.next()){

cName = rs.getString("CATNAME");

cId = rs.getInt("CATID");

}

if(cName.isEmpty()&& intid==0){

Page 21

Page 22: Fixed Assets Management System

stmt.executeUpdate("INSERT INTO APP.ASSETCATEGORY (CATID, CATNAME,

CATDESCRIPTION) VALUES (" + txtf_catID.getText().toString() + ", '" +

txtf_catName.getText() + "', " + "'" + txtf_catDesc.getText() + "')");

getCatToCbox();

getCatsToCbox();

clear_category();

ViewTable("");

JOptionPane.showMessageDialog(this, "New Category is Saved Successfully",

"Information Message", WIDTH);

if (stmt != null) { stmt.close(); }

}else {

int opt = JOptionPane.showConfirmDialog(null, "Category Already Exists. Do You Want to

Overwrite?");

if(opt==JOptionPane.YES_OPTION) {

if(cId!=0){ txtf_catID.setText(""+cId);}

stmt.executeUpdate("UPDATE APP.ASSETCATEGORY SET

CATNAME='"+txtf_catName.getText()+"', CATDESCRIPTION='"+txtf_catDesc.getText()+"'

WHERE CATID="+txtf_catID.getText());

}

clear_category();

ViewTable("");

if (stmt != null) { stmt.close(); }

}

} catch(SQLException e){

Page 22

Page 23: Fixed Assets Management System

JOptionPane.showMessageDialog(this, "There is a problem in JavaDB statement:" + e,

"Warning", WIDTH);

} }

}

private void deleteById(String id) {

Connection con = null;

try{

Class.forName("org.apache.derby.jdbc.EmbeddedDriver");

con = DriverManager.getConnection("jdbc:derby://localhost:1527/assets_db", "jamol",

"jamol");

try{

Statement st = con.createStatement();

String sql = "DELETE FROM APP.ASSETCATEGORY WHERE CATID="+id;

int delete = st.executeUpdate(sql);

}

catch (SQLException s){

System.out.println("SQL statement is not executed!");

}

}

catch (Exception e){

}

} private void deleteAssetById(String assetId){

Connection con = null;

Page 23

Page 24: Fixed Assets Management System

try{

Class.forName("org.apache.derby.jdbc.EmbeddedDriver");

con = DriverManager.getConnection("jdbc:derby://localhost:1527/assets_db", "jamol",

"jamol");

try{

Statement st = con.createStatement();

String sql = "DELETE FROM APP.FIXEDASSETS WHERE ID="+assetId;

int delete = st.executeUpdate(sql);

} catch (SQLException s){

JOptionPane.showMessageDialog(this, "There is a problem in JavaDB statement:" + s,

"Warning", WIDTH);

} }

catch (Exception e){

}

}

private void btn_deleteActionPerformed(java.awt.event.ActionEvent evt) {

int[] col, row;

catTable.setColumnSelectionInterval(1, 2);

col = catTable.getSelectedColumns();

row = catTable.getSelectedRows();

if(row.length < 1){

JOptionPane.showMessageDialog(this, "No Row Selected", "Information Message",

WIDTH);

Page 24

Page 25: Fixed Assets Management System

} else {

int option = JOptionPane.showConfirmDialog(null, "Do You Really Want to Delete?");

if(option==JOptionPane.YES_OPTION) {

for(int i=0; i<row.length; i++){

//System.out.println(row[i]);

String str = ""+catTable.getValueAt(row[i], col[0]);

String strcat = ""+catTable.getValueAt(row[i], col[1]);

deleteById(str);

cbox_cats.removeItem(strcat);

cbox_cat.removeItem(strcat);

}

try{

ViewTable("");

clear_category();

if(row.length == 1){

JOptionPane.showMessageDialog(this, "Selected Row is Deleted", "Information Message",

WIDTH);

}

else if(row.length > 1){

JOptionPane.showMessageDialog(this, "Selected Rows are Deleted", "Information

Message", WIDTH);

Page 25

Page 26: Fixed Assets Management System

} else{ JOptionPane.showMessageDialog(this, "No Rows Selected", "Information

Message", WIDTH); }

} catch (SQLException s){

System.out.println("Statement is not executed!");

}

}

}

}

private void btn_assetsActionPerformed(java.awt.event.ActionEvent evt) {

try{

getCatToCbox();

getCatsToCbox();

getLifetimesToCbox();

refreshListContent();

}

catch (SQLException e ) {

JOptionPane.showMessageDialog(null, "SQL Syntax Error");

}

internalFrameAssets.setVisible(true);

newAssetPanel.setVisible(false);

//System.out.println(cbox_cats.getSelectedIndex());}

Page 26

Page 27: Fixed Assets Management System

7.0 References

Au, E. &Makower, D. (1996) Java Programming Basics. MIS:Press

Ben Shneiderman (1998) Designing the User Interface, Addison-Wesley, 3rd Ed,

Bentley, L & Whitten, J (2007).System Analysis & Design for the Global Enterprise. 7th ed

Bloch, J. (2008) Addison-Wesley Java seriesThe Java series.2nd ed. Addison-Wesley

Campione, M., Walrath, K. &Huml, A. (2001) The JavaTM Tutorial, Third Edition. Pearson

Education Inc. Addison Wesley

Eckel, B. (2009) Thinking in Java. 3rd ed. Prentice Hall PTR

Jenny Preece (1994), Human-Computer Interaction, Addison-Wesley, 1st Edition

Lewis, J. & Loftus, W. (2009) Java Software Solutions. 6thed. Pearson Education Inc. Addison

Wesley

O'Neil, J.(1998) Teach yourself Java. McGraw-Hill Professional

Page 27