About the project
My team of 4 software engineering students and I were tasked with enhancing a basic Command Line Interface (CLI) desktop Addressbook application for our Software Engineering project. Our constraint is that we have to target users who are able to type fast and prefer typing over other means of input.
With the stated constraint in mind, we choose to morph the given Addressbook application into an travelling companion application which synthesis various kinds of features including financial tracker, diary, itinerary planner, contacts and achievement. This enhanced application allows users who love to travel to plan their trip beforehand, record down their expenses and write down their precious memories during travel. We ensured that the users have to type commands and instructions for all of the added features.
This is what our project looks like:
My Role
My role was to design and write the codes for the Financial Tracker feature. The following sections illustrate my contributions in detail, as well as the relevant documentation I have added to the user and developer guides in relation to these contributions.
Summary of contributions
This section shows a summary of my contributed feature and other relevant contributions to the team project.
Major contributions
Financial Tracker:
-
What is it?
-
The Financial Tracker is an expense recorder whereby users can keep track of the records of their spending during their trips to different countries.
-
-
Justification
-
Our target users which we have chosen are NUS students who love to travel. During our users analysis, we realised that students nowadays are very likely to overspend their budget during travelling. Therefore, this Financial Tracker feature allows our target users to keep a record of their spending in order to remind them of their budget.
-
-
More to it
-
Users have the expense list filtered countries by countries and can switch between each expense list seamlessly.
-
Users are able to sort their expense list according to their needs and undo any accident actions that has been done.
-
Users can generate an overview of their expenses in an easy-to-look pie chart form!
-
Code contributions: Click here
Minor contributions
Project management:
-
Contributed to the idea of using
Page Manager
to handle pages switching among the six different features. -
Started implementing user interface(Ui) components and link them to FXML. This provides skeletal codes for the rest of my teammates to adapt with.
Code for reference: 36 -
Modified common
Command
abstract class to be generic so that the otherCommand
classes in other features can take in their ownModel
classes.
Code for reference: 70 -
Helped on modifying Main feature and QnA section in the UserGuide.
Code for reference: 206
Enhancements to existing features:
-
Updated the Main page’s Ui.
Code for reference: 103
Community:
Contributions to the User Guide
Given below are sections which I contributed to the User Guide. They showcase my ability to write documentation targeting end-users. I shall focus on 3 relevant commands here which are the |
Switching between countries: switch
Currently in somewhere else? Switch to that expense list instead!
Format:
switch COUNTRY
You can always use the Countries dropdown box directly instead! |
You can only type in countries which are only listed from the Countries dropdown box |
Example:
switch Japan
Step by step:
Step 1. Type switch Japan
in the Command box and press Enter.
Step 2. The Result box will display the message "Expense list switched".
Step 3. Now your expense list inside the Expense list panel has been switched to that which is in Japan!
Sort out your expense list: sort
The default sorting way of the expense list is not your thing? Just sort your expense list according your needs!
All of the sorting is done in reversed order :) |
Format:
sort CRITERIA
Where CRITERIA
can be amount
, date
, time
, type
and default
Example: to sort by amount
sort amount
Step by step:
Step 1. Notice the amount field in each expenses are currently not in order.
Step 2. Now, type sort amount
in the Command box and press Enter.
Step 3. The Result box will display the message "Expense List sorted!".
Step 4. Now all your expenses are sorted in descending order of your amount!
Generate an overview of your spending: summary
Do you ever have difficulty summarising your spending? Afraid not! You can view you expenses statistics easily!
Format:
summary
Step by step:
Step 1. Type summary
in the Command box and press Enter.
Step 2. The result box will display the message "Currently viewing the Summary Window".
Step 3. As you should have noticed, the Summary Window has been popped out showing you statistics of your expenses in a nice-looking pie chart and bar chart form!
Contributions to the Developer Guide
_Given below are sections I contributed to the Developer Guide. They showcase my ability to write technical documentation and the technical depth of my contributions to the project. |
Financial Tracker
The Financial Tracker feature in TravEzy allows users to keep track of their financial expenses with appropriate categorized expenditure by different countries.
Architecture:
The Architecture Diagram given below explains the high-level design of the Financial Tracker feature.
Inputs given by the user are channeled from the textUI
and handled by Logic
before different commands are formed which execute on
the Model
. The Model
will then update the FinancialTracker
object which contains the expense list.
The textUI
and Log Centre
stem from the common package of the main TravEzy application while Logic
, Model,
and Storage
all have similar architecture design with the other features (Calendar, Itinerary, etc.).
Financial Tracker Class Diagram:
The Model
stores the FinancialTracker
data which includes several ExpenseList
each associated with a country that keeps track of all the expenses.
Financial Tracker
exposes an unmodifiable ObservableMap<String, ExpenseList>
that can be observed. The UI is bound to the Model
whereby the Model
returns an expense list associated with the current Country
of the Financial Tracker
and updates when the querying Country
changed.
Each time a new Country is selected from the Countries dropdown box, the respective expense list will be returned for that specific country, this implementation is to ease categorising and sorting.
|
Sequence Diagram example:
The sequence diagram below shows the sequence of events that will take place when a user calls Summary
command.
The sequence of events are very likely to those of the other commands in Financial Tracker feature.
Activity Diagram example:
The activity diagram below shows how edits
command works.