By: Team T11-B3 Since: Sep 2017 Adapted from AddressBook-Level4, by: Team SE-EDU Since Jun 2016 Licence: MIT

1. Introduction

Mobilize is an organizing and planning application for the desktop, that allows you to manage your contacts and tasks easily. You can store, edit, filter and remove contacts and to-do lists by simply typing commands into the text box.

With its sophisticated yet user-friendly features, Mobilize can help you easily plan and organize your day with only a few clicks on the keyboard.

2. About

This User Guide will lead you through the process of downloading and using Mobilize, along with a brief overview of its features and the different commands which will help you use these features.

All commands are summarized at the end of the guide.

3. Key Features

Mobilize facilitates planning and management by combining two important features: an address book and a task manager.

3.1. Address Book

The address book allows you to add, delete, tag, detag, list, find, select and edit contacts.

It accepts the following parameters:

  • Name

  • Phone

  • Address

  • Birthday

  • Email

  • Tags

3.2. Task Manager

The task manager allows you to add, delete, tag, list, find, select and edit tasks.

It accepts the following parameters:

  • Task Description

  • Starting Date

  • Deadline

  • Tags

4. Getting Started

4.1. Launching the Application

To launch the application:

  1. Ensure you have Java version 1.8.0_60 or later installed in your Computer.

    Having any Java 8 version is not enough.
    This app will not work with earlier versions of Java 8.
  2. Download the latest version of Mobilize here.

  3. Copy the file to the folder you want to store Mobilize in.

  4. Double click on the icon to get started.

4.2. Understanding the Screen Layout

Mobilize comes with a simple screen layout to facilitate easy planning. The screen contains six main parts that allow you to interact with the application:

Ui

Fig: Parts of the Mobilize Screen

Each part has different functions:

  • Command Line: This is the your primary mode of input. All major functions have a command in the command line.

  • Result Display: This is your primary mode of interaction with the application. You will be notified of all successful or failed commands, along with their correct usages through the Result Display.

  • Contact Cards: These are arranged in a panel to display all the contacts you add into the application. Contact Cards show you all entered fields of a contact and are arranged in alphabetical order according to the names of your contacts.

  • Task Cards: These are arranged in a panel to display all the tasks you add into the application. Task Cards show you all entered fields of a task and are arranged according to urgency starting from the nearest deadline.

  • Calendar: This is a calendar that gives a color coded view of all task deadlines and contact birthdays.

  • Browser: This is built into the application to redirect you to the location of a contact’s address when a Contact Card is selected.

5. Features

5.1. Using Mobilize

Command formats will be explained using the following syntax:

  • Words or letters followed by a slash (/) are prefixes, to mark the place of a specific parameter.
    For example, in the syntax n/NAME, the combination of “n/” forms a prefix to signal that the parameter that follows should be a name.

  • Words in UPPER_CASE are parameters to be determined by the user.
    For example, in the command add n/NAME, the word NAME is a placeholder for the name of a contact input by a user. The final command might look like add n/John Doe.

  • Items in square brackets are optional.
    For example, if a command syntax contains the item [t/TAG], it means that tags can be left out in the final command.

  • Items followed by “…” can be repeated multiple times.
    For example, if a command syntax contains the item [t/TAG]…, then the final command can contain multiple ‘tags’, such as t/friend, t/family, t/classmate.

  • Parameters that are preceded by a prefix, can occur in any order.
    For example, if a command syntax contains the item add n/NAME p/PHONE a/ADDRESS, then the final command can contain these items in a different order, such as add a/ADDRESS n/NAME p/PHONE.

5.2. Switching Between Address Book and Task Manager : switch

To help you save time to remember all the commands in Mobilize, you can toggle between address book and task manager using:

Format: switch addressbook or switch taskmanager

You can use ab for addressbook and tm for taskmanager in the command.
The default mode of Mobilize will be address book.

5.3. Managing Contacts

5.3.1. Adding new contacts : add

Whether you’ve just met a new colleague or reconnected with an old friend, adding new contacts to Mobilize is easy!

Format: add n/NAME p/PHONE e/EMAIL a/ADDRESS [b/BIRTHDAY] [t/TAG]…

