By: Team W11-B4      Since: Feb 2018      Licence: MIT

1. Introduction

  • Stardy Together (ST) is for NUS Students who prefer to use a desktop app for managing NUS friends' contacts.

  • More importantly, ST is optimized for those who prefer to work with a Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI).

  • If you can type fast, ST can get your contact management tasks done faster than traditional GUI apps.

  • This guide provides a list of features that are available on ST and their usage.

  • Interested? Jump to the next section, Section 2, “Quick Start”, to get started. Enjoy!

2. Quick Start

  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 StardyTogether.jar here.

  3. Copy the file to the folder you want to use as the home folder for your StardyTogether.

  4. Double-click the file to start the app. The GUI should appear in a few seconds.

    Ui
  5. Type the command in the command box and press Enter to execute it.
    e.g. typing help and pressing Enter will open the help window.

  6. Some example commands you can try:

    • list : lists all friends and aliases

    • addadd n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01 b/01011995 tt/http://modsn.us/oNZLY : adds a friend named John Doe to ST.

    • delete3 : deletes the 3rd friend shown in the current list

    • exit : exits the app

  7. Refer to the next section, Section 3, “Features”, for details of each command, or refer to Section 7, “Command Summary” for the summary of all the commands.

3. Features

Command Format

  • Words in UPPER_CASE are the parameters to be supplied by the user e.g. in add n/NAME, NAME is a parameter which can be used as add n/John Doe.

  • Items in square brackets are optional e.g n/NAME [t/TAG] can be used as n/John Doe t/friend or as n/John Doe.

  • Items with ​ after them can be used multiple times including zero times e.g. [t/TAG]…​ can be used as   (i.e. 0 times), t/friend, t/friend t/family etc.

  • Parameters can be in any order e.g. if the command specifies n/NAME p/PHONE_NUMBER, p/PHONE_NUMBER n/NAME is also acceptable.

3.1. Contact Commands

3.1.1. Adding a friend: add

To add a friend to ST, you can enter the command add followed by the various parameters
Format: add n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS b/BIRTHDAY tt/TIMETABLE [t/TAG]…​

A friend can have any number of tags (including 0)
  • Birthday must be in DDMMYYYY format

  • Timetable must either be a valid NUSMods shortened link or left empty

If timetable is invalid, left empty or there is no internet access, an empty timetable will be created for you

For more information on how to get a valid link, refer to Section 5, “FAQ”.

Examples:

  • add n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01 b/01011995 tt/http://modsn.us/oNZLY

  • add n/Betsy Crowe t/friend e/betsycrowe@example.com a/Newgate Prison p/1234567 b/28021997 tt/http://modsn.us/ojGeu t/criminal

3.1.2. Listing all friends and aliases: list

To show a list of all your friends and a table of created aliases in ST, you can enter the command list
Format: list

aliasList

3.1.3. Editing a friend : edit

