Manual de reparacion basica de una Chevrolet trackerFull description
p90x3 excel sheets
project reportDescripción completa
Full description
Auditing, AccountingDeskripsi lengkap
Full description
Full description
Software Engineering Project with UML diagrams for a database system of employees made using HTML, CSS as front end and PHP and SQL as backend. Note that this is just the SRS or Software Re…Full description
track your awesome incredible new year's goals
Auditing, AccountingFull description
Tutorial de pivotal tracker, resumido y traducido de: http://www.pivotaltracker.com/help/gettingstartedDescripción completa
Descripción completa
studyFull description
Descripción completa
For DMs & Players to record their exploits and plans
From the Good Folks of OnlineMedEd
TABLE OF CONTENTS CHAPTER 1: INTRODUCTION ........................................................................................................... 9 1.1
Title of the Project .............................................................................................................. 9
Problem Context ............................................................................................................... 10
1.5.1 Problem Area .............................................................................................................................................. 10 1.6 Rationale ................................................................................................................................. 11 1.6.1
Functionalities of DET (Daily Expense Tracker) ............................................................. 12
1.8.1 Core Functionalities of the System .................................................................................................... 12 1.8.2 Enhanced Functionalities of System ................................................................................................. 13 1.8.3 Special Functionalities of System ....................................................................................................... 13 1.8.4 Feature learning objectives .................................................................................................................. 14 1.8.5 Traceability Matrix between Problem and Functionalities ..................................................... 15 1.9 Assumptions............................................................................................................................ 16 1.10 Success Criteria ..................................................................................................................... 16 1.11
Scope and limitation of the System................................................................................... 16
1.12 Limitations of the System ..................................................................................................... 17 1.13
Daily Expense Tracker 3.2 Domain Research .................................................................................................................... 28 3.2.1 Literature Review on Technical Research ........................................................................... 28 3.2.1.1.1 Why mobile technology? Why not PCs or file system? ...................................................... 28 3.2.1.1.2 Why android mobile technology? Why not some other mobile? ................................... 28 3.3.1
Critical Appraisal of Literature Review ................................................................................... 32
3.3.2
Other academic research areas that need to be looked into are: ................................. 32
3.3.3 Information and Resources .................................................................................................................. 33 3.4 Market Research ..................................................................................................................... 35 3.4.1 Similar Systems Available in the Market......................................................................................... 35 3.4.2 Traceability matrix between the functionalities of system developed and previous system. ...................................................................................................................................................................... 38 3.4.3
Qualitative Analysis of Market Research ................................................................................ 39
3.4.4
Quantitative Analysis of Market Research ............................................................................. 40
3.4.5 Critical Evaluation of Market Research ........................................................................................... 40 3.4.6 Critical Success Factor ............................................................................................................................ 40 CHAPTER 4: RESEARCH METHODS .............................................................................................. 41 4.1 Primary Research .................................................................................................................... 41 4.1.1 Techniques used........................................................................................................................................ 41 4.1.1.1. Questionnaire ................................................................................................................... 41 4.1.1.2. Interview .......................................................................................................................... 42 4.1.2.
SAMPLE QUESTIONARRIE AND INTERVIEW QUESTIONS ............................................. 42
4.1.2.1 Sample questionnaire and its justification ................................................................................. 42 4.1.2.2 Sample Interview questions and there justification ............................................................... 45 4.2 Secondary Research ................................................................................................................ 47 4.2.1 Technical Research .................................................................................................................................. 47 4.2.1.1 Platform..................................................................................................................................................... 47 4.2.1.2 Framework .............................................................................................................................................. 55 4.2.1.3 Programming Language ..................................................................................................................... 55 4.2.2 Database Management System ......................................................................................................... 55 4.2.3 Software Development Methodology ............................................................................................... 56 System Design ....................................................................................................................................................... 56 Architecture Design ............................................................................................................................................ 56 Module Design ....................................................................................................................................................... 56 V-Model ........................................................................................................................................ 56 Time Division....................................................................................................................................... 59 4.3 Critical Evaluation of Research .............................................................................................. 60 CHAPTER 5: ANALYSIS & DESIGN ................................................................................................ 61 5.1 Questionnaire and Interview Questions .................................................................................. 61
PT0981128
Asia Pacific Institute of Information Technology 2
Daily Expense Tracker 5.1.1 Critical Evaluation of Questionnaire and Interview Questions ............................................. 61 CHAPTER 5 (Part-2): DESIGN ......................................................................................................................... 65 5.2.1 Design Methodology Used ..................................................................................................................... 66 5.2.1.1 Justification of Selecting OO Design ............................................................................................... 66 5.2.2.1
Use Case Diagrams ............................................................................................................. 67
5.2.2.1.1
Use case of the whole System ................................................................................. 67
5.2.2.1.1.1
Overview of use case .......................................................................................................... 67
5.2.2.1.1.2
Actors and Descriptions ................................................................................................... 68
Implementation of Modules ........................................................................................... 96
Save Expense Module Implementation......................................................................................... 96 Objective ....................................................................................................................................... 96 Approach ....................................................................................................................................... 96 6.3.1 More SQL Queries used in this system .................................................................................... 98 6.4
User Acceptance Testing .............................................................................................. 157 Justification for the selection of Persons ................................................................. 157
Asia Pacific Institute of Information Technology 5
Daily Expense Tracker Project specification form ........................................................................................................... 177 Resource required for Execution................................................................................................. 183
LIST OF TABLES TABLE 1TRACEABILITY MATRIX BETWEEN PROBLEM AND FUNCTIONALITIES ........................................................................... 15 TABLE 2 ANDROID ARCHITECTURE (LAYER) ...................................................................................................................... 29 TABLE 3 TRACEBILITY MATRIX BETWEEN THE FUCNTIONALITIES OF SYSTEM DEVELOPED AND PPREVIOUS SYSTEMS .......................... 38 TABLE 4QUALITATIVE ANALYSIS OF MARKET RESEARCH ...................................................................................................... 39 TABLE 5QUANTITATIVE ANALYSIS OF MARKET RESEARCH .................................................................................................... 40 TABLE 6SAMPLE QUESTIONAIRE AND ITS JUSTIFICATION..................................................................................................... 45 TABLE 7 ITEMS TO BE SAVED IN SYSTEM .......................................................................................................................... 46 TABLE 8 ANDROID DEVELOPERS .................................................................................................................................... 48 TABLE 9 PACKAGES USED IN DEVELOPING ANDROID APP ..................................................................................................... 53 TABLE 10 TRACEBILITY MATRIX BETWEEN QUESTIONAIRE AND FUNCTIONALITES ................................................ 64 TABLE 11 TRACEABILITY MATRIX BETWEEN ANALYSIS AND DESIGN ....................................................................................... 65 TABLE 12 OVERVIEW OF USE CASE ................................................................................................................................. 68 TABLE 13 ACTORS AND DESCRIPTIONS ............................................................................................................................ 68 TABLE 14 USE CASE- PROFILE MANAGEMENT ................................................................................................................... 69 TABLE 15 USE CASE OF REGISTRATION ............................................................................................................................ 70 TABLE 16 USE CASE OF DET .......................................................................................................................................... 71 TABLE 17 USE CASE OF TASK MANAGER .......................................................................................................................... 72 TABLE 18 USE CASE OF REPORT..................................................................................................................................... 74 TABLE 19 USE CASE OF CHANGE WALLPAPER ................................................................................................................... 74 TABLE 20 USE CASE DESCRIPTION-FUTURE PREDICTION...................................................................................................... 75 TABLE 21 USE CASE DESCRIPTION-SEND REPORT............................................................................................................... 76 TABLE 22 USE CASE DESCRIPTION-VIEW ROUTE ..................................................................................................... 77 TABLE 23 PHYSICAL DESIGN OF USER TABLE .................................................................................................................... 91 TABLE 24 PHYSICAL DESIGN OF CONTACT TABLE ............................................................................................................... 91 TABLE 25 TOOLS FOR IMPLEMENTING AND DEVELOPING .................................................................................................... 92 TABLE 26 UNIT TESTING ............................................................................................................................................ 142 TABLE 27 CODE TO BE TESTED .................................................................................................................................... 143
LIST OF FIGURES FIGURE 1 GPS TRACKING ............................................................................................................................................ 27 FIGURE 2 JUST EXPENSE TRACKER .................................................................................................................................. 35 FIGURE 3 EXPENSE MANAGER ....................................................................................................................................... 35 FIGURE 4 COINKEEPER- EXPENSE TRACKING ..................................................................................................................... 36 FIGURE 5 DAILY EXPENSE TRACKER-INCOME AND CASH FLOW .............................................................................................. 36 FIGURE 6 DAILY EXPENSE MANAGER .............................................................................................................................. 36 FIGURE 7 DAILY EXPENSE TRACKER (FREE LANCING) .......................................................................................................... 37 FIGURE 8DET BID ..................................................................................................................................................... 37 FIGURE 9ANDROID LIFE CYCLE (JAMES STEELE, 2010) ....................................................................................................... 49 FIGURE 10V MODEL ................................................................................................................................................... 56 FIGURE 11 USE CASE OF WHOLE SYSTEM ........................................................................................................................ 67 FIGURE 12 USE CASE OF PROFILE MANAGEMENT .............................................................................................................. 69 FIGURE 13 USE CASE DIAGRAM OF REGISTRATION............................................................................................................. 70 FIGURE 14 USE CASE DIAGRAM OF DET........................................................................................................................... 71 FIGURE 15 USE CASE DIAGRAM OF TASK MANAGER ........................................................................................................... 72 FIGURE 16 USE CASE DIAGRAM FOR REPORT .................................................................................................................... 73
PT0981128
Asia Pacific Institute of Information Technology 6
Daily Expense Tracker FIGURE 17 USE CASE DIAGRAM-CHANGE WALLPAPER ........................................................................................................ 74 FIGURE 18 USE CASE DIAGRAM-FUTURE PREDICTION......................................................................................................... 75 FIGURE 19 USE CASE DIAGRAM-SEND REPORT ................................................................................................................. 76 FIGURE 20 USE CASE DIAGRAM-VIEW ROUTE ................................................................................................................... 77 FIGURE 21 SEQUENCE DIAGRAM FOR USER LOGIN-SD-01 ............................................................................................... 78 FIGURE 22 SEQUENCE DIAGRAM FOR USER REGISTRATION-SD-02 ..................................................................................... 79 FIGURE 23 SEQUENCE DIAGRAM FOR DET-SD-03 .......................................................................................................... 80 FIGURE 24ACTIVITY DIAGRAM FRO ANDROID .................................................................................................................. 81 FIGURE 25ACTIVITY DIAGRAM FRO ANDROID .................................................................................................................. 81 FIGURE 26ACTIVITY DIAGRAM OF WHOLE SYSTEM (ANDROID) ............................................................................................ 81 FIGURE 27 ACTIVITY DIAGRAM-REGISTRATION (AC-02) ..................................................................................................... 82 FIGURE 28 ACTIVITY DIAGRAM-DET-(AC-03) ................................................................................................................... 82 FIGURE 29 ENTITY RELATIONSHIP DIAGRAM .................................................................................................................... 83 FIGURE 30 CLASS DIAGRAM OF WEB MODULE .................................................................................................................. 84 FIGURE 31CLASS DIAGRAM FOR ANDROID MODULE .......................................................................................................... 85 FIGURE 32 IMPLEMENTATION APPROACH ....................................................................................................................... 94 FIGURE 33 CONTROL FLOW GRAPH .............................................................................................................................. 149 FIGURE 34 INTEGRATION TESTING (TOP DOWN APPROACH).............................................................................................. 150
PT0981128
Asia Pacific Institute of Information Technology 7
Daily Expense Tracker
ABSTRACT Daily Expense Tracker is a complete business solution whose main focus is on saving expenses and time supervision; two key factors that play major role in success of any project. It basically consists of expense management tool which basically consist of saving expenses in different categories. Each functionality maintains consistency in the system such as if user saves details from either of web or mobile then reports consistency will be maintained. It also contains the relevant information of the expense which are saved in the database. There are variety of tasks done in this system. Some of them are saving expenses category wise, managing task, changing wallpaper etc. There is provision to view reports on weekly basic, daily basic, monthly basic. Lately, mobile devices are not a status symbol anymore. On the basis of statistic reports, people are three times more addicted to mobiles than Laptops or PCs. No doubt, it transforms million ways of communication even in those areas where phone lines even barely exist. Hence, in a nut-shell mobiles can be handy for administrators or every individual to track down all their actions and can even keep a record of most accomplished tasks however. The Daily Expense Tracker has been developed and customized keeping in mind the requirements of the predicted audiences like students, businessman of any organization which will help the users to save their money in future by analyzing the reports of this expert system. System handles user’s daily expenses, saving tasks, changing wallpapers, sending reports to other mobiles etc. This system is basically developed for android mobile with API level greater than 8. This system also provides web interface to the users which has been developed in J2EE.
PT0981128
Asia Pacific Institute of Information Technology 8
Daily Expense Tracker
CHAPTER 1: INTRODUCTION 1.1
Title of the Project DAILY EXPENSE TRACKER
1.2
Topic Background The system itself defines its task, “Daily Expense Tracker” means it is a tracking system
which will save our daily expenses, credits i.e. from whom we have to get money, debit i.e. to whom we have to give and how much. Not only this but almost every work which involves transaction of money will be stored in this system and based on the data stored this expert system will give some predictions and reports. There are so many people who used to maintain dairy for their daily expenses so that they can use it for future. There are some people who used to remember their expenses but there counting is very less as in today’s scenario where there is no time for an individual to eat properly, sleep properly walk with their belongings for a moment then think for a moment how can they maintain their dairy which will again put a burden on their mind to remember those activities which they have done. Those people who want to save their daily expenses in such a place which will be handy to use. One of the most appropriate places to store the data is the mobile phone. Also in the dairy system, if the dairy is lost then it will be a heart locking situation.
1.3
Purpose of Implementation Developing a financial plan is important to your success. Regardless of your income,
financial planning WORKS. (Morgan(Admin)) We are in such an era today, that our most of the work has been shifted to computer; we are surrounded by the computer system which has harmed our memory. We feel hard to jot down every expense we do every day, due to lack of time and we used to forget the expenses made during the day. We used to forget whom we have to give money and how much as well as from whom we have to get. For this scenario this system is very much helpful to the user as you can write down the name and money at the same time. There is no need to memorize everything basically cost related tasks and expenses made during the course as this system provides you with all these facilities.
PT0981128
Asia Pacific Institute of Information Technology 9
Daily Expense Tracker 1.4
Target Audience Anyone, ranging from home users to office user and any businessmen or professionals
interested in tracking their daily expense. People who want to schedule their budget. A person who wants to find his saving at the end of the day, month and year, as well as for him who wants to see his progress based on today’s saving. The system can be used by them who are careless in handling the device e.g. who usually finds their device stolen, broken etc. they can recover their data from the server. On the other hand, the system could be used to guide the user for being more expensive by providing notifications. All types of users aging more than 13-14yrs. This system will be used by administrator as well who will be manage the website and create a back-up plan if required.
1.5
Problem Context As almost all users are connected with each other with mobile, the trend to save small
pieces of data into mobile in logs, notes, reminders has increased. So users need a system which will make automatic calculation based on their expenses. It’s not so that there does not exist any system for the same but there are some problems which are listed below. There is lack of research and functionalities in the current system as well. We are in such an era today that our most of the work has been shifted to computer; we are surrounded by the computer system which has made our memory powerless. We feel hard to jot down every expense we do every day due to lack of time and we used to forget the expenses made during the day. We used to forget whom we have to give money and how much as well as from whom we have to get. For this scenario this system is very much helpful to the user as you can write down the name and money at the same time. There is no need to memorize everything basically cost related tasks and expenses made during the course as this system provides you with all these facilities. If you lost your device then the data can be easily downloaded from the website and hence you can be saved from a disaster.
1.5.1 Problem Area 1.5.1.1 Unable to know savings[PB1] 1.5.1.2 Unable to put limit on expense according to budget[PB2] 1.5.1.3 No offline-online data synchronization[PB3] 1.5.1.4 Slow data retrieval while searching[PB4] 1.5.1.5 Lack of security [PB5] PT0981128
1.5.1.8 Report generation [PB8] 1.5.1.9 No Prediction[PB9] 1.5.1.10 Only one session per mobile[PB10] 1.5.1.11 Cannot know the position from where the expense has been done[PB11]
Asia Pacific Institute of Information Technology 10
Daily Expense Tracker 1.5.1.6 No backup and recovery for the data[PB6] 1.5.1.7 Manually scheduling[PB7]
1.5.1.12 No option to contact the developer in case any problem happens[PB12] 1.5.1.13 Manually sending of email or SMS to report someone about our expense [PB13]
Note: These problems are described in details in problem background.
1.6 Rationale This application provides benefits in many ways, like it allows users to save their daily expenses in a customized manner. It allows users to save their task in the system along with the position from where they saved the data. It allows users to save their wastage of money by providing notifications whenever required. It allows the users to know their future benefits by doing calculations based on their savings. The system to be implemented could bring about significant tangible and intangible benefits. Given below is a list of tangible and intangible benefits expected from the system:
1.6.1 Tangible Benefits 1.6.1.1
One time investment: Users will have to invest their money for just once to use this system on android mobile but to use the web services they will have to pay according to the plan.
1.6.1.2
Saving on Internet Data usage: there is no need to start the internet all the time when you want to save the expense details as this can be done offline. User can synchronize their data during their off time i.e. just once in a day or a week internet is needed. Hence wastage of data usage can be saved.
1.6.1.3
Accessibility of system: System can be accessible anywhere if the user has got the mobile. If mobile is not with him/her then the system can be accessible with the help of website if the user has a login id and password.
1.6.1.4
Reduces the stress: this system will directly reduce the stress from the user as the user will not have to calculate each and every thing ex. How much they have balance in their hand? Etc.
1.6.1.5
Data can be recovered: As the system database is online i.e. on remote server so if the user lost his/her device then they can get the desired data from the server again.
1.6.2 Intangible Benefits
PT0981128
Asia Pacific Institute of Information Technology 11
Daily Expense Tracker 1.6.2.1 Economic Benefits: with the help of this system we can save our lot of money which goes in waste land due to the lack of planning. 1.6.2.2 Save time: this system will save our time as we can do hours of work in a minute. E.g. if we need to search a person whom we have to give money from our notebook then it will take hours if there are thousands of record but with the help of this system it will take less than a minute.
1.7
Project Objectives The objective of this system is to design such a system for users which will resolve the
problems related with daily expenses and save a lot of money by providing them necessary notifications and by showing their profit or loss based on daily expenses.
1.8
Functionalities of DET (Daily Expense Tracker) Functionalities of this system are divided into three categories namely Core, Enhanced
and Special functionalities. These are given below.
1.8.1 Core Functionalities of the System Core feature of any project is the heart of that project or you can say the features without which system is incomplete. In this project, developer is developing a complete interactive, user friendly, effective, feature-rich, multimedia site. Core features are 1.8.1.1 Member’s Registration[CF1]
In this functionality new members will be registered in the mobile so that they can access all the functionalities of the system. 1.8.1.2 Save daily expenses[CF2]
This is the one of the main functionality of this system which will save all the daily expenses which the user will like to save. Along with the expenses the location of the place using GPS technology will also be saved so that if the user wants to know from where they saved this detail they can easily know. User can save credits, incomes and debits detail as well in this system. 1.8.1.3 Profile management[CF3]
Users can manage their profile using this functionality e.g. view their profile and make changes if required. 1.8.1.4 Putting limit on expense[CF4]
With the help of this functionality users can put limit on their expense. If user crosses their budget of the month then a notification will be displayed to their cell phone i.e. you have crossed your budget of this month.
PT0981128
Asia Pacific Institute of Information Technology 12
Here we can manage our account e.g. customize the options, put limitations i.e. functionality (1.8.1.4) will come in under this category, user can save the mobile no. on which the message will be sent. 1.8.1.6 Report Generation[CF6]
Various types of reports will be generated within this section for the users. These reports are described in details in section 1.12.4. 1.8.1.7 Searching of Expenses[CF7]
With the help of this functionality users will be able to search the expenses they have done on a particular item. 1.8.1.8 Contact us[CF8]
Users can contact with the developer with the help of this functionality whenever required. 1.8.1.9 Terms and Conditions[CF9]
This functionality will display the terms and conditions of using the system.
1.8.2 Enhanced Functionalities of System To make user understand the system better, enhance features are used. 1.8.2.1.
Future Prediction[EF1]
This functionality will predict the future savings based upon the current income and expense. 1.8.2.2.
Synchronization of offline-online data [EF2]
Using this functionality user can synchronize their data which is saved in mobile to the server. This will automatically be done, no need to click on any button. 1.8.2.3.
Task Manager[EF3]
This functionality will help the user to schedule their task to do in the mobile so that they can be up to date with their each and every task. 1.8.2.4.
Saving location based on GPS[EF4]
1.8.2.5.
This functionality will save the location of that place in terms of latitude and longitude so that if in future we want to know from where we have spent our money then we can easily know it.
Note: EF =Enhanced Functionality, CF =Core Functionality, Note: SF=special Functionality
1.8.3 Special Functionalities of System Based on the research and if developer has the time and ability, these are the advanced features developer is going to attempt to implement in this system.
PT0981128
Asia Pacific Institute of Information Technology 13
Daily Expense Tracker 1.8.3.1.
Customization option[SF1]
Under this category various customization facility will be provided e.g. according to the needs of a user the options will be displayed to save in database. If user does not have a bike or car then there is no need to give an option for petrol expense. 1.8.3.2.
Wallpaper customization[SF2]
If the users want to change the wallpaper of the android system then they can click a pic and set it as the wallpaper using this functionality. There is no need to go in mobile settings for the same. 1.8.3.3.
Sending Reports on mail[SF3]
Reports will be generated as per the settings we have done in mobile in account management [CF5]. These reports will be sent to the email id saved during the profile creation or later on. 1.8.3.4.
Sending SMS report to another number[SF4]
With the help of this facility SMS reports will be sent to another mobile if the user wants to send the report. Various check boxes are provided in the system so that user can check it and uncheck it whenever required.
1.8.4 Feature learning objectives This refers to the learning objectives besides mastering of particular software development or authoring tools, these objectives are mainly focused on concepts and ideas rather than trained skills. These are described in details in Chapter 2 Section 2.3.2.
PT0981128
Asia Pacific Institute of Information Technology 14
1.8.5 Traceability Matrix between Problem and Functionalities CF1 PB1
CF2
CF3
CF4
CF5
CF6
CF7
CF8
CF9
EF1
EF2
EF3
EF4
SF1
SF2
SF3
SF4
X
X
X
PB2
X
PB3 PB4 PB5
X X
PB6
X
PB7
X
PB8
X
PB9
X
PB10 PB11
X X
X
PB12 PB13 TABLE 1TRACEABILITY MATRIX BETWEEN PROBLEM AND FUNCTIONALITIES
1.9 Assumptions Following are the assumptions made in this system. 1.9.1.
The developer has assumed that the user has an android mobile phone and has practice
about its basic mobile operations. 1.9.2. User should have some knowledge about mobile’s original function that is used in mobile phone. 1.9.3. It is assumed that user has internet access for synchronizing the data on the server.
1.10 Success Criteria The system will be successful if all the following tasks are done 1.10.1. All the functionalities given in core are implemented successfully 1.10.2. If proper validations are provided in textboxes 1.10.3. If user is able to save his/her expenses, credit, incomes and debits on server without error 1.10.4. If very less bugs occur during the testing which are not really harmful 1.10.5. User is able to view the reports successfully from android device. 1.10.6. If multiple users are able to login from one device without any error. 1.10.7. If system does not crashes while installing this software If the user is satisfied by this system regardless of some small problems then this system will be a successful system.
1.11 Scope and limitation of the System Scope and limitations of the system which is to be developed are listed below. Description of these scope and limitations are already provided in the functionality module. 1.12 Member’s Registration
1.22 Future Prediction
1.13 Save daily expenses
1.23 Synchronization of offline-online
1.14 Profile management
data
1.15 Putting limit on expense
1.24 Task Manager
1.16 Account management
1.25 Saving location based on GPS
1.17 Report Generation
1.26 Customization option
1.18 Searching of Members
1.27 Wallpaper customization
1.19 Contact us
1.28 Sending Reports on mail
1.20 Terms and Conditions
1.29 Sending SMS report to another no.
1.21 FAQ on website
Daily Expense Tracker 1.12 Limitations of the System The limitations for this system is as given below 1.12.1. Number of reports rows shown in the mobile will be 15-20 only 1.12.2. While it can accessible from any system 1.12.3. Future prediction will be available for 2 years only 1.12.4. Only one user can login at a time from same android device. 1.12.5. Mail will be sent to the primary mail id provided during the registration. 1.12.6. Only the following types of reports will be available for this system 1.12.6.1. Weekly expense/saving
1.12.7. Current data on website will be
1.12.6.2. Monthly expense/saving
shown only in the case if the data is
1.12.6.3. Quarterly expense/saving
synchronized with the server, in case data is
1.12.6.4. Half –yearly expense/saving
not synchronized on the server then only the
1.12.6.5. Yearly expense/saving
data
1.12.6.6. Date vise expense/saving
synchronization will be available to the
1.12.6.7. Expense for a particular item
user.
1.12.6.8. Daily expenses
1.12.8. There is no way to access the data
1.12.6.9. Debit and credits report
online without the synchronization of data
1.12.6.10.
to the server.
Debit and credits report based
which
is
available
till
last
on searching a particular name
1.13 Feasibility Analysis Feasibility studies addresses things like where and how the system will operate. It provides in-depth details about the system to determine if and how it can succeed and serve as a valuable tool for developing a winning business plan. Feasibility study is further sub-divided into four categories as described below. 1.14.1 Schedule Feasibility Report It shows that whether the project development is going as per the schedule or not. This system is being developed as per the time given in the Gantt chart. All the major and minor activities are shown in the Gantt chart with completion date for all major activities within the project that meets organizational deadlines and constraints for affecting change. The main part of schedule feasibility report is-Gantt Chart- Developer has used this chart for the time estimation. (Refer to appendix)
1.14.2 Technical Feasibility Report PT0981128
Asia Pacific Institute of Information Technology 17
Daily Expense Tracker Technical Feasibility mainly involves the hardware and the software requirements of the system regarding all the tasks of the system to be done. All the major technologies used to develop this system are described in section 4.2.1. From the report of section 4.2.1 we can easily know that this system is technically feasible. 1.14.3 Operational Feasibility Report: It may be defined as, the process of assessing the degree to which a proposed system solves business problems or takes advantage of business opportunities. Problems addressed and advantages of this system are provided in the documentation. 1.14.4 Economic Feasibility Report: The purpose for assessing economic feasibility is mainly to identify the financial benefits and costs associated with the development project. Economic feasibility is referred as cost and benefit analysis for any system. Once the technical feasibility is established, it is important to consider the monetary factors also. Since it might happen that developing a particular system may be technically possible but it may require huge investments and benefits may be less. Cost Benefits are included under Rationale (Section1.6) by the developer.
1.15 Ethics Commitment It ensures that the project won’t do any harm to the society or anyone in anyways. It contains issues like no animal harm & no copying of data without prior permission etc. and to ensure that the developer has filled up an ethical form and it will be provided in documentation. It also ensures no information of user will be leaked outside the system.
Critical Appraisal As per the problem context and functionalities given above the system is going to be developed in a systematic manner. This system will be very much helpful to the users and users will be going to enjoy this system very much. This system is feasible in every aspect whether it is technical or operational. User will be able to save his/her expenses into four categories i.
Income- amount which the user says it his/her income from various sources.
ii.
Expense- amount which the user will spend
iii.
Credit- amount which the user has given someone else and he/she will get in future.
iv.
Debit- amount which the user needs to pay other person in future.
PT0981128
Asia Pacific Institute of Information Technology 18
Daily Expense Tracker
CHAPTER 2: PROBLEM DESCRIPTION 2.1 Introduction to Problem Area Today there is a drastic change in livelihood of each and every people of this world. Either he/she belongs to a small family or middle family or why not from a large family. All are addicted to technology directly or indirectly. They do not have time to note down their income and expenditures on a piece of paper, in PCs, in mobile notes etc. and count them one by one to know their total budget. The developer do not say that there is no such systems which handles all these problems. Yes there are various systems to handle those problems but they are either time consuming or hard to work on. For e.g. we can save our data on excel sheet also but who have got the time to open the PC and remember all the expenses which we have done on that day. It’s really time consuming and boring. There is lack of research and functionalities in the current system as well. We are in such an era today that our most of the work has been shifted to computer; we are surrounded by the computer system which has made our memory powerless. We feel hard to jot down every expense we do every day due to lack of time and we used to forget the expenses made during the day. We used to forget whom we have to give money and how much as well as from whom we have to get. God shake it doesn’t happen with anyone but what if the hard disk crashes, files which we have saved are destroyed in natural disasters, or due to some other problem we lost our data then we are completely going to be mad. These are just the glimpse of the problems which is going to be solved with this system.
2.2 Problem Description and solution Following are the problems which are present in the current system. 2.2.1. Unable to know savings[PB1]
User is not able to know his/her savings without calculations. We have to do it either manually or with the help of calculator. Solution: this problem is solved by using the functionality CF2 i.e. save daily expenses in the system. Alternative solutions: user can save his/her daily expenses in excel sheet, notebook, PCs etc. 2.2.2. Unable to put limit on expense according to budget[PB2]
We are unable to put limit on our daily expenses on a particular thing and hence we do over expenses on a particular item. Solution: this problem can be solved by using the functionality CF4 i.e. by putting limit on a particular item. PT0981128
Asia Pacific Institute of Information Technology 19
Daily Expense Tracker Alternative solutions: we can achieve this goal by making a different section for noting down the tasks on which we have to be cautious while over spending. 2.2.3. No offline-online data synchronization[PB3]
Current system only provides the either of the offline or online data saving feature. If the internet is not working then online system will not work and hence the user has to suffer a lot. Solution: this problem can be solved by using the functionality EF2 i.e. by synchronizing data between mobile apps to the web server. Alternative solutions: we can send our data on the mail ids, or server if we have manually. We can store the data in file of a particular user whenever system is communicating with the server. 2.2.4. Slow data retrieval while searching[PB4]
Data retrieval is slow in case of online systems depending upon the speed of internet connection. Hence user will have to wait for a long time for even searching a name of the item. Solution: using functionality CF7 i.e. by searching our daily expenses in the system we can easily achieve this target. Alternative solutions: by using CF6 i.e. viewing the reports of the system we can get the desired output. 2.2.5. Lack of security [PB5]
When the system supports only offline task then if the data is deleted or the mobile gets stolen all the data will be lost and user has to suffer again. Solution: by using functionality CF1 we can achieve this target i.e. by registering our self to the server and by getting a user id and password. Alternative solutions: by using functionality CF7 i.e. account management we can secure our account by being misuse. 2.2.6. No backup and recovery for the data[PB6]
There is no backup and recovery facility in the current system. That means once the device is lost or file is corrupted then there is no way to recover it. Solution: by using functionality CF8 we can easily make backup of our data and recover it whenever required. Alternative solutions: we can make duplicate copies of files and store it at different locations for backup in traditional file system. We can use file system which will get the desired data from the server and store it in the mobile till the internet connection does not comes. We
PT0981128
Asia Pacific Institute of Information Technology 20
Daily Expense Tracker can use that data further as offline data. If our mobile gets lost then we can use the internet connection and download the app and get the data back again. 2.2.7. Manually scheduling[PB7]
In traditional file systems there was no option of scheduling along with tracking budget and provide notification when necessary. Solution: using functionality EF3 i.e. task manager we can schedule using our mobile. Alternative solution: we can make set alarm or remainder for the same purpose. 2.2.8. Report generation [PB8]
The report generation format is not up to the level. Only data which has been saved are shown. No customized report is possible. Solution: by using functionality CF6 we can generate reports in as per the requirement. Alternative solutions: reports can be generated in graphical format as well as textual format. 2.2.9. No Prediction[PB9]
The current system does not provide us any facility to view the future benefits. No prediction is there. Solution: by using enhanced functionality EF1 i.e. future prediction we can foresee our future benefits. Alternative solutions: we can predict manually by multiplying our savings in a month with 12 and so on. 2.2.10. No option to add items in customized manner and customize notifications [PB10]
There is no option to add our own customized items as per our requirement. Solution: we can add items in a customized manner using functionality SF1 e.g. if user is from outside India they can put their own currency symbol for their favor. Alternative solutions: we can assume that this and that symbol is for this purpose. 2.2.11. Only one session per mobile[PB11] There is only one user account in the current system. If there exists multiple users to work on the same mobile then there are no criteria for that. Solution: this problem is solved as user can “sign in” in the system using functionality CF1 and save their expenses. Hence multiple users can work with this system on a single mobile. Alternative solution: users can purchase dedicated mobiles for themselves so that no conflicts can occur. 2.2.12. Cannot know the position from where the expense has been done[PB12]
PT0981128
Asia Pacific Institute of Information Technology 21
Daily Expense Tracker In earlier system we cannot know our position from where we saved the particular piece of information. Solution: while we are saving our data, system will automatically save the location using GPS technology which is given in functionality EF4 and hence we can find our exact location in future in case we require that detail. Alternative solutions: we have to write down the location from where we have saved the data manually. 2.2.13. No option to contact the developer in case any problem happens[PB13] We are not able to contact the developer in case of problem. Solution: using functionality CF10 we can contact the developer in need. Alternative solution: we can contact to another developer in local to solve our problem. 2.2.14. Manually sending of email or SMS to report someone about our expense [PB14]
When we have to send our expense report as email or SMS to our guardians we have to send it manually but with the help of this system auto sending of mail and SMS will be done. Solution: auto generation of mail and SMS will take place in the system using functionality SF3. Alternative solution: we can send the mail using Gmail manually. 2.2.15. No normalization process is followed: There is also a concern that the traditional file management system results in a lack of consistency when it comes to storing data, though this very much depends on the user and the nature of the data they are filing. (NA, Disadvantages of File Processing System, 2010) Solution: normalization process will be followed to develop this system whenever required. Alternative solution: We can remove duplicity of data whenever possible.
2.3 Challenges and Learning Opportunities The primary challenge in building this system is customizing the various user requirements based on their category e.g. students, businessmen, home users etc. the data which has to be customized should be gathered from various users. Some off the other challenges are given below
2.3.1 Challenges
PT0981128
Asia Pacific Institute of Information Technology 22
Daily Expense Tracker Further challenges involved in this system are described below. 2.3.1.1 Saving data on external database other than SQLLite from android device: data which is in the device should be synchronized with the server so that the user can access it from anywhere. Challenging part here is that if the user saves any data in mobile when there is no internet connection and after sometime user saves another data from web browser then it’s very hard to make data consistency in the system. 2.3.1.2 Offline and online facility: providing both of the facility to the user so that user will feel free to work with this system. It was one of the most challenging part of this system as it covers 2.3.1.1 challenge also. The problem was to execute the query placed in JSP page i.e. web application with the help of android device. Initially the developer was working with the localhost with port no. 8080 but he found error as server not found. Then after a lot of research work he found instead of writing localhost in android we have to write 10.0.0.2. This is the path to the localhost from emulator. This was just a single problem, more problems are described in implementation part.
2.3.1.3 Graphical data: Showing graphical data to the user so that user can understand his/her expenses easily. It was really a hard nut to crack for the developer as there is no tool in android to draw graphical reports. So developer did a lot of research on this part and after trying many API’s developer had decided to work with Google graph. 2.3.1.4 System portability: making the system to be portable on various android devices. This issue made the developer a lot to worry as many functions which are available in the android newer versions are not compatible with older version of android say API level 8 does not have isEmpty() function to check the string whether it is empty or not. So developer had to make his own function to do the same. 2.3.1.5 When the screen orientation is changed the data provided to the system is lost which has not been saved in android application hence managing this screen orientation to be compatible with the system is one of the challenge in developing this system. 2.3.1.6 Managing reports and sending them on mail: various types of reports will be made and sent to the user’s mail so that user can get a clear and more detailed view of the reports. 2.3.1.7 Apart from these one of the challenges is making the GUI follow HCI principles. 2.3.1.8 Future saving prediction: on the basis of saving of the week/month predicting the future savings is one of the challenges to implement. 2.3.1.9 Knowing the user: To understand the spending habits of people. The manner in which they spend the money, decisions they take before spending on something. Other challenge would be of how to make this application make effective to make people use
PT0981128
Asia Pacific Institute of Information Technology 23
Daily Expense Tracker the application, as some people would consider the application as ineffective in respect to the amount of time they give in use of the application. 2.3.1.10
Interaction design and coding is also one of the major challenges of this system.
2.3.2 Learning Opportunities Following are the learning objectives while developing this system. 2.3.2.1 Learning and practices of XML and Android Technology As this system is going to be developed entirely on android technology so learning of android technology is obvious. And XML is one of the core features of android to create the layouts then its knowledge is also most required. 2.3.2.2 Learning of synchronization of data between offline-online One of the toughest features of this system is to synchronize the data between mobile and server. So to achieve this target I need to learn the algorithm for the same. 2.3.2.3 Learning Web services To implement the web-services developer has to learn the web services also. With the help of web-services this system will be able to synchronize the data between server and mobile. 2.3.2.4 Learning to integrate android with web to develop a single system. After learning the web-services and android basic I will be able to implement the both to create a single integrated system. 2.3.2.5 Learning and practices of the advance JSP-servlet and android to make graphs In order to provide graphical report I have to learn advance JSP-Servlet. 2.3.2.6 Learning of JSON(JavaScript Object Notation) In order to interchange the data from android mobile to the server JSON is required. So it should be studied to implement the web services. 2.3.2.7 Knowledge about DBMS or Databases To save the data in database knowledge of DBMS is required so that no duplication of data occurs in the system. 2.3.2.8 Concept of Human Computer Interaction. HCI principles will make the system easy to be used by the user and hence it can play a vital role in the growth of the system in future. 2.3.2.9 Leaning for a development of Real time bug free system. In order to make the system bug free various testing approaches should be learnt and implemented in this system e.g. unit testing. 2.3.2.10
Learning and Practices of SQL Query
To insert the data and fetch it SQL queries should be learnt.
PT0981128
Asia Pacific Institute of Information Technology 24
Daily Expense Tracker 2.3.2.11
Learning algorithm for smart prediction based on inputs of a month
In order to perform future prediction which is one of the functionality of DET i.e. EF1 one of the best algorithm should be implemented. So learning algorithms will help me out. 2.3.2.12
Learning of Google graph
In order to produce graph in android as well as in web pages Google graph is very much efficient to be used. 2.3.2.13
Learning file handling
In order to save small chunks of data in mobile and access it later on developer needs to learn file handling.
2.3.3 Nature of Challenge As described above the challenges are really going to make the developer a lot from this system. Some of the challenges are really tough to implement e.g. implementing the webservices in this system, showing graphical reports in order to make users understand their profit and loss etc. this system will be complete if and only if all the functionalities given in core (Refer to Section 1.8.1) are completed. This is also one of the major challenges i.e. to complete the system within given time frame.
2.3.4 Challenges in terms of Theory and Software 2.3.4.1 Challenges in terms of Software Challenges in terms of software are small as eclipse has given the developer the frame work, where the developer can work on this project. It has also provided the developer ADT (Android Development Toolkit) on which he has developed the system. And of course it is free of cost. No licensing is required for it. But yes the developer has to register himself to the Google MAP API to get a free developer key which has been used during the development of the system to use Google GPS services. Also while deploying the project developer need to register each individual for a specific key so that they can use the same. Apart from android software like Apache tomcat will be used which is also free for the developer point of view. For the backend process MYSQL database is used and to access it, developer has worked on Wampserver. Wampserver is a tool which provides MYSQL database. To debug the program developer has used emulator so that errors can be rectified as soon as possible.
2.3.4.2 Challenges in terms of Theory The main challenge comes in terms of theory for this system. E.g. how to implement web-application with android device, how to use efficient graph theory for smart prediction,
PT0981128
Asia Pacific Institute of Information Technology 25
Daily Expense Tracker how to use graphs, how to customize the options etc. but yes these all problems are the real challenge which the developer is going to really enjoy. Critical Appraisal There were many problems in the current system, which have been sorted out during the development of this system. All the challenges which were listed above were critical and have taken a lot of time of the developer. Not only had this, even to solve a single problem of the user developer had spent a lot of time. The most challenging part was to execute the query on JSP page with the help of emulator i.e. android device. A lot of errors were hampering the system to be completed. Most of them are defined in implementation part of the system. One of the major challenge was to get the data after clicking on the report button and then show them in Listview (just like list in HTML). Initially developer was expecting the JSONObject to return all the values in list but it failed to return so developer had used File Handling for the same. Data from the server is saved in File in android and then it is fetched as per the requirement. This is the reason why developer has given a limited choice to the user to get less than 20-30 no. of records at a time.
PT0981128
Asia Pacific Institute of Information Technology 26
Daily Expense Tracker
CHAPTER 3: LITERATURE REVIEW 3.1 Advanced Preliminary The idea of this system came into developers mind when he was unable to find his expenses when his guardians asked him for the expense report. His guardians asked him to give them the details of expenses which he had done during a month after taking some amount from them. Developer was unable to remember all those expenses. So, he thought why not to develop a system where he can put his incomes and expenses and get the report whenever it is required. Before starting this project he did an extensive research on this topic and found some facts i.e. a lot of system has been developed on this type of project. But all of them had some problem in them which are listed in the problem description section i.e. Chapter 2. Some of the websites and their functionalities are given in section 3.4.1. Also the developer took a lot of ideas from various websites to sort out these problems. For the various options which should be there in the system for saving expenses this website i.e. http://www.nhco.org/budget_packet.pdf is very much helpful. This is a spreadsheet which is provided by NHCO (North Hills Community Outreach) for saving daily expenses.http://www.newhavenlibrary50plus.com/uploads/07_1043_4_Income__Expens es_01-07.pdf this link will also be providing the various options to be saved in the database. Location Marker
3.1.1. Global Positioning System (GPS) tracking The most accurate procedure to find the exact location of a place is by only GPS and if we could attach GPS with Google-Map then the users can find the exact location of anyone and as these devices are on everybody’s android mobile. The developer thought to use the GPS service in the app because he thought it would be easy for users to find out from where they made that expense.
FIGURE 1 GPS TRACKING
PT0981128
Asia Pacific Institute of Information Technology 27
Daily Expense Tracker 3.2 Domain Research As this project is a website as well as android application. The development of this system needs a great research work. With research work done properly one can make out the success or failure of the project, as it provides complete exposure of knowledge, business, human networking, better insights and understanding of the required area. Domain research deals with the whole method of a Website building. Then the developer will include the study of J2EE, XML, Android, SQL Queries. To make the research better, developer has divided it in the following domains: 1. Android Research – The developer should have knowledge of the Android trends and web-applications. 2. Site Development - The primary domain research of project will be choosing the website development methodology as well as android application development. The entire methodology should be clear in mind so as to have clear picture of what next steps to follow for a successful completion of this project within specific time period.
3.2.1 Literature Review on Technical Research 3.2.1.1 Key Concepts of Mobile Technology (As application will run on mobile)
3.2.1.1.1 Why mobile technology? Why not PCs or file system? At the end of 2011, there were 6 billion mobile subscriptions, estimates The International Telecommunication Union (2011). That is equivalent to 87 percent of the world population. And is a huge increase from 5.4 billion in 2010 and 4.7 billion mobile subscriptions in 2009. (Favell, 2012) . From the given facts one can easily understand why we should develop a mobile application. Also in the problem description area I have mentioned many reasons why we should not opt for file system. This is the main reason behind choosing mobile technology.
3.2.1.1.2 Why android mobile technology? Why not some other mobile? 48.5% people in US owns android device. Out of 51.5 all other mobile companies are fighting for their existence (Nielsen, 2012). At the 2012 Mobile World Congress, Google released a startling statistic: There are now around 850,000 Android activations made each day. When close to one million phones are being turned on every day, you're doing something right. Yet, Google and its mobile operating system, Android, still get a bad rap because of different versions coming out. (Scott,
PT0981128
Asia Pacific Institute of Information Technology 28
Daily Expense Tracker 2012). Still it is going to play a vital role in the future mobile era. This is why I have chosen android technology to implement this system. Conclusion: The proposed system is an android mobile application which will communicate with web application.
This layer is for the default applications installed on any Android device. These
Layer
applications can be face book application, twitter application, any gaming application etc. User also has the privilege to search and install some other applications as per the requirement.
Application
By providing an open development platform, Android offers developers the ability
Framework
to build extremely rich and innovative applications. Developers are free to take advantage of the device hardware, access location information, run background services, set alarms, add notifications to the status bar, and much more. This will be helpful to the developer in developing the application.
Libraries
Android provides developers with a set of C/C++ libraries through the application framework itself and some of the examples are mentioned above. These libraries are accessible to the developer for developing feature rich applications.
Android
Android development can only be done in Java. Generally, after compilation of a
Runtime
java program its .class file is executed using JVM but the Android application though developed in java are executed using DVM i.e. Dalvik Virtual Machine.
Linux Kernel
Android depends on Linux kernel for system services such as security, process management.
TABLE 2 ANDROID ARCHITECTURE (LAYER)
3.2.2.2. Security and Permissions Every Android application runs its own process and security among these applications are applied with the help of Linux installations. Android is a safety mechanism restricts processes to perform various operations. Based on the permissions may be that a process can access data from other applications or other operations. This concept will help developers to maintain the security of the application and get all the access permissions for the application. According to the Android mechanism continues, the developer specify access to the Bluetooth function of the device by the application.
PT0981128
Asia Pacific Institute of Information Technology 29
Daily Expense Tracker 3.2.2.3 GSM The proposed system uses GSM services to send the message from the app to those whom the users wants to share expense report. 3.2.2.4 GPRS The proposed system can access the internet by GPRS and the speed of net should be 2G or 3G enabled. 3.2.2.5 Wi-Fi (wireless fidelity) The proposed system can access the internet by Wi-Fi also if it there is Wi-Fi connectivity.
3.2.2.6 Design Principle: The design principles that need to be studied in order to provide are as follow: 3.2.2.7 Visibility: Visibility is one of the most important design principles and what it means is that, as and when the user looks on the system screen he/she may feel the possibility for action. The developer will keep an eye on this principal in order to provide better visibility. Conclusion: The developer will provide color schemes in a way that users of this system can easily find suitable content. 3.2.2.8 Feedback: Feedback is the response to the user of the action performed. Most of the feedback has been provided by using Toast in Android and Message box in Web application. Conclusion: The developer has provide appropriate message box (Toast in android) to provide feedback. 3.2.2.9 Constraints: Constraints are some universally accepted conventions which notify some specific actions. Conclusion:
Inclusion of warning messages to show the errors
For exiting from the application, use of back button as followed by all mobile applications
3.2.2.10. Consistency: Consistency means maintaining similar color schemes, backgrounds, font color and size etc.
PT0981128
Asia Pacific Institute of Information Technology 30
Daily Expense Tracker Conclusion: The developer has provided Consistent Colour, Same background, same font size and colour for headings. 3.2.2.11. Affordances: Affordance means expected behavior like cursor of mouse changes into hand symbol on roll-over the link. Conclusion: The developer has provide features like long press key so that user can get the details from the list view. Developer has also provided date picker for the user so that user can select the desired date for reporting. 3.2.2.12. Programming Language Research 3.2.2.12.1. Android Android OS specific programming, as it is better for customization Android is well supported with JSP Android Support with Google-Map and GPS technology Android has Multi-threading, Handler, Exception Handling, Encapsulation which can be used in the system for various functions like fetching friends data while showing their location on Google-Map. 3.2.2.12.2. J2EE 3.2.2.12.2.1To develop the web application developer has used J2EE. There are a number of patterns that have been identified by the Sun Java Centre for the presentation tier i.e. which is visible to the users. Various patterns are described below in details. 3.2.2.12.2.2Intercepting Filter: Facilitates pre-processing and post-processing of a request. 3.2.2.12.2.3Front Controller: Provides a centralized controller for managing the handling of requests. 3.2.2.12.2.4Composite View: Creates an aggregate View from atomic subcomponents. 3.2.2.12.2.5View Helper: Encapsulates logic that is not related to presentation formatting into Helper components. 3.2.2.12.2.6Service to Worker: Combines a Dispatcher component with the Front Controller and View Helper patterns. 3.2.2.12.2.7Business Delegate: Reduces coupling between presentation-tier clients and business services. It hides the underlying implementation details of the business service, such as lookup and access details of the EJB architecture.
PT0981128
Asia Pacific Institute of Information Technology 31
Daily Expense Tracker 3.2.2.12.2.8Service Locator: Multiple clients can reuse the Service Locator object to reduce code complexity, provide a single point of control, and improve performance by providing a caching facility. 3.2.2.12.2.9Transfer Object Assembler: It is used to build the required model or sub model. The Transfer Object Assembler uses Transfer Objects to retrieve data from various business objects and other objects that define the model or part of the model. 3.2.2.12.2.10 Composite Entity: It model, represent, and manage a set of interrelated persistent objects rather than representing them as individual fine-grained entity beans. A Composite Entity bean represents a graph of objects. 3.2.2.12.2.11 Data Access Object: Abstracts and encapsulate all access to the data source. The DAO manages the connection with the data source to obtain and store data. (Satarkar, 2004) E.g. DBAdapter class. Note: More about technical research is given in chapter 4 under Techniques used.
3.3.1 Critical Appraisal of Literature Review The literature review concludes with the final results regarding the development of Android applications. To develop methods and applications of Android architecture follow. The layers in the architecture are discussed above. The developer has been developing the application using open source software. The user can use the app for free for a year by simply downloading and installing the application. The application is developed using the Eclipse IDE and Android SDK for android app. J2EE has been used as framework to develop web application. Netbeans IDE and Wampserver has been used to implement the web application and connectivity to the android app. Only Java programming language has been used to develop Android applications. This gives the developer the main unit and the stage on which to build the application. The current set of Android application development provides positive reasons for developers to develop a game application. The growing number of Android users is another positive aspect to develop the application.
3.3.2 Other academic research areas that need to be looked into are: 3.3.2.1 Human Computer Interaction – to concern with the design, evaluation and implementation of interaction computing systems, HCIU guidelines will be studied.
PT0981128
Asia Pacific Institute of Information Technology 32
Daily Expense Tracker 3.3.2.2 Software Methodology – We have different types of methodology to develop a project. In order to make the system best and perfect and feasible, the developer has selected VModels.
3.3.3 Information and Resources 3.3.3.1 Information
For gathering information and user requirements, some technique have to be used which will provide developer an idea and information about the needs of user. To do so there is a need of using data gathering technique. Techniques are listed below: 3.3.3.1.1
Interview
The interview session gives an outline of people response towards the system. Which type of system they require? What should be the option in the expense field? The interview process will be held for a group of users so that more and more opinions will come out for the system. 3.3.3.1.2
Questionnaire
The short, structured and grouped questions according to purpose of the system was very helpful in gathering usage statistics E.g. what and what not to be done. These questioners has been used to collect both qualitative and quantitative data. The questionnaire were distributed to IT personnel who were having some experience and insight into the development of such a mobile applications and web development as well as to the users of the system. The main reason of the questionnaire was to seek and gather all the necessary information that was beneficial for the development of proposed system. 3.3.3.1.3
Books
3.3.3.1.3.1 Android application development for dummies-Donn Felker 3.3.3.1.3.2 Beginning Android Application Development -Wei-Meng Lee 3.3.3.1.3.3 Human Computer Interaction- Alend Dix, Janet Finlay, Gregory D. Abowd, Russell Beale. 3.3.3.1.3.4 Data Structure- Schaum’s outlines, TMH
3.3.3.1.4 Observations By observing the various sites and users review on those sites developer has been able to get many points related to the system. E.g. what are the various options which should be saved in the system? Some of them are listed below. PT0981128
Asia Pacific Institute of Information Technology 33
Daily Expense Tracker 3.3.3.1.4.1 Housing - rent / mortgage, heating fuel, gas, electric, water, sewage, garbage, phone(s), household cleaning supplies, furnishings, equipment, Taxes, Insurance 3.3.3.1.4.2 Transportation - Car & Insurance payments, gas, maintenance & inspections, or public transportation Food - Out of home meals & beverages, Groceries, lunches, snacks. (NO PET FOOD, see Leisure) 3.3.3.1.4.3 Fun & Leisure - Alcoholic beverages, Tobacco, Pet expenses, Cable TV, Internet, TVs, Computers, Toys, Electronics, Cameras, Books, Magazines, Newspaper, Music, Movies, Concerts, Sporting Events, Clubs, etc 3.3.3.1.4.4 Apparel & services- Clothes, shoes, accessories, dry cleaning, spot removers, detergent, dryer sheets etc. 3.3.3.1.4.5 Personal care products & services hair care & skin products or services, haircuts, manicures, massages 3.3.3.1.4.6 Health care - insurance premiums, medical services & supplies, drugs, dental related, & vitamins 3.3.3.1.4.7 Miscellaneous expenses 3.3.3.1.4.8 Education - yearly pictures, trips, supplies, back pack, uniforms 3.3.3.1.4.9 Life insurance, IRA, retirement funds 3.3.3.1.4.10
Savings- FSA, Education, to help replace vehicle or appliance, Vacations,
Christmas, etc. (not retirement) 3.3.3.1.4.11
Emergency Fund accumulate to 3 month’s pay PLUS ANY insurance
deductibles 3.3.3.1.4.12
PT0981128
DEBT – All non-mortgage or non-car debt (Morgan(Admin))
Asia Pacific Institute of Information Technology 34
Daily Expense Tracker 3.4 Market Research 3.4.1 Similar Systems Available in the Market There are many systems which are available in the market on this topic. Some of them of are listed below. 3.4.1.1. Just Expenses: Expense Tracker This system is also providing users the facility to save their daily expenses. But the main problem with this system, which developer came to know from the user’s review of this system, is that it does not provide the customization option for currencies. Learning outcomes: the main learning outcome from this system which came in my mind is to customize the options for currencies so that users from other countries will not suffer the same problem which they are suffering in the
FIGURE 2 JUST EXPENSE TRACKER
current system. (Andtek, 2012) 3.4.1.2. Expense Manager This system is having a lot of facilities as given in figure but the main problem with this system is that there is no back up facility. Learning outcomes: this system is providing budget alert i.e. whenever someone
crosses
their
limit
of
Details of Expense manager
expenses an alert will be shown. In developed
system
notification
is
provided whenever user crosses their limit which they have put on. (NA, Expense Manager, 2012)
PT0981128
FIGURE 3 EXPENSE MANAGER
Asia Pacific Institute of Information Technology 35
Daily Expense Tracker 3.4.1.3.
CoinKeeper:
Expense
TrackingThis system provides the same functionalities as the systems described above but the main problem with this system is that it does not provide monthly report, no graphical report etc. Learning outcomes: from the users review of this system I have found that we need to give graphical report also. FIGURE 4 COINKEEPER- EXPENSE TRACKING
This system is good but it makes the system heavy by providing functionalities like calendar to view the report on that day. Learning outcome: it provides graphical layout wherever possible e.g. symbol of cash instead of writing it in textual format. This is handy for the casual user but hard to learn for the novice user. So developer has followed the HCI principles to make it user FIGURE 5 DAILY EXPENSE TRACKER-INCOME AND CASH FLOW
This system is having many features in it. But it does not provide synchronization with webserver which is there in my system. Learning
outcomes:
currency
customization,
customizable expense & income categories are some of the learning outcomes from this system. FIGURE 6 DAILY EXPENSE MANAGER
PT0981128
Asia Pacific Institute of Information Technology 36
Daily Expense Tracker 3.1.6. Daily Expense Tracker-Currently Developed When the developer posted his half of the specifications on freelancer.com he got the bid as following. He found 6 bids from which the maximum was 1000$ and minimum was 350$ as shown in screen shots below. If half of the project can cost that 350$ the full project will be developed in almost 1000$. (NA, Daily Exense Tracker, n.d.)
FIGURE 7 DAILY EXPENSE TRACKER (FREE LANCING)
FIGURE 8DET BID
PT0981128
Asia Pacific Institute of Information Technology 37
3.4.2 Traceability matrix between the functionalities of system developed and previous system.
CF1
CF2
CF3
CF4
CF5
CF6
CF7
CF8
CF9
EF1
EF2
EF3
EF4
SF1
SF2
SF3
SF4
DET
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
JET
X
X
X
EM
X
X
CET
X
X
DETC
X
X
X
DEM
X
X
X
X X
X
X
X
X X X
TABLE 3 TRACEBILITY MATRIX BETWEEN THE FUCNTIONALITIES OF SYSTEM DEVELOPED AND PPREVIOUS SYSTEMS
Daily Expense Tracker 3.4.3 Qualitative Analysis of Market Research S.no
Features
DET
1.
Web interface to handle system 2. Task Management
JET
CET
DETP
EM
DEM
3. Task List 4. Save Expense
5. Save Income
6. Save Credit
7. Save Debit
8. Save Location
9. Add New Task
10. Email Notification
11. SMS Notification
12. Graphical Report
13. Data Privacy
14. Multiple user sign in
15. Personalized View of Data
16. View Route
17. Mobile Version of System
18. Viewing tasks on mobile
19. Creating Task on mobile
20. Delete task on mobile
21. Reports on Mobile
22. Contact us
23. Access Rights
24. Account Transfer
25. Receipt Picture
26. Wall paper setting
TABLE 4QUALITATIVE ANALYSIS OF MARKET RESEARCH
PT0981128
Asia Pacific Institute of Information Technology 39
Daily Expense Tracker 3.4.4 Quantitative Analysis of Market Research Primary Research Analysis of Market The developer has given all the functionalities which are available in the older systems. But in case of interface developer lags behind them. This system also provides almost same functionalities like this system but lags in providing web application, providing location of the user etc. Provides calculator, bar chart, currency converter, other than saving expense but lacks in saving expenses in category e.g. credit, debit, income etc. as well as there is no web application for the same. It provides web interface to save details, but in it we can just save expenses and incomes there is no category wise saving option. It provides graphical layout wherever possible e.g. symbol of cash instead of writing it in textual format. This is handy for the casual user but hard to learn for the novice user. This system is providing budget alert i.e. whenever someone crosses their limit of expenses an alert will be shown.
DET
JET
EM
CET
DETC
DEM
Marks out of 100 90
75
80
82
78
75
TABLE 5QUANTITATIVE ANALYSIS OF MARKET RESEARCH
3.4.5 Critical Evaluation of Market Research When the developer posted his half of the specifications on freelancer.com he got the bid as following. He found 6 bids from which the maximum was 1000$ and minimum was 350$ as shown in screen shots below. If half of the project can cost that 350$ the full project will be developed in almost 1000$. Hence this system can work with the market by joining hands in hand with users. (NA, Daily Exense Tracker, n.d.)
3.4.6 Critical Success Factor In order to make this project a successful project the developer needs to do mainly two tasks, first is that the developer should implement all the core functionalities and secondly he should synchronize the mobile database with the server.
PT0981128
Asia Pacific Institute of Information Technology 40
Daily Expense Tracker
CHAPTER 4: RESEARCH METHODS 4.1 Primary Research Primary research was conducted by the developer during the initial phase of the system for gathering the information from the potential users of the system so that the developer can make a system that is directly acceptable by its users; primary research was conducted by following techniques.
4.1.1 Techniques used In order to gather the data techniques used in this system are already defined in the section 4.1 and they are questionnaire, interview and by observations.
4.1.1.1. Questionnaire Questionnaire (Refer to appendices for questionnaires) is a part of data gathering technique in which a series of questions designed to gather specific information. Questionnaires will specially be designed for users who would use the system which will include people who are interested in social networking websites. They have few advantages as Questionnaire – 4.1.1.1 Can be used to collect both qualitative and quantitative data 4.1.1.2 Can be distributed manually or electronically 4.1.1.3 Can reach a vast number of people regardless of physical location or geographical dispersion 4.1.1.4 Can be distributed quickly and cheaply 4.1.1.5 Can be used when human and financial resources are not available to conduct interviews 4.1.1.6 Why Questionnaires? As this application is targeting a large number of persons who are going to use the proposed system, so they are enormous in number, so it is not possible to take interview of them because it will be very time consuming. These are some reasons for using Questionnaires4.1.1.6.1. The analysis of questionnaire is most efficient than other techniques as we can draw the graphs and analyse the data. 4.1.1.6.2. It can reach a vast number of people regardless of physical location or geographical dispersion. 4.1.1.6.3.
It can be distributed quickly and cheaply.
PT0981128
Asia Pacific Institute of Information Technology 41
Daily Expense Tracker 4.1.1.2. Interview Interview (Refer to appendices for Interview) is a part of data gathering technique in which a series of question asked face to face from users of the system, designed to gather detailed information. They have few advantages as Interview Can be used for evaluating information needs as interview will allow us to gather detailed information about functionalities of project Can be used for gathering knowledge about perceptions of the people about social networks and their usual habits 4.1.1.2.1. Why Interview? It provides us with immediate an response which saves the developer’s precious time It allows participants to express themselves in their own words It allows the collection of a large volume of rich data It allows discussion, probing and unexpected insights It is best for investigating problems
4.1.2. SAMPLE QUESTIONARRIE AND INTERVIEW QUESTIONS 4.1.2.1 Sample questionnaire and its justification
Question 1
Justification
Question 2
Justification
Question 3
PT0981128
1. Which type of System is currently used by you to save daily expenses? Desktop Application Web Application Mobile Application Spreadsheet(Note book) This will help in understanding that which design interface is more understandable to the user and what are the features that the proposed system must contain.it will also help the developer to customize the options which is to be provided to the user. Maps with SF1 Which type of System would you like to use for saving your daily expenses? Desktop Application Web Application Mobile Application Note book This will help the developer the mindset of the user whether the user wants to run with the technology or just want to remain where he/she is. If the user replies mobile application then most of the questions marked by him/her will be valuable. Maps with SF1. 2. How is the Graphical user Interface of your Current expense saving system? Excellent Intermediate Satisfactory Not satisfied
Asia Pacific Institute of Information Technology 42
This will provide that how frequently the user access the services and it will help in designing the user interface like use of metaphors and shortcuts etc. Maps with SF1. Does your current system take automatic backup of your database? Yes No To find out whether their system takes automatic backup of the database or not. As in our system we are going to give an option for the same. Maps with CF8. Would you like to share your mobile with your family members so that they can save their expenses using their login id? Yes No This will help out the developer on his module i.e. registration whether multiple people on a single system is beneficial or not. Maps with CF1, CF3, CF5. Would you like to save income along with expenses in the system? Yes No Can’t Say Some people only wants to save their expenses not their income, so to find out how many such people are there, this question is relevant. Maps with CF2. Would you like to put limit on expenses of a particular item? Yes No On all Items Only on some particular item. This will lead to the fact whether the users really want to put limit on a particular item. Maps with CF4. Which type of alert you will prefer to get when you exceed your budget or any new notification comes? vibrate only vibration along with sound only notification no sound only sound To find out which type of notification method is beneficial for the user. Maps with CF9. Would you like to upload your pic in your profile? Yes No May be This would help in gathering the facts that how users will be going to like this feature. It will help the developer in finding solutions for CF3. Should there be an option to delete your data? Yes No Developer wants to know whether the users really want to delete their data or not. Maps with CF5. Which type of report will you prefer? Graphical Report Textual Both This will help developer to find the user choice i.e. on which type of report the developer really needs to work on. Maps with CF6. Would you prefer a cost effective mobile application rather than a website? Yes No This would help in gathering the facts that the proposed system will be an application or a website on the mobile. Maps with EF2. Would you like an option to be there as contact us? Yes No This would help in gathering the facts that by which way the users will like to contact the developer. Maps with CF10. Do you have internet accessibility in your mobile? Asia Pacific Institute of Information Technology 43
Yes No This would help in gathering the facts that the proposed system should be an online or an offline system, so according to the user choice, the developer will provide the functionality. Maps with SF3, EF4 etc. Would you prefer to visit the website FAQ before contacting the developer? Yes No May Be This will help the developer to be updated with the FAQ section of the website. Maps with CF12. Would you prefer Google-map to find a place? Yes No This would help in gathering the facts that how the users would like to find places, so according to the user choice, the developer will provide the functionality. Maps with EF4. Do you think that future prediction of this system will be going to help you? Yes No May be This would help in gathering the facts that whether the users would like to use the future prediction facility or not. Maps with EF1. How likely you will want to access your data from the net using web browsers Frequently Sometime More than 5 time a week. Less than 5 times a week This will help the developer to find out how much traffic will be there on the website of this system. Maps with CF1. How likely you will be using the task manger present in this system? Frequently Sometime More than 5 time a week. Less than 5 times a week This will help the developer to find out the usage of the task manager. Maps with EF3. Will you like to save your location from where you are saving your data? Yes No This would help in gathering the facts that whether the users would like to save their location along with the data or not. Maps with EF4. Will you like that fields which should be saved should be present in as a menu option. Yes No I will save it manually Can’t say This will help the developer to get the options for the development purpose. Maps with SF1. How likely you would like to change your wall paper with the help of this system? Yes No Developer can know from the facts of this question whether this option will be really helpful or not. Maps with SF2. Would you like to have an option to schedule the mail from your application? Yes No This would help in gathering the facts that whether the users would like to send a report from their mobile to mail for further works or not. Maps with SF3. Would you like to send SMS report to another mobile? Yes No
Asia Pacific Institute of Information Technology 44
Daily Expense Tracker Justification
Question 25
This would help in gathering the facts that whether the users would like to find out whether the user wants to share their data with someone else or not. Maps with SF4. What are the likely expenses you would like save?(Multiple choice) Auto, Bus, Train fare Bike Vegetables Room rent maintenance Electric bill Car maintenance Insurance Lodging charge Shopping Expenses Home Loan consultation EMI Medicines Investments Newspaper & Doctors magazines Cable/ DTH/ Medical Tests Broadband Fooding EMI
This would help in gathering the facts which will be customized for savings. Maps with SF1. Most of the user proposed that, please provide the application for free because they want their all friends to be online on this application.
TABLE 6SAMPLE QUESTIONAIRE AND ITS JUSTIFICATION
4.1.2.2 Sample Interview questions and there justification 1. Which type of System would you like to use for saving your daily expenses and why? ___________________________________________________________________________ Justification: This will help the developer the mindset of the user whether the user wants to run with the technology or just want to remain where he/she is. If the user replies mobile application then most of the questions marked by him/her will be valuable. Maps with SF1. 2. Which type of mobile device would you like to use for saving your daily expenses? Samsung mobile with Android OS Nokia Mobile with Android OS Any mobile with Android OS Other, please specifies: ____________________________________________________ Justification: This will help the developer to know whether the person will be interested to use this system or not. 3. What are the likely expenses you would like save?
Fooding Lodging Snacks Car maintenance
PT0981128
Auto, Bus, Train fare Electric bill Room rent Bike maintenance
Vegetables Rice Oil Petrol/Diesel
Asia Pacific Institute of Information Technology 45
Daily Expense Tracker Vehicle Loan EMI
Insurance premiums
Telephone/Mobile charge Investments
Personal Loan EMI
Medicines
Newspaper & magazines Donation/Charity
Shopping Expenses
Movies & Entertainment Home Loan EMI Doctors consultation Medical Tests
New accessories Cable/ DTH/ Broadband Other, please specifies________________________________________________ ______________________________________________________________________ TABLE 7 ITEMS TO BE SAVED IN SYSTEM
Justification: This would help in gathering the facts which will be customized for savings. Maps with SF1. 4. Do you still need to maintain any additional information as a Hardcopy? Yes No If yes then what are they? _________________________ Justification: This will help the developer to know whether some fields are missing or not in the system which is to be developed. Maps with SF1. 5. Do you see graphical reports in current system? Yes No If yes then what are they? ---------------------------------------------------------------------------------Justification: To find out what are those reports which can be implemented the developing system. Maps with CF6. 6. Do you think that future prediction of this system will be going to help you if yes please specify how? What type of predictions you will to use from this system? _________ Justification: this will give ifs and butts of future prediction and it can give us the some valuable information which we can implement in the system. Additional Requirements ________________________________________________________ Justification: To find out any missing attribute which the developer will enjoy in implementing it in the current system. Any Suggestions ________________________________________________________________ Justification: To get any suggestion from the user. As this system is going to be developed for the user’s point of view so there suggestion is most welcome in this system.
PT0981128
Asia Pacific Institute of Information Technology 46
Daily Expense Tracker 4.2 Secondary Research Secondary research means finding information from third-party sources such as marketing research, websites, magazine articles, and other sources that is already published or gathered by somebody.
4.2.1 Technical Research This part is going to research the proposed system technically means what programming language or database the system is going to use. Some technical research work includes:
4.2.1.1 Platform This part is going to research the proposed system about the programming language, the system is going to use. 4.2.1.1.1 Android Android is the world's most popular mobile platform. With Android you can use all the Google apps you know and love, plus there are more than 600,000 apps and games available on Google Play to keep you entertained, alongside millions of songs and books, and thousands of movies. Android devices are already smart, and will only get smarter, with new features you won't find on any other platform, letting you focus on what's important and putting you in control of your mobile experience. (corp., 2005) 4.2.1.1.1.1 Android OS programming Android powers hundreds of millions of mobile devices in more than 190 countries around the world. Android gives us a world-class platform for creating apps and games for Android users everywhere, as well as an open marketplace for distributing to them instantly. (NA, Android, the world's most popular mobile platform, n.d.)
PT0981128
Asia Pacific Institute of Information Technology 47
Daily Expense Tracker
TABLE 8 ANDROID DEVELOPERS
“Every day more than 1 million new Android devices are activated worldwide.” (NA, Android, the world's most popular mobile platform, n.d.) Android is an open source mobile operating system that is based on the Linux kernel. Using Android, device manufacturers can customize the OS to suit their particular hardware design, thereby allowing them to innovate without limitations. For developers, Android programming uses the Java programming language, and familiarity with the language immediately opens the platform to every Java programmer in the world. 4.2.1.1.1.2 Why Android? Android Support with Google-Map: Android and Google Map both are initiatives of Google itself and for ease of use they
have provided the packaged libraries bundled with Android platform
so use of Google-Map in android application is without compatibility issues, exceptions and well PT0981128
Asia Pacific Institute of Information Technology 48
Daily Expense Tracker defined so that no performance issue occurs as in mobile systems performance sometime causes application to crash. Further why android has been discussed under section 3.2.1.1.2.
FIGURE 9ANDROID LIFE CYCLE (JAMES STEELE, 2010)
Refer to 4.2.1.1.3 for more language details Android uses Java Language which is an object oriented language enriched with features of4.2.1.1.1.4 Multithreading A program or process can contain multiple threads that execute instructions according to program code. Like multiple processes that can run on one computer, multiple threads appear to be doing their work in parallel. Implemented on a multi-processor machine, they actually can work in parallel. Unlike processes, threads share the same address space; that is, they can read and write the same variables and data structures. . (IBM Team, 2006) 4.2.1.1.1.5 Handler A Handler allows sending and processing Message and Runnable objects associated with a thread's MessageQueue. Each Handler instance is associated with a single thread and that thread's message PT0981128
Asia Pacific Institute of Information Technology 49
Daily Expense Tracker queue. When user creates new Handler, it is bound to the thread / message queue of the thread that is creating it -- from that point on, it will deliver messages and runnable to that message queue and execute them as they come out of the message queue. (Google Team, 2007)
4.2.1.1.1.6 Exception Handling Exceptional conditions in traditional environments often arise in situations such as division by zero or “file not found,” and they must be managed with clumsy and hard-to-read constructs. Java helps in this area by providing object-oriented exception handling.
4.2.1.1.1.7 PACKAGES USED 4.2.1.1.1.7.1 in Android
Packages
Uses
com.dkg.fyp;
This is the core package crated by the developer. As every android needs a package name with ‘com’ then company name ‘dkg’(its developer name) and then system name ‘fyp’(final year project).
Android.app android.app.Activity;
The Activity class takes care of creating a window Services which run in background and they can be started and stopped by activity classes. There are various methods in this class e.g. onCreate, onPause etc.
For reading the data, received from Apache server and subsequently for throwing errors List, ArrayList and TreeMap is used to store the data into file and get it one by one.
To read and write data from file. java.io java.io.BufferedReader; java.io.IOException; java.io.InputStreamReader; java.io.FileOutputStream; java.io.File; java.io.UnsupportedEncodingExcepti on; For receiving HTTP response org.apache.http org.apache.http.NameValuePair; subsequently sending the data to server. org.apache.http.message.BasicName ValuePair; org.apache.http.params.HttpParams; org.apache.http.impl.client.DefaultHt tpClient; org.apache.http.impl.client.BasicRes ponseHandler; org.apache.http.client.utils.URLEnco dedUtils; org.apache.http.client.methods.Http Post; org.apache.http.client.methods.Http Get; org.apache.http.client.entity.UrlEnco dedFormEntity; org.apache.http.client.ResponseHan dler; org.apache.http.client.HttpClient; org.apache.http.client.ClientProtocol Exception; org.apache.http.NameValuePair; org.apache.http.HttpResponse; android.database android.database.SQLException; PT0981128
and
To access the various criteria’s, queries, and data from the SQLLite database.
Asia Pacific Institute of Information Technology 51
and text spans on the screen. You can use these classes to design your own widgets that manage text, to handle arbitrary text spans for changes, or to handle drawing yourself for an existing widget.
android.telephony android.telephony.SmsManager;
Provides APIs for monitoring the basic phone information, such as the network type and connection state, plus utilities for manipulating phone number strings. This package has been used to send sms.
The javax.servlet package contains a number of classes and interfaces that describe and define the contracts between a servlet class and the runtime environment provided for an instance of such a class by a conforming servlet container.
Asia Pacific Institute of Information Technology 53
Daily Expense Tracker 4.2.1.1.3 Justification for Selection of Programming Language 4.2.1.1.3.1 Mobile Application
Developer thinks that for developing propose Mobile application Android will be used, as Android is a feature-rich OS programming which contains Exception- Handling, Multithreading, Handlers which will help in developing the proposed project, also it is easy to learn. Android has Google-Map and JSP support as all of these three are backed by Google itself like Google-Map is packaged with the Android SDK so using Google-Map doesn’t poses any unwanted situations and performance issue also they have thoroughly checked and developed functions so it gives a great relax to the developer and maximize the chances of success. Android is well supported with JSP Android Support with Google-Map, Android has Multi-threading, Handler, Exception Handling, Encapsulation which can be used in the system for various functions like fetching friends data while showing their location on Google-Map. OS specific programming is critically needed as accessing the GPS of mobile device is an OS specific function also mobile notification and alert can only be customized if the developer is using OS specific programming. 4.2.1.1.3.2 Server-Side Application
Developer thinks that for developing proposed Server-Side application JSP-servlet will be used, as J2EE is a feature-rich server-side programming(and all we need from JSP-Servlet is to send and receive the data) which contains Exception- Handling, object oriented concepts, which will help in developing the proposed project. JSP has Android support as these two are backed by Google itself like JSP supports JSON objects that will be responsible for data communication between these two. JSP-Servlet with Android It is well-compatible with android data sending and receiving with the help of JSON objects which is dedicated for this particular operation. JSP-Servlet and Android both are well-backed by Google so there won’t be any compatible and performance issues It has all the capabilities like database connectivity, receiving and sending data, Validations needed for the project. It is well-supported with Android.
PT0981128
Asia Pacific Institute of Information Technology 54
Daily Expense Tracker 4.2.1.2 Framework Java
4.2.1.3 Programming Language Core Java, J2EE
4.2.2 Database Management System 4.2.2.1 MySQL MYSQL is a relation database application used to create computer databases. MYSQL provides an environment used to generate databases that can be accessed from workstations, the Internet, or other media. It provides the ability to host multiple implementations on a single system simultaneously. It gives Backup and restores facility. This automatically gives backups from one system to be automatically restored to one or more MYSQL systems. MYSQL provides many new and enhanced business intelligence features with high amount of security measures.
Scalability and Flexibility
High Performance
High Availability
Robust Transactional Support
Web and Data Warehouse Strengths
Strong Data Protection
Comprehensive Application Development
Management Ease
Open Source Freedom and 24 x 7 Support
Lowest Total Cost of Ownership (NA, Top Reasons to Use MySQL, 1995)
4.2.2.2 SQL Query SQL Query will be used for interacting with DBMS in order to fetch the data or maintain records in backend databases. Conclusion: Google-Support for JSP and MySQL in terms of database connectivity & proposed compatibility as Google itself uses JSP & MYSQL that increases the chances of success. PT0981128
Asia Pacific Institute of Information Technology 55
Daily Expense Tracker For Hosting Server, it is of very less Cost as for licensing it is GPL Open Source SQLlite Database
It will be used by developer as backend for the project or websites.
4.2.3 Software Development Methodology 4.2.3.1 Description The Advanced waterfall provides an orderly sequence of development steps and helps ensure the adequacy of documentation and design reviews to ensure the quality, reliability, and maintainability of the developed software. Usability Testing Design
Requirements Analysis
System Testing
System Design
Integration Testing
Architecture Design
Unit Testing
Module Design
Implementatio n FIGURE 10V MODEL
V-MODEL Selected Software Development Methodology: V-model
Advanced waterfall methodology follows V model in development stages. It is an extended waterfall model, adding more details on the validation and verification side. Vmodel gives relationship between each development stages and Testing stages. Reasons for selecting this methodology are: 4.2.3.1.1. The requirements are almost identified and can be changed and DET is such a system whose requirement will go on changing on time to time. 4.2.3.1.2. Any bug can lead back to the initial phase to the model. So it provides a great flexibility to the developer and as the technology used in this system is Android and developer is new to this technology as well, so bugs are inevitable. PT0981128
Asia Pacific Institute of Information Technology 56
Daily Expense Tracker 4.2.3.1.3. The Android technology is new and deep, the developer has less experience of development tool as mentioned above so there are more chances of going back to initial phases. 4.2.3.1.4. The developer needs to test at each milestone i.e. for example if the developer is working on reading data from computer, the developer will first have to test it so to perform searching on it. 4.2.3.1.5. The system will be used by a single user so it has to be specific according to the requirement. 4.2.3.1.6. This mobile application has its own specified requirements based on which the developer is going to build the applications, other phases such as design, coding etc. is done with proper testing keeping in mind the requirement specification of the application. 4.2.3.1.7. In v-model developer and tester works in parallel. So developer can test it while implementation and design phase.
4.2.3.2.
Phases of V-Model
This methodology has following phase that developer will follow while developing the system. 4.2.3.2.1. Requirement Analysis- This is the first step in the verification process. During this stage, the developer is not going to discuss how the system is to be built, but it will be a general discussion and user requirements document is put forth. This document will be information regarding the system function, performance, security, data, interface, etc. This document is required by business analysts to transmit system function to users. Therefore, simply be a guide. (NA, Waterfall Model, n.d.) 4.2.3.2.2. System Design-Like the name of the phase suggests, here the possible design of the product is formulated. It is formulated after keeping in mind the requirement notes. While following the documents, if there is something that doesn’t fit right in the design, then the user is made aware of it and changes are accordingly planned. 4.2.3.2.3. Architecture Design-The architecture design, also known as the computer architecture design or the software design should realize the modules and the functionality of the modules which have to be incorporated. 4.2.3.2.4. Module Design-In the module design, the architectural design is again broken up into sub units so that they can be studied and explained separately. The units are called modules. The modules can separately be decoded by the programmer. 4.2.3.3. PT0981128
The Validation Phases of the V model (NA, Waterfall Model, n.d.) Asia Pacific Institute of Information Technology 57
Daily Expense Tracker 4.2.3.3.1. Unit Testing-A unit in the programming system is the smallest part which can be tested. In this phase each of these units are tested. 4.2.3.3.2. Integration Testing or Interface Testing-In this phase the separate entities will be tested together to find out the flaws in the interfaces. 4.2.3.3.3. System Testing-After the previous stage of interface testing, in this phase it is checked if the system meets the requirements that have been specified for this integrated product. 4.2.3.3.4. Acceptance Testing-In the acceptance test, the integrated product is put against the requirement documents to see if it fulfills all the requirements. 4.2.3.3.5. Release Testing-It is in here that judgment has to be made if the product or software which is created is suitable for the user. 4.2.3.4 Justification After some deliberation and discussion the developer settled upon using Waterfall Model for the development of this system. The most tempting factor for selection of V-Model is4.2.3.4.1. Stable project requirements: As in our project most of the user requirements are freeze at the time of PSF so it indicates a stable project requirements and Waterfall methodology completely supports a project which has requirements decided in advance. 4.2.3.4.2. Progress of system is measurable: After each step it produces the documentation and as the structure of our Final year project we need to submit the documentation after each phase so it will be best suitable. 4.2.3.4.3. Strict sign-off requirements: As the developers goal will be to satisfy the user and until the user will be satisfied the developer will be providing the user desired functionalities and proper features so this methodology will be best suitable. 4.2.3.4.4. The emphasis on requirements and design before writing a single line of code ensures minimal wastage of time and effort and reduces the risk of schedule slippage, or of customer expectations not being met. 4.2.3.4.5. In modified waterfall model life cycle phases are permitted to overlap. Because of the phases overlap, a lot of flexibility has been introduced in the modified waterfall model in software engineering. At the same time, a number of tasks can function concurrently, which ensures that the defects in the software are removed in the development stage itself and the overhead cost of making changes to the software before implementation is saved. (Satalkar, 2010) PT0981128
Asia Pacific Institute of Information Technology 58
Daily Expense Tracker 4.2.3.4.6. Making changes to the basic design is also possible, as there are a number of phases active at one point of time. In case there are any errors introduced because of the changes made, rectifying them is also easy (Testing can be done). This helps to reduce any oversight issues.
Time Division Starting date of the project: 31st July 2012 Ending date of project: 30th April 2013 Total Duration: 33 Weeks Project Definition (Concept and operation) Duration: 4 week 31/07/12 - 03/09/12 a. Submission of Abstract Draft Proposal Project Planning (In Concept and operation & Requirement) Duration: 3 week 20/08/12-03/09/12 a. Project Proposal Form Submission b. Work Breakdown Structure (WBS) Schedule and Time Estimation. c. Other Project Management Activities. d. Acceptance Test Plan Requirements Engineering (Requirement and Architecture) Duration: 3 week 03/09/12-21/09/12 a. Identify Project Specifications b. Project Specification Form c. Data Gathering through Academic and Primary Research d. Data Gathering Through Primary Research e. Requirement Analysis f. System Test Plan and Acceptance Test Plan System Design (Detail Design) Duration: 13 weeks (22/09/2012-28/12/2012) a. Database Design c. Interface Design d. Navigational Design e. Integration Test Plan Developing the System (In Implementation) and doing Testing and Evaluation Duration: 16 weeks 02/12/12-23/03/13 a. Developing User Interface and Populating with Contents b. Implementation of Website Module. PT0981128
Asia Pacific Institute of Information Technology 59
Daily Expense Tracker c. Implementation of WAP module. d. Integration of modules into one Single System. e. Unit Testing Each Module as Described in the Test Plan. f. Integration Testing- After each Iteration. g. System Testing- Once the Complete System is ready. h. Interface Testing and Acceptance testing. i. Releasing the System for Beta Testing. j. Making Changes according to the Beta Test Findings. Project Ending (In System Verification And Validation) Duration: 4 weeks 24/03/1329/04/13 a. Optimizing the Entire System for Performance. b. Submission of the Finished Product.
4.3 Critical Evaluation of Research After going through the research work developer was able to find out the in-depth knowledge of the languages which has been used to create the system. This system has been developed on Android OS which supports core java. From core java value is passed into J2EE web application and the returned data is again shown on whenever required. The data base which has been used in this system are SQLLite for offline tasks e.g. Task Manager and MYSQL database for online tasks. Tomcat Apache has been used as a server which communicates between MYSQL database and Android Emulator.
PT0981128
Asia Pacific Institute of Information Technology 60
Daily Expense Tracker
CHAPTER 5: ANALYSIS & DESIGN 5.1 Questionnaire and Interview Questions Refer to appendices for analysis of questionnaire & interview question
5.1.1 Critical Evaluation of Questionnaire and Interview Questions After analysis of questions, the developer concluded on some points which are as followsThe developer has decided to make the system for offline using SQLLITE database and online using MYSQL database. Developer has decided to make the system for Android device with higher configuration than Android version 2.0 and for desktop and other devices with the help of web application. Multiple logging has been provided in a single system. Along with the expense; income, credit and debit will be saved in the system. The developer has decided to provide metaphors for increasing learning ability also the developer will try to provide shortcut-keys, so that users can get quick access of the application. The developer has decided to provide limit on the expenses so that if the users crosses the limit it will generate a notification reminding the user has crossed the limit of the month. The developer will provide an option to upload the profile pic in the system. Developer will be providing both types of reports i.e. graphical as well as textual report. Developer has decided to provide the option to view the location where the expense was saved using latitude and longitude, which will be used in future for visiting the same location using Google map. The developer has decided to provide the future saving prediction feature in this system. Developer will be providing SMS feature in the system so that user can send the expense report to another mobile.
PT0981128
Asia Pacific Institute of Information Technology 61
Daily Expense Tracker 5.2 Quantitative Analysis
QA1
Primary Research Customization
QA2
Notification
QA3
Reports
QA4
Mobile Version
QA5
Task Management
QA6
Future Prediction
QA7
Mobile Application
QA8
Web Application
QA9
Send Report to others
QA10
Save Income
QA11
Limit on expenses
QA12
Upload Pic
QA13
Delete option
QA14
Google Map
PT0981128
Analysis 40% of user wants to filter the data, so developer analyzes searching facility should be provided 40% of user wants to receive notification, so developer analyzes Notification facility should be provided 100% of the users wants to have a medium by which they can easily analyzes the data so developer analyzes Report functionality should be included 100% of users want to have a similar system for handheld devices, so developer analyzes than Mobile Version of System should be included. 40% users face difficulty in managing tasks so developer analyzes the problem and included Task Manager. 60% of users wants to know the future saving, developer analyzes the problem and decided to include Future Prediction functionality 40% users wants to save their expense on Mobile so developer has developed the system on Android Mobile. 40% users wants to view the reports and save the expenses on web also, so the developer has developed web application also. 50% users wants to send their reports to others e.g. guardians so the developer has given the option to send message and email. 80% of the user wants to save their income as well with the expenses So the developer has provided the save income facility. 40% of the users wants to put limit on their expenses so the developer has provided this option under account setting. As only 20% users want to save their pic on mobile as profile pic. So the developer has not given this option in this system. So that the system will be light and efficient. 70% users doesn’t wants to delete the data as it might cause a security problem in future so developer has not provided this option. 60% users wants to view the location from where they saved the expense, So the developer has provided the option to view location on Map.
Asia Pacific Institute of Information Technology 62
Daily Expense Tracker 5.3 Analysis to Requirement Traceability Q no./
E
S
S
S
S
F1 F2 F3 F4 F5 F6 F7 F8 F9 F1 F2 F3 F4
F
F
F
F
alities
1
2
3
4
Q1
X
Q2
X
Q3
X
Function
C
C
C
C
C
C
Q4 Q5
C
C
C
E
E
E
X X
Q6
X
X
X
Q7
X
Q8
X
Q9
X
Q10
X
Q11
X
Q12
X
Q13 Q14
X
X
Q15 Q16
X
Q17 Q18
X X
Q19
X
Q20
X
Q21
X
Q22
X
Q23
X
Q24
X
Q25
X
I1
X
I2 I3
PT0981128
X
Asia Pacific Institute of Information Technology 63
Daily Expense Tracker I4
X
I5
X
I6 I1-I6 : Interview Questions Q1-Q25: Questionnaire CF1-CF9: Core Functionalities SF1-SF4: Special Functionalities EF1-EF4: Enhanced Functionalities TABLE 10 TRACEBILITY MATRIX BETWEEN QUESTIONAIRE AND FUNCTIONALITES
5.4 Critical Evaluation of Analysis After the analysis of the questionnaire the developer has come to the point that to make a system efficient and handy a suitable data gathering technique must be used. And hence after the analysis developer has found answer of many questions on which he was not sure about. Initially the developer had thought of the system which will consist of only saving and that too on webserver but according to the feedback of the users, he decided to make it for saving credits and debits as well and make the system for both offline as well as online. Developer has reached the conclusion because of the feedback of the users which has been gathered by the questionnaire and interview questions.
PT0981128
Asia Pacific Institute of Information Technology 64
Daily Expense Tracker
CHAPTER 5 (PART-2): DESIGN After completing the analysis developer collects sufficient amount of data to model the system. Requirement models allow people to share a common vision of solving the system before the actual implementation. They confirm that the system is flexible enough to accommodate the level of quality of future business needs. Based on the needs of users and the detailed analysis of a new system, the new system has been designed. This is phase System Project, which is the most crucial step in developing a system. This developer will provide Structural Design System normally, the design proceeds in two stages Preliminary or general design and Structure or detailed design Preliminary or general design: In the preliminary or general design, the features of the new system are specified. The costs of implementing these features and the benefits to be derived are estimated. If the project is still considered to be feasible, we move to the detailed design stage. Structure or Detailed design: In the detailed design stage, computer oriented work begins in earnest. At this stage, the design of the system becomes more structured. “Structure design is a blue print of a computer system solution to a given problem having the same components and interrelationship among the same components as the original problem. Input, output and processing specifications are drawn up in detail.” (Anonymous, 2010). So Developer analyzes the requirements and problem and decided to provide Structural Diagram or Detailed Design for these functionalities.
5.2 Traceability Matrix between Analysis and Design Requirement Analysis
Profile Management Registration DET Task Manager Report Change Wall Paper Future Prediction Send Report View Route
TABLE 11 TRACEABILITY MATRIX BETWEEN ANALYSIS AND DESIGN
PT0981128
Asia Pacific Institute of Information Technology 65
Daily Expense Tracker 5.2.1 Design Methodology Used There are basically two types of design methodology we have: function-oriented and object oriented design. Here developer selects Object Oriented Design Concept.
5.2.1.1 Justification of Selecting OO Design The emphasis on defining software objects and how they collaborate to fulfill the requirements. As a developer uses an object-oriented language (Java) as a platform for this application so that glass is removed from the system needs to be modeled in the form of classes and objects. As a developer result concludes that the DET has to be designed using principles of objectoriented design. To implement the project developer chose to make use of UML (Unified Modeling Language). Why use UML? Developer chooses UML because he has chosen Object Oriented Design Methodology.
5.2.2 Use Case Use case diagram is used to describe the functionality of the system, which mainly include the target users and perspective. It helps in the search for “who is using the system, what are the common scenarios and what they are trying to achieve your goals or” instead of how it will achieve. After analyzing the system, use case are used by developer to document the requirements of the proposed system. Use cases are divided according to different scenario that shows how the system interacts with the user. In the case of use-case we do not use any technical language, so they are easy to understand. Use cases are not used to represent the inner workings of the system, but showing the step that the user will take to perform any specific task. The system requirements will be evident after developing use cases of different modules. Below are additional reasons why you need to indicate use cases for project developers 1. Use Cases helps in finding out the challenges involved in making the Project Planner System and to decide the functionalities to be included in system. 2. Use cases will be helpful for non-technical person to understand the flow of system. 3. Moreover, to give the overview of the system it is necessary to include use case.
PT0981128
Asia Pacific Institute of Information Technology 66
Daily Expense Tracker 5.2.2.1 Use Case Diagrams 5.2.2.1.1 Use case of the whole System Web page
Android
«extends»
«extends»
Registration
«extends» DET
<>
Expenses
«uses»
Put limitation
«extends»
«uses»
«extends» Income
Task manager
«extends»
«uses»
<> <>
«uses»
Debit
<> Profile management
«uses» Credit User
«uses» Future Prediction Login
<> «extends» «uses»
Report
Credit Report
«extends» Expense Report
«uses» «extends»
«uses»
«extends» Income Report «extends» «extends»
Debit Report
Send Report
View Route
cummulative Report
Change Wallpaper Graphical Report
FIGURE 11 USE CASE OF WHOLE SYSTEM
5.2.2.1.1.1 Overview of use case PT0981128
Asia Pacific Institute of Information Technology 67
Daily Expense Tracker UCID
Use Case Name
Description
4
Profile management
User can manage their profile with this functionality
1
Registration
The user will feed personal details into the System
2
DET
DET can manage the information of expenses
3
Task manager
User can save and manage the tasks in the system.
5
Report
User can view the various reports like expense, income etc.
6
Change Wall Paper
User can click a pic and use it as wallpaper
7
Future Prediction
User can view the expected future savings
8
Send Report
User can send the expense report to another mobile.
9
View Route
User can view the route from the current location to that location where the expense or task was saved.
TABLE 12 OVERVIEW OF USE CASE
5.2.2.1.1.2 Actors and Descriptions
Actors
Description
App-User
Main actor of the system.
Administrator
Admin performs the management of the whole system. Admin backups the data periodically and manage the site.
TABLE 13 ACTORS AND DESCRIPTIONS
PT0981128
Asia Pacific Institute of Information Technology 68
Daily Expense Tracker 5.2.2.1.1.1.1 Use case of Profile Management
Login «extends»
<>
Delete Image
«extends»
View
«extends»
«uses»
Upload & Manage Image
Profile management «extends»
Change password «extends»
Account setting
«extends» Update Data
USER
«extends»
Change backup time «extends»
Backup Setting
«extends» Manually «extends»
Never
FIGURE 12 USE CASE OF PROFILE MANAGEMENT
Use Case ID Name Goal Description
UC-01 Profile management User can manage their profile, User can manage their profile and do changes whenever required. Application-User(Customer)
User has registered into the System User is Logged into the system User successfully updates his/her own details. User logs into the system User views the profile. User is able to edit the profile. User logs in the web application and User logs into the web application and updates his/her profile.
TABLE 14 USE CASE- PROFILE MANAGEMENT
PT0981128
Asia Pacific Institute of Information Technology 69
Daily Expense Tracker 5.2.2.1.1.1.2 Use case for Registration
Web page «extends» «uses» «extends» Registration
Android
USER FIGURE 13 USE CASE DIAGRAM OF REGISTRATION
Use Case ID Name Goal Description Actor(s) Assumption Pre-Condition Post-Condition Happy Pathway
Alternate Pathway(s)/Exception
UC-02 Registration User registers in the system. User can register into the system and cerate account. Application-User(Customer) User has internet connection available User has installed this app. User is Logged into the system User successfully operate the system User can do all activity in particular time. 1. User register into the system 2. User can manage the expenses properly. 3. User gets feedback of registration successfully done. 1. User can register through the web application.
TABLE 15 USE CASE OF REGISTRATION
PT0981128
Asia Pacific Institute of Information Technology 70
Daily Expense Tracker 5.2.2.1.1.1.3 Use case of DET Login
<>
Expense
«extends»
«uses»
<>
«extends»
DET
Income
<>
Put Limitation
«extends»
<> «extends»
USER
Credit
<>
Debit
FIGURE 14 USE CASE DIAGRAM OF DET
Use Case ID Name Goal Description Actor(s) Assumption Pre-Condition Post-Condition Happy Pathway
Alternate Pathway(s)/Exception Pathway(s):
UC-03 DET To manage users daily expenses It is used to save expenses and view reports. Application-User Users are using this application to manage their daily expenses. User has logged in the system. User can save the records 1. User uploads the data(all their expenses) 2. Admin runs the monitor application 3. Admin analyzes the reports 1. No user uploads the data means no one is using application 2. User can enter all detail of their daily expenses.
TABLE 16 USE CASE OF DET
PT0981128
Asia Pacific Institute of Information Technology 71
Daily Expense Tracker 5.2.2.1.1.1.4 Use case of Task Manager
Delete Task
<>
«extends»
Add Task
«extends» «uses» Task manager
<> «extends» USER
View Incomplete Task
«extends» View «extends»
View complete Task
FIGURE 15 USE CASE DIAGRAM OF TASK MANAGER
Use Case ID Name Goal Description Actor(s) Assumption
UC-04 Task manager View all task details and add the task. This is for view, create and delete the task. Application-User(Customer) User has installed this application on his device. User has added the task. User successfully creates and delete task. 1. User creates the task. 2. User manages and deletes the task.
Pre-Condition Post-Condition Happy Pathway Alternate Pathway(s)/Exception Pathway(s): TABLE 17 USE CASE OF TASK MANAGER
PT0981128
Asia Pacific Institute of Information Technology 72
Daily Expense Tracker 5.2.2.1.1.1.5 Use case for Reports Login
<>
Credit Report
«extends»
«extends»
«uses»
Expense Report
Report «extends»
«extends»
User
Income Report
«extends» «extends»
Debit Report
cummulative Report
Graphical Report
FIGURE 16 USE CASE DIAGRAM FOR REPORT
Use Case ID Name Goal Description Actor(s) Assumption Pre-Condition Post-Condition Happy Pathway
PT0981128
UC-05 Report User can view reports. User can view all the reports of DET e.g. credit report, debit report. User of the app User has already inserted some records in that month. User will have to login to the system. User views the list of expenses and detailed expense report of a particular item. 1. User views the expense, income, and credit and debit report. Asia Pacific Institute of Information Technology 73
Daily Expense Tracker
Alternate Pathway(s)/Exception Pathway(s):
2. User views the route to from current position to the destination where data was saved. User can view the report from the web.
TABLE 18 USE CASE OF REPORT
5.2.2.1.1.1.6 Use case-Change wall paper
Take Picture
<> «uses» «extends» Change Wallpaper
Set Wallpaper
USER FIGURE 17 USE CASE DIAGRAM-CHANGE WALLPAPER
Use Case ID Name Goal Description
UC-06 Change Wallpaper User can Change Wallpaper. User can click a pic and use it as wallpaper
User has saved some records in the system. User has access of internet. User has logged in the system User has saved some records in the system. User has viewed the future prediction. 1. User is able to view the future prediction.
User can calculate the future prediction manually.
TABLE 20 USE CASE DESCRIPTION-FUTURE PREDICTION
PT0981128
Asia Pacific Institute of Information Technology 75
Daily Expense Tracker 5.2.2.1.1.1.8 Use case-Send Report Login
<>
Send SMS
«extends»
«uses»
Send Report «extends»
Send Email
USER
FIGURE 19 USE CASE DIAGRAM-SEND REPORT
Use Case ID Name Goal Description
UC-08 Send Report Send reports on other mobile. User can send the expense report to another mobile.
User has saved a mobile no. in the app. User is logged in the app. Report is sent on the other mobile. 1. User is able to send report on other mobile.
TABLE 21 USE CASE DESCRIPTION-SEND REPORT
PT0981128
Asia Pacific Institute of Information Technology 76
Daily Expense Tracker 5.2.2.1.1.1.9 View Route
Income Report
«extends»
Credit Report
Login «extends»
«extends»
Debit Report
Detailed Report
<>
«extends»
<>
«extends»
Expense Report
«uses» «extends» View Route
Get Location More Reports
USER
FIGURE 20 USE CASE DIAGRAM-VIEW ROUTE
Use Case ID Name Goal Description
UC-09 View route User can view route User can view the route from the current location to that location where the expense or task was saved. User of the app
User has saved the record from mobile app. User has turned ON the GPS of the system. User is logged in the system. GPS is turned ON. User is able to view the route between source (current location of user) and destination (from where the record was saved). 1. User is able to view the route.
User can remember that location and use Google map to view the route.
TABLE 22 USE CASE DESCRIPTION-VIEW ROUTE
5.2.3
Sequence Diagram
PT0981128
Asia Pacific Institute of Information Technology 77
Daily Expense Tracker Why Sequence Diagram? Sequence diagrams model the flow of logic within your system in a visual manner, enabling you both to document and validate your logic, and are used for both analysis and design purposes. Sequence diagrams are the most popular UML artifact for dynamic modeling, which focuses on identifying the behavior within your system. FIGURE 21 SEQUENCE DIAGRAM FOR USER LOGIN-SD-01
User Login
o b jL o g in :L o g in
:L o g in
h ttp c lie n t:H ttp C lie n t
1 . c h e c k V a lid a tio n () 0 . s e n d D a ta (u s e r n a m e ,p a s s w o r d )
2 . c h e c k L o g in ()
3. S uccess
4 . L o g g e d In
PT0981128
Asia Pacific Institute of Information Technology 78
Daily Expense Tracker FIGURE 22 SEQUENCE DIAGRAM FOR USER REGISTRATION-SD-02
Asia Pacific Institute of Information Technology 79
Daily Expense Tracker FIGURE 23 SEQUENCE DIAGRAM FOR DET-SD-03
DET
Expense
Expense
Credit
Expense
SQLDb
User
save Expense
saveExpense()
success/failure
save Income
saveIncome()
success/failure
save credit
saveCredit()
success/failure
save debit
saveDebit()
success/failure
PT0981128
Asia Pacific Institute of Information Technology 80
Daily Expense Tracker 5.2.4
Activity Diagram Activity diagrams are typically used for business process modeling, for modeling the logic
captured by a single use case or usage scenario, or for modeling the detailed logic of a business rule. Why Activity Diagram? activity diagrams could potentially model the internal logic of a complex operation Activity diagrams are the object-oriented equivalent of flow charts and data flow diagrams (DFDs) from structured development. 5.2.4.1 Activity Diagram Android (AC-01) Activity Diagram (Android)
Expense Tracker
Registration
Change Wall Paper
Task Manager
Login [Login Failure] Completed Task
Add Task
View Task
[Login Success]
Reports
Expense
Expense
Account Setting
Expense Profile Management
Credit
Quick Expense Report
Income
Save Income Report
Credit Report Debit Report
Expense Report Quick Expense Report
VIew
FIGURE 26ACTIVITY DIAGRAM OF WHOLE SYSTEM (ANDROID)
PT0981128
Asia Pacific Institute of Information Technology 81
Daily Expense Tracker 5.2.4.2
Activity Diagram –Registration-(AC-02)
USER
SYSTEM
DET < >
Invalid Data
Enter Registration Details
Check Validations
Submit Details
Valid User
Reading data Login
DET
FIGURE 27 ACTIVITY DIAGRAM-REGISTRATION (AC-02)
5.2.4.3
Activity Diagram –DET-(AC-03) USER
SYSTEM DET < >
Login
Invalid Data
Check Validations
Login Details
Valid User
Reading data
Login
DET
Save Expense
Save Credit
Save Debit
Save Income
Invalid Data Save Data
Check Front End Validations Valid Data
Save Details
FIGURE 28 ACTIVITY DIAGRAM-DET-(AC-03)
5.3
Entity Relationship Diagram (ERD)
PT0981128
Asia Pacific Institute of Information Technology 82
Daily Expense Tracker
PK
USER
Login
Role Role_id
PK
Role ROLE_Description
FK1
USER_ID FK1
Username Role_id password security_qsn answer
USER_ID First_Name Middle_Name LastName Father_Name Gender DOJ DOB DOU Status
Asia Pacific Institute of Information Technology 83
Daily Expense Tracker 5.4
Class Diagram of Web Module
Class Diagram For Web Page HttpServlet +doPost() +doGet()
-Every Methods has two Parameters i.e. as (HttpServletRequest request, HttpServletResponse response) e.g registerSelf(HttpServletRequest request, HttpServletResponse response) and if not specified then return type is void. -To get details of Others in variables field check out ERD.
Debit spnDebit:Spinner etto, etDebitPrincipal, etTotalAmount, etNoInstallments,etOthersDebit:Edit Text dtExpectedpay:DatePicker btnSaveDebit:Button to, DebitPrincipal,TotalAmount, InstallmentType, ExpectedDor, NoInstallments, userid,othersInstallment,date:Strin g onCreate(savedInstanceState:Bundle):vo id
Credit spnCredit:Spinner etfrom, etCreditPrincipal, etTotalAmount,etDescription, etNoInstallments, etOthers:EditText etExpectedDor:DatePicker btnSaveCredit:Button from, CreditPrincipal, TotalAmount, InstallmentType, Description, ExpectedDor, NoInstallments, userid,othersInstallment,date:Strin g onCreate(savedInstanceState:Bundle):vo id
Asia Pacific Institute of Information Technology 85
Daily Expense Tracker 5.6
Relational Database Schema map After analyzing the entity relationship Diagram the following mapping has been done:
USER Table User id
First name
Last name
Gender
Doj
Dou
Role id
Status
ROLE Table Role id
Role
Role description
CONTACT Table Contact id
Village
State
Pincode
Country
Type(P/S)
User id
MOBILE Table Mobile id
5.6.2
Mobile No.
Type(P/S)
User id
Mapping the ERD to Relational Database The developer mapped the database designed from ERD to relational database model which
is implemented in RDBMS (MySQL). Mapping ensures that one entity can be stored only in one table and other table can be referenced through that entity by using foreign key or multi-value attributes.Developer found that none of the tables in the database have primary key that uniquely represent a table or multi-valued attributes. Therefore, developer mapped each entity with primary and foreign key.
5.6.2.1 Normalization It is process of efficiently organizing data in a database. It ensures two goals of the normalization process: Eliminating redundant data (Storing same data in more than one table Ensuring data dependencies make sense (only store related data in table).
5.6.2.2 Normalization Criteria: Functional Dependency A functional dependency is denoted by AB , between two set of attribute A and B that are subset of universal relation R which specifies a constraint on possible tuples that can form relation state r of R. The constraint is that for any tuples X1 and X2 in r they have X1[A] =X2[B], they must also have X1[B]=X2[B] Although normalization process is covered when ERD is converted into relations using mapping rules, there are still ways to improve efficiency by following the normalization process. PT0981128
Asia Pacific Institute of Information Technology 86
The Developer has normalized the tables up to 3NF with the following strategies. Normal Form
Test
Remedy
Un
Tables have non-atomic values in the After converting ERD into relational tables, none of the tables have multi
Normalized
columns.
valued attributes. They all pass the verification of UNF.
Forum (UNF) First No duplicity in the same table and separate As atomicity of value is the primary concern in this phase, all the relation has
1NF:
table for each group related data.
Normal
only atomic values. None have non-atomic values. Therefore, table passes the first normal form
Forum 2NF:
Second Remove subsets of data that apply to multiple However developer performed a responsible de-normalization in certain table
Normal
rows of a table and create relationship between due to vary nature of data.
Forum
tables using foreign keys.
3NF:
Third To meet all the requirement of 3rd Normal Developer found that as per the requirements, all the attributes are well
Normal
Form and remove all columns those are not describes by primary key. In other words there is no transitive dependency in
Forum
dependent on the primary key.
the table. Therefore, developer concludes that design compiles with 3NF.
Un-Normalize Table Useri
Name
fname
Gender
d
Do
Dou
j
Conta
Mobile
Village
State
Pincode
-
ct id
Contact
Role id
Role
Type
1
ABC,DE
JKl
Male
-
-
C1
11,22
DDD
FFF
13210
--
Primary
1
User
1
ABC,DE
JKl
Male
-
-
C2
11,22
SSS
JJJ
45687
--
Secondary
1
User
Daily Expense Tracker From the above table we can clearly see that name and contact are multivalued attribute. Atomicity is not maintained i.e. one value in one cell. So to make it in 1NF we need to make table atomic in nature as given below. Useri First_na
Last
Fna
Gende
Do
Contact
d
nam
me
r
j
id
me
Mobile
Villag
State
Pincode -
e
Contact
Rol
Type
e id
Role
e 1
ABC
DE
JKl
Male
-
C1
11
DDD
FFF
132103
---- Primary
1
User
1
ABC
DE
JKl
Male
-
C2
12
SSS
JJJ
456878
---- Secondary
1
User
In the above table to save primary contact details and secondary contact details user needs to save the same data e.g. first name, middle name etc. again and again. Therefore it is well understood that one task have to be repeated for each action. So there is nested relationship present in this table. So there is violation of normalization as data redundancy is there and a particular tuple has more than one non-atomic attributes present in the give un-normalized table. First Normal Form (1 NF) To achieve first normal form developer has to reduce duplicate data and eradicate all non-atomic attributes and nested relationship from the un-normalized table.
PT0981128
Asia Pacific Institute of Information Technology 88
Daily Expense Tracker Useri First_na
Last
Fna
Gende
Do
d
name
me
r
j
me
Dou
Contact
Mobile Village
State
id
Pinco
-
de
Conta
Role Role
ct
id
Type 1
ABC
DE
JKl
Male
-
-
C1
11
DDD
FFF
13210
---
Primar 1
User
y 1
ABC
DE
JKl
Male
-
-
C2
12
SSS
JJJ
45687
---
Secon
1
User
dary
Now in each cell there is just one value. Hence 1st NF is achieved here. In the table,{Userid,Contact id} are primary key in the table. Userid uniquely determine some of the attributes. So it determine partial dependency exist here. There is no full functional dependency as Contact id also determine attributes which violates principles of normalization. It determines there is no full functional dependency. Partial dependency Present: Userid{firstname, lastname, fname, gender, doj, dou} Contact id{mobile, village, state, pincode, country, contact type}
Solution (Normalization of tables into Second NF) User Userid
First name
Last name
Gender
Doj
Dou
Contact id
roleid
role
Contact Contact id
PT0981128
Mobile no.
Mobile type
Village
State
Pincode
Asia Pacific Institute of Information Technology 89
Country
Daily Expense Tracker Third Normal Form Third Normal Form is based in the concept of transitive dependency. Functional dependency AB in a relation schema R is a transitive dependency if there are set of attributes Z that is neither a candidate key no a subset of any key of R. Userid
First name
Last name
Gender
Doj
Dou
Contact id
roleid
role
Here role is directly dependent on roleid and there can be multiple mobile no.s for one user. So in order to convert it into 3NF we need to separate them as follow. Final tables looks like USER Table Userid
First name
Last name
Gender
Doj
Dou
Role id
Status
ROLE Table Roleid
Role
Role description
CONTACT Table Contact id
Village
State
Pincode
Mobile No.
Type(P/S)
User id
Country
MOBILE Table Mobile id
PT0981128
Asia Pacific Institute of Information Technology 90
Type(P/S)
User id
5.7
Physical Design of Table Structures
User Table Attribute
Description
Userid Fitst name Middle Name Last Name Father Name Gender Doj Dou Role id
Unique identification id Name of user Middle Name of user Last name of user Father’s name of user Gender of user Date of joining Date of last updation Designation of the user in organization. Status of user e.g. active or inactive
Status Constraints Primary Key Foreign Key Relationship Description
Data Type Size Int Varchar Varchar Varchar Varchar Varchar Date time Date time the Varchar
11 20 20 20 30 6
Varchar
Not Null Yes No No No
30
No Yes No No
8
Yea
User id Role id This table has relationship with Role table.
TABLE 23 PHYSICAL DESIGN OF USER TABLE
CONTACT Attribute Contact id Userid Village State Pincode Country Type
Description Unique id provided in contact table Unique identification id Village name of user State name of user Pincode of user Counry of user Primary address or secondary
Data Type Int Int Varchar Varchar Varchar Varchar Varchar
Constraints Primary Key
Contact id
Foreign Key
User id
Relationship Description
This table has relationship with User table.
TABLE 24 PHYSICAL DESIGN OF CONTACT TABLE
Size 11 11 20 20 6 30 9
Not Null Yes Yes No No No Yes
Daily Expense Tracker
CHAPTER-6 IMPLEMENTATION Implementation phase starts after the design phase, ie which are documented in the paper now is the time to implement these ideas in the real world scenario. In this section developer decides how to act or how to start the project. Developer uses the following tools to develop your project. Tools Used for Implementing and Modeling Development & Programming IDE
Case Tools
Others
1. JDK 1.6
1. MS Project 2007/13
1. MS Word 2013
2. Eclipse Helios (eclipse-jee-
2. MS Visio 2007/13
2. MS Power Point 2013
helios-win32) 3. AVD (Android virtual
3. Windows 7 Ultimate
device) Manager
4. Adobe Photoshop
{Target-Google API level
5. MoboRobo Software
8,Platform 2.2 and above} 4. SDK manager 5. Netbeans IDE 6.9.1 6. MYSQL 7. Adobe Dreamweaver CS5 8. Mozilla Firefox 6.0+ 9. Google Chrome 10. Apache Tomcat Server 6.0 11. Android Mobile (Karbonn A7+) TABLE 25 TOOLS FOR IMPLEMENTING AND DEVELOPING
PT0981128
Asia Pacific Institute of Information Technology 92
Daily Expense Tracker 6.1
Implementation Plan
Developer divide the project into modules and then set the priority for each module and module that has the highest priority, the developer focuses on the first and then proceed to the bottom. Below is the graphical representation shown as a developer divides its work and prioritize the different modules. Priority ranges 1-10 for one with 10 points has the highest priority.
IMPLEMENTATOIN PALN
Change WallPaper:5
Mobile System priority:10
WEB SYSTEM Priority:9
Registration:9
Save Income:8
Save Expense:8
Save Credit:8
Save Debit:8
Reports:7
Quick Expense Report:6 Future Prediction:5
Graphical Report:7
User Manual priority:4
Account Setting:6
Expense Reports:7
User Manual priority:5
Income Reports:7
Credit Reports:7
Debit Reports:7
Task Manager:8 Login:9
Daily Expense Tracker is a combination of two applications: a) Android Mobile Application b) Web Application Some of the steps that are required to be followed in order to complete the system are: 1. Foremost priority has been given to the Mobile application as the main purpose of this system is to make a mobile based saving app. Then login screen and registration screen has been given the highest priority as without it no one can enter the system. 1.1
Now after registration user will be able to complete his details if he has got time else
he can perform later on. PT0981128
Asia Pacific Institute of Information Technology 93
Daily Expense Tracker 1.2
After registration user will be able to perform the tasks given in app.
1.3
Next priority is given to save expense, income, credit and debit as these are the core feature of the system.
1.4
Same priority is given to task manager in android as it also requires a lot of coding
to do. Priority of 7 is given to all types of reports as they would be able to visible only after saving some records. 1.5
Quick expense and account setting has been given same priority i.e. of 6 because
they can be performed later on also. 1.6
User manual has been given the lowest priority because it has been created after the system is complete only.
1.7
Web system and mobile system both have almost same priority as after sending the data from mobile, web system will accept that system and pass it to database. START
Input Design Documents
Create Database
NO
Create Architecture
If Module Implementation is Completed Implement Modules
YES
Integrate System
Output Document For Testing
END
FIGURE 32 IMPLEMENTATION APPROACH
According to the flowchart of the developer starts executing the entry and document design, i.e. conducting research and analysis and document then create the database architecture and the implementation is done. Developer started application modules one by one and integrates all PT0981128
Asia Pacific Institute of Information Technology 94
Daily Expense Tracker modules as one. The result of the application will not work as input to the next phase of testing and after testing system is ready to be implemented in an organization.
6.1.1 Implementation Methods Test Driven Development Advantage
Avoid re-testing of codes and performed in less time. Disadvantage Testing require efficient approach
Pair Programming
Source Code Control & Build
Code typing and reviewing take place simultaneously Loss of productivity as require two people
Least complex way to integrate the project Sometimes may result in redundancy
Incremental Coding Approach Simplest method to follow a linear approach. As it is not iterative so it creates chances of Risk.
Justification of selected implementation method Developer analyzes the advantages and disadvantages of the above implementation methods and found that Test Driven Development method is best suitable for the project implementation. As it avoid retesting of codes and also favors the implementation of V-Model.
6.2
Program Standards Followed
6.2.1 Naming Convention
Developer
uses
English
descriptors
that
accurately
describe
the
variable/field/class/interface. e.g. btnSaveIncome
Developer uses terminology which is used in Current Scenario and related to the domain like task, project etc.
Developer avoid long names (<15 characters is a good tradeoff)
6.2.2 Documentation
Developer provide comments in between source code to make code more readable and understandable
6.2.3 Coding Technique
Exception handling technique has been used throughout the program.
PT0981128
Asia Pacific Institute of Information Technology 95
Daily Expense Tracker
Proper Indentation is provided by the developer
Developer tries to initialize the local variables when they are declared.
Developer uses if-else-else if statements in proper form
Proper Member function visibility is provided by developer as Private, Public and for global access static method is used
6.3
Implementation of Modules
Save Expense Module Implementation
Objective
This is the one of the main functionality of this system which will save all the daily expenses which the user will like to save. Along with the expenses the location of the place using GPS technology will also be saved so that if the user wants to know from where they saved this detail they can easily know. User can save credits, incomes and debits detail as well in this system.
Approach
START
Write Expense
Save Expense
END
Perform Action
Verify Action
Use Case Use Case has been provided in Analysis Section (UC-03) Code Snippet (in relation with above approach) Pseudocode for Saving Expense on Web Pseudocode for Saving expense on Mobile START START Variable expenseType,amount,description Variable expenseType,amount,description Fill Details of Expense from list Fill Details of Expense from list If Others is Selected then If Others is Selected then Make Others Textbox visible Make Others EditText visible Fill expenseType with value of others Fill expenseType with value of others edittext textbox Else Fill expenseType with value of selected list Else Fill expenseType with value of selected item
PT0981128
Asia Pacific Institute of Information Technology 96
Daily Expense Tracker list item END IF Fill all the text boxes Press Save button If error occurs then Msg=”Sorry data not saved” Else Msg=”Expense Saved” END IF STOP
END IF Fill all the text boxes Press Save button If data passed to server then Save it in database Else show error message END IF If error occurs then Msg=”Sorry data not saved” Else Msg=”Expense Saved” END IF STOP
SREENSHOTScreen Design is available in User Manual 6.7 User saves the expense from web application or android application. Query //to insert the data in expense table insert into expense(expense_type,amount,user_id,description)values(?,?,?,?) //to insert the data in income table. insert into income(income_type,source,amount,user_id)values(?,?,?,?) //to insert the data in credit table. insert into credit(credit_from,Installment_amount,total_amount,expected_dor," + "actual_dor,Installment_type,no_of_installment,user_id)values(?,?,?,?,?,?,?,?) //to insert the data in debit table. insert into debit(debit_to,Installment_amount,total_amount,expected_dt_giving," + "actual_dt_giving,Installment_type,no_of_installment,user_id)values(?,?,?,?,?,?,?,?)
Expense Reports Module Implementation To show the reports to the user Objective Pseudo code for generating reports Pseudo code for generating reports (Web) (Android) START START Send parameters to get report Send parameters to get report Check parameters Check parameters If parameters are valid then If parameters are valid then Fetch record from database according to Fetch record from database according to the required parameter the required parameter Print in table Store the details in a File Else “Print no record found” Else “Print no record found” END IF END IF STOP Read File till the end Print the records in listview STOP SREENSHOTScreen Design is available in User Manual 6.7 User fetches the report from the web. Query //selecting first 10 records from database SELECT * FROM expense where user_id='" + userid + "' ORDER BY expenseid DESC LIMIT 10 //to get the sum of total amount invested in expense SELECT sum(amount) FROM expense where user_id='" + userid + "' ORDER BY expenseid PT0981128
Asia Pacific Institute of Information Technology 97
Daily Expense Tracker //to select the sum of total amount of a month
select sum(amount) from expense where (DATEDIFF((select curdate()),dateofexpense)<=31) & (user_id='"+userid+"') & (month(dateofexpense)=month((select curdate()))) Package And Classes Used Packages java.io. Sr no. Class 1 BufferedReader
Code Snippet
Java.util Description
This class reads text from a character-input stream, buffering characters so as to provide for the efficient reading of characters, arrays, and lines
4
BufferedReader bfr = new BufferedReader(new InputStreamReader( openFileInput(infile)));// to read the contents of file A TreeMap provides an efficient means of storing TreeMap key/value pairs in sorted order, and allows rapid retrieval. TreeMap map = new TreeMap(); //to store the elemnts into name value pair. To pass the httprequest to the server JSONParser JSONParser jp = new JSONParser();//to pass the values on the server side from the android app. List The List interface extends Collection and declares
Code Snippet
the behavior of a collection that stores a sequence of elements. List params = new ArrayList();
2
Code Snippet 3 Code Snippet
params.add(new BasicNameValuePair("userid", userid));//to store the userid in name value pair.
Problems Occurred Graphical Report: when there is no internet connectivity or internet is slow then android activity which is drawing the graphical report crashes and hence user has to login again. Solution The developer tried to rectify the problem by using try and catch method to prevent system in from being crashed and show proper message.
6.3.1 More SQL Queries used in this system Queries Insert insert into login(userid,password,roleid)values(?,?,?) insert into user(userid,first_name,middle_name,last_name,status)values(?,?,?,?,?) insert into contact(userid,email,type) values(?,?,?) insert into contact(userid,email,type) values(?,?,?) Select //to get the maximum user id from login table select max(userid) from login PT0981128
Asia Pacific Institute of Information Technology 98
Daily Expense Tracker //to get the userid from login option view select userid from loginoption where username='" + username + "' or email='" + username + "' or mobile='" + username + "' //to select the first name of the user select first_name from userdetail1 where userid='" + userid + "' //for providing multiple logging option select * from loginoption where (username='" + username + "' or mobile='"+username+"' or email='"+username+"') && password='" + password + "' && roleid='2' //to select all the records from the expense table SELECT * FROM expense where user_id='" + userid + "' ORDER BY expenseid DESC LIMIT 10 //to get the sum of total amount from credit table of that month select sum(total_amount) from credit where (DATEDIFF((select curdate()),credit_date)<=31) & (user_id='"+userid+"') & (month(credit_date)=month((select curdate()))) //to get the sum of total amount from income table of that month select sum(amount) from income where (DATEDIFF((select curdate()),dateofincome)<=31) & (user_id='"+userid+"') & (month(dateofincome)=month((select curdate()))) //to get the sum of total amount from debit table of that month select sum(total_amount) from debit where (DATEDIFF((select curdate()),debit_date)<=31) & (user_id='"+userid+"') & (month(debit_date)=month((select curdate()))) Update //to set username for the user update login set username='"+username+"' where userid='" + userid + "' //to update user table update user set father_name='"+sfname+"',gender='"+gender+"',dob='"+sDob+"',nationality='"+Country +"' where userid='" + userid + "' //to update primary contacts update contact set mobile='"+mobile+"',district='"+District+"',village='"+village+"',state='"+State+"',pincod e='"+Pincode+"',town='"+Town+"' where userid='" + userid + "' && type='p' //to update secondary contacts update contact set mobile='"+SMobile+"',email='"+sEmail+"',district='"+sDistrict+"',village='"+SVillage+"', state='"+sState+"',pincode='"+sPincode+"',town='"+sTown+"' where userid='" + userid + "' && type='s'
PT0981128
Asia Pacific Institute of Information Technology 99
Daily Expense Tracker 6.4
Problems Encountered
Solution: Developer changed the name of Open() method in DBSql class to OpenConnection() by doing refactoring the whole name. The changes were made in the java File associated with it. But wherever that name was used in JSP file was not refactored. And was not showing error too. But after running that jsp file user encountered the following error. This error was resolved by the developer by changing the name manually.
6.5
Functionality not implemented
Upload/Downloading File(Image) from Mobile: As it is mentioned that DET will work on both mobile and web but it is unable to provide Uploading and downloading features on mobile as files may be very large and unable to support mobile data and developer is successful in getting path but unable to maintain contact with server for long time. Code for implementing file upload feature For Uploading/Downloading
int length = 0; byte[] filedata = new byte[0]; while (length < overallSize) {//converting the selected file to bytes byte[] data = new byte[CHUNK_SIZE]; int readAmount = fis.read(data, 0, CHUNK_SIZE); byte[] newFileData = new byte[filedata.length + CHUNK_SIZE]; System.arraycopy(filedata, 0, newFileData, 0, length); System.arraycopy(data, 0, newFileData, length, readAmount); filedata = newFileData; length += readAmount;} fis.close(); fileConn.close(); //here u can write a code to connect with the server for sending the selected file } catch (Exception e) { //showAlert(e.getMessage()); } finally { }
Explanation (What developer is trying to do)
Developer developed the code to download and upload the file from the web server. So to accomplish it he made a class called FileSelection having the property to find the actual path where the file is stored in mobile to upload. File Selection is calling execute() function when select the file. Execute() will help in append the file to the mobile screen and show the actual path and send data length to byteConverter where it will check length of data and send to the server for uploading. Developer is successful in searching the path and covert data to byte code but unable to communicate the server to the send the large bunks of file and download and save to mobile.
Upload Image) for Profile: Developer had thought to provide the feature of saving profile pic on the device app. But he was not able to do so because after clicking the photo from the camera he was not able to save it in database. Code for implementing image upload feature For making image the profile pic.
InputStream is = getResources().openRawResource(R.drawable.flower);//to get the pic which is already saved in app. bmp = BitmapFactory.decodeStream(is); wall = (Button) findViewById(R.id.bSet); take = (Button) findViewById(R.id.bTake); pic = (ImageView) findViewById(R.id.ivImage); Explanation (What developer is trying to do)
Developer is trying to find out the path of gallery and save the pic downloaded from the database to the sqllite database. And use it future.
6.6
Implementation of Complex Modules
PT0981128
Asia Pacific Institute of Information Technology 101
Daily Expense Tracker In the Primary research developer found that all the users wants to use the mobile version of this app. So Developer decided to develop this module after completing the web module. Android platform. Android is the world's most popular mobile platform. With Android you can use all the Google apps you know and love, plus there are more than 600,000 apps and games available on Google Play to keep you entertained, alongside millions of songs and books, and thousands of movies. Android devices are already smart, and will only get smarter, with new features you won't find on any other platform, letting you focus on what's important and putting you in control of your mobile experience. (NA, Android, n.d.) Problem Faced By Developer in Developing This Module
Main task is to maintain the consistency between Web and Mobile Module so Developer Design the whole system but how to maintain the integrity.
How to display data from server to mobile screen.
How to make the mobile work as offline system too.
Draw graphical report on mobile.
Solution
Developer had initially created separate jsp files to handle request send by web page as well
as android app but later on he realized that same file can do the work for both after making a little modification. E.g. instead of redirecting all requests to other pages developer has checked whether the request is coming from web page or android app. From android app one more parameter has been sent which is used to find from where the request is coming. And if the request is coming from android there is no need to redirect to other pages. Developer has just provided the output as response.getWriter().print(“insert success”). For more information please check the file CompleteRegistration.java line no.117. Code Snippet: if (from.equalsIgnoreCase("android") & i > 0) { response.getWriter().print("userid"); } else { response.sendRedirect("index.jsp"); }
Another solution which developer has found is the use of jquery. With the help of jquery user can pass the data to the servlet and get the output on the same file. Which has been
PT0981128
Asia Pacific Institute of Information Technology 102
Daily Expense Tracker shown in toast in android and Toast like alert box in web page. There is no need to redirect to other page and hence the web page is very light to be loaded.
Developer first Stores all the data on JSP page and then read data by input stream reader, here it stores data in byte form and then data is appended from byte array to stringbuffer, which is then finally displayed on screen. Pseudocode: START Read Data from Mobile form Pass data to jsp page Call desiredClass servlet Return data in NameValue Pair In mobile class read data through input stream Store all data in byte array in File Read data from array till it ends Now show the data in ListView one by one. Data displayed on mobile screen STOP
Problem with Graphical Reports: Developer finds in research that users want reports in both format texts as well as graph and to implement the graphical module developer has to do extensive research on it as java doesn’t provide any inbuilt tool for that and developer has to use third party tool to implement this functionality Solution Developer Uses third party tool Google Graph API to implement this module
PT0981128
Asia Pacific Institute of Information Technology 103
Daily Expense Tracker 6.7
User Manual
6.7.1 Android 6.7.1.1
Getting Started
Welcome to the daily expenses tracker, this is the first screen which the user will find after installing the det apk.
6.7.1.2
Registration Screen (Screen1)
Description: This is the registration screen here anyone can register. For registration user can fill this form, first name, email id and password are compulsory if in any case user miss the field it show error message. This is the first screen, as developer have only onetype of user so developer prepare one URL for the users User Registration: http://10.0.2.2:8080/AndroidFYP/Signup
PT0981128
Asia Pacific Institute of Information Technology 104
Daily Expense Tracker After signup user will be redirected to next screen which will have all the basic functionalities of DET If it is a first time for User than he/she can register himself in the system and then access his/her account. (Once an email id Registered same email id cannot be used for multiple accounts) Account Details: Email:[email protected] User name: durgeshrjkumar Password:123 6.7.1.3
Profile management
(Screen2)
This is the profile management Page where user manage their profile DET->DET Main Screen->Profile Management 6.7.1.4
Editing address (Screen 3)
Edit the address
Description: user can edit his/her contact details from the android det app also,this is the interface for the same. 6.7.1.5
PT0981128
DET main Screen After login (Screen 4)
Asia Pacific Institute of Information Technology 105
Daily Expense Tracker
Toast showing that the user has successfully logged in.
Description: This is the main screen of det which user will get after logging in the system. 6.7.1.6
Clicking picture by camera (Screen 5)
Description: This screen shows the demo of camera which captures the pic and set it as profile pic. 6.7.1.7
Save expenses (Screen 6)
Save expenses
PT0981128
Asia Pacific Institute of Information Technology 106
Daily Expense Tracker Description: User can save expenses category wise, almost same screen is for saving credit, income and debit. 6.7.1.8 Change Wall Paper (Screen 7)
Take picture set as wall paper
Description:In this page if user want to change the wall paper it can easily change wall paper by taking the picture . 6.7.1.9
Functionality under task manager(Screen 8)
Description: This screen is for user purpose only user can add task, view completed task, view incomplete tasks and delete the tasks. 6.7.1.10
PT0981128
Save task screen(Screen 9)
Asia Pacific Institute of Information Technology 107
Daily Expense Tracker
Save the task click on save button.
Description:when user create a profile then he/she wants to add the perticular task to save that task we press to save button to save the task. If in any case he/she not want to save the task he/she click on cancel button. 6.7.1.11
View task (Screen 10)
View task
Description: user
6.7.1.12
PT0981128
can view all task.
Detailed task description (Screen 11)
Asia Pacific Institute of Information Technology 108
Daily Expense Tracker Description: here user can see the full task decription.
To complete the task user has to just uncheck the checkbox. 6.7.1.13
Put limitations (Screen 12)
Description: here user can put the limitation of their report like if they want to send
daily,weekly or monthly report to the mobile no. saved. 6.7.1.14
View Report (Screen 13)
Reports
Description: users can view the report based on advance criterias which are already
defined in core functionlites of the system. 6.7.1.15
PT0981128
More report (Screen 14)
Asia Pacific Institute of Information Technology 109
Daily Expense Tracker
Showing more reporting options
Description: here user choice how they want to save their expenses . user save
weekly,monthly,quaterly,half yearly, yearly and date wise user can save their expenses. 6.7.1.16
Showing saving report of a half year (Screen 15)
Half Yearly Report
Description:if user want to see their income and expenses he/she can see which report they
want. 6.7.1.17
Searching Report for particular item (Screen 16)
Search report for a particular item.
PT0981128
Asia Pacific Institute of Information Technology 110
Daily Expense Tracker Descrption: when user save their expenses for many item but he/she want to get
report of
only particular item user enters that particular item and click on get reports button and see report for that particular item.here that particular item is “Room Rent” 6.7.1.18
Output for search report Screen 17)
User can search the report of their expenses
Description: Searched report of the user 6.7.1.19
Detailed report and option to view route (Screen 18)
Description: when user want to detail of report and also want to see from which place
user save their expenses user can click on view route button and see the route that location. 6.7.1.20
Showing route between current location and saved location. (Screen 19)
PT0981128
Asia Pacific Institute of Information Technology 111
Daily Expense Tracker
Current location of saving their expenses.
Description: a shortest route will be drawn between the two locations i.e. current and
saved location. 6.7.1.21
Report according to date(Screen 20)
User can view report date wise also
Description: if user want to see the reports between two dates then user selects two date
and click on get report and view report.
PT0981128
Asia Pacific Institute of Information Technology 112
Daily Expense Tracker 6.7.2 Web Application Website for daily expense tracker 6.7.2.1
Login Screen (Screen1)
Description: login screen of the user. In this screen new user can register and exsisting user can login with the valid credentials. 6.7.2.2 Home Page of DET(Daily expense tracker) (Screen2)
This page is the home page of my website here we click on any option it shows the all report. 6.7.2.3
PT0981128
Save Expense (Screen 3)
Asia Pacific Institute of Information Technology 113
Daily Expense Tracker
6.7.2.4
Save expense category
Report (Screen 4)
View Credit report
6.7.2.5
Select expense category to save (Screen 5)
Choose installment category for credit
PT0981128
Asia Pacific Institute of Information Technology 114
Daily Expense Tracker 6.7.2.6
View report (Screen 6)
Debit Report
Description: in this screen user can view the all record of the report . 6.7.2.7 Select expenses category (Screen 7)
Select expense category
Description: if user want to see report of any saved expenses item here a dropdown list in which we can select that item and see the report. 6.7.2.8 Cumulative Graphical report of a Month (Screen 8)
Description: User can see the cumulative report of the whole system in this pie chart.
PT0981128
Asia Pacific Institute of Information Technology 115
Daily Expense Tracker 6.7.2.9
Profile of user (Screen 9)
Description: add the information of user. User conation their primary address and secondry
address. 6.7.2.10
Viewing Quick expense report (Screen 10)
Description: user can veiw the report of all expenses.
Note: Apart from these main screen there are many other screens which are handy for the users. Those screens can be seen from the web application.
PT0981128
Asia Pacific Institute of Information Technology 116
Daily Expense Tracker 6.8
Site Map Home
Registration
Contact us
Login
Future pridiction
Profile
Setting
Search
Logout
Home
Expense
Income
Credit
Debit
Quick Report
Expense report
Intrest calculator
Account setting
Credit report
Debit report
Interest Calculator
Reports
Cumulative Report
PT0981128
Asia Pacific Institute of Information Technology 117
Daily Expense Tracker 6.9
Technical Manual
The following configurations are must for using Daily Expense Tracker: 1. Netbeans IDE 6.9.1 or above and JDK 1.6 is needed to run the program. 2. MYSQL database need to be connected to the system and its driver must be connected with IDE on which server will execute. 3. Wampserver 2.0 and above is needed to attach MYSQL database on it. 4. Though system needs to be uploaded as website but for the sake of demonstration purpose, developer is attaching database to the wampserver. 5. Developer is using Tomcat Apache 6.0 to deploy the web system so that it can be accessed by any of the browser present in the system or intranet. 6. To access the system in other computers user just needs to replace the “localhost” with the “ip address” of the system on which the system has been deployed. Also it can be accessed within the same intranet only. More description is given below. 7. Developer has used Eclipse Helios to run the android application. 8. Eclipse Helios must be updated before running the program and Android SDK Manager must be installed on it. 9. With the help of Android SDK Manager User needs to download AVD Google API level 8 and later versions. 10. With the help of MoboRobo software developer is using android mobile Karbonn A7+ for the development purpose.
PT0981128
Asia Pacific Institute of Information Technology 118
Daily Expense Tracker 6.9.1
NetBeans IDE installation Guide
STEP 1
STEP 2
Adding Apache Server Customize Netbeans
STEP 3
STEP 4
Customize Netbeans
STEP 5
PT0981128
STEP 6
Asia Pacific Institute of Information Technology 119
Daily Expense Tracker
Setting Apache Directory Location
STEP 7
STEP 8
Finally Installing Netbeans
PT0981128
6.9.2
Installing Wampserver for MYSQL database
STEP 1
STEP 2
STEP 3
STEP 4
Asia Pacific Institute of Information Technology 120
Daily Expense Tracker
STEP 5
STEP 6
STEP 7
STEP 8
Click on the wampserver icon in task bar and then click on phpMyAdmin
PT0981128
Asia Pacific Institute of Information Technology 121
Daily Expense Tracker
6.9.3 STEP 9
Exporting database in MYSQL Select database det and then press on export
Select database->check SQL and Save as File “det_db1”->then press go STEP 10
Go button Exported file
PT0981128
Asia Pacific Institute of Information Technology 122
Daily Expense Tracker 6.9.4
Importing det database in the MYSQL
STEP1: Press on Import button in main page
Choose the file “det_db1” And press go
STEP 2
Import successfully done!!
6.9.5
PT0981128
Running Android FYP web application(DET Web app)
Asia Pacific Institute of Information Technology 123
Daily Expense Tracker
Select the AndroidFYP project.
Run Main Project
Press F6 or click on run button 6.9.6
Running Android Application 6.9.7
STEP 1
Open eclipse helios->Go to help->Install new Software Add new Plugin “Android Plugin - https://dl-ssl.google.com/android/eclipse/” Select all i.e. Developer tools and NDK Plugins Press next and then accept the agreement and install these softwares.
PT0981128
Asia Pacific Institute of Information Technology 124
Daily Expense Tracker
After installing it developer will get the screen given below in java perspective.
Android SDK manager
Java Perspective
If this perspective doesn’t come then go to Windows->Preferences->Android then this screen will come
PT0981128
Asia Pacific Institute of Information Technology 125
Daily Expense Tracker
Set the path of of SDK location to android-sdks and then restart the eclipse. Restart option will come in File tab. Open SDK Manager and install Google API Level 8 and higher version if you want.
Now open AVD Manager
PT0981128
Asia Pacific Institute of Information Technology 126
Daily Expense Tracker
Create a new AVD by providing the requirements as below.
After entering the above details press OK. 6.9.8
Running Android Application
STEP 1: Go to File-> Import-> Select Existing projects into workspace.>Next
PT0981128
STEP2:Browse the project folder and select it And then press OK button.
Asia Pacific Institute of Information Technology 127
Daily Expense Tracker
STEP 3: Check the project and click finish. If any project with same name is already exsits there in the workspace then it will not be checked, so ensure there is no project with the same name in the same workspace.
STEP 4: Extend the FYP folder as seen in figure below. Then Open MainScreen.java
PT0981128
Asia Pacific Institute of Information Technology 128
Daily Expense Tracker STEP 5: Put the cursor in any .java file and enter ctrl+F11 to run the file. A new emulator(abc) which fulfills the requiremnet of the project will be opend automatically if there is no emulator present at current time. Then det will automaticallly be installed in the emulator.
6.9.9
Install the app in Android Mobile
STEP 1: Go to setting->Applications setting->Check Unknown Sources STEP 2: Go to setting->Applications setting->Development->Check USB Debugging STEP 3: Now Press ctrl+F11 in any .java file. Following screen will be shown STEP 4: Slect your device and then press OK. STEP5: Now DET will be installed on the users mobile.
6.9.10 Create APK File of det
PT0981128
Asia Pacific Institute of Information Technology 129
Daily Expense Tracker STEP 1: Select the project->Right Click-> Android Tools->Export Signed Application Package Then screen as below will come. Check on Create new Keystore: This keystore can be used later on. Enter a password-here the password is “admin123”
STEP 2: In the next step fill the details as given below Password is “det123456” Then press next
STEP 3: Now browse the folder where the .apk file will be saved.
PT0981128
STEP 5: This is the apk file. It can be installed via memory card.
Asia Pacific Institute of Information Technology 130
Daily Expense Tracker
6.9.11 Installing .apk File on Android Device STEP 1: User needs to have the USB Driver of that device installed on the system. Here developer has used MoboRobo software which supports all the android device
STEP 2: double click the .apk file User can see the permissions which the app requires.
PT0981128
STEP 3: click on install button after connecting the device via USB Cabel to the system.
Asia Pacific Institute of Information Technology 131
Daily Expense Tracker
Package Structure-Android
Package Structure-Web
6.10 Conclusion Developer goes through many of the problems while development stage and most of the problems are rectified. As developer uses some third party tools such as e-mail, Google chart, which is currently in demo for display purpose. Developer has made the system in such a way so that if it is not working any tools 3rd party it will not give the error and the user can continue to use the system on the Internet. Now the system is ready to be in the testing phase to finally find errors which still exists in the system.
PT0981128
Asia Pacific Institute of Information Technology 132
Daily Expense Tracker
CHAPTER-7 TESTING 7.1 Test Plan Testing is the process of Identifying defects and correcting errors, where a defect is any variance Between Current and expected result. It a specific part of the software development to check the robustness of software. It is used to evaluate-the reliability, usability, maintainability of software. Why to do Testing: •
Identify area of weakness in the system.
•
Establish degree of quality of the system.
•
Free from bus and system errors.
•
Improve consistency and efficiency of the developed system.
The strategy to cover the full system test of “Daily Expense Tracker” is described above. Developer just uses the system documentation to cover all the test cases, procedures and design. Some Users involve in this testing phase are Students of APIIT, Developer himself and the Group Members so that changes can be made according to user choice and a quality system can be provided to the user as the success of any system depends on the its quality and quality is depends on the customer satisfaction. The type of testing that is to be carried out is as follows 1. Unit Testing (White Box Testing & Black Box Testing) 2. Integration Testing 3. System Testing
4. User Acceptance Testing Point of Contact for Troubleshooting Purpose Name: Durgesh Kumar Designation: Project Developer Contact Number: +91-7206391375 Email id: [email protected]
PT0981128
Asia Pacific Institute of Information Technology 133
Daily Expense Tracker USERS INVOLVED IN THE TESTING
Durgesh Kumar (System Developer) is the test manager and analyst for the Project Planner System. Most of the tests are conducted by the developer itself. The other user which involved in the testing are mentioned in the test cases.
The implementation of test data along with reported errors and measures taken also listed below in the test cases.
PASS/FAIL CRETERIA The system must justify certain standard requirement for system pass/fail criteria. Some of the identified requirements are:
Daily Expense Tracker modules must work properly Response time of the system should be less than 30 sec GUI must be consistent and follow the HCIU principles Administrator must have control over the system and can do anything he wanted to do.
7.2 Unit Testing The primary goal of unit testing is to take the smallest piece of testable software in the application, isolate it from the remainder of the code, and determine whether it behaves exactly as you expect. Each unit is tested separately before integrating them into modules to test the interfaces between modules. Unit testing has proven its value in that a large percentage of defects are identified during its use. (Unit Testing, 2013) This testing is usually performed by the software developer while developing the software. The set of test cases output and input will determine whether it is according to the requirement or not. Unit testing is divided into two components White Box (also called Logical Testing) and Black Box (also called Functional Testing). Justification for Using Unit testing in the project It is done at the initial level. It is easy to locate any error easily as the size of module is enough. And it also avoids confusion and interaction of multiple errors in different module of the project.
PT0981128
Asia Pacific Institute of Information Technology 134
Daily Expense Tracker Functionality Unit Testing
Module Name: Register User Daily expense tracker-(Android Application)
Project Title Test Case Name Test Case ID Conducted By Precondition Description Test Case Priority/Severity
Module
10/01/2013 Testing Date Black Box UT1 Test Type Durgesh Kumar Duration 5 Hours User must have internet access on mobile to register on the web Application. To perform user registration by providing the required details. High as the user will be allowed to perform all the task under DET. So severity is high. MODULE EXECUTION Result Actual Result Expected Result (Pass/Fail) Register Users
Steps
1.1
Click on registration Button
System should open user registration page. User Should be registered And must show “User Registered”
Requested Screen Opened
Pass
1.28
Enter the following information: First Name: “Durgesh” Middle Name:”” Last Name: Kumar Primary Email Id:”[email protected]” Password: “123” Confirm Password: “123”
New User added to the system successfully.
Pass
1.3
Enter same registration details Enter the following information: First Name: “Durgesh” Middle Name: “” Last Name: “Kumar” Email: “[email protected]” Password: “123” Confirm Password: “123”
System should display “User with similar email id is already registered”.
System displayed “New user is added” and redirect to login page
Fail
1.4
Enter same registration details Enter the following information: First Name: “Durgesh” Middle Name: “” Last Name: “Kumar” Email: “[email protected]” Password: “123” Confirm Password: “123”
System should display “User with similar email id is already registered”.
System displayed html tags instead of showing expected result …
Fail
Result: Two error found in the module.
PT0981128
Asia Pacific Institute of Information Technology 135
Daily Expense Tracker Measures Taken: (Module 1.3 Error Rectification) Developer reviewed the code of RegisteWebUser.java file and check the error by identifying the add user code in database. If user with same email id is in database then display message “User already registered” and if any field left blank then display appropriate error. Measures Taken: (Module 1.4 Error Rectification) Developer reviewed the code of RegisteWebUser.java file and check response send by the server to the android app. Do not redirect the webpage to another if the request is from android. Just write whatever you want to show the user in response.getWriter().print(“abc”); Review Test Case for failed Obligations Module
Steps
Result Expected
Actual Result
Result (Pass/Fail)
1.5
Either of any required filed like password, Designation left blank
Error message should appear
Identical to the expected Result
Pass
1.68
Username or email already existed entered
Error message “User Already Exist”
Identical to the expected Result
Pass
Conclusion: Module worked perfectly without any error
Functionality Unit Testing
Module Name: Save Expenses Daily expense tracker-(Android Application)
Project Title Test Case Name Test Case ID Conducted By Precondition
Description Test Case Priority/Severity
Module 2.1
PT0981128
20/01/2013 Testing Date Black Box UT2 Test Type Durgesh Kumar Hours(Not Duration 10 regularly) User must be logged in the application in order to save expense. User should turn on the GPS if they want to view the route later on. To save daily expenses in android app. High: as this feature is the core feature of the application, without this feature this system will not be successful. MODULE EXECUTION Result Actual Result Expected Result (Pass/Fail) Save Expenses
Steps
Click on Expense Button
System should open
Requested Screen Opened
Pass
Asia Pacific Institute of Information Technology 136
Daily Expense Tracker 2.2
Enter the following information: Select Expense Type: “Shopping” Description: “T-Shirt” Amount: “750” then Press Save
2.3
Enter the following information again: Select Expense Type: “Shopping” Description: “T-Shirt” Amount: “750” then Press Save
2.4
Left all fields blank and then press save.
save expense activity. Expense should be saved successfully.
Insert Success
Pass
Expense should be saved successfully
Insert Success
Pass
System should display “Please enter the details”.
Insert Success
Fail
Result: one error found in the module. Measures Taken: (Module 2.4 Error Rectification) Developer reviewed the code of Expense.java in DET android app file and found there was no front end validation provided. So the developer provided front end validation also. Review Test Case for failed Obligations Module
Steps
Result Expected
Actual Result
Result (Pass/Fail)
2.4
Either of any required filed like amount, description or expense type left blank
Error message should appear
Identical to the expected Result
Pass
Conclusion: Module worked perfectly without any error
Functionality Unit Testing
Daily expense tracker-(Android Application)
Project Title Test Case Name
25/01/2013 Testing Date Black Box Test Type Durgesh Kumar Hours(Not Duration 10 regularly) User must be logged in the application in order to manage profile. User is able to manage his/her personal information. Medium: as this feature is the core feature of the application, if the user is not able to change the personal details this system will not work perfectly. MODULE EXECUTION Profile Management UT3
Test Case ID Conducted By Precondition Description Test Case Priority/Severity
PT0981128
Module Name: Profile Management
Asia Pacific Institute of Information Technology 137
Daily Expense Tracker Module
Steps
Result Expected
3.1
Click on Profile Management Button
3.2
Interface should display username, father’s name, date of birth and other details
3.3
Actual Result
Result (Pass/Fail)
System should open Profile Management activity. Details shown properly
Requested Screen Opened
Pass
Details shown properly
Pass
Interface should display username, father’s name, date of birth and other details
Details shown properly
Details not shown
Fail
3.4
Click More button
Next Screen shown Properly
Pass
3.5
Contact details Should be shown
Details shown
Pass
3.6
Contact details Should be shown
System should display next screen Details should be visible Details should be visible
Details are partially shown
Fail
Result: Errors found in the module. Measures Taken: (Module 3.3 and 3.6 Error Rectification) Developer reviewed the code of Expense.java in DET android app file and found there was no error so in the next step Developer opened the database to view the details and found those data were not saved there. So developer provided the option to fill those blank fields and save it. After saving those details developer repeated the above test case and found it run successfully. Review Test Case for failed Obligations Module
Steps
Result Expected
Actual Result
Result (Pass/Fail)
3.3
Either of any filed like username, contact details are not saved in database
Blank field should be shown
Identical to the expected Result
Pass
Conclusion: Module worked perfectly without any error
Functionality Unit Testing
Module Name: Reports
Project Title
Daily expense tracker-(Android Application)
Test Case Name
Reports
Test Case ID
UT4
PT0981128
Testing Date Test Type
3/02/2013 Black Box
Asia Pacific Institute of Information Technology 138
Daily Expense Tracker Conducted By Precondition Description Test Case Priority/Severity
Module
Steps
Durgesh Kumar Duration 2 Hours User must be logged in the application in order to view reports activity. User is able to view the reports buttons of expenses, income, credit, debit and more. High: as this feature is the core feature of the application, if the user is not able to view the reports of the expenses made then there is no use of this system. MODULE EXECUTION Result Actual Result Expected Result (Pass/Fail)
4.1
Click on Reports Button
4.2
Interface should display credit, debit, income, expense and more report buttons
System should open Reports activity. Buttons are visible properly
Requested Screen Opened
Pass
Expected output
Pass
Result: No errors found Measures Taken: No need to take any extra measure as there is no error Review Test Case for failed Obligations Module
Steps
Result Expected
Actual Result
Result (Pass/Fail)
4.2
Either of the buttons are not defined in reports.xml file
Error should occur
Identical to the expected Result
Pass
Conclusion: Module worked perfectly without any error
Functionality Unit Testing
Module Name: Expense Report
Project Title
Daily expense tracker-(Android Application)
Test Case Name
Expense Reports
Test Case ID Conducted By Precondition
PT0981128
10/02/2013 Testing Date Black Box UT5 Test Type Durgesh Kumar Hours(Not Duration 12 regularly) User must be logged in the application in order to view expenses. User must save some expenses, income, credit and debit items in order to view the reports
Asia Pacific Institute of Information Technology 139
Daily Expense Tracker Description Test Case Priority/Severity
Module
Steps
User should turn on the GPS if they want to view the route. User is able to view the reports of expenses, income, credit, debit and more. High: as this feature is the core feature of the application, if the user is not able to view the reports of the expenses made then there is no use of this system. MODULE EXECUTION Result Actual Result Expected Result (Pass/Fail)
5.1
Click on Expense Report Button
5.2
Press long on any expense list
5.3
Press view route button
5.4
Press view route button
System should display first 20 expense records That expense details should come along with a route button Display a route on the map Display a route on the map
Reports shown in ListView
Pass
Expected output
Pass
Route Displayed
Pass
Route not displayed
Fail
Result: One error found Measures Taken: (Module 5.4) Developer checked the View Route code in debugging mode and found there was no route saved in the database. As when user saves the record from the web application then there is no option to find the location with website. Save location facility is only available for the mobile as GPS is only present in the mobile. So Developer found that it is not possible to show the route to those expenses which are saved from web app. User is advised not worry for the same as it’s not a major fault. It can be rectified if the user saves the expenses only from mobile application that too after turning ON the GPS. Review Test Case for failed Obligations Module
Steps
Result Expected
Actual Result
Result (Pass/Fail)
5.4
Either of GPS is turned OFF or that data was saved from web application.
No route should be displayed.
Identical to the expected Result
Pass
Conclusion: Module worked perfectly without any error Note: Similar is the result for credit
PT0981128
Asia Pacific Institute of Information Technology 140
Project Title Test Case Name Test Case ID Conducted By Precondition Description Test Case Priority/Severity
Module
12/02/2013 Testing Date Black Box UT6 Test Type Durgesh Kumar Hours(Not Duration 8 regularly) User should turn on the GPS if they want to view the route. User is able to save task, view task, deleted task and view route. Medium: as this feature is the special feature of the application, so its severity is medium. It doesn’t effects on the DET core feature. MODULE EXECUTION Result Actual Result Expected Result (Pass/Fail) Task Manager
Steps
6.1
Click on Task Manager Button
6.2
Click on add task
6.3
Press Save
6.4
View Incomplete Task
6.5
Press on any task
6.6
Press on view Route button
6.7
Press on view Route button
System should display options to manage task EditText should appear to save task name and description It should give “Task saved” as toast output Show List of incomplete tasks Latitude and Longitude should be displayed Route should be displayed Route should be displayed
Options are visible
Pass
Expected output
Pass
Task Saved
Pass
List appears
Pass
Expected result
Pass
Route displayed Route not displayed
Pass Fail
Result: One error found Measures Taken: (Module 5.4) Developer checked the View Route code in debugging mode and found there was no route saved in the SQLLITE database. As when user saves the record from the mobile application turning off the GPS so that latitude and longitude is not saved .And that’s why it is not possible to show the route to those tasks which are saved without turning ON GPS. User is advised not worry for the same as it’s not a major fault. It can be rectified if the user saves the tasks only from mobile application that too after turning ON the GPS. Review Test Case for failed Obligations Module
PT0981128
Steps
Result Expected
Actual Result
Result (Pass/Fail)
Asia Pacific Institute of Information Technology 141
Daily Expense Tracker Task is saved without turning ON the GPS.
6.7
No route should be displayed.
Identical to the expected Result
Pass
Conclusion: Module worked perfectly without any error TABLE 26 UNIT TESTING
There might be parts of codes which may have error and may not catch during Black Box testing. And it also helps the developer to run a logical test on the parts of the codes which are surplus to the requirements. Code to be tested Reports.jsp <% int sumExpense = 0, sumIncome = 0, sumCredit = 0, sumDebit = 0; String userid = session.getAttribute("userid").toString(); System.out.println("userid="+userid); Sqldb.openConnection(); try { Sqldb.rs = Sqldb.stat.executeQuery("select sum(amount) from expense where (DATEDIFF((select curdate()),dateofexpense)<=31) & (user_id='"+userid+"') & (month(dateofexpense)=month((select curdate()))) "); if (Sqldb.rs.next()) { sumExpense = Sqldb.rs.getInt(1); System.out.println(sumExpense); } Sqldb.rs = Sqldb.stat.executeQuery("select sum(total_amount) from credit where (DATEDIFF((select curdate()),credit_date)<=31) & (user_id='"+userid+"') & (month(credit_date)=month((select curdate()))) "); if (Sqldb.rs.next()) { sumCredit = Sqldb.rs.getInt(1); System.out.println(sumCredit); } Sqldb.rs = Sqldb.stat.executeQuery("select sum(amount) from income where (DATEDIFF((select curdate()),dateofincome)<=31) & (user_id='"+userid+"') & (month(dateofincome)=month((select curdate()))) "); if (Sqldb.rs.next()) { sumIncome = Sqldb.rs.getInt(1); System.out.println(sumIncome); } Sqldb.rs = Sqldb.stat.executeQuery("select sum(total_amount) from debit where (DATEDIFF((select curdate()),debit_date)<=31) & (user_id='"+userid+"') & (month(debit_date)=month((select curdate()))) "); if (Sqldb.rs.next()) { sumDebit = Sqldb.rs.getInt(1); System.out.println(sumDebit); } } catch (SQLException ex) { ex.printStackTrace(); } %> <% String expense = "Durgesh Kumar"; String amount = "JNG"; String doe = "20/10/2000"; String description = "720"; %>
PT0981128
Asia Pacific Institute of Information Technology 142
Daily Expense Tracker <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> DET <script src="jquery-1.8.3.js" > <script type="text/javascript" src="jars/jsapi.js"> <script type="text/javascript" > google.load('visualization', '1.0', {'packages':['corechart']}); // Set a callback to run when the Google Visualization API is loaded. google.setOnLoadCallback(drawChart); function drawChart() { // Create the data table. var data = new google.visualization.DataTable(); data.addColumn('string', 'Topping'); data.addColumn('number', 'Amount(Rs.)'); data.addRows([ ['Expense',<%=sumExpense%>], ['Income', <%=sumIncome%>], ['Credit', <%=sumCredit%>], ['Debit', <%=sumDebit%>] ]); // Set chart options var options = {'title':'Total Cumulative Report of a Month', 'width':450, 'height':300,'radius':20}; // Instantiate and draw our chart, passing in some options. var chart = new google.visualization.PieChart(document.getElementById('chart_div')); chart.draw(data, options); }