Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[CS2113T-T09-1] ConTech #24

Open
wants to merge 933 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 250 commits
Commits
Show all changes
933 commits
Select commit Hold shift + click to select a range
18fcaa5
Merge branch 'master' into BugFix-1.0
marcusbory Oct 28, 2021
56f11c0
Fix syntax + edit personal fields
marcusbory Oct 29, 2021
8bd5717
Merge pull request #125 from marcusbory/BugFix-1.0
ng-andre Oct 29, 2021
a98fae8
Fix formatting issue
marcusbory Oct 29, 2021
e8aa334
Fix <QUERY> issue
marcusbory Oct 29, 2021
ee3bc07
Merge pull request #126 from marcusbory/BugFix-1.0
ng-andre Oct 29, 2021
0f28962
Fix <QUERY> issue using escape sequence
marcusbory Oct 29, 2021
63f2f5d
Merge pull request #127 from marcusbory/BugFix-1.0
ng-andre Oct 29, 2021
56652e6
Add author tags
ng-andre Oct 29, 2021
17a07c2
Remove unused imports and constants
ng-andre Oct 29, 2021
2289404
Project level code reformat
ng-andre Oct 29, 2021
d7240b0
Fix checkstyle and some spelling errors in comments
ng-andre Oct 29, 2021
26c4392
Merge pull request #128 from ng-andre/Refactor-v1.0
marcusbory Oct 29, 2021
f07e452
Fix broken link for the list
ng-andre Oct 31, 2021
d466817
Fix typo for add and delete contact in command summary
ng-andre Oct 31, 2021
ef6fb13
Update FAQ
ng-andre Oct 31, 2021
094dfca
Add hyperlink to notations in quick start
ng-andre Oct 31, 2021
58eb2f9
Update hyperlinks and quick start
ng-andre Oct 31, 2021
01445d5
Update to specify extra inputs are ignored
ng-andre Oct 31, 2021
6479e3b
Update search flag phrasing
ng-andre Oct 31, 2021
e173806
Update email regex
mayankp291 Oct 31, 2021
dde4267
Merge branch 'master' of https://github.com/AY2122S1-CS2113T-T09-1/tp
mayankp291 Oct 31, 2021
3826eff
Merge pull request #158 from ng-andre/UG-Bugfix
lezongmun Oct 31, 2021
f7e62d6
Merge branch 'master' of https://github.com/AY2122S1-CS2113T-T09-1/tp
mayankp291 Oct 31, 2021
9115d98
Update github regex to include uppercase
mayankp291 Oct 31, 2021
f83b9ef
Fix inconsistent index error messages
mayankp291 Oct 31, 2021
dba382d
Update linkedin error message
mayankp291 Oct 31, 2021
30957af
Merge pull request #159 from mayankp291/branch-Fix-PED
ng-andre Oct 31, 2021
0ba3982
Add me as valid index for view
ng-andre Oct 31, 2021
f1b0c07
Update getIndex order for consistency
ng-andre Oct 31, 2021
b3a7a35
Minor edits
lezongmun Nov 1, 2021
a5bd01e
Merge conflicts
lezongmun Nov 1, 2021
17172c8
Merge pull request #161 from ng-andre/IndexParser-BugFix
mayankp291 Nov 1, 2021
9bd4fe0
Rename main class and package
mayankp291 Nov 1, 2021
78ce064
Rename class to ConTech
mayankp291 Nov 1, 2021
3116895
Update IO test script
mayankp291 Nov 1, 2021
b580226
Update gradle script
mayankp291 Nov 1, 2021
aa753fb
Refactor exception handling in edit, view and rm
lezongmun Nov 2, 2021
46aac4d
Update userguide
lezongmun Nov 2, 2021
c6fc10e
Merge remote-tracking branch 'upstream/master'
lezongmun Nov 2, 2021
3f73558
Change input.txt
lezongmun Nov 2, 2021
382caac
Remove class files
lezongmun Nov 2, 2021
a971169
Change ExceptionTextUi messages to be consistent with UG
lezongmun Nov 3, 2021
7920ffe
Change EXPECTED.TXT
lezongmun Nov 3, 2021
28c88f0
Minor edits
lezongmun Nov 3, 2021
3e511e4
Update EXPECTED.TXT
lezongmun Nov 3, 2021
dd92516
Merge pull request #162 from lezongmun/Refactor
ng-andre Nov 3, 2021
71dd867
Update exceptions
mayankp291 Nov 3, 2021
7863337
Merge branch 'master' into branch-Fix-PED
mayankp291 Nov 3, 2021
eb8775c
Refactor sequence of code for author
ashrafjfr Nov 3, 2021
79cb9e5
Refactor view UI output for consistency
ashrafjfr Nov 3, 2021
0af56b4
Update view example outputs on UG
ashrafjfr Nov 3, 2021
7af4d1e
Update Search output on UG
ashrafjfr Nov 3, 2021
e54fbfb
Update Edit output on UG
ashrafjfr Nov 3, 2021
735426e
Update text-ui-test for new UI
ashrafjfr Nov 3, 2021
b232862
Merge pull request #165 from ashrafjfr/Refactor-View
ng-andre Nov 4, 2021
a2c65a0
Create marcusbory PPP
marcusbory Nov 4, 2021
cadd4df
Update AboutUs.md with marcusbory PPP
marcusbory Nov 4, 2021
8dfdfc1
Update Remove feature in DG
lezongmun Nov 4, 2021
dfa2182
Merge pull request #166 from marcusbory/Marcus-PPP
ng-andre Nov 4, 2021
152dd29
Add some parts of PPP
lezongmun Nov 4, 2021
6557b8a
Merge branch 'master' into DeveloperGuide
lezongmun Nov 4, 2021
2774f8e
Minor edits to AboutUs
lezongmun Nov 4, 2021
4478e7a
Merge pull request #167 from lezongmun/DeveloperGuide
mayankp291 Nov 4, 2021
91f5de9
Update error messages
mayankp291 Nov 4, 2021
01f2a32
Add new failed commands
mayankp291 Nov 4, 2021
24254d9
Update code to adhere to checkstyle
mayankp291 Nov 4, 2021
44b416f
Merge branch 'master' into branch-Fix-PED
mayankp291 Nov 4, 2021
efbf827
Update tests
mayankp291 Nov 4, 2021
81813e8
Update IO tests
mayankp291 Nov 4, 2021
d819792
Add personal profile file
mayankp291 Nov 4, 2021
89bb68c
Draft PPP
mayankp291 Nov 4, 2021
bb0e15b
Update regex check for name
mayankp291 Nov 4, 2021
c6195c7
Add link to PPP
mayankp291 Nov 4, 2021
28e0cf0
Add more symbols for name validation
mayankp291 Nov 4, 2021
7416f26
Update regex
mayankp291 Nov 4, 2021
2a6ae7c
Update AboutUs.md filepath
marcusbory Nov 4, 2021
bf9db8f
Remove "-" symbol for nameregex
mayankp291 Nov 4, 2021
7169e9a
Merge pull request #169 from marcusbory/Marcus-PPP
ng-andre Nov 4, 2021
159f614
Merge branch 'master' into branch-Fix-PED
ng-andre Nov 4, 2021
31d71c1
Merge pull request #168 from mayankp291/branch-Fix-PED
mayankp291 Nov 4, 2021
e4f5523
Update AboutUS
ng-andre Nov 4, 2021
0749b4e
Add ng-andre PPP
ng-andre Nov 4, 2021
617852b
Merge branch 'master' into Andre-PPP
ng-andre Nov 4, 2021
b4d8c93
Changed link of portfolio for ashrafjfr
ashrafjfr Nov 4, 2021
9c09929
Add PPP for ashrafjfr
ashrafjfr Nov 4, 2021
381d6c9
Merge pull request #170 from ng-andre/Andre-PPP
ashrafjfr Nov 4, 2021
431370c
Merge branch 'master' into Ashraf-PPP
ashrafjfr Nov 4, 2021
28ada49
Merge pull request #171 from ashrafjfr/Ashraf-PPP
lezongmun Nov 4, 2021
d726e5f
Update Table of Contents with new details
marcusbory Nov 5, 2021
a44110c
Change acknowledgements to include hyperlink
marcusbory Nov 5, 2021
de98b73
Add common notations for DG
marcusbory Nov 5, 2021
cc3a245
Update Storage component description
marcusbory Nov 5, 2021
a96558b
Change command formats
marcusbory Nov 5, 2021
c55beb6
Add contact parser class diagram
marcusbory Nov 5, 2021
9f3a8bb
Update format for UG
marcusbory Nov 5, 2021
c13b252
Update non-functional requirements
marcusbory Nov 5, 2021
ad83d6a
Delete johndoe.md
marcusbory Nov 5, 2021
5e0cb00
Update marcusbory.md URL
marcusbory Nov 5, 2021
db1ff0a
Update diagrams based on DG Review
marcusbory Nov 5, 2021
c44147b
Update information in Developer Guide
lezongmun Nov 5, 2021
06b4312
Merge pull request #179 from marcusbory/Marcus-DG
lezongmun Nov 5, 2021
a798aed
Minor edits to dg
lezongmun Nov 5, 2021
1d9cfd2
Merge conflicts with marcusbory
lezongmun Nov 5, 2021
d2d6af2
Merge pull request #181 from lezongmun/DeveloperGuide
marcusbory Nov 5, 2021
301ae1b
Merge branch 'master' into Andre-Javadocs
ng-andre Nov 6, 2021
504c6d8
Updated marcusbory.md PPP
marcusbory Nov 6, 2021
fe61793
Add ContactsDecoder class diagram
marcusbory Nov 6, 2021
8b36498
Add ImportContactCommand sequence diagram
marcusbory Nov 6, 2021
b3fae31
Change method name in contacts decoder
marcusbory Nov 6, 2021
4bb17d2
Add ImportContactsCommand into DG
marcusbory Nov 6, 2021
4581dd3
Update Search Contact Command UML
ng-andre Nov 6, 2021
5f16b8a
Merge pull request #182 from marcusbory/Marcus-DG
ashrafjfr Nov 6, 2021
b391877
Update Edit Contact Command to abstract sequence diagrams
ng-andre Nov 6, 2021
ad40beb
Add Index Parser into implementation as well as links
lezongmun Nov 6, 2021
4478393
Merge conflicts with marcusbory
lezongmun Nov 6, 2021
cb43817
Update detailed EditContactCommand for contacts with valid index
ng-andre Nov 6, 2021
11a5d48
Unabstract Personal Contact Edit Command
ng-andre Nov 6, 2021
7bab42a
Standardise view, edit and rm description
lezongmun Nov 6, 2021
e2573bc
Add Edit Contact Parser detailed diagram
ng-andre Nov 6, 2021
1e864a7
Update sequence diagrams for Edit function
ng-andre Nov 6, 2021
0b9e5c0
Update DG for edit command
ng-andre Nov 6, 2021
dc7d4c9
Update sequence diagrams for Search function
ng-andre Nov 6, 2021
b70197a
Add search contact parser diagram
ng-andre Nov 6, 2021
7ca0061
Update DG to include diagrams for search function
ng-andre Nov 6, 2021
f134696
Merge pull request #184 from lezongmun/DeveloperGuide
ng-andre Nov 6, 2021
708df4b
Add FAQ and coming soon for duplicate prevention for import
ng-andre Nov 6, 2021
a2348a9
Merge branch 'master' into UML-Diagrams-v2
ng-andre Nov 6, 2021
352f882
Update UG with implementation ideas for import duplicates
ng-andre Nov 6, 2021
1c0e454
Add IndexParser reference in Edit section
ng-andre Nov 6, 2021
4f20c1a
Remove possible implementation ideas from FAQ and add link to DG
ng-andre Nov 6, 2021
1aa3539
Update UG for import
ng-andre Nov 6, 2021
1970f07
Add Coming Soon section with anchor link in DG
ng-andre Nov 6, 2021
f356bba
Remove icons from StorageClassDiagram
ashrafjfr Nov 6, 2021
b52e2ba
Update ViewContactCommand sequence diagram
ashrafjfr Nov 6, 2021
65c5371
Refactor view contact ui to show index
ashrafjfr Nov 6, 2021
b85f0ac
Refactor rm contact ui for consistency
ashrafjfr Nov 6, 2021
3f5d55e
Refactor missingIndexDeleteMessage for errors
ashrafjfr Nov 6, 2021
a8bf949
Refactor ViewContactCommand sequence diagram code
ashrafjfr Nov 6, 2021
37c6caa
Refactor StorageClassDiagram code
ashrafjfr Nov 6, 2021
16ca0e2
Update UG for search and delete expected output
ashrafjfr Nov 6, 2021
1a6b635
Add sections for manual testing in ToC
ashrafjfr Nov 6, 2021
11596bc
Add TextUi component explanation
ashrafjfr Nov 6, 2021
c1940d8
Add instructions for testing launch and shutown
ashrafjfr Nov 6, 2021
5efc2f6
Add instructions for testing add contact
ashrafjfr Nov 6, 2021
bbffa33
Add instructions for testing view contact
ashrafjfr Nov 6, 2021
92c1cf1
Add instructions for testing edit contact
ashrafjfr Nov 6, 2021
cd1ae03
Add instructions for testing delete contact
ashrafjfr Nov 6, 2021
cd115fe
Update viewing a contact section in DG
ashrafjfr Nov 6, 2021
530717e
Update view contact in DG
ashrafjfr Nov 6, 2021
a13c86f
Update FAQ and Import command for extra fields in save file
ng-andre Nov 6, 2021
78a4988
Merge pull request #183 from ng-andre/UML-Diagrams-v2
ashrafjfr Nov 6, 2021
7a0ef26
Add javadocs for methods by ashrafjfr
ashrafjfr Nov 6, 2021
937a862
Update text-ui-test after changes to UI
ashrafjfr Nov 6, 2021
f5e3868
Merge branch 'master' into Developer-Guide-Updates
ashrafjfr Nov 6, 2021
1211a54
Add team profile pictures to images
ashrafjfr Nov 6, 2021
e814308
Include profile pics to AboutUs
ashrafjfr Nov 6, 2021
f6c4273
Update ashrafjfr PPP
ashrafjfr Nov 6, 2021
115ddcf
Refactor javadoc for checkstyle
ashrafjfr Nov 6, 2021
d7b2008
Merge pull request #185 from ashrafjfr/Developer-Guide-Updates
marcusbory Nov 6, 2021
f04130c
Update userguide
marcusbory Nov 6, 2021
35fdc96
Add javadocs
marcusbory Nov 6, 2021
e4f7b40
Fix checkstyle
marcusbory Nov 7, 2021
c87b34d
Update error message for no contacts
mayankp291 Nov 7, 2021
1846fdf
Update messsage for 1 contact
mayankp291 Nov 7, 2021
1bd9f7a
Update name regex message
mayankp291 Nov 7, 2021
610d55c
Update email regex message
mayankp291 Nov 7, 2021
bc05c30
Stash
lezongmun Nov 7, 2021
8c5571a
Merge branch 'master' into DeveloperGuide
lezongmun Nov 7, 2021
7741a48
Merge pull request #186 from marcusbory/JavaDoc
lezongmun Nov 7, 2021
f9da9ff
Merge branch 'master' into DeveloperGuide
lezongmun Nov 7, 2021
be3a0af
Merge branch 'master' into branch-Updates
mayankp291 Nov 7, 2021
68230e8
JavaDocs for DeleteContactCommand
lezongmun Nov 7, 2021
876520f
Add some JavaDocs in EditContactCommand
lezongmun Nov 7, 2021
653a898
Update email regex message
mayankp291 Nov 7, 2021
2049ccb
Add javadoc for regex parser
mayankp291 Nov 7, 2021
f3d6011
Add javadoc for email regex parser
mayankp291 Nov 7, 2021
52c4be3
Add javadoc for linkedin regex parser
mayankp291 Nov 7, 2021
52d0ed5
Add javadoc for twitter regex parser
mayankp291 Nov 7, 2021
ee307ee
Add javadoc for twitter regex parser
mayankp291 Nov 7, 2021
be732d8
Add javadoc for github regex parser
mayankp291 Nov 7, 2021
693008f
Add javadoc for name regex parser
mayankp291 Nov 7, 2021
6ef1cef
Add javadocs
mayankp291 Nov 7, 2021
1b2bd93
Update IO tests
mayankp291 Nov 7, 2021
4678ad1
JavaDocs for AddPersonalContactParser
lezongmun Nov 7, 2021
5563cf3
JavaDocs for IndexParser
lezongmun Nov 7, 2021
fe565b5
JavaDocs for MainParser
lezongmun Nov 7, 2021
54f69e2
JavaDocs for ContactsDecoder
lezongmun Nov 7, 2021
dff0dc2
Update with requested changes
mayankp291 Nov 7, 2021
fdd50c8
JavaDocs for Storage
lezongmun Nov 7, 2021
6edbe7f
Minor edits to javadocs
lezongmun Nov 7, 2021
c6399b9
Merge pull request #187 from mayankp291/branch-Updates
ng-andre Nov 7, 2021
6b6cc30
Add Javadocs for edit contact parser
ng-andre Nov 7, 2021
3edd3dc
Author updates
ng-andre Nov 7, 2021
4a4d20e
Add javadoc for main parser
ng-andre Nov 7, 2021
e38e1db
PPP
lezongmun Nov 7, 2021
7601757
Merge branch 'master' into DeveloperGuide
lezongmun Nov 7, 2021
b5d8ef1
Update javadoc for search parser
ng-andre Nov 7, 2021
c31c7e1
Fix Storage name null issue
lezongmun Nov 7, 2021
7c6d354
Minor edits
lezongmun Nov 7, 2021
ae30c85
Fix null cases where null is uppercase
lezongmun Nov 7, 2021
06e8c3f
Add design considerations
mayankp291 Nov 7, 2021
66e2073
Update acknowledgements
mayankp291 Nov 7, 2021
1868de2
Update list implementation
mayankp291 Nov 7, 2021
3700b2c
Update code block
mayankp291 Nov 7, 2021
2e7b2fc
Merge pull request #190 from lezongmun/DeveloperGuide
marcusbory Nov 7, 2021
a1cfecd
Merge branch 'master' into branch-Updates
mayankp291 Nov 7, 2021
ad3088e
Merge pull request #191 from mayankp291/branch-Updates
ng-andre Nov 7, 2021
ccc7a62
Merge branch 'master' into Andre-Javadocs
ng-andre Nov 7, 2021
5613cd7
Update UG with page breaks
ng-andre Nov 7, 2021
210ad1e
Update more page breaks for UG
ng-andre Nov 7, 2021
d728bbf
Add manual testing for search command in DG
ng-andre Nov 7, 2021
f31ab04
Add manual testing for import command in DG
ng-andre Nov 7, 2021
9fa2585
Merge pull request #192 from ng-andre/Andre-Javadocs
ashrafjfr Nov 7, 2021
5cd8cda
Update DG and UG for pdf conversion
ashrafjfr Nov 7, 2021
215580c
Merge pull request #193 from ashrafjfr/Developer-Guide-Updates
lezongmun Nov 7, 2021
f89d665
Update DG for pdf conversion
ashrafjfr Nov 7, 2021
dc29324
Merge pull request #194 from ashrafjfr/Developer-Guide-Updates
lezongmun Nov 7, 2021
9622535
Update DG for pdf conversion
ashrafjfr Nov 7, 2021
a022c8c
Merge pull request #195 from ashrafjfr/Developer-Guide-Updates
ashrafjfr Nov 7, 2021
4ee56ce
Update DG for formatting error
ashrafjfr Nov 7, 2021
4d4bea2
Merge pull request #196 from ashrafjfr/Developer-Guide-Updates
ashrafjfr Nov 7, 2021
5ef88e7
Add line break to marcusbory.md
marcusbory Nov 7, 2021
183dc22
Merge pull request #197 from marcusbory/Marcus-PPP
marcusbory Nov 7, 2021
6ab0938
Updated PPP
lezongmun Nov 7, 2021
118fdd9
Merge branch 'master' into DeveloperGuide
lezongmun Nov 7, 2021
c88b9d4
Merge pull request #198 from lezongmun/DeveloperGuide
marcusbory Nov 7, 2021
1483c6e
Updated PPP
lezongmun Nov 7, 2021
e354ffe
Update to UG theme and ashraf PPP
ashrafjfr Nov 7, 2021
1fb2935
Merge pull request #199 from ashrafjfr/Ashraf-PPP
ashrafjfr Nov 7, 2021
d2a2846
Updated README
lezongmun Nov 7, 2021
63a1a1c
Merge pull request #200 from lezongmun/DeveloperGuide
marcusbory Nov 7, 2021
762e5f4
Update UG with new theme
ashrafjfr Nov 7, 2021
692ffbf
Merge pull request #201 from ashrafjfr/Developer-Guide-Updates
ashrafjfr Nov 7, 2021
08dac1c
Update to UG and ashraf PPP
ashrafjfr Nov 7, 2021
0044343
Update to UG and DG for pdf conversion
ashrafjfr Nov 7, 2021
22feab5
Update DG for pdf conversion
ashrafjfr Nov 7, 2021
fe6f2d5
Update Dg for pdf
ashrafjfr Nov 7, 2021
145dfc3
Update PPP
lezongmun Nov 7, 2021
eb1dffa
Merge pull request #202 from ashrafjfr/Developer-Guide-Updates
lezongmun Nov 7, 2021
18c34e4
Merge branch 'master' into DeveloperGuide
lezongmun Nov 7, 2021
e85f9df
Merge pull request #203 from lezongmun/DeveloperGuide
marcusbory Nov 7, 2021
dc4b41f
Update marcusbory.md
marcusbory Nov 7, 2021
b106517
Update PPP
marcusbory Nov 7, 2021
a23a14d
Merge pull request #204 from marcusbory/Marcus-PPP
marcusbory Nov 7, 2021
f94f319
Update PPP
ng-andre Nov 8, 2021
b83daac
Merge pull request #205 from ng-andre/Andre-PPP-v2
lezongmun Nov 8, 2021
09f3fd9
Update PPP
mayankp291 Nov 8, 2021
8b45a00
Add author tags
mayankp291 Nov 8, 2021
18192ba
Merge pull request #206 from mayankp291/master
ashrafjfr Nov 8, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions .classpath
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" output="bin/main" path="src/main/java">
<attributes>
<attribute name="gradle_scope" value="main"/>
<attribute name="gradle_used_by_scope" value="main,test"/>
</attributes>
</classpathentry>
<classpathentry kind="src" output="bin/test" path="src/test/java">
<attributes>
<attribute name="gradle_scope" value="test"/>
<attribute name="gradle_used_by_scope" value="test"/>
<attribute name="test" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11/"/>
<classpathentry kind="con" path="org.eclipse.buildship.core.gradleclasspathcontainer"/>
<classpathentry kind="output" path="bin/default"/>
</classpath>
8 changes: 6 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,9 @@ src/main/resources/docs/
*.iml
bin/

