PROJECT: TravEzy
Introduction
TravEzy is a desktop application that allows travellers to plan their trips, managing their expenses and relieving their favourite moments. The application aims to revolutionize your travelling experience by simplyifying your travel planning process.
Reading the document
Formatting | What it means |
---|---|
Italics |
Application focused keywords |
bold |
All important information |
|
Indicates that the text is a piece of code |
[ ] |
Optional parameters for a particular command |
CAPS |
Parameters for a particular command |
|
Lower case words in a code block denotes user input |
Additional useful information |
|
Denotes warning |
|
Useful tips or shortcut |
Components inside TravEzy
Travezy is a one-for-all desktop application that consist of the following features:
AddressBook |
An address book containing all of your contact information. |
Achievements |
An achievements page that details all your progress within the application. |
Calendar |
A calendar that allows you to add a commitment, holiday, school break or trip. |
Diary |
travel diary to capture all your favourite moments. |
Financial Tracker |
A financial tracker to keep track of your expenses while travelling. |
Itinerary |
An itinerary to plan and organize your events. |
Summary of contributions
Out of the 6 different components of the TravEzy application, I was responsible for the development of the Achievements and enhancing the Address Book.
Major enhancement:
The achievements component of the TravEzy application. The achievements page generate statistics from the 5 different existing features: address book, calendar, diary, itinerary and financial tracker.
What it does:
Upon navigating to the page, the achievements page generates the statistics for each feature. Thus this allows you to keep track of their progress within the application and provides a nice summary for each feature by looking at its statistics.
For instance, if an input delete 2
is entered in the address book, which deletes the 2nd person in the list. The
achievements page will reflect the following changes:
Any recent changes in the other pre-existing feature of Travezy namely: address book, calendar, diary,
financial tracker and itinerary will update the Statistics inside the Achievements Page.To find out more what statistics are generated for each feature, you can look
here. |
By looking at your overall progress, this feature aims to:
-
Motivate you to travel more during your free time
-
Provide insights on your travelling habits
-
Provide insights on your expenditure habits
Highlights
The Achievements feature is live and up to date to reflect the latest statistics for each feature. To find out more what statistics are generated for each feature, you can look here
Minor enhancement:
In the address book component, I added a country field to the person in address book.
What it does
When adding a person into the address book, you can specify the person’s country. The contact’s country will be displayed in the persons list panel.
Justification
A traveller travelling to many different country would have multiple contacts from different foreign countries. A specialized address book that specifies a country field for the added contact can better help to tailor to travellers need to better manage their contacts in the address book.
Credits
-
Asfal, Genuine Coder : reused code for fade in and fade out transitions when navgiating between user interface of different features
Other contributions
-
Project management:
-
Managed release
v1.3
on GitHub
-
-
Refactoring:
-
User Interface enhacements:
-
Fixing of Issues:
-
Documentation:
-
Updated UML diagrams for TravEzy in the Developer Guide: (Pull Request #73)
-
{you can add/remove categories in the list above}
Contributions to the User Guide
Given below are sections I contributed to the User Guide. They showcase my ability to write documentation targeting end-users. |
Achievements
You dream to become a top traveller travelling far and wide.. You have used TravEzy extensively and would want to keep track of your travel progress. From each of the different features inside Travezy, you are curious to find out the progress of the goals you have set for yourself. This will allow you to gain insights about your travelling and spending habits to motivate yourself to travel more, spend less and record all your favourite moments!
TravEzy application consist of 5 different features: Address Book, Calendar, Diary, Financial Tracker and Itinerary. For each of the different feature, TravEzy gives you a walkthrough of what statistics you can see for each feature when you are at the achievements page itself.
Interface
Navigating around the achievements interface:
The statistics for each feature is generated and displayed on the scroll pane upon arriving at the achievements page |
Statistics
The scroll pane contains the statistics for:
-
Address Book Statistiscs
-
Calendar Statistics
-
Diary Book Statistics
-
Financial Tracker Statistics
-
Itinerary Statistics
Address Book Statistics
In the scroll pane you will be able to see the statistics of the address book feature comprising of the following components:
If the number of contacts in the address book has past the target goal of 200, the progress bar will show 100% instead of the actual percentage. |
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. |
Achievements
Logic Component
API :
AchievementsLogic.java
The AchievementsLogic
is responsible for generating statistics for the different components in Travezy
-
AchievementsLogicManager
uses theSupplier<StatisticsModel>
to supply theStatisticsModel
. -
Getting the
StatisticsModel
from theSupplier<StatisticsModel>
constructs a newStatisticsModel
that gets the statistics data from a Model from another feature e.g.AddressBookModel
that is visible withinModelManager
-
AchievementsLogicManager
returns the resultant data from theStatisticsModel
that is lazily created.
The AchievementsLogic
parses Command
as well to enable navigation to other Page
within Travezy.
-
AchievementsLogicManager
uses theAchievementsParser
class to parse the user command. -
This results in a
Command
object which is executed by theAchievementsLogicManager
. -
The command execution can affect the
Model
(e.g. adding a person). -
The result of the command execution is encapsulated as a
CommandResult
object which is passed back to theUi
. -
In addition, the
CommandResult
object can also instruct theUi
to perform certain actions, such as displaying help to the user.
The StatisticsModel does not allow mutations and is immutable. Passing the StatisticsModel into AchievementsLogic does not mutate the original StatisticsModel
|
Generate a new StatisticsModel to reflect the newly updated data from each logic by supplying a new StatisticsModeL from the
StatisticsModelSupplier in AchievementsLogic
|
Given below is the sequence diagram for generating the StatisticsModel
lazily: