Skip to content

Commit

Permalink
Merge branch 'master' of https://github.com/mrchensheng21/main
Browse files Browse the repository at this point in the history
* 'master' of https://github.com/mrchensheng21/main:
  Update developer's guide (AY1920S1-CS2103-F09-1#35)
  Add add, delete, quickstart to user guide (AY1920S1-CS2103-F09-1#33)
  Update UserGuide.adoc (AY1920S1-CS2103-F09-1#32)
  Update site name and github link
  Update About Us page & Contact Us Page
  Update README.adoc
  Update coveralls link in README.adoc
  Update README.adoc
  Update README.adoc
  • Loading branch information
Kwan Chen Sheng committed Oct 2, 2019
2 parents 28b893c + 87fa905 commit 68e7e55
Show file tree
Hide file tree
Showing 28 changed files with 580 additions and 167 deletions.
24 changes: 9 additions & 15 deletions README.adoc
@@ -1,9 +1,9 @@
= Address Book (Level 3)
= Scheduler
ifdef::env-github,env-browser[:relfileprefix: docs/]

https://travis-ci.org/AY1920S1-CS2103-F09-1/main[image:https://travis-ci.org/se-edu/addressbook-level3.svg?branch=master[Build Status]]
https://ci.appveyor.com/project/damithc/addressbook-level3[image:https://ci.appveyor.com/api/projects/status/3boko2x2vr5cc3w2?svg=true[Build status]]
https://coveralls.io/github/se-edu/addressbook-level3?branch=master[image:https://coveralls.io/repos/github/se-edu/addressbook-level3/badge.svg?branch=master[Coverage Status]]
https://ci.appveyor.com/project/ChrisKheng/main/branch/master[image:https://ci.appveyor.com/api/projects/status/7xipch56f5hpgwqw/branch/master?svg=true[Build status]]
https://coveralls.io/github/AY1920S1-CS2103-F09-1/main?branch=master[image:https://coveralls.io/repos/github/AY1920S1-CS2103-F09-1/main/badge.svg?branch=master[Coverage Status]]
https://gitter.im/se-edu/Lobby[image:https://badges.gitter.im/se-edu/Lobby.svg[Gitter chat]]

ifdef::env-github[]
Expand All @@ -14,22 +14,16 @@ 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.
*Scheduler* is a desktop application for scheduling interviews. It matches interviewees with interviewers automatically through our robust algorithm so you don't have to.

== Site Map
If you are a secretary facing a headache on organising interview slots for your team, we offer just the solution for you. Simply import or input the available timings of both your interviewers and interviewees, and start scheduling those interviews right away!

* <<UserGuide#, User Guide>>
* <<DeveloperGuide#, Developer Guide>>
* <<LearningOutcomes#, Learning Outcomes>>
* <<AboutUs#, About Us>>
* <<ContactUs#, Contact Us>>
For more information, please refer to our <<UserGuide#, User Guide>>. Developers, please refer to our <<DeveloperGuide#, Developer Guide>>.

This application was developed by a team of students from the National University of Singapore (NUS) as part of the CS2103 Software Engineering module. <<AboutUs#, Read more about us>> or <<ContactUs#, contact us>> directly.

== Acknowledgements

* Some parts of this sample application were inspired by the excellent http://code.makery.ch/library/javafx-8-tutorial/[Java FX tutorial] by
_Marco Jakob_.
* Libraries used: https://openjfx.io/[JavaFX], https://github.com/FasterXML/jackson[Jackson], https://github.com/junit-team/junit5[JUnit5]
This project was built on the AddressBook-Level3 project developed as part of the SE-EDU initiative: https://se-education.org

== Licence : link:LICENSE[MIT]
4 changes: 2 additions & 2 deletions build.gradle
Expand Up @@ -133,8 +133,8 @@ asciidoctor {
idprefix: '', // for compatibility with GitHub preview
idseparator: '-',
'site-root': "${sourceDir}", // must be the same as sourceDir, do not modify
'site-name': 'AddressBook-Level3',
'site-githuburl': 'https://github.com/se-edu/addressbook-level3',
'site-name': 'Scheduler',
'site-githuburl': 'https://github.com/AY1920S1-CS2103-F09-1/main',
'site-seedu': true, // delete this line if your project is not a fork (not a SE-EDU project)
]

Expand Down
52 changes: 30 additions & 22 deletions docs/AboutUs.adoc
Expand Up @@ -4,53 +4,61 @@
:imagesDir: images
:stylesDir: stylesheets

AddressBook - Level 3 was developed by the https://se-edu.github.io/docs/Team.html[se-edu] team. +
_{The dummy content given below serves as a placeholder to be used by future forks of the project.}_ +
Scheduler was developed by https://github.com/AY1920S1-CS2103-F09-1[Team AY1920S1-CS2103-F09-1] +
{empty} +
We are a team based in the http://www.comp.nus.edu.sg[School of Computing, National University of Singapore].

== Project Team

=== John Doe
=== Prof. Damith C.Rajapakse
image::damithc.jpg[width="150", align="left"]
{empty}[http://www.comp.nus.edu.sg/~damithch[homepage]] [https://github.com/damithc[github]] [<<johndoe#, portfolio>>]

Role: Project Advisor

'''

=== John Roe
image::lejolly.jpg[width="150", align="left"]
{empty}[http://github.com/lejolly[github]] [<<johndoe#, portfolio>>]
=== Kheng Yau Dong
image::chriskheng.png[width="150", align="left"]
{empty}[https://github.com/ChrisKheng[github]] [<<Kheng-Yau-Dong#, portfolio>>]

Role: Team Lead +
Responsibilities: UI
Role: Team lead, developer +
Responsibilities: Scheduling component

'''

=== Johnny Doe
image::yijinl.jpg[width="150", align="left"]
{empty}[http://github.com/yijinl[github]] [<<johndoe#, portfolio>>]
=== Hsu Zhong Jun
image::dcshzj.png[width="150", align="left"]
{empty}[https://github.com/dcshzj[github]] [<<Hsu-Zhong-Jun#, portfolio>>]

Role: Developer +
Responsibilities: Data
Role: Developer, testing +
Responsibilities: Emailing component

'''

=== Johnny Roe
image::m133225.jpg[width="150", align="left"]
{empty}[http://github.com/m133225[github]] [<<johndoe#, portfolio>>]
=== Ang Wei Heng Kendrick
image::kendrickang.png[width="150", align="left"]
{empty}[https://github.com/KendrickAng[github]] [<<Ang-Wei-Heng-Kendrick#, portfolio>>]

Role: Developer +
Responsibilities: Dev Ops + Threading
Role: Developer, integration +
Responsibilities: Model

'''

=== Benson Meier
image::yl_coder.jpg[width="150", align="left"]
{empty}[http://github.com/yl-coder[github]] [<<johndoe#, portfolio>>]
=== Kwan Chen Sheng
image::mrchensheng21.png[width="150", align="left"]
{empty}[https://github.com/mrchensheng21[github]] [<<Kwan-Chen-Sheng#, portfolio>>]

Role: Developer +
Role: Developer, documentation +
Responsibilities: UI

'''

=== Goh Rui Zhi
image::mirozo.png[width="150", align="left"]
{empty}[https://github.com/mirozo[github]] [<<Goh-Rui-Zhi#, portfolio>>]

Role: Developer, documentation +
Responsibilities: Storage

'''
4 changes: 2 additions & 2 deletions docs/ContactUs.adoc
Expand Up @@ -2,6 +2,6 @@
:site-section: ContactUs
:stylesDir: stylesheets

* *Bug reports, Suggestions* : Post in our https://github.com/se-edu/addressbook-level3/issues[issue tracker] if you noticed bugs or have suggestions on how to improve.
* *Bug reports, Suggestions* : Post in our https://github.com/AY1920S1-CS2103-F09-1/main/issues[issue tracker] if you noticed bugs or have suggestions on how to improve.
* *Contributing* : We welcome pull requests. Follow the process described https://github.com/oss-generic/process[here]
* *Email us* : You can also reach us at `damith [at] comp.nus.edu.sg`
* *Email us* : You can also reach us at xan8887@gmail.com
142 changes: 126 additions & 16 deletions docs/DeveloperGuide.adoc
Expand Up @@ -279,13 +279,13 @@ Refer to the guide <<DevOps#, here>>.

*Target user profile*:

* has a need to manage a significant number of contacts
* has a need to manage and schedule many interviews with multiple interviewers involved.
* prefer desktop apps over other types
* can type fast
* prefers typing over mouse input
* is reasonably comfortable using CLI apps

*Value proposition*: manage contacts faster than a typical mouse/GUI driven app
*Value proposition*: manage the scheduling of interviews faster with CLI than mouse/GUI driven apps.

[appendix]
== User Stories
Expand All @@ -297,33 +297,69 @@ 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 |
|`* * *` |secretary of NUS CCA |manually add new interviewees and their availabilities| make changes without having to edit the .csv file and doing another import.

|`* * *` |user |delete a person |remove entries that I no longer need
|`* * *` |secretary of NUS CCA |delete an interview |remove interviews that have been taken out.

|`* * *` |user |find a person by name |locate details of persons without having to go through the entire list
|`* * *` |secretary of NUS CCA |find a interviewee by name|locate details of person and their interview without having to go through the entire list

|`* *` |user |hide <<private-contact-detail,private contact details>> by default |minimize chance of someone else seeing them by accident
|`* * *` |secretary of NUS CCA |automate the process of scheduling interviews |lighten my workload

|`*` |user with many persons in the address book |sort persons by name |locate a person easily
|`* * *` |secretary of NUS CCA |import the available timeslots of interviewees from a .csv template |schedule the interviews for them

|`* * *` |secretary of NUS CCA |export the scheduled interviews as a .csv file |I can view and manage them in Excel

|`* * *` |secretary of NUS CCA |add details of interviewee e.g. email/phone number |easily view the details of the interviewees

|`* * *` |secretary of NUS CCA |view a timetable of the finalized interview slots |show the interviewers which timeslots they will be taking at a glance

|`* * *` |secretary of NUS CCA |email blast the generated interview schedule to all interviewees |inform the interviewees of their interview

|`* * *` |secretary of NUS CCA |be informed if interview allocation of a certain interviewee has failed |manually fix conflicts or get the interviewee to give another available timeslot

|`* * *` |secretary of NUS CCA |automate the process of scheduling interviews |lighten my workload

|`* * *` |secretary of NUS CCA |mark an interviewee as 'completed interview' |track and manage uncompleted interviews

|`* * *` |secretary of NUS CCA |add multiple tags to an interviewee in a single command |I can be efficient

|`* * *` |fast-typer |use CLI for the app instead of mouse/GUI |access the commands in the fastest possible way

|`* *` |developer |CLI and GUI to be separated |isolate either one for testing and debugging purposes

|`* *` |secretary of NUS CCA |track the attendance of my interviewees |

|`* *` |secretary of NUS CCA |rank my interviewees by potential |I would be able to evaluate them better

|`* *` |secretary of NUS CCA |be able to sort interviewees by ranking |I can easily record down the shortlisted ones

|`* *` |secretary of NUS CCA |schedule group interviews |I can use less manpower on days that I do not have enough interviewers

|`* *` |secretary of NUS CCA |share the current scheduled timeslots with another secretary |give them access to help with the scheduling of interviews as well

|`* *` |secretary of NUS CCA |email the interview results to interviewees |inform them of the outcomes of the interview

|`*` |secretary of NUS CCA |hide <<private-contact-detail,private contact details>> by default |minimize chance of someone else seeing them by accident

|`*` |secretary of NUS CCA with many interviewees |sort persons by name |locate an interviewee easily
|=======================================================================

_{More to be added}_


[appendix]
== 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)

[discrete]
=== Use case: Delete person
=== Use case: (UC-1) Delete interview slot

*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
1. User requests to list interview slots
2. Scheduler shows a list interview slots
3. User requests to delete a specific interview slot in the list
4. Scheduler deletes the interview slot
+
Use case ends.

Expand All @@ -337,11 +373,85 @@ Use case ends.
* 3a. The given index is invalid.
+
[none]
** 3a1. AddressBook shows an error message.
** 3a1. Scheduler shows an error message.
+
Use case resumes at step 2.

_{More to be added}_
[discrete]
=== Use case: (UC-2) Import interviewee's time slots

*MSS*

1. User requests to import interviewee's time slots and specify file location
2. Scheduler imports interviewee's time slots from specified file

+
Use case ends.

*Extensions*

[none]
* 1a. Specified file doesn't exist
** 1a1. Scheduler shows error message
+
Use case resumes at step 1.

* 1b. Specified file doesn't follow correct format
** 1b1. Scheduler shows error message
+
Use case resumes at step 1.


[discrete]
=== Use case: (UC-3) Import interviewer's time slots

*MSS*

1. User requests to import interviewer's time slots and specify file location
2. Scheduler imports interviewer's time slots from specified file

+
Use case ends.

*Extensions*

[none]
* 1a. Specified file doesn't exist
** 1a1. Scheduler shows error message
+
Use case resumes at step 1.

* 1b. Specified file doesn't follow correct format
** 1b1. Scheduler shows error message
+
Use case resumes at step 1.


[discrete]
=== Use case: (UC-4) Schedule interview slots


*MSS*

1. User __imports interviewee's availability (UC-2)__
2. User __imports interviewer's availability (UC-3)__
3. User requests to generate timetable of all available interview time slots based on the availability of *interviewers*.
4. Scheduler generates timetable
5. User requests schedule interviewees based on the available timetable
6. Scheduler allocates interviewees into the time slots in the generated timetable
+
Use case ends.

*Extensions*

[none]
* 5a. Unable to fit all interviewees into timetable.
** 5a1. Scheduler shows an error message with the names of interviewees that are not allocated a slot.
+
Use case ends.




[appendix]
== Non Functional Requirements
Expand Down

0 comments on commit 68e7e55

Please sign in to comment.