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

[T7][T15-C2] #92

Open
wants to merge 49 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
49 commits
Select commit Hold shift + click to select a range
7d04b7d
Match product name of project
zhengyu92 Oct 2, 2016
642174f
Update UserGuide.md with new commands
chankyuoh Oct 2, 2016
5f45509
Revert "Update UserGuide.md with new commands"
chankyuoh Oct 2, 2016
02bdccc
Update UserGuide.md with new commands
chankyuoh Oct 2, 2016
8ce1abf
Update README.md
chankyuoh Oct 2, 2016
024a20d
add chankyu oh photo
chankyuoh Oct 6, 2016
444c0ef
Add files via upload
Niveetha Oct 6, 2016
eae735b
add Zheng Yu photo
zhengyu92 Oct 6, 2016
6b7b222
Update AboutUs.md
chankyuoh Oct 6, 2016
cb94a00
add tutor photo
chankyuoh Oct 6, 2016
dfd2727
add project mentor photo and info
chankyuoh Oct 6, 2016
6b00295
tweak mentor photo file extension
chankyuoh Oct 6, 2016
cc35287
Update README.md
chankyuoh Oct 6, 2016
179a84a
add mock ui
chankyuoh Oct 6, 2016
9704129
Update README.md
chankyuoh Oct 6, 2016
e2a7ef7
Delete MockUi.png
chankyuoh Oct 6, 2016
f198008
add MockUi.png
chankyuoh Oct 6, 2016
69ca49c
Delete MockUi.png
chankyuoh Oct 6, 2016
2d2bd96
Add files via upload
chankyuoh Oct 6, 2016
df6ddd7
Update README.md
chankyuoh Oct 6, 2016
795a551
Delete MockUi.png
chankyuoh Oct 6, 2016
c9e8b7f
add MockUpUi.png
chankyuoh Oct 6, 2016
75601b7
Update README.md
chankyuoh Oct 6, 2016
78ea50a
Update UserGuide.md
chankyuoh Oct 6, 2016
6834519
updated User Stories in DeveloperGuide.md
zhengyu92 Oct 6, 2016
94e7cfe
Merge branch 'UserStories'
zhengyu92 Oct 6, 2016
854ec2e
removed ' ' from some
zhengyu92 Oct 6, 2016
59ed0a2
Delete SelectCommand.java and related codes
takukou Oct 6, 2016
a8d5418
Update DeveloperGuide.md
Niveetha Oct 6, 2016
55dc86f
Update DeveloperGuide.md
Niveetha Oct 6, 2016
636ab21
Update DeveloperGuide.md
Niveetha Oct 6, 2016
b76ebde
Update UserGuide.md
Niveetha Oct 6, 2016
e0048fa
Update UserGuide.md
Niveetha Oct 6, 2016
faf1d02
Update AboutUs.md
Niveetha Oct 6, 2016
15ea173
Add hendersenlam.jpg
takukou Oct 6, 2016
663d716
Change all 'person' to 'task'
takukou Oct 6, 2016
edb9e48
Rename all 'phone' to 'startDateTime'
takukou Oct 6, 2016
ef32da2
Rename all 'email' to 'endDateTime'
takukou Oct 6, 2016
e82cde1
Change all relevant 'address' to 'date'
takukou Oct 6, 2016
07c59ea
Merge branch 'commandChange'
zhengyu92 Oct 10, 2016
2de4260
Merge branch 'commandChange'
Oct 10, 2016
16ecd4b
Merge branch 'master' of https://github.com/CS2103AUG2016-T15-C2/main
Oct 10, 2016
9949524
add back DeveloperGuide.md and UserGuide.md
chankyuoh Oct 10, 2016
38b66e6
update .fxml from person to task
zhengyu92 Oct 10, 2016
c8859fc
add new Roles and Responsibilities to AboutUs.md
chankyuoh Oct 10, 2016
a9d74ae
add Henderson picture to AboutUs.md
chankyuoh Oct 10, 2016
e2f1033
Update UserGuide according to comments
Niveetha Oct 10, 2016
2eea875
Edited save format
Niveetha Oct 10, 2016
2d2aa36
corrected spelling error
zhengyu92 Oct 10, 2016
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
2 changes: 1 addition & 1 deletion .project
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>addressbook-level4</name>
<name>main</name>
<comment>Project addressbook-level4 created by Buildship.</comment>
<projects>
</projects>
Expand Down
4 changes: 2 additions & 2 deletions LICENSE
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@ MIT License

Copyright (c) 2016 Software Engineering Education - FOSS Resources

