-
Notifications
You must be signed in to change notification settings - Fork 69
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
[v1.4][F11-B2] TuitionCor #64
base: master
Are you sure you want to change the base?
Changes from 71 commits
5b6e42a
05bd2a8
6d5fefd
9480296
ff0c39a
6335898
3400c34
1921b0e
f01c843
a39427e
8881379
1bfff25
e567bd9
4d719ed
68c198d
8f14551
35f537f
90b0919
77537e7
65d7298
405ec70
832e142
7ca8f7a
6d0cee9
85772fb
905c4c1
8d3c903
5ea78ad
153ca61
7ad1283
2a40c97
e38f5bc
189bc5f
7b4be4d
d03b9ff
d695039
0665dd2
84b24dc
fcfe9bf
e9c57cc
75c9c0f
7088457
0b870a8
86ccc87
a9fc836
73513c3
d74a49d
c7dad24
cb2ba3e
12f5c20
357aedf
cae9d19
dfdcd7a
b18834a
d60474d
005d1f9
d73672f
74bb990
11c9195
63138f0
57f6554
b5e3d5b
37ff12f
06689f4
4e003ce
3f8a30e
0cf8c0c
212ba38
675ac66
c96a25d
8c124a3
986ffa2
3955d3c
bfaacdf
cd3fb1b
86c4244
27ab2b5
a31d036
3710e57
b47c148
b773c8d
ff3c4f8
47ad569
756fe24
50fc156
19aea49
8c0fb0b
5202812
3a8ac14
a748219
d7ccc6a
733b289
298c3f5
8ae1107
4f6338b
dbc7af3
a3a9c52
81ed867
7aa2850
472c888
b228761
84b83e5
5c8dd38
b319e92
2dc6629
fbdbf47
a16d0c6
88ceb36
93c9ce5
339b6d2
60a3cee
3c6ff98
b8914f7
8bd7e50
5c46bb7
4497fb0
b3aada3
bf30cfc
80692c9
71a4436
d968d17
8a93c36
77ad85f
9adaeb1
5c401d7
2ba4531
1cf8a2d
0f342ba
a66b7b2
a678541
7ca1fb1
eefef62
f38e472
857d059
3dd54a9
50d4727
0808864
97a8bfe
c7204a8
8cfc3fb
29d376a
1117cb5
ea63726
22b62e1
825d79d
bbe22b6
583942f
1f2eedd
ee35cad
c3bab25
bdbde4e
f4efcef
5548ca8
af2f07f
2546065
ee389b4
219a6e0
89a841d
0342ac1
03e2c6a
fcfeb12
cfb599d
da17e45
bfcb3eb
2a404fc
83bee92
58014cc
77e83b6
7851bb0
9204fc2
8504549
4eb56f6
b3a786a
787613c
a573d49
b30dbac
93ddaee
7e3559e
43f9247
0b21ee6
92a8de1
f961b90
658efb9
3a48b2c
b43c7a9
748432e
89676db
bceff9b
e9df61c
c95143c
245d0c1
10edba0
eae7794
3afcb6b
bc3ddc7
16b50ef
38b6551
d0cec42
bafdcaf
981685e
4f81295
10d1efa
c1dc3ea
dec7296
cb59e76
c8a1781
819850b
5602f8f
584a5a3
9e8501f
d12df95
1d7d2b2
712439b
d1b7a85
78f7360
a45616c
a6e5509
ec01dd0
16cd7bc
c3ee1b5
d92a41a
4254e11
6135761
a7f780f
fa216eb
c1698aa
14ca32c
10cf67c
4a35411
ffed91a
5429c1b
42968ae
22e83ff
fbd58de
c1a8960
b8611e1
c41329b
46a71d6
d13e508
98ca2a1
091e062
71db9fa
00cbff2
9e9b30d
b71d4ae
53d60d1
262619c
8b986b9
8c07530
df6c232
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,7 +1,7 @@ | ||
= Address Book (Level 4) | ||
= TuitionCor | ||
ifdef::env-github,env-browser[:relfileprefix: docs/] | ||
|
||
https://travis-ci.org/se-edu/addressbook-level4[image:https://travis-ci.org/se-edu/addressbook-level4.svg?branch=master[Build Status]] | ||
https://travis-ci.org/CS2103JAN2018-F11-B2/main[image:https://travis-ci.org/CS2103JAN2018-F11-B2/main.svg?branch=master[Build Status]] | ||
https://ci.appveyor.com/project/damithc/addressbook-level4[image:https://ci.appveyor.com/api/projects/status/3boko2x2vr5cc3w2?svg=true[Build status]] | ||
https://coveralls.io/github/se-edu/addressbook-level4?branch=master[image:https://coveralls.io/repos/github/se-edu/addressbook-level4/badge.svg?branch=master[Coverage Status]] | ||
https://www.codacy.com/app/damith/addressbook-level4?utm_source=github.com&utm_medium=referral&utm_content=se-edu/addressbook-level4&utm_campaign=Badge_Grade[image:https://api.codacy.com/project/badge/Grade/fc0b7775cf7f4fdeaf08776f3d8e364a[Codacy Badge]] | ||
|
@@ -15,13 +15,13 @@ ifndef::env-github[] | |
image::images/Ui.png[width="600"] | ||
endif::[] | ||
|
||
* This is a desktop Address Book application. It has a GUI but most of the user interactions happen using a CLI (Command Line Interface). | ||
* It is a Java sample application intended for students learning Software Engineering while using Java as the main programming language. | ||
* It is *written in OOP fashion*. It provides a *reasonably well-written* code example that is *significantly bigger* (around 6 KLoC)than what students usually write in beginner-level SE modules. | ||
* What's different from https://github.com/se-edu/addressbook-level3[level 3]: | ||
** A more sophisticated GUI that includes a list panel and an in-built Browser. | ||
** More test cases, including automated GUI testing. | ||
** Support for _Build Automation_ using Gradle and for _Continuous Integration_ using Travis CI. | ||
* This is a desktop TuitionCor application. It has a GUI but most of the user interactions happen using a CLI (Command Line Interface). | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This does not tell me anything about the application. What is There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Will update in my commit |
||
* TuitionCor is targeted at tuition coordinators who have to manage a large amount of contacts. | ||
* The daily job-scope of a tuition coordinator involves the need to manage large amount of contacts and match the students to tutors according to their credentials, needs and location. | ||
* Therefore, TuitionCor aims to facilitate this process and make the job of a tuition coordinator easier. | ||
*In addition, users are also able to | ||
** find and filter contacts easily | ||
** add and edit contacts | ||
|
||
== Site Map | ||
|
||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
= AddressBook Level 4 - Developer Guide | ||
= TuitionCor - Developer Guide | ||
:toc: | ||
:toc-title: | ||
:toc-placement: preamble | ||
|
@@ -10,7 +10,7 @@ ifdef::env-github[] | |
:tip-caption: :bulb: | ||
:note-caption: :information_source: | ||
endif::[] | ||
:repoURL: https://github.com/se-edu/addressbook-level4/tree/master | ||
:repoURL: https://github.com/CS2103JAN2018-F11-B2/main forked from Team SE-EDU | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Provide link to the Team SE-EDU repo too There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Will update in my commit |
||
|
||
By: `Team SE-EDU` Since: `Jun 2016` Licence: `MIT` | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Update this line! Preferably There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Will update in my commit There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Update this line too There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Will update in my commit |
||
|
||
|
@@ -160,7 +160,7 @@ image::UiClassDiagram.png[width="800"] | |
|
||
*API* : link:{repoURL}/src/main/java/seedu/address/ui/Ui.java[`Ui.java`] | ||
|
||
The UI consists of a `MainWindow` that is made up of parts e.g.`CommandBox`, `ResultDisplay`, `PersonListPanel`, `StatusBarFooter`, `BrowserPanel` etc. All these, including the `MainWindow`, inherit from the abstract `UiPart` class. | ||
The UI consists of a `MainWindow` that is made up of parts e.g.`CommandBox`, `ResultDisplay`, `PersonListPanel`, `StatusBarFooter` etc. All these, including the `MainWindow`, inherit from the abstract `UiPart` class. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Missing documentation for new features, please remember to add them every week. |
||
|
||
The `UI` component uses JavaFx UI framework. The layout of these UI parts are defined in matching `.fxml` files that are in the `src/main/resources/view` folder. For example, the layout of the link:{repoURL}/src/main/java/seedu/address/ui/MainWindow.java[`MainWindow`] is specified in link:{repoURL}/src/main/resources/view/MainWindow.fxml[`MainWindow.fxml`] | ||
|
||
|
@@ -782,13 +782,25 @@ See this https://github.com/se-edu/addressbook-level4/pull/599[PR] for the step- | |
|
||
*Target user profile*: | ||
|
||
* has a need to manage a significant number of contacts | ||
<<<<<<< Updated upstream | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Remove merge conflict arrows There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Will update in my commit |
||
* Tuition coordinators who are comfortable with CLI applications | ||
======= | ||
* A tuition service agent that receive calls from both tutor and students asking for assignments. | ||
* has a need to manage a significant number of clients. | ||
* prefer desktop apps over other types | ||
* can type fast | ||
* prefers typing over mouse input | ||
* is reasonably comfortable using CLI apps | ||
>>>>>>> Stashed changes | ||
|
||
*Value proposition*: manage contacts faster than a typical mouse/GUI driven app | ||
*Value proposition*: | ||
TuitionCor is targeted at tuition coordinators who have to manage a large amount of contacts. | ||
The daily job-scope of a tuition coordinator involves the need to manage large amount of contacts and match the students to tutors according to their credentials, needs and location. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Good! |
||
Therefore, TuitionCor aims to facilitate this process and make the job of a tuition coordinator easier. | ||
|
||
In addition, users are able to | ||
* find and filter contacts easily | ||
* add and edit contacts | ||
|
||
[appendix] | ||
== User Stories | ||
|
@@ -800,18 +812,63 @@ Priorities: High (must have) - `* * \*`, Medium (nice to have) - `* \*`, Low (un | |
|Priority |As a ... |I want to ... |So that I can... | ||
|`* * *` |new user |see usage instructions |refer to instructions when I forget how to use the App | ||
|
||
|`* * *` |user |add a new person | | ||
|`* * *` |user |add a new person (tutor or student) |expand user's addressbook for future tuition coordination | ||
|
||
|`* * *` |user |delete a person |remove entries that I no longer need | ||
|`* * *` |user |delete a person |remove entries that the user no longer need | ||
|
||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The target user profile is not updated. Please update it so I can assess its viability or make suggestions for improvements. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Will update in my commit |
||
|`* * *` |user |find a person by name |locate details of persons without having to go through the entire list | ||
|
||
|`* * *` |user |sort contacts based on the clients' location (North, South, East, West, Central |better match students and tutors that are staying near each other. | ||
|
||
|`* * *` |user |edit the information stored |keep the information up to date | ||
|
||
|`* * *` |user |tag tutors and students with multiple fields |do multi-layer searching to better match tutors and students | ||
|
||
|`* * *` |user |categorise contacts between students and tutors |reduce the number of tagging required and make searching more convenience | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Typo here. Should be There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Will update in my commit |
||
|
||
|`* * *` |user |group clients based on the subject they wish to study/teach (Math, Eng, Phy, Chem...) |find and match client easily by the subjects registered | ||
|
||
|`* * *` |user |record the gender preference the students/tutors have (male/female) |find and match client easily by the gender preference registered | ||
|
||
|`* * *` |user |see and compare the price that students/tutors are willing to pay/accept|match them based on pricing | ||
|
||
|`* * *` |user |have an auto-save function |changes will be saved once user exit the application | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This does not seem to fit into a user story - this seems to be out of the control of the user (since it's automatic after all) and would be more suited as a NFR There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Will update in my commit |
||
|
||
|`* * *` |user |search by tags added to client |generate a list of clients that have the same tags | ||
|
||
|`* *` |user |hide <<private-contact-detail,private contact details>> by default |minimize chance of someone else seeing them by accident | ||
|
||
|`*` |user with many persons in the address book |sort persons by name |locate a person easily | ||
|`* *` |user |search multiple tags |narrow down the search to clients that fit all the different tags searched. | ||
|
||
|`* *` |user |easily delete all students/tutors |save time manually deleting | ||
|
||
|`* *` |user |get a list of all tutors that corresponds to a students requirements |give students more choices on which tutor they want | ||
|
||
|`* *` |user |get a list of all students that corresponds to a tutor's requirements |give tutors more choices on which students they want | ||
|
||
|`* *` |user |automatically update the year of all students |need not manually change all the information during new year | ||
|
||
|`* *` |user |update which time slot the tutor is already working |plan their timetable without any clash in timing | ||
|
||
|`* *` |user |have a ranking on how good the tutor is |understand which tutor the user should recommend more | ||
|
||
|`* *` |user |highlight urgent tuition requests |set reminder to place more attention on these assignments | ||
|
||
|`* *` |user |blacklist certain tutors or students |make sure the user will not accept their assignments | ||
|
||
|`* *` |user |have the option to customise the font size and colour |make changes to the appearance to suit the user's preference | ||
|
||
|`* *` |user |have the option to customise the user's background |make the application more appealing to the user | ||
|
||
|`* *` |user |email the contacts in the application |save the trouble from opening another web-browser or email application | ||
|
||
|`* *` |user |keep track of whether the tutors have paid their agent fee |keep track and remind those who have not paid. | ||
|
||
|`*` |user |directly navigate between contacts |save the trouble from returning to the main page every time | ||
|
||
|`*` |user |keep a record of how much the students improve |keep track of how good the tutor is | ||
|======================================================================= | ||
|
||
_{More to be added}_ | ||
|
||
[appendix] | ||
== Use Cases | ||
|
@@ -844,16 +901,67 @@ Use case ends. | |
+ | ||
Use case resumes at step 2. | ||
|
||
_{More to be added}_ | ||
[discrete] | ||
=== Use case: Sort by locality | ||
|
||
*MSS* | ||
|
||
1. User types “/sortl” in to the command line. | ||
2. Addressbook will prompt user to select whether they would like to view the list for students or tutors. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. No longer There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Will update in my commit |
||
3. User will enter either “s” for students or “t” for tutors. | ||
4. Addressbook will return a list of students or tutors based sorted by their locality. | ||
+ | ||
Use case ends. | ||
|
||
*Extensions* | ||
|
||
[none] | ||
* 3a. System detects an invalid input. | ||
+ | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Should there also be an extension for if the user wants to escape from the command input? (Such as if the user changes his mind after typing There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Will update in my commit |
||
[none] | ||
** 3a1. Addressbook request for either "s" or "t" to be inputted. | ||
** 3a2. User enter required information. | ||
** 3a3. Steps 3a1 and 3a2 are repeated until valid input is entered. | ||
+ | ||
Use case resumes at step 4. | ||
|
||
[discrete] | ||
=== Use case: Match | ||
|
||
*MSS* | ||
|
||
1. User enter match followed by a person name. | ||
2. Addressbook displays information of client in the respective list (either tutor list or student list) | ||
4. Addressbook returns a list of potential matches in the respective list. | ||
+ | ||
Use case ends. | ||
|
||
*Extensions* | ||
|
||
[none] | ||
* 1a. Client cannot be found. | ||
+ | ||
Use case ends. | ||
|
||
* 3a. There is no match found. | ||
+ | ||
[none] | ||
** 3a1. Addressbook returns an empty list. | ||
+ | ||
Use case ends. | ||
|
||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Where are the other use cases for your enhancements? This is also part of documentation. @Zhu-Jiahui @shookshire @olimhc |
||
|
||
[appendix] | ||
== Non Functional Requirements | ||
|
||
. Should work on any <<mainstream-os,mainstream OS>> as long as it has Java `1.8.0_60` or higher installed. | ||
. Should be able to hold up to 1000 persons without a noticeable sluggishness in performance for typical usage. | ||
. Should be able to hold up to 5000 persons without a noticeable sluggishness in performance for typical usage. | ||
. A user with above average typing speed for regular English text (i.e. not code, not system admin commands) should be able to accomplish most of the tasks faster using commands than using the mouse. | ||
. Application should be able execute any command within 3 seconds. | ||
. Application should have a self-explanatory installation process. | ||
. Application should be less than 5mb in size. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Very ambitious 😛 |
||
. Application is expected to allow printing. | ||
|
||
_{More to be added}_ | ||
|
||
[appendix] | ||
== Glossary | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Remove/ replace these badges with your team's repo instead -- they are not badges for your updated application anymore
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Will update in my commit