To edit a friend’s particulars, you can enter the command edit followed by the respective parameters you wish to edit.
Format: edit INDEX [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [b/BIRTHDAY] [tt/TIMETABLE] [t/TAG]…​

  • Edits the friend at the specified INDEX. The index refers to the index number shown in the last friend listing. The index must be a positive integer 1, 2, 3, …​

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

  • Existing values will be updated to the input values.

  • When editing tags, the existing tags of the friend will be removed i.e adding of tags is not cumulative.

  • You can remove all the tags tagged to the friend by typing t/ without specifying any tags after it.

Examples:

  • edit 1 p/91234567 e/johndoe@example.com
    Edits the phone number and email address of the 1st friend to be 91234567 and johndoe@example.com respectively.

  • edit 2 n/Betsy Crower t/
    Edits the name of the 2nd friend to be Betsy Crower and clears all existing tags.

3.1.4. Locating friends by name: find

To find specific friends by their names, you can enter the command find, followed by KEYWORD.
Format: find KEYWORD [MORE_KEYWORDS]

  • The search is case insensitive. e.g hans will match Hans

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

  • Only the name is searched.

  • Only full words will be matched e.g. Han will not match Hans

  • Friends 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 friend having names Betsy, Tim, or John

3.1.5. Deleting a friend : delete

To remove a specified friend from ST :cry: , you can enter the command delete followed by his INDEX.+ Format: delete INDEX

  • Deletes the friend 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, …​

Examples:

  • list
    delete 2
    Deletes the 2nd friend in ST.

  • find Betsy
    delete 1
    Deletes the 1st friend in the results of the find command.

3.1.6. Selecting a friend : select

To select a friend, you can identify his/her index number used in the last friend listing and enter the command select followed by his/her index+ Format: select INDEX

  • Selects the friend and opens the detail card of the friend 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, …​

Examples:

  • list
    select 2
    Selects the 2nd friend in ST.

  • find Betsy
    select 1
    Selects the 1st friend in the results of the find command.

3.1.7. Viewing a collated birthday list/notification: birthdays (since v1.3)

To get a list that contains all the birthdays of all your friends (ordered by date)
Or to know whose birthday is it today, you can enter the following commands
Format: birthdays [ADDITIONAL_PARAMETER]

The following parameters can be inputted into the [ADDITIONAL_PARAMETER] field

  • todays: Shows a notification of the birthdays occurring today

Examples:

  • birthdays
    Displays a list of all your friends' birthdays

birthdaysList
  • birthdays today
    Displays a window with the birthdays occuring today

birthdaysToday

3.2. NUS Commands

3.2.1. Viewing common time slots in timetable: union (since v1.5rc)

To know your free slots together with your friends, you can use union to display the common free time of multiple friends in ST. (Minimum: 2)
Format: union ODD/EVEN INDEX INDEX [INDEX]…​

ODD/EVEN is case-insensitive
Only indexes of the current filtered list are valid

Examples:

  • union Odd 1 2 3
    Displays the combined odd timetable for friends at Index 1, 2 and 3.

timetableUnion
  • union Even 1 2
    Displays the combined even timetable for friends at Index 1 and 2.

3.2.2. Vacant study rooms finder : vacant (since v1.3)

To get a list of study rooms in the specified building and their vacancy (in blocks of 1 hours), you can enter vacant follwed by the BUILDING code.
Format: vacant BUILDING

vacant
The building must be in NUS venue format, e.g. COM1, S17, E2

Examples:

  • vacant COM1
    Finds the vacancy status of study rooms in COM1 building.

3.2.3. Google maps display : map (since v1.4)

To find locations or a path from one place to another, you can enter the command map along with the locations to launch Google Maps with the specified location(s).
Format: map LOCATION or map LOCATION/LOCATION…​ or map current location

map
  • You are advised to keep the number of consecutive [LOCATION] to 4 locations.

  • All locations specified should not contain /. e.g. Changi/Airport as a location will not give the same map display as Changi Aiport.

  • NUS building name is case insensitive e.g. COM1 or com1 gives the same output

  • If only one location is provided, the location will be displayed on the map.

  • If more than one location is provided, directions to each location, starting from the first one, will be displayed.

  • Typing map LOCATION_START to LOCATION_DESTINATION can work as well for two locations input, only if neither locations specified are NUS buildings.

Examples:

  • map current location
    Displays your current location on the map.

  • map BIZ1
    Displays the location of BIZ1 (which is an NUS building name).

  • map Tampines Mall/COM1
    Displays the directions from Tampines Mall to COM1.

  • map Tampines Mall/COM1/Airport Blvd
    Displays the directions from Tampines Mall to COM1 to Airport Blvd.

3.3. Utility Commands

3.3.1. Viewing help : help

If you find yourself lost on what to do in ST, you can enter the command help!

Format: help

3.3.2. Adding a command alias: alias (since v1.1)

To create customized aliases for any valid command, you can enter the command alias followed by your desired command and your very own alias.
Format: alias [COMMAND] [ALIAS]

  • [ALIAS] should be alpha-numeric and without spaces.

  • The recommended number of characters for [ALIAS] is 6 characters or less.

Examples:

  • alias find f

  • alias alias al

3.3.3. Removing a currently existing alias: unalias (since v1.3)

To remove a previously created alias, you can enter the command unalias followed by the alias you wish to remove.
Format: unalias [CURRENT_ALIAS]

Examples:

  • unalias f

3.3.4. Listing entered commands : history

To list all the commands that you have entered in reverse chronological order, you can enter history.
This will be particularly useful if you wish to undo or redo commands. Format: history

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

3.3.5. Undoing previous command : undo

To revert a command you executed previously (in case you accidentally changed something), you can enter the command undo. This will restore the ST instance to the state before the previous undoable command was executed.
Format: undo

Undoable commands: those commands that modify the ST’s content (add, alias, unalias, delete, edit and 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)

3.3.6. Redoing the previously undone command : redo

To reverse the most recent undo command, you can enter the command redo.
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)

