Comp6226 CW1 Sample Report
Comp6226 CW1 Sample Report
BillSplit application improve the efficiency of the bill management, at the same
time, it enables multiple users to split different types bills simultaneously. BillSplit
application is a more convenient and easier billing management system, there are three
main aspects of the system, including backstage database establishment and
maintenance, integration of background frame and the development of client-side
server. The database establishment required data consistency, integrity and security, etc.
Client-side server required to achieve the full-featured, easy to operate, easy to user and
so on.
In this paper, we use MVC framework to developed IOS-side BillSplit application,
design module of the system separately. For information module, it include add, query,
update and other function. For payment module, we complete the payment method
through bank interface which provided by bank and then generate bills for management.
Back-end use SQL server database as the development tool, developed in a relatively
short period of time to meet the needs of the feasibility of the system, while ensuring
post-maintenance and increased function module.
I. Problem statement/Introduction............................................................................ 1
1.1 Current issue ................................................................................................................. 1
1.2 Goals.............................................................................................................................. 1
1.3 Method.......................................................................................................................... 1
1.4 Scope ............................................................................................................................. 1
II. Requirement ........................................................................................................... 1
2.1 Functional Requirements .............................................................................................. 1
2.1.1 Users.................................................................................................................. 1
2.1.2 Supervisor/Owner ............................................................................................. 4
2.1.3 Priority for functional requirements ................................................................. 4
2.2 Non-functional Requirements ....................................................................................... 5
2.3 Use case diagram .......................................................................................................... 6
2.4 Constraints .................................................................................................................... 6
2.4.1 Interface of the other systems .......................................................................... 6
2.4.2 Operation platform ........................................................................................... 7
2.4.3 Operation environment..................................................................................... 7
2.4.4 Application language ......................................................................................... 7
III. Design............................................................................................................... 7
3.1 Architecture................................................................................................................... 7
3.1.1 Overview ........................................................................................................... 7
3.1.2 Architecture design ........................................................................................... 8
3.2 Detailed design.............................................................................................................. 9
3.2.1 User interface design......................................................................................... 9
3.2.2 Component design .......................................................................................... 12
3.3 Database design .......................................................................................................... 13
3.3.1 Summery sheet ............................................................................................... 13
3.3.2 Common User ................................................................................................. 13
3.3.3 Merchant ......................................................................................................... 13
3.3.4 Friends ............................................................................................................. 14
3.3.5 Group............................................................................................................... 14
3.3.6 GroupMember ................................................................................................ 14
3.3.7 Reminder ......................................................................................................... 14
3.3.8 Payment .......................................................................................................... 14
3.3.9 Bill .................................................................................................................... 14
3.3.10 Discount .......................................................................................................... 14
3.3.11 Bank Account................................................................................................... 15
IV. Conclusion ...................................................................................................... 15
i
I. Problem statement/Introduction
1.1 Current issue
Managing and sharing expenses is a tedious and complicated issue in our normal
life. People who are meeting the situation of sharing expenses such as traveling or
having meals in groups, are facing the problem of calculating the exact count of money
that everyone need to pay, and someone pay more while someone pay less as sometimes
they unable to find out the small change, which may lead to the consequence of being
in debit.
1.2 Goals
The aim of this project is to build up a mobile phone application, to make it easier,
faster and more convenient to manage the bills, handling debts and share expenses on
line by using their mobile phone with the others, providing the following facilities:
- The online payment interface will allow users who using this application pay their
fees online easily and conveniently by binding their bank accounts.
- Users are able to set the numbers of the expense sharing group members and the
total count that this expense sharing group need to pay. What’s more, users have the
choice to set the percentage of the total price that everybody in the group need to
pay for a reason.
- Merchants also have the choice to set up the expense sharing group for the
customers, furthermore, they are capable of giving a discount of the total price in
some specific situations. And they can cancel the transaction after making a mistake.
- System owners/admins is defined to manage the application, the information of the
merchants and the users, also the transactions.
1.3 Method
Once a user or a merchant input the total count of the price (/with discount) and
the number of the members, the system will be distributed equally or be distributed by
the proportion set by the user or the merchant.
1.4 Scope
Aspect like payments, scanning QR code and location recording are not handled
by this system. However the system may share information with neighboring systems,
such as payments system, camera and map systems.
II. Requirement
It will introduce three main BillSplit users. Functional and non-functional
requirement will be discussed followed by project constrains/limitations and use case
diagram.
2.1 Functional Requirements
This project will analyse functional requirements and for different stakeholders:
users (see in Table 2.1), merchant (see in Table 2.2) and supervisor/owner (see in Table
2.3); each requirement is labelled clearly with name and definition. Priority for each
functional requirement will also be discussed.
2.1.1 Users
ID Name Definition
1
Non-registered users should go to BillSplit Application to
do the initial registration if the BillSplit Application has
enough capacity (users can also phone or email to the
BillSplit Owner to check the capacity before registration);
common users can register by providing username(could
FR-1 be email address), name, password, gender, day of birth,
address, mobile number and e-mail through the Client-
side application, and users will receive a confirmation
email to confirm their registration after they submit
Registration application form.
When non-registered users do the initial registration, they
should choose a type of users. There are two types of
users: merchants and common users. Merchants can
register by providing username (could be email address),
FR-2 merchant-name, password, address, mobile number and e-
mail through the Client-side application, and they need to
submit business permits or provide relevant proof, the
system verify these materials through industrial and
Commercial Bureau interface.
Both registered and non-registered users can view the
general information about the BillSplit Application
FR-3 through the homepage of this application, e.g.
Viewing Introduction, guidance. Only registered users can make a
general payment, create group, etc.
information
On the public part of the homepage of the application,
FR-4 new users can find guidance/direction on how to register
with the application.
Registered users can login to the system by providing
FR-5 Log-in correct username (or email address) and password.
Registered users can view their personal information after
they log into the application; Registered users can update
FR-6 their personal information after they log into the
application; This could be changing personal details, e.g.
Address and mobile number.
Registered users can click “forgot password” if they do
View and not remember their password. They can reset their
FR-7
Manage password and will receive a verification email to confirm
(update/ the alteration.
change) Registered users can click “forgot username” if they do
FR-8 personal not remember their username. Username will be sent to
information their phone number by system.
If registered users no longer use or cannot access their
provided E-mail address, they should update their new e-
mail address by providing userID to confirm the identity.
FR-9 the username could be the new E-mail address
automatically by the system due to the registered users can
use E-mail to log in.
Registered users can add bank account, including card
holder and card number, etc. They can use bank account
FR-10 View and to make a payment for all types of payment. System
Manage(add confirm these bank account information by sending
and delete) verification to Bank through bank interface.
personal bank Registered users can view their added bank account after
account
FR-11 log into the application and select a specific bank account
information to be the preferred payment method.
FR-12 If registered users no longer use their bank account or the
2
bank account has been cancelled by the Bank for some
reasons, users can delete the bank account and its
information. The system will send a verification message
to the user’s mobile phone
Registered users can select a specific bank account to
make a payment. They can paid it individually or shared
FR-13 expense with a group, this application can calculate
Make a expenses or discounts for each person who in the same
Payment share-group.
(for common
users) When registered users complete the payment, the system
will save the bill automatically after finishing the
FR-14 payment, the bill will contain transaction detail, sharing
group, date and location.
Registered users can log into application and view their
transaction history about different types of bills and
FR-15 payments, e.g. Long-term expenses, Short-term expenses
and Single expenses. They can check all information
about their bill, such as, date and amount.
Registered users can manage the bills by setting different
Viewing types for bills or payments, there are three main types:
FR-16 transaction Long-term recurring expenses, Short-term recurring
detail and bill expenses and Single expenses. Users can set only a
management specific types for bills.
Registered users can view their bills or payments through
different ways of classification. According to different
conditions, bills or payments could be classified by date,
FR-17 location, type and amount. Users also can view bills or
payments in different orders, their bills can be ordered by
date or amount.
When registered common users shared a Single expense
(e.g. splitting a bill at dinner), they can join the expense
sharing groups which is created by Merchant, when
merchants create a group, it will set up a group number
FR-18 and then users search the group number to join the group.
Merchant can select a type of payment method (on
average and by percentage) for users to pay. The system
can calculate expenses automatically for each person who
Join and in the group.
create expense
sharing group When registered users shared a Short-term expense (e.g.
Travel costs). An expense sharing group can be created by
the person who paid the bills, it will set up a group number
and then other users search the group number to join the
FR-19 group, the system can calculate the expenses for each
person automatically. This payment means a transfer to
initiator’s account. The person who create the group can
select payment method (on average and by percentage)to
pay.
Registered merchants can set discounts or special offers
Setting for specific expense sharing group, those common users
FR-20 discounts who joined the group can have this discount and the
(for merchant) system will calculate expenses automatically for each
person.
Setting Registered users can set Long-term recurring expenses
reminder (e.g. Rent, groceries) and Short-term recurring expenses
FR-21 (for common (e.g. food). These expenses should be paid monthly so that
users) users can setting reminder for these expenses, the system
3
will send reminder to Registered users’ email address or
mobile phone.
Registered users can add friend to their friend list, group
Manage initiator they can invite their friends who are in the friend
FR-22 (add/remove) list; registered users can delete friends by removing
friends friends from friend lists.
Table 2.1 Functional requirement 1 (Users)
2.1.2 Supervisor/Owner
ID Name Requirement Definition
Supervisor/owner should login to the system by providing
FR-23 Log-in correct authorised admin through server-side application.
Update Supervisor should check upgrade news, events or
application
FR-24 important information (e.g. Update information and error)
general for the application regularly via system.
information
Add/remove Supervisor/owner can add/remove categories via system.
FR-25 categories (E.g. Other types of users.)
Manage
information Supervisor/owner can view and update information of
for users common users and merchant. When user cancelled their
FR-26 including account, supervisor has the right to delete details about
common them; the system will delete user’s account automatically
users and when username is removed from categories.
merchant
Manage bills When a user is removed from database, the system will
FR-27 of users delete all its bill information from database.
Table 2.2 Functional requirement 2(Supervisor/Owner)
5
2.3 Use case diagram
The project figures use case diagrams for different actors (users-see in Figure 2.1
and owner/supervisor) through the BillSplit Application, the relationship between
different actors and business use cases are shown in clearly explanations.
2.4 Constraints
2.4.1 Interface of the other systems
- Payments system
Users need to add (more than one) their bank accounts which they use to pay on
the application.
- Mobile phone’s camera
To join a new group, users have the choice to use the camera to scan the QR code
that generated by the initiator.
- Map system
The system records every transaction location (not too accurate, but a probable
area.) where the users pay their money.
6
- Industrial & Commercial Bureau management system
The first time that merchant, one of the roles in the system, sign up for a new
account, they need to upload the proof of their identification which in keep with the
data in the Industrial & Commercial Bureau management system.
2.4.2 Operation platform
Mobile phone only (IOS).
2.4.3 Operation environment
This application can only be used/processed under the environment of Internet
connected, because the process of join groups, pay the money and add new friends, etc.
are only can work when it has connected to the Internet.
2.4.4 Application language
For the reason of making this application popular all around the world, it has
multiple language choices, so that users can change the system language in the setting
as they want.
III. Design
3.1 Architecture
3.1.1 Overview
- System Overview
BillSplit Application is intended to help a user manage users’ different types of
expenses (i.e. Long-term recurring, Short-term recurring and Single expense), create
bills in their account for management and share expenses with others. BillSplit is to
provide the users the easier, faster and more convenient way to manage their bills than
calculating and handing debts. Reminder about long-term recurring expense can be set
to remind users to finish their payment on time.
- System Context
The system context is defined clearly in the SRS (Software Requirement
Specification). Basically, the user is the main sink of the information. The user is also
a major source of information and data. The other source of data is the bank from where
user’s bank account information is obtained.
- Stakeholders of BillSplit
The main stakeholder for the system are the individual users who might user the
system, including common users and merchants, and the system designer/builder who
will build BillSplit application. The main concerns of the two stakeholder are:
For Users: The usability of the system and providing expenses sharing function,
reminder function and bills management. Reasonable response time is also concern.
For designer/builder: The system is easy to modify, particularly to handle future
extensions mentioned in the SRS (i.e. the system is a multi-user system, which
require use of database instead of files for keeping data.)
Hence, the key property for which the architecture is to be evaluated is the
modifiability or expansibility of the system. Because the system is kind of payment
system, response time performance is an essential factor for the system.
- Scope of this Document
In this document, we describe one specific architecture for BillSplit, discuss the
advantage of various quality attributes of the application. We also provide the rationale
for selecting the architecture. For architecture, we only consider the component view.
- Definitions
7
Name Definition
Long-term recurring A bill that users need to pay regularly. This bills may be
expenses paid monthly or yearly, e.g. Rent, groceries and utilities.
Short-term recurring A bill that users need to pay regularly. This bills may be
expenses paid daily or weekly. E.g. Travel costs, food and hotel.
Single expenses A bill that happened occasionally. This bill may be paid
with friends or colleagues, e.g. Splitting a bill at dinner.
Expenses sharing An event that split the amounts paid for goods and
services among several group mates, this sharing is
related to a series of payment operations.
Transaction A real event that involves flow of personal money. In the
context of expense, it is a payment to specific person
which created the expenses sharing group.
Bill A record that saved the details of the transaction and
added the time when this transaction happened and
location where this transaction happened.
Reminder A message that remind users to pay their specific bills,
e.g. Long-term recurring expense.
Table 3.1 System definitions
- Acronyms
BS: BillSplit
LRE: Long-term recurring expenses
SRE: Short-term recurring expenses
SE: Single expenses
Model
1.Interaction with
database
2.Implement callback
methods triggered by
State Change
State Query
the controller
Change
Notificatio n
Client
figure 3.2 User homepage (left) & generate new group (right) interface
On the right of figure 3.2 is the interface of creating new expense sharing group.
After click the icon of ‘New group’ in the user homepage, this interface will appear. We
assume that the price of the members in the group are equal division (go Dutch). Some
definitions of this view are as follows:
name definition
Total money The total value of the price.
Amount of people The total amount of the member to go Dutch.
Item (Optional choice) the issue they pay for.
After the initiator create the group, a group number generates
Group number automatically.
After the initiator create the group, a group QR code
Group QR code generates automatically.
By clicking this button, initiator can view the members who
are in the group now.
10
This is an optional button, only appears when the user is a
merchant. Merchants are able to give a discount of the total
price in some special situations.
Except let the others join the group by scanning the QR code
or entre the group number, the initiator also can add the
friends from contact straightly.
Table 3.3 Create new expense sharing group function module definitions
Figure 3.3 illustrates the house renting module BillSplit system. In the situation of
renting a house or flat, user can set the payment date of every month. There are two
options for users to choose (pay equally, pay with percentage). If the user choose pay
equally, the new group interface is similar to generate new group interface in figure 3.1.
Furthermore, if facing the case of everyone need to pay differently (bigger room pay
more, smaller room pay less), user can choose the percentage that every member should
pay. Some modules definitions are as follows:
name definition
Generate the group that every member in the group pay the
same house renting fees.
User can create a group that the percentage of every member
should pay can be chosen.
Every member’s payment percentage can be view here.
Initiator can choose the date of every month which all the
members should pay.
Table 3.4 Create new house renting fees sharing group function module definitions
11
figure 3.3 House renting interface (equally & percentage)
IV. Conclusion
BillSplit application is system that can effectively solve the problem about bill
management and Splitting bills, the system enable manage different types of bills and
payment, i.e. Long-term recurring expense, Short-term recurring expenses and Single
expenses. The system enable filter different list of bills through setting specific
conditions, bills can be sorted by different conditions (e.g. Date and location). This can
make bill management faster, easier and convenient than manually calculating and
handing debts.
In this paper, through analysis of user requirements, we determine the basic
function of the system and finish detailed design which based on the requirements. The
detailed design included user interface design, component design and database design.
The system is developed on the IOS-side and used the MVC framework to achieve the
basic function which included user information, bank information, groups and
payments. For development of database, BillSplit application used SQL server to
improve the usability of the data. At the same time, we described the Use Case Diagram,
System Architecture Diagram, E-R Diagram, Class Diagram and activity Diagram of
the system, this make the structure of the system become more intuitive and clear.
15
References
[1] Freeman, A 2013, Pro ASP.NET MVC 5, n.p.: [Berkeley, Calif.] : Apress, 2013.,
[2] Deck, P, Setiadi, M, Kurniawan, B, & Mayle, C 2014, Spring MVC : A Tutorial, n.p.:
Catalogue.
[3] Faranello, S 2012, Balsamiq Wireframes Quickstart Guide. [Electronic Resource], n.p.:
[4] Youcong, N, Bei, C, Peng, Y, & Chunyan, W 2014, 'A Framework for iOS Application
24189-24200.
Appendices