Examples:

  • add n/John Doe p/92435671 e/john_d888@gmail.com a/ 207 Upper Street, Islington, LONDON, N1 1RL b/15-11-1986 t/friend t/roommate
    Creates a new contact and sets the name to John Doe, email address to john_d888@gmail.com, address to 207 Upper Street, Islington, LONDON, N1 1RL, birthday to 15-11-1996 and two tags to [friend] and [roommate].

Contacts are automatically sorted according to name.

Constraints:

Note the following constraints when trying to add new contacts:

  • All fields must be provided and not blank.

  • Duplicate contacts [where all parameters, except tags, are exactly the same] are not allowed.

  • NAME must only contain letters in upper or lower case.

  • PHONE must contain at least three numbers.

  • BIRTHDAY must be a eight-digit number in “dd-mm-yyyy” format.

  • Every TAG must be preceded by a tag prefix, t/.

  • Using multiple parameters after a single prefix will result in only the last parameter being added, if it is valid. e.g. if add n/John Doe n/Jane Doe is used, then the contact will be named Jane Doe.

5.3.2. Finding contacts: find

Whether you’re a social butterfly or a networking pro, sifting through contacts can be a tedious task. To ease the process, you can filter your contact list by name, tag or birthday.

Format: find [NAME] [TAG] [BIRTHDAY]

  • The search is case insensitive. e.g hans will match Hans, friends will match Friends and BIRTHDAY, in the format of DD-MM, will match DD-MM_YYYY. e.g 17-07 will match 17-07-1995

  • The order of the keywords does not matter. e.g. Hans Bo will match Bo Hans

  • Persons matching at least one keyword will be returned (i.e. OR search). e.g. Hans Bo will return Hans Gruber, Bo Yang

Examples:

  • find John
    Returns john and John Doe

  • find Betsy Tim John
    Returns any person having names Betsy, Tim, or John

  • find friends
    Returns any person having tags friends or Friends

  • find 17-07
    Returns any person having birthday on 17-07

Constraints:

Note the following constraint when trying to find contacts:

  • Only full words will be matched e.g Han will not match Hans, friend will not match friends and 1707 will not match 17-07

5.3.3. Deleting contacts : delete

If you need to clean up your contact list, just delete all those redundant contacts!

Format : delete INDEX

Examples:

  • list
    delete 2
    Deletes the 2nd contact in the list.

  • find Betsy
    delete 1
    Deletes the 1st contact in the result list of the find command.

Constraints

Note the following constraints when trying to delete contacts:

  • Deletes the contact at the specified index.

  • INDEX refers to the index number shown in the most recent contact listing.

  • The index must be a positive integer 1, 2, 3, …​

5.3.4. Tagging multiple contacts : tag

Tags are a useful way of grouping and labeling contacts. But editing them manually, one by one, can be a tedious process. Instead, you can use the tag command to tag multiple contacts simultaneously.

Format: tag INDEX… t/[TAG]…

You can add multiple tags to multiple contacts by repeating the tag prefix.

Example:

tag 1, 2, 3 t/friend t/family
Results in all contacts in indices 1, 2 and 3 being tagged with both [friend] and [family].

Constraints

Note the following constraints when trying to add tags:

  • The index must be a positive integer 1, 2, 3, …​

  • Each index must be valid according to the current list of contacts.

  • If a contact is first searched by the “find” feature, then the new index of the contact according to the filtered list of Contact Cards, is what must be used in the INDEX parameter.

  • Every INDEX must be separated by a comma.

  • Every TAG must be preceded by a tag prefix, t/.

  • If a mix of valid and invalid indices are given, then tags will only be added to the valid INDEX without warning. If all indices are invalid, Mobilize will show an error message.

5.3.5. Removing tags from multiple contacts : detag

When a tag is no longer in use, you can use the detag command to remove the tag from multiple contacts.

Format: detag INDEX…​ [t/TAG]

Examples:

  • list
    detag 2 t/friends
    Deletes the [friends] tag of the 2nd contact in the address book.

  • find Betsy
    detag 1, 2, 4 t/OwesMoney

Deletes the [OwesMoney] tag of the 1st, 2nd and 4th contact in the result list of the find command.

