Current Version: 1.4
Welcome to the ContactSwift User Guide! ContactSwift is an all-in-one desktop application designed to optimize contact and task management for teams. With its dual-interface approach, users can utilize the speed and precision of a Command Line Interface (CLI) and the visual ease of a Graphical User Interface (GUI). ContactSwift is ideal for small business owners, managers, and team leaders who aim to streamline their remote team’s workflows.
This guide will equip you with everything you need to maximize the benefits of ContactSwift, from initial setup to advanced features.
Product Overview:
ContactSwift offers a robust suite of features to manage employee contacts and task assignments effortlessly:
Who is this guide for? This guide is tailored for small business owners and remote team managers seeking an effective solution to manage contact details and tasks. We assume users have a basic understanding of command-line operations but have structured this guide to be accessible even to those new to CLI environments.
Why this guide? The purpose of this user guide is to facilitate a quick and thorough understanding of ContactSwift, enabling you to maximize the application's features for better management and productivity.
Navigate through this guide using the Table of Contents. Icons and formatting are used throughout to signify different types of information:
Code
for actual input commands and any technical references to code, filenames, terminology, etc.Check the Glossary for explanations of technical terms to ensure a smooth learning experience with ContactSwift.
Embark on your ContactSwift journey with these straightforward steps:
11
or above is installed on your computer. Learn how to check your Java version.contactswift.jar
from our releases page.java -jar contactswift.jar
. The GUI, populated with sample data, will appear as shown below:list
– Displays all contacts.add n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01 T/A r/Manager
– Adds a new contact.find John
– Searches for contacts with the name John
.For a detailed explanation of all commands, refer to the Features section.
Understanding the command format is crucial for using ContactSwift effectively. Here are some tips:
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.
Extraneous parameters for commands that do not take in parameters (such as help
, list
, exit
and clear
) will be ignored.
e.g. if the command specifies help 123
, it will be interpreted as help
.
If you are using a PDF version of this document, be careful when copying and pasting commands that span multiple lines as space characters surrounding line-breaks may be omitted when copied over to the application.
help
Shows a message explaining how to access the help page.
Format: help
list
Shows a list of all employees in the address book.
Format: list
add
Adds an employee to the address book.
Format: add n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS r/ROLE T/TEAM [t/TAG]…
Tip: An employee can have any number of tags (including 0)
Examples:
add n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01 T/A r/Manager
add n/Betsy Crowe t/friend e/betsycrowe@example.com a/Newgate Appartment p/1234567 T/B r/Secretary
Caution:
PHONE_NUMBER
is valid; ContactSwift does not accept phone numbers with fewer than 3 digits. Do not make the PHONE_NUMBER
more than 15 digits to maintain uniformity and ensure all numbers are fully visible in the user interface.find
Finds employees whose names contain any of the given keywords.
Format: find KEYWORD [MORE_KEYWORDS]
Hans Bo
will match Bo Hans
OR
search).
e.g. Hans Bo
will return Hans Gruber
, Bo Yang
Examples:
find John
returns john
and John Doe
find alice david
returns Alice Smith
, David Williams
find alice david
filter
The filter
command is used to search for employees based on specific attributes such as their name, tags, role, or team. This powerful tool allows you to narrow down the list of employees to those who meet certain criteria, making it easier to manage and interact with your employees.
Format: filter [n/NAME] [t/TAG] [r/ROLE] [T/TEAM]
Important: While each parameter (NAME
, TAG
, ROLE
, TEAM
) is individually optional and enclosed in brackets [ ]
indicating optional input, you must provide at least one of these parameters for the command to function.
Note: If no parameters are provided, the command will fail to execute, showing the message: "No valid fields present for filter command".
This command filters the list of employees based on their name, tags, role, or team.
AND
search).t/
.T/Team HR
) to ensure accurate filtering.T/Team HR
is equivalent to T/team hr
.r/Manager
will not match r/manager
.n/john
will not match John Doe
. It must be the full name n/john doe
.filter n/John Doe t/friend
will produce the same output as filter t/friend n/John Doe
.Examples:
filter t/friend t/Colleague
: Shows all employees tagged as friend
and Colleague
, respecting case for tags.filter n/john doe
: Shows employees named John Doe
, regardless of the case used in the filter.filter r/Executive T/TEAM SALES
: Shows employees with the role Executive
(exact case match required) and in the 'Sales' team, regardless of how the team name's case is entered.filter t/colleague T/TEAM 2 r/Cleaner
should produce a similar output as below:filter t/colleague T/TEAM 2 r/Cleaner
edit
Edits an existing employee in the address book.
Format: edit INDEX [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [T/TEAM] [r/ROLE] [t/TAG]…
INDEX
. The index refers to the index number shown in the displayed employee list. The index must be a positive integer 1, 2, 3, …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 employee to be 91234567
and johndoe@example.com
respectively.edit 2 n/Betsy Crower t/
Edits the name of the 2nd employee to be Betsy Crower
and clears all existing tags.delete
Deletes the specified employee from the address book.
Format: delete INDEX
or delete uid/UID
or delete NAME
INDEX
/UID
/NAME
.NAME
should not include numbers.Caution: Deleting an employee is irreversible. Ensure you have typed the correct INDEX
, UID
, or NAME
before proceeding.
Examples:
list
followed by delete 2
deletes the 2nd employee in the address book.delete betsy
deletes the employee with the name betsy
if there are no duplicates. In the case of duplicates, the user will be prompted to delete by uid.delete uid/101
deletes the employee with the uid
of 101.Before using any task-related commands (addTask
, mark
, unmark
, deleteTask
), you must first find the employee using the find
command. This ensures that the employee's information is correctly loaded and visible in the UI (User Interface), and any subsequent commands will reflect their effects immediately in the UI.
Example of using the find
command:
find John Doe
will search and display the tasks and details of 'John Doe' in the UI.Caution: Due to a current bug, if you do not use the find
command to locate and display the employee's details before executing other commands, the changes may not immediately reflect in the UI.
addTask
Adds a task to an employee's task list.
Reminder: Use the find
command to ensure the employee's details are displayed in the UI before adding a task.
Format: addTask uid/UID DESCRIPTION
UID
.UID
refers to the user ID displayed beside the employee's name.Examples:
addTask uid/1 Complete the report by 5pm
addTask uid/2 Submit the proposal by 10am
Caution:
mark
Marks a task as completed in the employee's task list.
Reminder: Use the find
command to ensure the employee's details are displayed in the UI before marking a task as completed.
Format: mark uid/UID TASKINDEX
TASKINDEX
as completed for the employee with the specified uid
.UID
refers to the user ID displayed beside the employee's name.TASKINDEX
refers to the index number shown in the displayed task list.TASKINDEX
must be a positive integer 1, 2, 3, … and must exist as displayed in the UI.Caution: This command can mark a task that is already marked as completed. Use this feature carefully to avoid misrepresenting the completion status of tasks.
Examples:
mark uid/1 2
marks the 2nd task in the task list of the employee with the UID
of 1 as completed.mark uid/2 1
marks the 1st task in the task list of the employee with the UID
of 2 as completed.unmark
Unmarks a task as completed in the employee's task list.
Reminder: Use the find
command to ensure the employee's details are displayed in the UI before unmarking a task.
Format: unmark uid/UID TASKINDEX
TASKINDEX
as not completed for the employee with the specified uid
.UID
refers to the user ID displayed beside the employee's name.TASKINDEX
refers to the index number shown in the displayed task list.TASKINDEX
must be a positive integer 1, 2, 3, … and must exist as displayed in the UI.Caution: This command can unmark a task that is not marked as completed. Be cautious to ensure accurate tracking of task completion status.
Examples:
unmark uid/1 2
marks the 2nd task in the task list of the employee with the UID
of 1 as not completed.unmark uid/2 1
marks the 1st task in the task list of the employee with the UID
of 2 as not completed.deleteTask
Deletes a task from an employee's task list.
Reminder: Use the find
command followed by the list
command to ensure the employee's details and tasks are displayed in the UI before deleting a task.
Format: deleteTask uid/UID TASKINDEX
TASKINDEX
from the task list of the employee with the specified uid
.UID
refers to the user ID displayed beside the employee's name.TASKINDEX
refers to the index number shown in the displayed task list.TASKINDEX
must be a positive integer 1, 2, 3, … and must exist as displayed in the UI.Examples:
deleteTask uid/1 2
deletes the 2nd task in the task list of the employee with the UID
of 1.deleteTask uid/2 1
deletes the 1st task in the task list of the employee with the UID
of 2.clear
Clears all entries from the address book.
Format: clear
exit
Exits the program.
Format: exit
ContactSwift data are saved on the hard disk automatically after any command that changes the data. There is no need to save manually.
Note: While ContactSwift attempts to save automatically, it's good practice to regularly back up your data file, especially before making bulk changes or updates.
Caution:
[coming in v2.0]
Sneak Peak:
In version 2.0 of ContactSwift, we introduce a robust data archiving feature designed to enhance data management by allowing you to securely store and back up important contact and task information. This feature is crucial for maintaining a clean and organized database, especially as your dataset grows over time.
Archiving data helps in reducing the load on the main database, improving performance, and securing a historical record of your data that can be accessed or retrieved if necessary. It is particularly useful for maintaining compliance with data retention policies and for organizational audits.
You would be able to archive data with a few simple commands:
archive all
- Archives all data in the current database.archive uid/UID
- Archives data for a specific contact with the given UID.restore all
- Restores all archived data to the main database. This data would be separated in a different tab in the UI (User Interface).restore uid/UID
- Restores the archived data for a specific contact with the given UID.restore date/DD-MM-YYYY
- Restores all data archived on a specific date.restore /before DD-MM-YYYY
- Restores all data archived before a specific date.restore /after DD-MM-YYYY
- Restores all data archived after a specific date.Furthermore, the archived data would be stored in a separate file, ensuring that your main database remains uncluttered and optimized for daily use.
And you would be able to access the archived data at any time in the UI (User Interface), providing a comprehensive view of your historical records.
Stay tuned for the release of ContactSwift v2.0 to experience the benefits of data archiving firsthand!
Great! You have successfully installed ContactSwift and are ready to manage your employees. Let's use all the awesome features that ContactSwift has to offer.
We are thrilled to introduce a sophisticated enhancement to our application - the Completion Rate Statistics. This innovative feature is designed to provide a comprehensive overview of task management efficiency within your teams, offering a deeper insight into employee productivity.
Within the dynamic interface of ContactSwift, each employee now boasts a visible completion rate on their profile card. This rate, a calculated metric representing the proportion of completed tasks to total tasks assigned, serves as an indicator of individual productivity levels. Automatically updated as tasks evolve, this metric ensures that you have the most current view of your team's performance.
How to use it? This feature requires no manual intervention to activate. The completion rate metric operates seamlessly, reflecting real-time updates as tasks are added, completed, or removed. This automatic integration ensures that productivity insights are consistently accurate and available without additional effort from you or your team.
We believe that the Completion Rate Statistics feature will significantly contribute to enhancing the efficiency and productivity of your team, offering a clear, quantifiable measure of task management success. We are confident that this addition will empower you and your team to achieve and surpass your productivity goals.
Q1: How do I install Java 11?
A1: Follow the instructions on the Java 11 download page.
Q2: How can I transfer my ContactSwift data to another computer?
A2: Install ContactSwift on the other computer and overwrite the empty data file it creates with the file that contains the data of your previous ContactSwift home folder.
Q3: How do I change the data file that ContactSwift uses?
A3: ContactSwift uses the file data/addressbook.json
in the home folder by default. You can modify the data inside that file or replace it with another file of the same name.
Q4: If I modify the data how do I know it won't run into errors?
A4: ContactSwift can run into unexpected errors if the data file is modified incorrectly. It is recommended to back up the data file before making any changes. However, the command line will log an error message if the data file is corrupted and provide feedback on what went wrong. Depending on the error, the software may start with an empty data file or a template file.
Q5: What happens if I run commands with corrupted data ?
A5: ContactSwift will overwrite the corrupted data file with a new one and start with an empty address book.
Q6: How can I print the contact details or task list?
A6: Currently, ContactSwift does not support direct printing. However, you can the JSON file to some other format (like CSV) and print it.
Q7: What are the limits on the number of contacts or tasks I can add?
A7: ContactSwift does not have a hard limit on the number of contacts or tasks you can add. However, the performance may degrade with a large number of contacts or tasks. For all practical purposes however the application should be able to handle a few thousand contacts and tasks.
Q9: Can I customize the fields for each contact or task in ContactSwift?
A9: ContactSwift does not support custom fields for contacts or tasks. However, you can use the tags field to add additional information.
Q10: How do I report a bug or issue with ContactSwift?
A10: Please refer to the Feedback and Support section for information on how to report bugs or issues.
Q11: How do I request a new feature for ContactSwift?
A11: Please refer to the Feedback and Support section for information on how to request new features.
preferences.json
file created by the application before running the application again.Action | Format, Examples |
---|---|
Add | add n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS T/TEAM r/ROLE [t/TAG]… e.g., add n/James Ho p/22224444 e/jamesho@example.com a/123, Clementi Rd, 1234665 T/A r/Cleaner t/friend t/colleague |
Add Task | addTask uid/UID DESCRIPTION e.g., addTask uid/1 Complete the report by 5pm , addTask uid/2 Submit the proposal by 10am |
Clear | clear |
Delete | delete INDEX /delete uid/UID /delete NAME e.g., delete 3 , delete uid/101 , delete John Doe |
Delete Task | deleteTask uid/UID TASKINDEX e.g., deleteTask uid/1 3 |
Edit | edit INDEX [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [a/ADDRESS] [T/TEAM] [r/ROLE] [t/TAG]… e.g., edit 2 n/James Lee e/jameslee@example.com |
Exit | exit |
Filter | filter [n/NAME] [t/TAG] [r/ROLE] [T/TEAM] e.g., filter t/friend ,filter r/Manager T/Team HR , filter T/Team HR t/friend r/Executive |
Find | find KEYWORD [MORE_KEYWORDS] e.g., find James Jake |
List | list |
Help | help |
Mark Task | mark uid/UID TASKINDEX e.g., mark uid/1 3 |
Unmark Task | unmark uid/UID TASKINDEX e.g., unmark uid/1 2 |
Feedback is a crucial component of continuous improvement for ContactSwift. We actively encourage users, developers, and stakeholders to provide feedback to help us enhance both the functionality of ContactSwift and the usefulness of this Developer Guide.
Here are the ways you can contribute feedback and suggestions:
For technical issues, bugs, or feature requests, please use our official Issue Tracker. This allows us to categorize and prioritize issues effectively. When submitting an issue, please include as much detail as possible, such as the steps to reproduce the issue, expected versus actual behavior, and environment details (OS, ContactSwift version, etc.).
If you have suggestions for improving the Developer Guide or need to discuss matters that require discretion, we'll be providing our email soon here. We appreciate detailed feedback that includes specific sections or topics and any recommendations for improvement.
Periodically, we may circulate surveys or feedback forms to gather comprehensive opinions on specific aspects of ContactSwift or the Developer Guide. These are excellent opportunities to influence the future direction of the software and documentation.
Constructiveness: We highly value constructive feedback that provides actionable insights and suggestions for improvement.
Respect and Courtesy: Engage respectfully and professionally with community members and maintain a supportive environment.
Confidentiality: Avoid sharing sensitive or confidential information in public forums or issue trackers.
Review Process: All feedback is reviewed by the development team. We prioritize actions based on the impact, feasibility, and alignment with our development roadmap.
Implementation: If your feedback leads to a change or improvement, we will acknowledge contributions in upcoming release notes or directly within the revised sections of the guide.
Response: While we aim to respond to all feedback, the volume of input may affect our ability to reply individually. However, we value every piece of feedback and strive to incorporate it as best as we can.
Your insights and contributions are invaluable to us and help ensure that ContactSwift continues to evolve in ways that meet and exceed user needs and expectations. Thank you for helping us improve and for being an active member of our community.
Any combination of the alphabets A-Z and numbers 0-9.
A type of user interface that allows users to interact with a computer program or operating system by typing commands into a console or terminal. CLI is known for its efficiency in performing tasks, enabling users to execute complex commands through concise textual input.
A user interface that allows users to interact with electronic devices through graphical icons and visual indicators, as opposed to text-based interfaces, typed command labels, or text navigation. GUIs are typically considered user-friendly, especially for navigating complex software or managing multiple tasks simultaneously, as they provide a visual representation of the system’s operations.
The space where interactions between humans and the system occur. This includes any part of the system, like screens or pages, where users can view or interact with tasks, contacts, or other information. It is designed to be intuitive and user-friendly to facilitate efficient task management and navigation.
UID is a unique identifier assigned to each contact in ContactSwift, enabling precise and efficient management of contact details. Such identifiers serve to differentiate contacts and facilitate actions like editing, deleting, or adding tasks for specific contacts. UIDs are essential for managing large datasets and ensuring accurate contact management.
A metric that represents the proportion of completed tasks to total tasks assigned to an employee. This metric is calculated automatically and displayed in the UI, providing a clear indicator of individual productivity levels and task management efficiency.