- Setting Up
- Design
- Testing
- Appendix A: User Stories
- Appendix B: Use Cases
- Appendix C: Non Functional Requirements
- Appendix D: Gloassary
- JDK 8 or later
- IntelliJ IDE
- Open IntelliJ (if you are not in the welcome screen, click
File
>Close Project
to close the existing project dialog first) - Set up the correct JDK version
- Click
Configure
>Project Defaults
>Project Structure
- If JDK 8 is listed in the drop down, select it. If it is not, click
New...
and select the directory where you installed JDK 8. - Click
OK
.
- Click
- Click
Import Project
- Locate the project directory and click
OK
- Select
Create project from existing sources
and clickNext
- Rename the project if you want. Click
Next
- Ensure that your
\src
and\test\java
folder is checked. Keep clickingNext
- Click
Finish
- Add JUnit 4 to classpath
- Open any test file in
\test\java
and place your cursor over any@Test
highlighted in red - Press ALT+ENTER and select
Add 'JUnit4' to classpath
- Select
Use 'JUnit4' from IntelliJ IDEA distribution
and clickOK
- Open any test file in
- Run all the tests (right-click the
test
folder, and clickRun 'All Tests'
) - Observe how some tests fail. That is because they try to access the test data from the wrong directory (the working directory is expected to be the root directory, but IntelliJ runs the test with
test\
as the working directory by default). To fix this issue:- Go to
Run
->Edit Configurations...
- On the list at the left, expand
JUnit
, and remove all the test configurations (e.g.All in test
) by selecting it and clicking on the '-' icon at the top of the list - Expand
Defaults
, and ensure thatJUnit
is selected - Under
Configuration
, change theWorking directory
to theaddressbook-level3
folder - Click
OK
- Go to
- Run the tests again to ensure they all pass now.
- In IntelliJ, right-click on the
test
folder and chooseRun 'All Tests'
Priorities: High (must have) - * * *
, Medium (nice to have) - * *
, Low (unlikely to have) - *
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 | delete a person | remove entries that I no longer need |
* * * |
user | find a person by name | locate details of persons without having to go through the entire list |
* * |
user | hide 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 |
(For all use cases below, the System is the AddressBook
and the Actor is the user
, unless specified otherwise)
MSS
- User requests to list persons
- AddressBook shows a list of persons
- User requests to delete a specific person in the list
- AddressBook deletes the person
Use case ends.
Extensions
2a. The list is empty
Use case ends
3a. The given index is invalid
3a1. AddressBook shows an error message
Use case resumes at step 2
- Should work on any mainstream OS as long as it has Java 8 or higher installed.
- Should be able to hold up to 1000 persons.
- Should come with automated unit tests and open source code.
- Should favor DOS style commands over Unix-style commands.
Windows, Linux, Unix, OS-X
A contact detail that is not meant to be shared with others