-
Notifications
You must be signed in to change notification settings - Fork 109
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
[T7][T15-C4] #43
base: master
Are you sure you want to change the base?
[T7][T15-C4] #43
Changes from 20 commits
9ddbeba
160035c
aa7f9d8
8cacde0
efbf01d
49ef9bc
64d4171
3312dcb
3bb57fc
4950969
baae376
5e94329
96fad25
9dda822
5e7175c
48c6e5a
d736ab3
0e1b707
ef2da90
f2e0cbc
4efd2a6
3994a6b
dcc2b79
e17300d
43de666
7f63dfc
4d43da3
27d60c9
825ab26
f8b1a35
324bf90
01dfacb
b53658b
d3aaa9f
abd2a8e
bfa0242
5869242
ef9f697
098ba8c
96176b9
f86245d
4f1014d
7c9ae78
813ad1f
bd47a18
13cf8b4
09cd5c5
2a7c8e2
54090ee
2513096
2be4181
5f1a175
1b740d4
464b38e
4bec213
265b06f
58397ef
c960111
77c16d4
1136dd9
b77f142
5b28a18
bd6b0ef
b172254
a8d8eba
0184e18
a4ca5a8
ac9e7bf
0ae0da2
309a9d2
9ee8b77
468a38e
2e774f0
95121cf
0c19b9b
510333a
ecfbfef
8e945a6
d90b5d7
3ac831f
bcfe02e
532e570
2b8b6ac
7a6c249
b9310e1
9d66c8a
79aa2ef
62f4b44
7aafd10
bbdf21c
a7f3490
addead6
a0ea532
5048364
8c2284e
c0f8cad
46460a4
db133c4
a8a402d
d05795f
a580a9b
49c944b
fa39805
6eae943
dce1b17
c2ab76e
9e2e08c
43a7e5f
18d8cfa
8cab94f
69a95ff
bf6b7e1
60fc386
3f5ef40
1a1da33
bf68820
ee576b5
175524b
3fd44d5
4fb3488
31bd68b
538458a
81cb633
9161b50
0536951
f6e03c8
1a3827f
5b530bd
df83563
f4a7cc1
11a3435
a1d5f36
33d32b6
25674af
a483019
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,34 +1,24 @@ | ||
[![Build Status](https://travis-ci.org/se-edu/addressbook-level4.svg?branch=master)](https://travis-ci.org/se-edu/addressbook-level4) | ||
[![Coverage Status](https://coveralls.io/repos/github/se-edu/addressbook-level4/badge.svg?branch=master)](https://coveralls.io/github/se-edu/addressbook-level4?branch=master) | ||
|
||
# Address Book (Level 4) | ||
# JYM | ||
|
||
<img src="docs/images/Ui.png" width="600"><br> | ||
|
||
* This is a desktop Address Book application. It has a GUI but most of the user interactions happen using | ||
* This is a desktop task management 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 [level 3](https://github.com/se-edu/addressbook-level3): | ||
* 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. | ||
|
||
|
||
#### Site Map | ||
* [User Guide](docs/UserGuide.md) | ||
* [Developer Guide](docs/DeveloperGuide.md) | ||
* [Learning Outcomes](docs/LearningOutcomes.md) | ||
* [About Us](docs/AboutUs.md) | ||
* [Contact Us](docs/ContactUs.md) | ||
|
||
|
||
#### Acknowledgements | ||
|
||
* Some parts of this sample application were inspired by the excellent | ||
[Java FX tutorial](http://code.makery.ch/library/javafx-8-tutorial/) by *Marco Jakob*. | ||
* Some parts of this sample application were inspired by these excellent | ||
[Addressbook Repositories](https://github.com/se-edu/) by *Damith C. RAJAPAKSE*. | ||
|
||
|
||
#### Licence : [MIT](LICENSE) |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,52 +1,33 @@ | ||
# About Us | ||
|
||
We are a team based in the [School of Computing, National University of Singapore](http://www.comp.nus.edu.sg). | ||
We are a team in the [CS 2103 Class](http://www.comp.nus.edu.sg/~cs2103/AY1617S1/). | ||
|
||
## Project Team | ||
|
||
#### [Damith C. Rajapakse](http://www.comp.nus.edu.sg/~damithch) <br> | ||
<img src="images/DamithRajapakse.jpg" width="150"><br> | ||
**Role**: Project Advisor | ||
#### [Nishant Budhdev](https://github.com/nishantbudhdev) <br> | ||
<img src="images/Nishant Budhdev.jpg" width="150"><br> | ||
**Role**: Project Mentor | ||
|
||
----- | ||
|
||
#### [Joshua Lee](http://github.com/lejolly) | ||
<img src="images/JoshuaLee.jpg" width="150"><br> | ||
Role: Developer <br> | ||
Responsibilities: UI | ||
#### [Murray Chen](https://github.com/mchen14) <br> | ||
Role: Team Lead, Developer <br> | ||
Responsibilities: Code Quality | ||
|
||
----- | ||
|
||
#### [Leow Yijin](http://github.com/yijinl) | ||
<img src="images/LeowYijin.jpg" width="150"><br> | ||
#### [Zihua Huang](https://github.com/JamesHuangUC) | ||
Role: Developer <br> | ||
Responsibilities: Data | ||
Responsibilities: Integration, Git Expert, Scheduling and Tracking | ||
|
||
----- | ||
|
||
#### [Martin Choo](http://github.com/m133225) | ||
<img src="images/MartinChoo.jpg" width="150"><br> | ||
#### [Yaquan Wang](https://github.com/A0116137M) | ||
Role: Developer <br> | ||
Responsibilities: Dev Ops | ||
|
||
----- | ||
|
||
#### [Thien Nguyen](https://github.com/ndt93) | ||
Role: Developer <br> | ||
Responsibilities: Threading | ||
|
||
----- | ||
|
||
#### [You Liang](http://github.com/yl-coder) | ||
<img src="images/YouLiang.jpg" width="150"><br> | ||
Role: Developer <br> | ||
Responsibilities: UI | ||
Responsibilities: Documentation, Testing, Deliverables and Deadlines | ||
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. You can also mention the packages each person is in-charge of in this file. If not, I hope you have already divided it and have an understanding of the same among yourself. |
||
|
||
----- | ||
|
||
# Contributors | ||
|
||
We welcome contributions. See [Contact Us](ContactUs.md) page for more info. | ||
|
||
* [Akshay Narayan](https://github.com/se-edu/addressbook-level4/pulls?q=is%3Apr+author%3Aokkhoy) | ||
* [Sam Yong](https://github.com/se-edu/addressbook-level4/pulls?q=is%3Apr+author%3Amauris) |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,8 +1,8 @@ | ||
# Contact Us | ||
|
||
* **Bug reports, Suggestions** : Post in our [issue tracker](https://github.com/se-edu/addressbook-level4/issues) | ||
* **Bug reports, Suggestions** : Post in our [issue tracker](https://github.com/CS2103AUG2016-T15-C4/main/issues) | ||
if you noticed bugs or have suggestions on how to improve. | ||
|
||
* **Contributing** : We welcome pull requests. Follow the process described [here](https://github.com/oss-generic/process) | ||
|
||
* **Email us** : You can also reach us at `damith [at] comp.nus.edu.sg` | ||
* **Email us** : You can also reach us at `zihuahuang [at] u.nus.edu` |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -241,7 +241,7 @@ Here are the steps to create a new release. | |
|
||
### Managing Dependencies | ||
|
||
A project often depends on third-party libraries. For example, Address Book depends on the | ||
A project often depends on third-party libraries. For example, JYM depends on the | ||
[Jackson library](http://wiki.fasterxml.com/JacksonHome) for XML parsing. Managing these _dependencies_ | ||
can be automated using Gradle. For example, Gradle can download the dependencies automatically, which | ||
is better than these alternatives.<br> | ||
|
@@ -256,26 +256,39 @@ 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 | 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](#private-contact-detail) 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 | add a new task or event with a given deadline or date and priority | remember what tasks I have to do in the future. | ||
`* * *` | user | add a floating task with no given deadline or date | work on long term tasks that have no given deadline. | ||
`* * *` | user | mark a task or event as completed | refer to which tasks I have finished or not finished | ||
`* * *` | user | find a task or event by name | locate details of tasks/events without having to go through the entire list | ||
`* * *` | user | list upcoming tasks in sorted order | determine which tasks I should do next | ||
`* * *` | user | edit tasks | update tasks if things change. | ||
`* * *` | user | undo recent commands | revert tasks/events created by mistake. | ||
`* * *` | user | receive reminders for upcoming tasks | don't forget about tasks | ||
`* *` | user | add tasks through plain English | type more naturally than having to write in commands and flags. | ||
`* *` | user | view tasks in a calendar format | figure out what events/tasks I have upcoming more easily. | ||
`* *` | user | specify the location to place the data storage | do things with it, like sync it to my Dropbox. | ||
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. Ah, this is a must-have feature. It needs to be assigned higher priority. |
||
`* *` | user | bring up the program with a hotkey | pull it up quickly and conveniently when I need to add a task. | ||
`* *` | user | schedule multiple time blocks with one task | schedule tasks or events that have multiple and different deadlines or dates. | ||
`* *` | user | auto-complete certain tasks | save time instead of having to type out the whole command. | ||
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. Define |
||
`*` | user | manipulate the schedule with a mouse | save time manipulating the calendar directly as opposed to having to go back to the CLI and type in more command rescheduling events (e.g. drag-drop vs. retyping event details) | ||
`*` | user | view list or calendar in a pop out window | look at it more easily while working on other items. | ||
`*` | user | have a nice GUI | have an easier time manipulating the information and let the program be more pleasing to my eyes. | ||
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. Sounds more like a non-functional requirement. Try adding more specific details about the feature. |
||
|
||
{More to be added} | ||
|
||
## Appendix B : Use Cases | ||
|
||
(For all use cases below, the **System** is the `AddressBook` and the **Actor** is the `user`, unless specified otherwise) | ||
(For all use cases below, the **System** is the `JYM` and the **Actor** is the `user`, unless specified otherwise) | ||
|
||
#### Use case: Delete person | ||
#### Use case: Mark Task completed. | ||
|
||
**MSS** | ||
|
||
1. User requests to list persons | ||
2. AddressBook shows a list of persons | ||
3. User requests to delete a specific person in the list | ||
4. AddressBook deletes the person <br> | ||
1. User requests to view list of active tasks | ||
2. System shows list of tasks | ||
3. User requests to mark a task as completed from the list. | ||
4. System marks task as completed | ||
5. System removes task from list of active tasks. <br> | ||
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 can be merged with |
||
Use case ends. | ||
|
||
**Extensions** | ||
|
@@ -286,17 +299,46 @@ Use case ends. | |
|
||
3a. The given index is invalid | ||
|
||
> 3a1. AddressBook shows an error message <br> | ||
> 3a1. JYM shows an error message <br> | ||
Use case resumes at step 2 | ||
|
||
#### Use case: Update Task | ||
|
||
**MSS** | ||
|
||
1. User requests to view list of active tasks | ||
2. System shows list of tasks | ||
3. User requests to update a task with given description and/or deadline | ||
4. System updates task. | ||
Use case ends. | ||
|
||
**Extensions** | ||
|
||
2a. List is empty | ||
|
||
> Use case ends | ||
|
||
3a. Given index invalid | ||
|
||
> 3a1. JYM shows error message <br> | ||
Use case resumes at step 2 | ||
|
||
3b. Invalid deadline supplied by user | ||
|
||
> 3b1. JYM returns error message <br> | ||
Use case resumes at step 2 | ||
|
||
{More to be added} | ||
|
||
## Appendix C : Non Functional Requirements | ||
|
||
1. Should work on any [mainstream OS](#mainstream-os) as long as it has Java `1.8.0_60` or higher installed. | ||
2. Should be able to hold up to 1000 persons. | ||
3. Should come with automated unit tests and open source code. | ||
4. Should favor DOS style commands over Unix-style commands. | ||
1. Program should load within 5 seconds | ||
2. Storage file should be limited to 100MB default (can be changed by user) | ||
3. Should work on any mainstream OS | ||
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. Mention the 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. We defined the term 'mainstream OS' in the glossary; is that enough, or should we mention them specifically in the NFR? |
||
4. Should hold up to 1000 tasks/events on the active task list at any time | ||
5. Comes with automated unit tests. | ||
6. Commands should be intuitive and easy to use. | ||
7. Interface is simple and easy to understand. | ||
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. Can add |
||
|
||
{More to be added} | ||
|
||
|
@@ -306,11 +348,45 @@ Use case ends. | |
|
||
> Windows, Linux, Unix, OS-X | ||
|
||
##### Private contact detail | ||
##### Task | ||
|
||
> An activity that needs to be completed by a certain date or time. Contains | ||
a description, deadline, and priority. | ||
|
||
##### Event | ||
|
||
> An activity that happens within a set boundary of time, with a start and end time on a given date. | ||
Contains a description, event date and time, priority, and location. | ||
|
||
##### Floating Task | ||
|
||
> A task with no set deadline. | ||
|
||
##### Active Task List | ||
|
||
> List of tasks that have yet to be marked complete and whose deadlines have not passed yet. | ||
|
||
|
||
> A contact detail that is not meant to be shared with others | ||
|
||
## Appendix E : Product Survey | ||
|
||
{TODO: Add a summary of competing products} | ||
##### Google Calendar Quickadd | ||
|
||
> Satisfies many stories, but cannot add multiple events simultaneously, and does not hold support for both tasks and events. <br> | ||
> Everything is an event, and although one can create them in a certain way to make them act like tasks, it can be tedious and not optimal to do so. | ||
|
||
##### iStudiez Pro | ||
|
||
> Satisfies many stories, in particular having a nice GUI and being able to view the task list in many formats. However, there is no shortcut to add tasks, and you cannot type everything in one line without tabbing over to a separate text box. | ||
|
||
##### S Planner (Samsung Phone Calendar, Android 4.2.2) | ||
|
||
> Is only a smartphone app. Harder to type in tasks and events on the phone. <br> | ||
> Syncs with Google Calendar. <br> | ||
|
||
##### GO Note Widget (to-do list add-on for GO Launcher) | ||
|
||
> Clean and simple interface (clutter-free) <br> | ||
> Can mark tasks with colored labels <br> | ||
> No option to state the start or end time of a task <br> | ||
> Smartphone app. |
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.
Add your project name here.