Tonishka Singh's Project Portfolio Page
Project Reache
Reache is a desktop app that helps busy working professionals manage their large list of contacts by providing an easy-to-use interface to store contacts and organize meetings. It is optimised for use via a Command Line Interface (CLI) and is especially suited for fast typers.
Summary of Contribution
-
Code Contributed: RepoSense Link
- Enhancements Implemented:
- Enhanced
find
command so that all fields are indexable, not just names.find
command now takes an optional field argument. #62 - Implemented two new search methods in
StringUtil
to match the internalMap
andSet
implementation of fields. #62 - Updated tests after the implementation of multiple fields for phones, addresses and emails. #40, #47
- Updated
list
command to display all contacts in lexicographical order of names. #74 - Created and updated
ReacheTheme.css
. #86 - Created
Agenda
,Meeting
,MeetingPlace
,MeetingTime
,MeetingsList
classes inmodel
to model meetings. #107 - Simplified feedback message from commands for better readability and understandability #115
- Created classes for
meetings
feature commands. #116 - Updated tests for
find
feature. #125 - Formatted date time in
meetings
in a user-friendly manner. #135 - Added check for expired meetings. #139
- Updated test for meetings. #210, #219, #240
- Enhanced
- Contributions to UG:
- Contributions to DG:
- Added 6 Use Cases #22
- Added two Class Diagrams for
Model
component to match new implementation #235, #267 - Added
find feature
underImplementation
along with its design considerations, activity diagram and sequence diagram #97, #105 - Added
meet feature
underImplementation
along with its design considerations and sequence diagram #262 - Added
update feature
underImplementation
along with its design considerations and sequence diagram #262 - Added instructions for manual testing for
find
,update
, andcancel
commands #281
- Contributions to Team-based Tasks:
- Contributions beyond the Project team:
- Contributions to the Developer Guide (extracts):
#### Design Considerations
#### Aspect: What happens when user does not specify a field
**Note:**
For evaluating the usefulness of the alternatives these are the assumptions
made as to why the user does not specify the field:
a) they forgot,
b) they do not want to restrict their search to one field, or
c) they do not remember which field they want to search.
**Alternative 1 (Current Choice):** Search all fields for the keyword
- Pros:
- This is the most intuitive approach.
- For all above mentioned scenarios a-c, this alternative will produce
the most useful result.
- Cons:
- If there is a lot of data it will take more time to search all fields for
every person.
- Requires the most complex implementation among all alternatives.
- Performs a lot of unnecessary comparisons (`alex` will never match any
phone number, likewise `659347563` will never match any name).
**Alternative 2:** Use name as the default search field
- Pros: Simple implementation. Since searching people by their name is
the most probable and intuitive use of this command, this is likely to
produce a useful result.
- Cons: Useless for scenario b) and c).
**Alternative 3:** Produce a command syntax error and ask user to enter field
- Pros: Simple implementation. Useful in scenario a) above.
- Cons: Useless for scenario b) and c).
- Contributions to the User Guide (extracts):
### 2.3 Getting Started with Reache
If you are a first time user of Reache, we highly recommend following these
two step-by-step tutorials to get familiar with the product.
In the [contacts tutorial](#231-tutorial-1-managing-contacts-with-reache),
you will learn how to add your contact information to Reache.
In the [meetings tutorial](#232-tutorial-2-managing-meetings-with-reache),
you will learn how to schedule and track your meetings using Reache.
Experienced users should skip this section.
#### 2.3.1 Tutorial 1: Managing Contacts with Reache
In this tutorial we will be adding your personal contact information to Reache.
1. Launch Reache from the folder in which it is located by double clicking
on it. You will see the window shown below with some sample contacts. <br>
![Sample Contacts](images/Tutorial/sample_contacts_screen.png)
Since this is the first time you are using Reache, it loads the sample
contacts as there are no actual contacts stored. Let’s start storing some
real contacts in it. <br><br>