/text-ui-test/ACTUAL.txt
text-ui-test/EXPECTED-UNIX.TXT

/data/contacts.txt
/data/me.txt
# ensure that no existing contact data exists on remote, so that runtest.sh is always on fresh build
/text-ui-test/data/contacts.txt
/text-ui-test/data/me.txt
34 changes: 34 additions & 0 deletions .project
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>tp</name>
<comment>Project tp created by Buildship.</comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.buildship.core.gradleprojectbuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.buildship.core.gradleprojectnature</nature>
</natures>
<filteredResources>
<filter>
<id>1633538525160</id>
<name></name>
<type>30</type>
<matcher>
<id>org.eclipse.core.resources.regexFilterMatcher</id>
<arguments>node_modules|.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__</arguments>
</matcher>
</filter>
</filteredResources>
</projectDescription>
13 changes: 13 additions & 0 deletions .settings/org.eclipse.buildship.core.prefs
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
arguments=
auto.sync=false
build.scans.enabled=false
connection.gradle.distribution=GRADLE_DISTRIBUTION(WRAPPER)
connection.project.dir=
eclipse.preferences.version=1
gradle.user.home=
java.home=C\:/src/jdk11
jvm.arguments=
offline.mode=false
override.workspace.settings=true
show.console.view=true
show.executions.view=true
3 changes: 3 additions & 0 deletions META-INF/MANIFEST.MF
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
Manifest-Version: 1.0
Main-Class: seedu.duke.Duke