3.3.7. Clearing all entries : clear

To clear all entries of your friends from ST :sob: , you can enter the command clear.
Format: clear

3.3.8. Encrypting data files : encrypt (since v1.2)

To encrypt ST and protect your data, you can enter the command encrypt followed by your password.
Format: encrypt PASSWORD

  • Passwords are case-sensitive.

  • The password string can only contain characters in the UTF-8 format.

Examples:

  • encrypt test
    Encrypts addressbook.xml with "test" as the password.

Subsequently, when you are re-opening the app, you will be prompted to enter your password, as shown in the picture below.

passwordBox

3.3.9. Removal of password: decrypt (since v1.3)

To remove the password protection of ST and decrypt addressbook.xml, you can enter the command decrypt.
Format: decrypt

3.3.10. Importing data : import (since v1.1)

To import your friend’s ST to your own ST, you can enter the command import followed by the various parameters. An encrypted or unencrypted ST instance from filepath to the existing ST application. Friends, Tags, and Aliases that are not in your ST will be added.
Format: import FILEPATH PASSWORD

  • Imports an instance of ST from the specified FILEPATH.

  • Decrypt that instance using the PASSWORD provided.

  • The filepath refers to the filepath where the instance file is stored.

  • If no PASSWORD is provided, the instance will be read without decryption.

  • The instance file must be in XML file format after decryption.

Example:

  • import data/addressBook.xml testpassword
    Imports addressBook.xml file at data folder using "testpassword" as the password.

3.3.11. Exporting data : export (since v1.4)

To export your ST for your friends' ST to import, you can enter export with the various parameters. The current view of the existing ST application with or without password encryption to the specified filepath.
Format: export FILEPATH PASSWORD

  • Exports an instance of ST to the specified FILEPATH.

  • Encrypt that instance using the PASSWORD provided.

  • If no PASSWORD is provided, the instance will be exported without encryption.

  • The filepath refers to the filepath where the instance file will be stored.

Execute find command before export to select the students' contact details you want to export

Example:

  • export data/addressBookBackUp.xml testpassword
    Exports the current list of ST application to the addressBook.xml file at data folder using "testpassword" as the password for encryption.

3.3.12. Uploading data : upload (since v1.5rc)

To upload your ST to Google Drive, you can enter the command upload with the various parameters. The current view of the existing ST application with or without password encryption to the specified filename in Google Drive. Format: upload FILENAME PASSWORD

  • Application will redirect you to a browser url to request for access to Google Drive

  • Uploads an instance of ST with the specified FILENAME.

  • Encrypt that instance using the PASSWORD provided.

  • If no PASSWORD is provided, the instance will be exported without encryption.

  • The filepath refers to the filepath where the instance file will be stored.

Application will be blocked from executing another command while waiting for authorization response
Authorization request will timed out after 20 seconds

Example:

  • upload addressBook.xml testpassword
    Uploads the current list of ST application to the addressBook.xml file in Google Drive using "testpassword" as the password for encryption.

3.3.13. Exiting the program : exit