Permission is hereby granted, free of charge, to any person obtaining a copy
Permission is hereby granted, free of charge, to any task obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
copies of the Software, and to permit tasks to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
Expand Down
30 changes: 17 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
[![Build Status](https://travis-ci.org/se-edu/addressbook-level4.svg?branch=master)](https://travis-ci.org/se-edu/addressbook-level4)
[![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)
# Scheduler

<img src="docs/images/Ui.png" width="600"><br>
<img src="docs/images/MockUpUi.png" width="600"><br>

* This is a desktop Address Book application. It has a GUI but most of the user interactions happen using
a CLI (Command Line Interface).
* This is a desktop Scheduler 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.
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.
**significantly bigger** (around 6 KLoC)than what students usually write in beginner-level SE modules.
* It consists of:
* 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)
Expand All @@ -28,7 +28,11 @@
#### 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*.
[Java FX tutorial](http://code.makery.ch/library/javafx-8-tutorial/) by *Marco Jakob*.

* This project is built on top of the base
[addressbook-level4 project](https://github.com/se-edu/addressbook-level4) from the NUS CS2103 Course.


#### Licence : [MIT](LICENSE)

50 changes: 24 additions & 26 deletions docs/AboutUs.md
Original file line number Diff line number Diff line change
@@ -1,52 +1,50 @@


# About Us

We are a team based in the [School of Computing, National University of Singapore](http://www.comp.nus.edu.sg).

## Project Team

#### [Damith C. Rajapakse](http://www.comp.nus.edu.sg/~damithch) <br>
<img src="images/DamithRajapakse.jpg" width="150"><br>
**Role**: Project Advisor
#### [Ang Kiang Siang](https://docs.google.com/document/u/1/d/1O3HF7qsh6KVeLesPmcQ0nPxSqhrkJxvS-OA_g-k-two/pub?embedded=true) <br>
<img src="images/angkiangsiang.png" width="150"><br>
Role: Project Mentor<br>

-----

#### [Joshua Lee](http://github.com/lejolly)
<img src="images/JoshuaLee.jpg" width="150"><br>
Role: Developer <br>
Responsibilities: UI

#### [Chankyu Oh](github.com/chankyuoh) <br>
<img src="images/profilePicture.jpg" width="150"><br>
Role: Code Quality Manager <br>
Responsibilities: Look after code quality, ensures adherence to coding standards, etc.
Deliverables and deadlines: Ensure project deliverables are done on time and in the right format.

-----

#### [Leow Yijin](http://github.com/yijinl)
<img src="images/LeowYijin.jpg" width="150"><br>
Role: Developer <br>
Responsibilities: Data
#### [Leow Zheng Yu](http://github.com/zhengyu92)
<img src="images/ZhengYu.jpg" width="150"><br>
Role: Integration Manager <br>
Responsibilities: In charge of versioning of the code, maintaining the code repository, integrating various parts of the software to create a whole.

-----

#### [Martin Choo](http://github.com/m133225)
<img src="images/MartinChoo.jpg" width="150"><br>
Role: Developer <br>
Responsibilities: Dev Ops
#### [Niveetha](http://github.com/niveetha)
<img src="images/PD1.jpg" width="150"><br>
Role: Team Lead<br>
Responsibilities: Responsible for overall project coordination.

-----

#### [Thien Nguyen](https://github.com/ndt93)
Role: Developer <br>
Responsibilities: Threading

-----
#### [Henderson](http://github.com/takukou)
<img src="images/hendersenlam.jpg" width="150"><br>
Role: Testing Manager <br>
Responsibilities: Ensures the testing of the project is done properly and on time.

Copy link

@K1ang K1ang Oct 8, 2016

Choose a reason for hiding this comment

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

Check out the handbook on some possible roles and responsibilities other than developer. :)

#### [You Liang](http://github.com/yl-coder)
<img src="images/YouLiang.jpg" width="150"><br>
Role: Developer <br>
Responsibilities: UI

-----

# 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)

2 changes: 1 addition & 1 deletion docs/ContactUs.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@

* **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`
* **EndDateTime us** : You can also reach us at `damith [at] comp.nus.edu.sg`
192 changes: 177 additions & 15 deletions docs/DeveloperGuide.md
Original file line number Diff line number Diff line change
Expand Up @@ -256,26 +256,106 @@ 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 an event, a task and a floating task | so that I can record tasks that need to be done some day
`* * *` | user | list all items | view all entries and dates that are due sorted by date and time and know what needs to be done next
`* * *` | user | edit an item | update entries that are outdated
`* * *` | user | delete an item | remove entries that I no longer need
`* * *` | user | undo an operation | have read-consistency and data changes should not be visible to queries that started running before committing them
`* * *` | advanced user | use flexible commands | type a command faster
`* * *` | user | find an item by name | locate details of item without having to go through the entire list
`* * *` | user | track items | keep track of items that have been completed/uncompleted to filter items based on completion
`* * *` | user | path items | save my files on shared folders for accessibility on other devices
`* *` | user | clear all items | clear all my list in the scheduler
`*` | user | exit the program | exit the program conveniently

{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 `Scheduler` and the **Actor** is the `user`, unless specified otherwise)

#### Use case: Delete person
#### Use case: Open Help documentation

**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 for help documentation
2. Scheduler opens window displaying all program commands and its functionality <br>
Use case ends.

**Extensions**

#### Use case: Add item

**MSS**

1. User calls the add function
2. Scheduler displays added item <br>
Use case ends.

**Extensions**

2a. The user adds an events

> 2a1. Scheduler displays item as a calendar <br>

2b. The user adds a task with a deadline

> 2b1. Scheduler displays item in a list with a date <br>

2c. The user adds a task

> 2c1. Scheduler displays item in a list <br>

> Use case ends

#### Use case: List items

**MSS**

1. User calls the list function
2. Scheduler displays all items as a list <br>
Use case ends.

**Extensions**

2a. The list is empty

> 2a1. Scheduler displays empty list <br>

#### Use case: Edit items

**MSS**

1. User requests to list items or find item
2. Scheduler shows a list of items or the item
3. User calls the edit function
4. User types in index of item and inputs new values for the item
5. Scheduler displays updated list of items <br>
Copy link

Choose a reason for hiding this comment

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

Is displaying the list of items necessary? Or just the details of the updated item will be better.

Use case ends.

**Extensions**

4a. The item is an event

> 4a1. The function requires an input “'NAME OF EVENT' 'START DATE AND TIME' 'END DATE AND TIME'" <br>

4b. The item is a task with a deadline

> 4b1. The function requires an input “'NAME OF TASK' 'DEADLINE'” <br>

4c. The item is a floating task

> 4c1. The function requires an input “'NAME OF TASK'” <br>

#### Use case: Delete item

**MSS**

1. User requests to list items or find item
2. Scheduler shows a list of items or the item
3. User requests to delete a specific item in the list based on the index
4. Scheduler deletes the item
5. Scheduler displays updated list of items <br>
Use case ends.

**Extensions**
Expand All @@ -284,19 +364,101 @@ Use case ends.

> Use case ends

3a. The given index is invalid
5a. The list is empty

> 3a1. AddressBook shows an error message <br>
Use case resumes at step 2
> Use case ends

{More to be added}
#### Use case: Undo action

**MSS**

1. User requests to undo most recently executed action
2. System reverts back to previous state in history
3. Scheduler displays updated list <br>
Use case ends.

**Extensions**

1a. The scheduler is new and no previous actions were executed

> Use case ends

#### Use case: Find item

**MSS**

1. User calls the find function
2. Scheduler displays the items that are word related with no case sensitive
Copy link

Choose a reason for hiding this comment

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

Seems ambiguous here. What is word related?

<br>
Use case ends.

**Extensions**

2a. The list is empty

> 2a1. Scheduler displays empty list <br>

#### Use case: Track items

**MSS**

1. User calls the track function
2. Scheduler displays the items which are done and yet to be done <br>
Use case ends.

**Extensions**

2a. The list is empty

> 2a1. Scheduler displays empty list <br>

Copy link

Choose a reason for hiding this comment

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

More thinking through is required for this function. What does it mean by tracking items which are done and which are yet to be done? You can consider functions to allow the user to mark a task to be completed. And how should a user list completed/uncompleted task?

#### Use case: Path item

**MSS**

1. User calls the path function
2. Scheduler creates a folder in specified path <br>
Use case ends.

**Extensions**

2a. The folder does not exist

> 2a1. Scheduler will create a folder <br>

#### Use case: Clear items

**MSS**

1. User requests to clear items
2. Scheduler deletes all items
3. Scheduler displays empty list <br>
Use case ends.

**Extensions**

1a. The list is empty

> Use case ends

#### Use case: Exit

**MSS**

1. User requests to exit program
2. Scheduler exits program <br>
Use case ends.

## 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.
5. Synchronization capability to other task management sites (ex: Google calendar)
6. Back-up data that can be used to recover if original copy gets deleted
7. Able to migrate all items into .txt file


{More to be added}

Expand Down
Loading