Constraints

Note the following constraints when trying to remove a tag:

  • INDEX refers to the index number shown in the most recent listing.

  • The index must be a positive integer 1, 2, 3, …​

  • Every index must be separated by a comma.

5.3.6. Editing contacts : edit

Editing existing contacts is an easy way to keep track of people who might be changing numbers, addresses or even their role in your life.

Format: edit INDEX [n/NAME] [p/PHONE] [a/ADDRESS] [e/EMAIL] [b/BIRTHDAY] [t/TAG]…​

  • Any number between one and multiple items might be given for a successful edit. All items left out will continue to have their original parameters.

Examples:

*edit 1 n/Jane Doe p/92413567 a/Singapore e/jane@gmail.com b/09-08-1997 t/sister
Edits the name of the first contact to be Jane Doe, phone number to be 92413567, address to be Singapore, email to be jane@gmail.com, birthday to be 09-08-1997 and tag to be [sister].
* edit 1 p/91234567 e/johndoe@example.com
Edits the phone number and email address of the 1st contact to be 91234567 and johndoe@example.com respectively.
* edit 2 n/Betsy Crower t/
Edits the name of the 2nd contact to be Betsy Crower and clears all existing tags.

Constraints

Note the following constraints when editing contacts:

  • INDEX refers to the index number shown in the last contact listing.

  • The index must be a positive integer 1, 2, 3, …​

  • If a contact is first searched by the “find” feature, then the new index of the contact according to the filtered list of Contact Cards, is what must be used in the INDEX parameter.

  • At least one of the optional fields must be provided.

  • Existing values will be updated to the input values.

  • If a tag prefix is given without a TAG parameter, then the tags will be replaced by a blank (deleted) i.e adding of tags is not cumulative.

  • You can remove all the contacts' tags by typing t/ without specifying any tags after it.

5.3.7. Listing contacts : list

To go back to the default list of contacts after a round of filtering, use the list command.

Format: list

5.3.8. Selecting contacts : select

Selecting a contact is an easy way to locate a contact’s address on Google Maps.

Format: select INDEX

Examples:

  • list
    select 2
    Selects the 2nd contact in the address book. <add detail about their location showing up>

  • find Betsy
    select 1
    Selects the 1st contact in the results of the find command. <add detail about their location showing up>

Constraints

Note the following constraints when selecting contacts:

  • INDEX must be a positive integer 1, 2, 3, …​

  • If a contact is first searched by the “find” feature, then the new index of the contact according to the filtered list of Contact Cards, is what must be used in the INDEX parameter.

5.4. Managing Tasks

5.4.1. Adding tasks: add

Whether it is a host of pending submissions, a get-together or a multiday program, adding it to Mobilize can easily help you keep track of it all.

Use prefixes:

  • on or by or from to denote the date in which the task is due to be completed or when a task is set to begin.

  • at to denote the starting time of the task and to to denote the ending time of the task.

Format: add DESCRIPTION [by/on/from DEADLINE] [at START TIME to END TIME] [t/TAG]…

  • The task added is automatically sorted according to the deadline. With expired tasks coming first, follow by tasks with deadline that are coming up next and lastly tasks without deadline.

  • If you want to enter a date, it must follow the MONTH-DAY-YEAR format.

  • Words or phrases like 'tomorrow', 'yesterday', 'Tue', 'Tuesday', 'day after tomorrow', '5 Dec', '5/9/2017' and 'the 8th of Jan' are all valid dates.

  • 2 pm, 2:00, 02:00, 1400 are all valid times.

  • Deadlines and times are optional items.

Examples:

  • add important meeting on 17 Nov at 9 am to 11 am Sets the description to important meetin, deadline to the 15th of November in the current or upcoming year and times to 09:00 and 11:00 respectively.

  • add recess week from tomorrow by 15 Sep Sets the description to recess week start date to the next day and the deadline to the 15th of September in the current or upcoming year.

  • add get groceries Sets the description to get groceries leaving the other parameters blank.

Constraints

