J2ME Exam Project. P6 Expense Management



Similar documents
Welcome to Collage (Draft v0.1)

IP Phone Services Configuration

Weston Public Schools Virtual Desktop Access Instructions

Merchant Reporting Tool

Document From MAXIMUM BUSINESS INFORMATION TECHNOLOGY ON A. OwnCloud User Manual. TO I Cafe`

RFG Secure FTP. Web Interface

Using YSU Password Self-Service

Cloud Elements ecommerce Hub Provisioning Guide API Version 2.0 BETA

Supply Chain Finance WinFinance

Quality Center LDAP Guide

Egnyte Single Sign-On (SSO) Installation for OneLogin

Software Support Registration

Absorb Single Sign-On (SSO) V3.0

NYS OCFS CMS Contractor Manual

Contents. Using Web Access Managing Shared Folders Managing Account Settings Index... 39

Safeguard Ecommerce Integration / API

EFFECTIVE QUERY RETRIEVAL SYSTEM IN MOBILE BUSINESS ENVIRONMENT

Using Internet Archive: A guide created by the Digital POWRR Project

Table of Contents. Welcome Login Password Assistance Self Registration Secure Mail Compose Drafts...

Marcum LLP MFT Guide

WebSpy Vantage Ultimate 2.2 Web Module Administrators Guide

HowTo. Planning table online

To set up Egnyte so employees can log in using SSO, follow the steps below to configure VMware Horizon and Egnyte to work with each other.

Forumbee Single Sign- On

Workflow Templates Library

HOW IT WORKS GET STARTED ACCESS FROST MOBILE VIEW ACCOUNT BALANCE VIEW ACCOUNT ACTIVITY MAKE TRANSFERS PAY BILLS LOG OUT SAFETY & SECURITY CONTACT US

System Administrator Training Guide. Reliance Communications, Inc. 603 Mission Street Santa Cruz, CA

Clever School Signup: PowerSchool

owncloud Configuration and Usage Guide

Accessing the FTP Server - User Manual

AS DNB banka. DNB Link specification (B2B functional description)

Portal User Guide. Customers. Version 1.1. May of 5

Wimba Pronto. Version 3.1. Administrator Guide

WS_FTP Professional 12

AVG Business SSO Connecting to Active Directory

Using Internet or Windows Explorer to Upload Your Site

OSF INTEGRATOR for. Integration Guide

BlackBerry Enterprise Service 10. Secure Work Space for ios and Android Version: Security Note

Upgrading from Call Center Reporting to Reporting for Contact Center. BCM Contact Center

Web Hosting Features. Small Office Premium. Small Office. Basic Premium. Enterprise. Basic. General

Web Development using PHP (WD_PHP) Duration 1.5 months

OCS Virtual image. User guide. Version: Viking Edition

imobitrax v1.3 User Guide

WEB BASED Access Control/Time Attendance Software Manual V 1.0

Installing, Uninstalling, and Upgrading Service Monitor

Deploying the BIG-IP System with Oracle E-Business Suite 11i

CA Performance Center

Accessing your Exchange Mailbox using an Internet Browser

Session Administration System (SAS) Manager s Guide

THE CHALLENGE OF ADMINISTERING WEBSITES OR APPLICATIONS THAT REQUIRE 24/7 ACCESSIBILITY

IT Service Desk Manual Ver Document Prepared By: IT Department. Page 1 of 12

Upgrading from Call Center Reporting to Reporting for Call Center

Installation Guide. Before We Begin: Please verify your practice management system is compatible with Dental Collect Enterprise.

equate Installation QUICK START GUIDE

Application & Quick-Start Guide

Paynow 3rd Party Shopping Cart or Link Integration Guide

ireceivables User Guide

ANZ Secure Gateway Virtual Terminal QUICK REFERENCE GUIDE NOVEMBER 2015

Getting Started (direct link to Lighthouse Community

Introduction to Client Online. Factoring Guide

Address Synchronization Tool Administrator Guide

Novo Nordisk Secure File Transfer User Guide

Offline Payment Methods

User Guide and Tutorial Central Stores Online Ordering System. Central Stores Financial Services Western Washington University

Copyright 2014 Jaspersoft Corporation. All rights reserved. Printed in the U.S.A. Jaspersoft, the Jaspersoft

How To Set Up The Barclaycard Epdq Cardholder Payment Interface (Cpi) On Papercut (Barclay Card) On A Microsoft Card (For A Credit Card) With A Creditcard (For An Account)

Mechanics Bank Mobile Banking Mobile Finance Manager (MFM) Application Palm Treo Installation

Creating an e mail list in YahooGroups

Wireless Guest Server User Provisioning Instructions

Budget Event Management Design Document

Advanced Digital Imaging

Installation Instructions

HELP DESK MANUAL INSTALLATION GUIDE

My Sage Pay User Manual

Building Java Servlets with Oracle JDeveloper

FF/EDM Intro Industry Goals/ Purpose Related GISB Standards (Common Codes, IETF) Definitions d 4 d 13 Principles p 6 p 13 p 14 Standards s 16 s 25

mysensors mysensors Wireless Sensors and and Cellular Gateway Quick Start Guide Information to Users Inside the Box

How To Configure A Cisco Unified Ip Phone On A Cnet Box On A Microsoft Powerbook 2.5 (Powerbook) On A Mini Ip Phone (Mini Ip) On An Ip Phone With A Mini Cell Phone (Microsoft Power

Integrating VoltDB with Hadoop

Egnyte Single Sign-On (SSO) Installation for Okta

Site Maintenance Using Dreamweaver

SITRANS RD500 Configuring the RD500 with PSTN or GSM modems and Windows-based servers and clients for communication Objective:

School account creation guide

Testing and Restoring the Nasuni Filer in a Disaster Recovery Scenario

User manual for the visitors of Interreg Danube Programme website

Create New MyWorkKeys Account Quick-Start Guide for the ACT National Career Readiness Certificate (ACT NCRC )

Electronic Selection of Consultants

High Level Design Distributed Network Traffic Controller

How To Secure An Emr-Link System Architecture

Merchant Interface Guide. Version 4.0 December 2011 Business Gateway

Setting Up a CyberSource Web Payment Account

Cofred Automated Payments Interface (API) Guide

Active Directory Self-Service FAQ

Logging In You must log in to the system before you can begin exchanging files with UMB. To log in to the system, follow the steps below.

DiskPulse DISK CHANGE MONITOR

2) Log in using the Address and Password provided in your confirmation

MySagePay. User Manual. Page 1 of 48

POINT OF SALES SYSTEM (POSS) USER MANUAL

Transcription:

Michal Doubek Free University of Bozen - Bolzano J2ME Exam Project P6 Expense Management 1. Contents: 1. Contents:...1 2. The System functions...2 2.1. Client...2 2.2. Server...2 3. The Human Computer Interaction...2 4. The Structure of the Code...5 4.1. Client...5 4.1.1. Main...5 4.1.2. InitForms...6 4.1.3. Expense...6 4.1.4. Settings...6 4.1.5. Memory...6 4.1.6. UpDown...6 4.1.7. Connect...7 4.1.8. Converter...7 4.1.9. ConverterCompute...7 4.2. Server...7 4.2.1. Servlets...7 4.2.2. Database...7 4.2.3. Beans...7 4.2.4. CSVGenerator...7 5. The Major Technical Problems...8 6. Conclusion...8 7. Future Improvements...8

2. The System functions 2.1. Client Keep record of your expenses o Date: the date of the expense o Description: short description o Amount: the amount you paid o Payment method: the payment method used to pay o Category: the category of the expense Plastic settings of payment methods Upload the expenses to the server (missing expenses synchronization) Persistent login data Currency converter Rates update 2.2. Server Login management (sessions) Receiving and checking expenses from clients Generating CSV file from expenses Updating of currency rates using Web Service 3. The Human Computer Interaction Identification of typical tasks o Add, edit and remove expense.

o Upload expenses to server, user can upload data directly or edit login data first and then do the upload.

o Convert amount to certain currency (EUR, USD, GBP) or update rates using server. Identification of expected user Expert daily user needs minimum of actions, abbreviations, macros, plastic interface. Regarding to this fact there isn t any invitation form; user directly opens the list of expenses and is able to add new expense. To give user partial plasticity, there is a possibility to manage methods (by user s settings). Login and upload is possible directly from first form, login data are stored in memory, and then user doesn t have to type them by each login. These data are available to change in user s settings. Data are saved by successful login.

4. The Structure of the Code 4.1. Client FORMS: 4.1.1. Main This is core of Expense MIDlet. This class contains nine forms and seventeen commands. Of course it contains MIDlet standard methods (startapp, pauseapp, destroyapp and CommandAction). In addition to these methods there is a method run, main class implements interface Runnable. As the connection to server could take a long time, it runs in its own thread and main thread shows to user a ticker that application is working, please wait. NAME addexpensef addmethodf connectingf editmethodsf expensef loginf settingsf showexpensef statusf DESCRIPTION Form for adding expenses, contains three TextFields for date, descripton and amount. There are two ChoiceGroup for methods and categories. Form for adding method to the memory. Form for ticker, when application is working this form is displayed. Form for editing method and saving to memory. This is first form, which is displayed after start of application, shows to user list of current expenses. Form contains login data, user can edit them and submit. When user is successfully logged in, these data are saved to memory. Form for navigation to various settings, edit method, categories (not implemented) or login data. Viewing single expense. Result form, show user a result of his action, only possibility to leave this form is to main form (expensef). COMMANDS: NAME addmethodc addmethodtextc categorysetupc deleteallc deleteexpensec exitc ExpensesC loginc methodsetupc addexpensec removemethodc DESCRIPTION Adds method, opens a new form for inputting a name of method. Submits a name of method to add. Not implemented Deletes all expenses from memory. Deletes one expense from the list. Shuts down the application. Returns user to the main form (list of expenses). Shows user form for editing login data. Shows user a list of methods. Shows user a form for adding expense. Removes selected method.

resetc saveexpensec settingsc showexpensec submitc uploadc Resets memory (adding test expenses, removing login data, stored number of session) Saves current expense. Redirects user to settings form. Shows selected expense. Tries to login to server with inserted data. Logins to the server, downloads a session number, which is stored in memory, then this number is used for verification by each user action. 4.1.2. InitForms Class for initializing forms, contains methods of which input and output is single form, appends certain items to each forms. It s also used as interface to settings and expense class. In addition to init methods it has methods for add, edit and remove expenses, methods and login data. 4.1.3. Expense This class represents certain expense having its variables. It has methods for communication with memory (saveexpense, loadexpense). Before storing expense to memory each expense is coded i.e. all parts are divided by symbol # and send to memory class as one string. It has also a method for coding expense before sending to the server, because url can t contain a symbols space or hash, so they are coded to %20 or %2B (by ASCII table). 4.1.4. Settings Similar class to Expense, this class also communicates with own instance of memory and saves names of methods, login data. 4.1.5. Memory This is modified class from lectures; only bigger modification is method getvalue, there is a defined value, if element is not in the Hashtable, method returns value String def, not null, this avoids NullPointerExceptions in further operations. 4.1.6. UpDown This class is created for communication with server. Method login constructs a url with login parameters. After that it processes the response from Server. Method upload constructs a url with coded expense and number of session for verification. UpDown also has a method downloadrates, which asks server for up-to-date currency rates. Method getdata is just working method for decoding response.

4.1.7. Connect This class is for connection to the server. Main method is ConnectGET(String URL), which connects to the server using received parameter url and returns a response. Parameters are sent in URL using method GET. 4.1.8. Converter This is second MIDlet, it s created as a core of Currency Converter, contains three forms, one is for input data, one shows the result of conversion and the last one is ticker, which is shown, when the MIDlet is downloading the up-to-date rates. It uses class UpDown for communication with server. 4.1.9. ConverterCompute This class computes the conversions itself and using class Memory it stores them into a memory. 4.2. Server Server is made of four packages and jsp files as interface for standard web browsers. 4.2.1. Servlets This package is designed for communication with cell phone client, it contains four classes. MyServlet is for login and generating session number. RecieveExpense gets expenses from client, decodes them and search if expense is already on the server or not. If not expense is stored into the server database. SendMessage is not yet fully implemented; it s for sending expenses to the client. Rates this class uses a web service to get up-to-date currency rates and sends them to the client. 4.2.2. Database This package is created for communication with hsqldb database, queries data for entities and checks if session numbers are still active. Each session has one hour expiration time. 4.2.3. Beans This package contains classes representing all entities (Expense, User and Session) and list of entities (ListOfExpenses, ListOfUsers, ListOfSessions) for saving and loading entity classes use database.manager. 4.2.4. CSVGenerator

This package contains only one class for generating CSV files for expenses. 5. The Major Technical Problems 6. Conclusion Easy install database In my previous J2EE application I used MySQL for database, but for easier installation and manipulation I found hsqldb http://hsqldb.org/, which is fully implement in java, then it could be easily linked to war file and then there isn t any installation. Synchronization problem - How to know which expense is already in server database and which not. How to recognize different expenses e.g. each day user can eat in cafeteria and pay same amount of money, type same description etc. Solution: when is new expense created it gets its own value of time and date, which is significant as ID (used on both sides, server/client). Generating CSV file, when items contains signs like commas or quotation marks, it could make a mess in generated file. To solve commas each item in file is closed between quotation marks, to solve quotation marks in description, there is methods which substitute one question mark by three to fulfill CSV requirements. E.g. Shopping in Spar, Bolzano -> Shopping in Spar, Bolzano How to verify client by server and not ask for a login each time during the expenses transfer. User gets a session number which is valid for half an hour and each time when it is used, expiration date is extended. This is advantageous, when user would use other password protected service from service (could be implemented in future). I implement nice application, which covers many technologies - J2ME, servelts and JSP, hsqldb, web service. Of course it s not perfect e.g. downloading expenses from server is not finished or editing categories like methods is not implemented, but instead of repeating the same code I ve implemented some new interesting features like Currency Converter with web service update. I did it alone and spend more than forty hours on this project, but gained experience enriched me a lot and I would like to continue working on this project and add some new functions and fine-tune the rest. See the list below. 7. Future Improvements Possibility to download expenses from server Editing categories like methods Increase number of currencies (now there are just USP, GBP and EUR) Improve code quality referenced to Currency Converter Improve viewing, sorting and searching of expenses on server 2 layered system on server (admin, users)

Allow user to choose between : to save or not save his username and password in cell phone memory (increase settings possibility) Improve display design, add graphic items Add more commentary to code Automatically pre-filled window with date, when user add a new expense Replace hashes with other symbol in coding of expenses, when hashes are used for coding, there is a limitation, that user cannot use them in expenses Implementation of https protocol to improve security Possibility to automatically back up old expenses in cell phone and display expenses only not older than week.