17 changes: 17 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,21 @@ repositories {
dependencies {
testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-api', version: '5.5.0'
testRuntimeOnly group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version: '5.5.0'

String javaFxVersion = '11'

implementation group: 'org.openjfx', name: 'javafx-base', version: javaFxVersion, classifier: 'win'
implementation group: 'org.openjfx', name: 'javafx-base', version: javaFxVersion, classifier: 'mac'
implementation group: 'org.openjfx', name: 'javafx-base', version: javaFxVersion, classifier: 'linux'
implementation group: 'org.openjfx', name: 'javafx-controls', version: javaFxVersion, classifier: 'win'
implementation group: 'org.openjfx', name: 'javafx-controls', version: javaFxVersion, classifier: 'mac'
implementation group: 'org.openjfx', name: 'javafx-controls', version: javaFxVersion, classifier: 'linux'
implementation group: 'org.openjfx', name: 'javafx-fxml', version: javaFxVersion, classifier: 'win'
implementation group: 'org.openjfx', name: 'javafx-fxml', version: javaFxVersion, classifier: 'mac'
implementation group: 'org.openjfx', name: 'javafx-fxml', version: javaFxVersion, classifier: 'linux'
implementation group: 'org.openjfx', name: 'javafx-graphics', version: javaFxVersion, classifier: 'win'
implementation group: 'org.openjfx', name: 'javafx-graphics', version: javaFxVersion, classifier: 'mac'
implementation group: 'org.openjfx', name: 'javafx-graphics', version: javaFxVersion, classifier: 'linux'
}

test {
Expand Down Expand Up @@ -43,4 +58,6 @@ checkstyle {

run{
standardInput = System.in
enableAssertions = true
}

6 changes: 6 additions & 0 deletions data/import.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
ashraf,ashrafjfr,null,null,null,null
lezai,lezongmun,null,null,null,null
andre,null
marcus,null,null,null,null,null
badgithub,@@github,null,null,null,null
Le Zong,lezongmun,null,lezongg,null,[email protected]
11 changes: 6 additions & 5 deletions docs/AboutUs.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,9 @@

Display | Name | Github Profile | Portfolio
--------|:----:|:--------------:|:---------:
![](https://via.placeholder.com/100.png?text=Photo) | John Doe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md)
![](https://via.placeholder.com/100.png?text=Photo) | Don Joe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md)
![](https://via.placeholder.com/100.png?text=Photo) | Ron John | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md)
![](https://via.placeholder.com/100.png?text=Photo) | John Roe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md)
![](https://via.placeholder.com/100.png?text=Photo) | Don Roe | [Github](https://github.com/) | [Portfolio](docs/team/johndoe.md)
![](https://via.placeholder.com/100.png?text=Photo) | Marcus Ong | [Github](https://github.com/marcusbory) | [Portfolio](marcusbory.github.io/)
![](https://via.placeholder.com/100.png?text=Photo) | Andre | [Github](https://github.com/ng-andre) | [Portfolio](docs/team/johndoe.md)
![](https://via.placeholder.com/100.png?text=Photo) | Mun Le Zong | [Github](https://github.com/lezongmun) | [Portfolio](docs/team/johndoe.md)
![](https://via.placeholder.com/100.png?text=Photo) | Mayank Panjiyara | [Github](https://github.com/mayankp291) | [Portfolio](docs/team/johndoe.md)
![Ashraf](https://via.placeholder.com/100.png?text=Photo) | Ashraf| [Github](https://github.com/ashrafjfr) | [Portfolio](docs/team/johndoe.md)

225 changes: 208 additions & 17 deletions docs/DeveloperGuide.md
Original file line number Diff line number Diff line change
@@ -1,38 +1,229 @@
# Developer Guide

## Acknowledgements
### Table of Content
- [Acknowledgements](#acknowledgements)
- [Design](#design)
- [System Architecture](#sys-arch)
- [TextUi](#text-ui)
- [MainParser](#main-parser)
- [Command](#command)
- [ContactList](#contact-list)
- [Storage](#storage)
- [Implementation](#implementation)
- [Supported contact details](#supported-details)
- [Adding a contact](#Add)
- [Viewing a contact](#View)
- [Editing a contact](#Edit)
- [Deleting a contact](#Delete)
- [Searching a contact](#Search)
- [Listing all contacts](#List)
- [Product Scope](#scope)
- [Target user profile](#target)
- [Value proposition](#value)
- [User Stories](#stories)
- [Non-Function Requirements](#nf-req)
- [Glossary](#glossary)
- [Instructions for manual testing](#manual-test)

## <a name="acknowledgements"></a>Acknowledgements

- Inspiration for App Idea and OOP Structure: AddressBook (Level 2) <br />
https://github.com/se-edu/addressbook-level2
- Inspiration for User Guide and Developer Guide: AddressBook (Level 3) <br />
https://se-education.org/addressbook-level3/DeveloperGuide.html <br/>
https://se-education.org/addressbook-level3/UserGuide.html
- Converting text for ConTech: <br />
https://patorjk.com/software/taag/#p=display&f=Graffiti&t=Type%20Something%20
- GitHub Markdown Emoji Syntax for User Guide: <br />
https://github.com/ikatyang/emoji-cheat-sheet/blob/master/README.md
- PlantUML Tutorial: <br />
https://se-education.org/guides/tutorials/plantUml.html
marcusbory marked this conversation as resolved.
Show resolved Hide resolved

{list here sources of all reused/adapted ideas, code, documentation, and third-party libraries -- include links to the original source as well}

## Design & implementation
## <a name="design"></a>Design

{Describe the design and implementation of the product. Use UML diagrams and short code snippets where applicable.}
### <a name="sys-arch"></a>System Architecture

![System Architecture](images/SystemArchitectureDiagram.png)
marcusbory marked this conversation as resolved.
Show resolved Hide resolved
marcusbory marked this conversation as resolved.
Show resolved Hide resolved
marcusbory marked this conversation as resolved.
Show resolved Hide resolved

## Product scope
### Target user profile
The above **System Architecture** diagram shows the high-level design of ConTech.

{Describe the target user profile}
On launch, the `Main` class initialises the app components in the correct sequence and links them up
with each other, in the correct sequence.

### Value proposition
ConTech comprises five main components, namely:
- `TextUi`: Command Line User Interface of ConTech.
- `MainParser`: Parser to parser user inputs from `TextUi` for `Command`.
- `Command`: Command to be executed upon input parsing.
- `ContactList`: Data structure to store `Contact`s while running ConTech.
- `Storage`: Reads from and writes to [`LocalStorage`](#local-storage).

{Describe the value proposition: what problem does it solve?}
**How the architecture components interact with each other**

## User Stories
The five main components interact with each other, as shown in the sequence diagram below
for the example: `view 2`

|Version| As a ... | I want to ... | So that I can ...|
|--------|----------|---------------|------------------|
|v1.0|new user|see usage instructions|refer to them when I forget how to use the application|
|v2.0|user|find a to-do item by name|locate a to-do without having to go through the entire list|
![Sysem Architecture Sequence Diagram](images/SystemArchitectureSequence.png)
marcusbory marked this conversation as resolved.
Show resolved Hide resolved


### <a name="text-ui"></a>TextUi
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Text-ui does not seem to be complete, along with Command and ContactList, maybe can try finish up the details soon

### <a name="main-parser"></a>MainParser
The `MainParser` component is responsible for making sense of the user's inputs. It functions as the
not only the identifier for commands, but also calls its relevant sub-parsers to further destructure
the inputs, allowing ConTech to perform its commands.

The diagram below shows a sequence diagram of how `MainParser` works, and a reference diagram is used
to indicate that further parsing is done by sub-parsers for each different command type. This reference diagram
will be referred to later on.

![Main Parser Sequence Diagram](images/MainParserSequenceDiagram.png)

### <a name="command"></a>Command
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sections under “Design” seems not finished. Include “Command”, “ContactList”, and “TextUi”. Please fill them in soon.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For the Command section can consider add in the Class diagram to relate all the commands together

### <a name="contact-list"></a>ContactList
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please remember to update the "Command" and "ContactList" sections soon.
2021-10-28 (2)

### <a name="storage"></a>Storage
**API** :`Storage.java`

![Storage Class Diagram](images/StorageClassDiagram.png)
marcusbory marked this conversation as resolved.
Show resolved Hide resolved

The `Storage` component is responsible for saving both contacts data and personal contact data locally inside the file
paths, `data/contacts.txt` and `data/me.txt`. `Storage` is also responsible for loading these data back into their
corresponding `ContactList` and `Contact` objects. It is thus dependent on the classes, `ContactList` and
`Contact`.
marcusbory marked this conversation as resolved.
Show resolved Hide resolved


## <a name="implementation"></a>Implementation

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i think for each functionality, adding some sample inputs & outputs is much clear?


### <a name="supported-details"></a>Supported Contact Details
The currently supported contact details are provided in the table below:

|Flag|Detail of contact|
|----|------|
|`-n`|Name|
|`-g`|Github username|
|`-l`|LinkedIn handle|
|`-te`|Telegram handle|
|`-tw`|Twitter handle|
|`-e`|Email|

### <a name="Add"></a>Adding a contact: `add`
This feature is processed using `AddContactCommand`. This feature allows a user to add a contact to their contact list.
marcusbory marked this conversation as resolved.
Show resolved Hide resolved
The user is able to add a contact by entering a command in the form of `add [DETAILS WITH FLAGS]`, where
the details with flags are specified in the form `-<flag> <detail>`.

The user's input is parsed in `MainParser` and `AddContactParser`, the latter which inherits `ContactParser`.
`ContactParser` inherits `RegexParser` (for regex checks regarding each detail) and implements the `ContactDetails`
interface (which uniquely allows the parsers to easily identify each detail based on their indexes).
marcusbory marked this conversation as resolved.
Show resolved Hide resolved
marcusbory marked this conversation as resolved.
Show resolved Hide resolved

As the contacts are identified by their names, the name field is made compulsory at the `MainParser` level.
The diagram below shows the process of parsing the user's input.

![Add Contact Parsing](images/AddContactParsingSequenceDiagram.png)
marcusbory marked this conversation as resolved.
Show resolved Hide resolved

Upon parsing the user's input, the details are passed to an `AddContactCommand`, and this command will be
executed in `Duke`. The sequence diagram below illustrates the process of executing `AddContactCommand`.

![Add Sequence Diagram](images/AddContactCommandSequenceDiagram.png)
marcusbory marked this conversation as resolved.
Show resolved Hide resolved
marcusbory marked this conversation as resolved.
Show resolved Hide resolved

### <a name="View"></a>Viewing a contact: `view`
This feature is processed using `ViewContactCommand`. Whenever a user wants to view a specific contact from the
contact list, user can input `view [INDEX]` with the index of the desired contact displayed from the `list` feature.
`ViewContactCommand` is then created in the `MainParser` and executed in `Duke`.
The sequence diagram below illustrates the `execute()` function in `ViewContactCommand`.

![View Sequence Diagram](images/ViewContactCommandSequenceDiagram.png)

## Non-Functional Requirements
### <a name="Edit"></a>Editing a contact: `edit`
This feature is processed using `EditContactParser` under `MainParser`. In order to edit a contact in the contact list,
a user must enter a command in the form `edit [CONTACT INDEX] [DETAILS WITH FLAGS]`, where the details with flags are
specified in the form `-<flag> <detail>` with up to 6 details i.e. `-g github-username -tw twitter_handle`. The user
marcusbory marked this conversation as resolved.
Show resolved Hide resolved
input will be parsed by `EditContactParser` methods `getIndexToStore` and `parseContactDetails` to obtain a String
array with the details to be edited. An `EditContactCommand` with the specified parameters will then be created and
executed in `Duke`. The sequence diagram below shows how the whole process is carried out.

![Edit Sequence Diagram](images/EditContactCommandSequenceDiagram.png)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

image
This diagram is a bit too big and contains a bit too many details. It would be hard to view this in the FDF format. If all the implementation is necessary for the illustration, the loop in this diagram maybe can be placed in a separate diagram as reference.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the constructor for EditContactCommand have not been called ?
2021-10-28 (4)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ya, I agree with Mick. The diagram seems to be too big which causes the words inside the diagram a bit hard to see. You can try changing the maxMessageLength of this diagram. Also you can consider putting new before a Constructor() call. :)

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

diagram too big

same issue: diagram too big, can consider representing the circled part to something simpler

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One way to solve this is by putting reference frame :D



### <a name="Delete"></a>Deleting contacts: `rm`
This feature is processed using the `DeleteContactCommand`. `DeleteContactCommand` is created
in the `MainParser`and executed in`Duke`. Users can either delete a specified contact
or delete all contacts at once.

![Delete Sequence Diagram](images/DeleteContactCommandSequenceDiagram.png)
marcusbory marked this conversation as resolved.
Show resolved Hide resolved

To delete all contacts, a user must enter the command `rm all`. The sequence diagram below
shows how the removal of all contacts works. Before any deletion, the user will be
prompted with a message to confirm deletion. If the user confirms deletion for all contacts,
deletion will be executed, along with a message to show that deletion has been executed.
If user cancels deletion, a message is printed to show that the deletion has been cancelled.

![Delete All Sequence Diagram](images/DeleteAllContacts.png)

To delete a selected contact, a user must enter a command in the form `rm [INDEX]`. The sequence diagram below
shows how the removal of a contact works. Before any deletion, details of the contact with the specified`INDEX`
will be displayed to the user, along with a prompt to confirm deletion. If the user confirms deletion,
deletion of the selected contact will be executed, along with a message to show that deletion has been executed.
If user cancels deletion, a message is printed to show that the deletion has been cancelled.

![Delete Selected Sequence Diagram](images/DeleteSelectedContact.png)


### <a name="Search"></a>Searching a contact: `search`
This feature is processed using `SearchContactParser` under `MainParser`. In order to edit a contact in the contact list,
a user must enter a command in the form `search [FLAG] [SEARCH QUERY]`. If no flag is specified, the search will be done
on contact names buy default. From the user input, the search query and the search flag are obtained from the
`parseSearchQuery` and the `getDetailFlag` methods respectively. A `SearchContactCommand` with the specified parameters
will be created and executed in `Duke`. The sequence diagram below shows how the whole process is carried out.

![Search Sequence Diagram](images/SearchContactCommandSequenceDiagram.png)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The SearchContactCommand constructor have also not been called here

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

diagram too big 1

Diagram also quite big, summarise the diagram more, especially the green part



### <a name="List"></a>Listing all contacts: `ls`
This feature is processed using `MainParser`. The control is sent to `ListContactsCommand` under `Command` to execute the
command which uses a loop to get the Contact object at every available index and print it using the `printContactWithIndex`
function in `TextUi` class.

![List Sequence Diagram](images/ListContactsCommandSequenceDiagram.png)
marcusbory marked this conversation as resolved.
Show resolved Hide resolved


## <a name="scope"></a>Product scope
### <a name="target"></a>Target user profile
- Has a need to store a significant amount of computing-related contacts
- Prefers and is familiar with Command Line Interface (CLI) applications
- Has many contacts that use common computing platforms, such as: Github, Linkedin, Twitter, Telegram, and Email
- Can type fast and prefers typing to mouse interactions

### <a name="value"></a>Value proposition

As computing professionals are often on their computer, ConTech allows them to have a platform to
manage their computing-related contacts locally and efficiently, without the need to use
additional devices or platforms.

## <a name="stories"></a>User Stories

|Version| As a ... | I want to ... | So that I can ...|
|--------|----------|---------------|------------------|
|v1.0|programmer|add my colleague's account usernames|easily access it|
|v1.0|programmer|edit my colleague's account usernames|update it if there is a change|
|v1.0|programmer|save contact data locally on my hard drive|access it without internet|
|v1.0|programmer|view various contact details of my colleague|contact him easily on different platforms|
|v1.0|programmer|see the names and index of saved contacts|know the contacts I have saved|
|v1.0|programmer|delete a specific contact||
|v1.0|programmer|be able to copy and paste the displayed contact's URLs|visit the contact's accounts|
|v2.0|programmer|save my personal details|the application is aware of the user|
|v2.0|forgetful user|be able to search for my contacts by name|find their contact details|
|v2.0|programmer|import a list of contacts quickly from an input txt file|save time typing each contact

## <a name="nf-req"></a>Non-Functional Requirements

- Should work on any [*mainstream Operating Systems*](#os) as long as Java `11` or higher has been installed on it
{Give non-functional requirements}
marcusbory marked this conversation as resolved.
Show resolved Hide resolved

## Glossary
## <a name="glossary"></a>Glossary

* *glossary item* - Definition
* <a name="os"></a>**Mainstream Operating Systems** - Windows, macOS, *NIX
* <a name="local-storage"></a>**LocalStorage** - Refers to user's hard disk storage

## Instructions for manual testing
## <a name="manual-test"></a>Instructions for manual testing

{Give instructions on how to do a manual product testing e.g., how to load sample data to be used for testing}
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe you could provide some instructions here for the manual testing?

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe can include some manual testing instructions?

Loading