Note the following constraints when adding tasks:

  • Dates must be preceded by one of the prefixes.

  • Invalid dates (such as 32 Jan) will not be flagged by Mobilize and will be replaced in a task card by an incorrect date (such as Feb 1 '48).

  • Invalid times (such as 200 and 3 (without am or pm)) will not be flagged by Mobilize and will be replaced in a task card by an incorrect time (such as 00:00).

  • If one time (e.g. start time) is invalid while the other (e.g. end time) is valid, the incorrect time will be ignored by Mobilize and only the correct time will be added as a single time for the task.

  • If a prefix is used and no subsequent parameter is specified, the task will be added without the associated item, e.g. add meeting on will set an empty deadline for the task.

  • Different deadline prefixes are not allowed in the same command, e.g. add submit assignment by friday on friday will result in an error.

  • Multiple values for a single deadline prefix for a single task will only result in the first value being selected, e.g. the command add finish quiz by friday saturday will set the deadline to the upcoming Friday only and not Saturday.

  • Multiple copies of the same deadline prefix with multiple values each will result in the last value being selected, e.g. the command add finish quiz by friday by saturday will set the deadline to the upcoming Saturday only and not Friday.

  • Multiple values for each time prefix is not allowed and will result in incorrect time values being registered for a task card without warning.

5.4.2. Finding tasks by description or deadline: find

Want to find a task? The find feature allows you to find task(s) by descriptions or deadlines.

To find task(s) whose descriptions contain any of the given keywords, use
Format: find KEYWORD [MORE_KEYWORDS]

To find task(s) by deadlines, use

Format: find DD-MM-YYYY

Examples:

  • find finish
    Returns finish task tonight and finish task tomorrow

  • find finish task tonight
    Returns any task(s) having a description containing finish, task, or tonight

  • find 29-10-2017
    Returns any task(s) having deadlines on 29-10-2017

Constraints:

Note the following constraints when finding tasks:

  • The search is case insensitive. e.g finish will match Finish.

  • The order of the keywords does not matter. e.g. Finish task will match task finish.

  • Only the description and deadline are searched.

  • Only full words will be matched e.g Finish will not match Finished.

  • Only valid dates will be matched e.g 291017 will not match 29-10-2017.

5.4.3. Deleting tasks : delete

Due to our fast changing lives, if your task was cancelled suddenly and you would like to delete the task from your task manager, the delete function is here to save your day!

Format: delete INDEX

Constraints

Note the following constraints when deleting a task:

  • Deletes the task at the specified INDEX.

  • INDEX refers to the index number shown in the most recent listing.

  • If a task is first searched by the “find” feature, then the new index of the task according to the filtered list of Task Cards, is what must be used in the INDEX parameter.

  • The index must be a positive integer 1, 2, 3, …​

5.4.4. Editing tasks: edit

Change of plans? The edit feature offers a hassle-free solution to change any parameter of an existing task.

Format: edit INDEX DESCRIPTION by/from/at DEADLINE at START TIME to END TIME

One or more parameters can be specified.
The time parameter can only be edited using the prefix at.

For example:

  • edit 1 exam on 4th Dec at 8 pm to 9 pm
    Changes all parameters of the task at INDEX 1 to set task description to exams, deadline to Mon, Dec 4, '17 and times to 20:00 and 21:00 respectively.

  • edit 2 from tomorrow
    Changes the deadline of the task at INDEX 2 to the date of the following day.

  • edit 3 at 9 am Changes the time of the task at INDEX 3 to 09:00.

Constraints

Note the following constraints when editing tasks:

  • INDEX refers to the index number shown in the most recent task listing.

  • If a task is first searched by the “find” feature, then the new index of the task according to the filtered list of Task Cards, is what must be used in the INDEX parameter.

  • The index must be a positive integer 1, 2, 3, …​

  • The time parameter can only be changed using the at prefix.

  • When changing the times of a task, both start time and end time must be specified or repeated, even if only one time must be changed, e.g. to change the end time of 09:00 - 11:00 at INDEX 1, the command must be edit 1 at 10 am to 11 am. If edit 1 at 10 am, both times will be replaced by 10:00 only. If edit 1 to 10 am is used, then Mobilize will give an error.

  • If a prefix is used with a blank parameter, the respective date associated with that prefix will be deleted.

  • Different deadline prefixes are not allowed in the same command, e.g. edit 1 by friday on friday will result in an error.

  • Multiple values for a single deadline prefix for a single task will only result in the first value being selected, e.g. the command edit 1 by friday saturday will set the deadline to the upcoming Friday only and not Saturday.

  • Multiple copies of the same deadline prefix with multiple values each will result in the last value being selected, e.g. the command edit 1 by friday by saturday will set the deadline to the upcoming Saturday only and not Friday.

  • Multiple values for each time prefix is not allowed and will result in incorrect time values being registered for a task card without warning.

5.4.5. Tagging multiple tasks : tag

Tags are a useful way of grouping and labeling tasks. But editing them manually, one by one, can be a tedious process. Instead, you can use the tag command to tag multiple tasks simultaneously.

Format: tag INDEX… t/[TAG]…

You can add multiple tags to multiple tasks by repeating the tag prefix.

Example:

tag 1, 2, 3 t/urgent t/family
Results in all contacts in indices 1, 2 and 3 being tagged with both [urgent] and [family].

Constraints

Note the following constraints when trying to add tags:

  • The index must be a positive integer 1, 2, 3, …​

  • Each index must be valid according to the current list of tasks.

  • If a task is first searched by the “find” feature, then the new index of the task according to the filtered list of Task Cards, is what must be used in the INDEX parameter.

  • Every INDEX must be separated by a comma.

  • Every TAG must be preceded by a tag prefix, t/.

  • If a mix of valid and invalid indices are given, then tags will only be added to the valid INDEX without warning. If all indices are invalid, Mobilize will show an error message.

5.4.6. Listing tasks : list

You can use the list command to go back to the default list of tasks after a search.

Format: list

5.4.7. Selecting a task: select

You can use the select command to select the task identified by the index number used in the last task listing. Format: select INDEX

All contacts involved in the selected task will be listed. There will be no changes in the displayed list of contacks if there are no involved personnel.

Examples:

  • list
    select 2
    Selects the 2nd task in the task manager.

  • find finish
    select 1
    Selects the 1st task in the results of the find command. <*result list>

Constraints:

  • Selects the task at the specified INDEX.

  • The index refers to the index number shown in the most recent listing.

  • The index must be a positive integer 1, 2, 3, …​

5.5. Managing Common Features

5.5.1. Showing help window : help

Need some help? Use the help command to pull up the user guide!

Format: help

5.5.2. Display past commands : history

If you need a reminder about what command you used in the past, Mobilize has you covered! The history command can display a list of your typed commands in reverse chronological order!

Format: history

Pressing the and arrows will display the previous and next input respectively in the command box.

Constraints

Note the following constraint when viewing your command history:

  • Only the commands used while the application is open in the current session, can be viewed.

5.5.3. Undoing previous commands : undo

If you have accidentally made an unintended change, you can easily restore Mobilize to the state before the previous undoable command was executed!

Format: undo

Undoable commands: Commands that modify Mobilize’s content (add, delete, tag, detag, edit, clear).

Examples:

  • delete 1
    list
    undo
    Reverses the delete 1 command.

  • select 1
    list
    undo
    The undo command fails as there are no undoable commands executed previously.

  • delete 1
    clear
    undo
    Reverses the clear command.
    undo
    Reverses the delete 1 command.

Constraints

Note the following constraint when undoing commands:

  • Only commands used while the application is open in an active session, can be undone.

  • If no commands were used previously, the undo command will not work.

5.5.4. Redoing previously undone commands : redo

Trying to reverse the most recent command you undid? Just redo it!

Format: redo

Examples:

  • delete 1
    undo
    Reverses the delete 1 command.
    redo
    Reapplies the delete 1 command.

  • delete 1
    redo
    The redo command fails as there are no undo commands executed previously.

  • delete 1
    clear
    undo
    Reverses the clear command.
    undo
    Reverses the delete 1 command.
    redo
    Reapplies the delete 1 command.
    redo
    Reapplies the clear command.

Constraints

Note the following constraint when redoing commands:

  • If no commands were undone previously, the redo command will not work.

5.5.5. Clearing all entries : clear

For a fresh start, just clear up all entries in Mobilize!

Format: clear

5.5.6. Exiting the program : exit

If you are done organizing for the day, you can easily exit the application!

Format: exit

5.6. Using the calendar

A calendar is useful for marking important dates. When you have many deadlines and birthdays to take note of, the calendar allows you to view all these important dates at a glance.

5.6.1. Marking dates

With many contacts and tasks to manage, differentiating between birthdays and deadlines on the calendar can be done with the help of colours.

Dates are marked automatically when a contact/task is added, edited or deleted.

Examples:

  • A task has a deadline on 17 July 2017.
    The corresponding date on the calendar is marked red.

  • A contact has his/her birthday on 09 December 2017.
    The corresponding date on the calendar is marked pink.

  • 17th July 2017 is both a task’s deadline and a contact’s birthday.
    The corresponding date on the calendar is marked yellow.

Constraints

Note the following constraint on the colour of a date:

  • The colour of the date on the calendar is only updated when next/previous button for month/year is clicked or when a date on the calendar is clicked.

5.6.2. Viewing deadlines and birthdays

When there are many deadlines or birthdays on the same date, instead of switching between CommandMode and using the find command, you can just click on the date itself.

Examples:

  • 17 on the calendar that represents 17th July 2017 is being clicked.
    Returns a list of tasks with deadlines on 17th July 2017 and a list of contacts with birthdays on 17th July 2017, respectively.

Constraint

Note the following constraints when clicking a date on a calendar:

  • When a date is clicked and it is not a deadline or not a birthday or both, an empty task list or an empty contacts list or both will be shown, which will be represented by a blank field on the application.

  • To return to the original task list or contacts list, you can use the list command.

  • When a clicked date is not a deadline, an empty task list is shown.

  • When a clicked date is not a task, an empty contacts list is shown.

  • When a clicked date contains netiher birthdays nor tasks, both task list and contacts list are emptied.

5.7. Saving the data

Data from Mobilize is saved in the hard disk automatically after using any command that changes the data.
There is no need to save it manually.

6. FAQ

Q: How do I transfer my data to another Computer?
A: Install the app in the other computer and overwrite the empty data file it creates with the file that contains the data of your previous Address Book folder.

7. Troubleshooting

Having trouble? Here’s a list of common errors and why they occur:

  • Error: Invalid Command Format
    Occurs if a mandatory prefix has been left out.

  • Error: Invaid Date Format
    Occurs if the date given cannot be parsed.

  • Error: Unknown Command
    Occurs if the command is incorrect.

The correct usage of all commands is summarized in the next section.

8. Command Summary

Forgot some commands? Fret not! Just look up what you need in the following table!

Table 1. Switching Modes

Command

Format

Example

Switch Modes

switch MODE

switch ab or switch tm

Table 2. Address Book

Command

Format

Example

Add

add n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS [b/BIRTHDAY] [t/TAG]…​

add n/James Ho p/22224444 e/jamesho@example.com a/123, Clementi Rd, 1234665 b/040697 t/friend t/colleague

Delete

delete INDEX

delete 3

Tag

tag [INDEX]…​ t/[TAG]…​

tag 1,2 t/friend t/classmates

Delete Tags

detag [INDEX]…​ [t/TAG]

detag 1, 2, 3 t/friends

Edit

edit INDEX [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [a/ADDRESS] [t/TAG]…​

edit 2 n/James Lee e/jameslee@example.com

Find

find KEYWORD [MORE_KEYWORDS]

find James Jake friends 1707

Select

select INDEX

select 2

Table 3. Task Manager

Add

add DESCRIPTION from START DATE by/on DEADLINE

addtask assignment due from tomorrow to thursday

Delete

delete INDEX

delete 3

Edit

edit INDEX [DESCRIPTION] [from START DATE] [to/by/on DEADLINE]

edit 2 return books by the 8th of Dec

Archive

archive [INDEX]…​

archive 3, 5

Find

find KEYWORD [MORE_KEYWORDS]

findtask finish task 17-07-1995

Select

select INDEX

select 2

Table 4. Common

Command

Format

Help

help

History

history

Undo

undo

Redo

redo

Clear

clear

Exit

exit