To exit the program, you can enter the command exit

Or you can simply press the 'X' located at the top right hand corner

Format: exit

3.3.14. Saving the data

ST data are saved in the hard disk automatically after any command that changes the data.
There is no need to save manually.

4. Upcoming Features

We have a few exciting ideas to further improve ST for you!

4.1. Use current location to find vacant rooms (coming in v2.0)

You will be able to find vacant rooms in nearest building just by providing your current location.
Format: vacant current location

Examples:

  • vacant current location
    Displays the list of rooms schedule for the day in the nearest building

4.2. Modules Tag (coming in v2.0)

Each friend will be able to have their own list of modules they have taken.
To find out which friends have not taken a module (so as to plan with them to take), you can enter the command module followed by the module code Format: module MODULE_CODE

  • Searches ST’s friends for the same module code

  • Parses the information and displays it as a list

Module code follows the traditional case-sensitive naming conventions used by NUS (Example: CS2103T or CS2101)

Examples:

  • module CS2103
    Displays the list of friends who have not taken the module CS2103

5. FAQ

Q: How do I transfer my data to another Computer?
A: Method 1: Replaces the other computer’s data completely

  1. In the folder that StardyTogether.jar is in, find the data folder

  2. Copy the addressbook.xml storage file inside

  3. Transfer that file to the other computer

  4. Place it in the data folder of StardyTogether.jar, on the other computer

Method 2: Merges the contacts of both computers

  1. In the folder that StardyTogether.jar is in, find the data folder

  2. Copy the addressbook.xml storage file inside

  3. Transfer that file to the other computer

  4. Rename that file to avoid overwriting the existing addressbook.xml

  5. Place it in the data folder of StardyTogether.jar, on the other computer

  6. Type import [fileName] into the command box, where [fileName] is the new name from Step 4

  7. Press Enter

Q: How do I import my timetable from NUSMods?
A: When adding or editing a friend, you can input his/her NUSMods shortened link in the tt/TIMETABLE field

  1. Go to NUSMods

  2. Click Share/Sync at the bottom right hand corner

    NUSMods Screenshot First
  3. Copy the link in the window that appeared

    NUSMods Screenshot Second
  4. Paste it in ST at the tt/TIMETABLE field

Q: How do I upload StardyTogether file to Google Drive?
A: Input upload command and accept the authorization request

  1. Input upload command, example upload stardyTogether.xml

  2. The redirect url will open in default browser like this:

    Redirect First
  3. Click your Gmail or login your Gmail account and click accept:

    Redirect Second
  4. File should be uploaded to your Google Drive

    Redirect Third

6. Troubleshooting

Problem How to solve

The timetable I entered is empty!

Do check the validity of your NUSMods link by inputting it in your internet browser, and your internet connection.

I am having trouble accessing the Google Drive functions!

1) Go to your user directory (Example: C:/users/USER)
2) Delete .googlecredentials folder (if it doesn’t appear, show hidden files in Settings)

7. Command Summary

Command Usage 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/010195 t/friend t/colleague

Alias

alias COMMAND ALIAS

alias history hist

Birthday List

birthdays [todays]

birthdays todays

Clear

clear

Delete

delete INDEX

delete 3

Edit

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

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

Export

Export FILEPATH PASSWORD

export data/addressBookBackUp.xml testpassword

Find

find KEYWORD [MORE_KEYWORDS]

find James Jake

Help

help

History

history

Import

import FILEPATH PASSWORD

import data/addressBook.xml testpassword

List

list

Map

map LOCATION

map COM2

Encrypt

encrypt PASSWORD

encrypt test

Decrypt

decrypt

Redo

redo

Select

select INDEX

select 2

Unalias

unalias CURRENT_ALIAS

unalias hist

Undo

undo

Union

union EVEN/ODD INDEX INDEX [INDEX]

union Odd 1 2 3

Upload

upload FILENAME PASSWORD

upload addressBook.xml testpassword

Vacant

vacant BUILDING

vacant COM1