By: CS2113-T13-1
Since: Aug 2019
Licence: MIT
Ever wondered how good it will be to have a Kanban board for all your projects instead of using multiple Kanban boards for different group projects? ArchDuke is the application for you!
ArchDuke is a simple desktop application designed by team leaders, for team leaders to manage their multiple projects! ArchDuke is optimized for team leaders who wish to work using a Command Line Interface (CLI).
-
Ensure Java
11
is installed in your computer. To check the version of Java installed in your work environment, typejava -version
into your preferred terminal (such as Command Prompt, Git Bash, or MacOS terminal) -
Download the latest .jar file from here:
Releases
-
Copy the .jar file to your desired folder.
-
Run the java file using
java -jar ArchDuke.jar
. The UI shown above will appear within a few seconds. -
Type your commands in your terminal and press Enter to execute it.
-
Typing
help
and executing it will open the help list for a complete overview of all available commands, their usage and their functions at the current state.
-
-
Refer to the Features section for detailed documentation and usage of each command
-
Refer to Command Summary section for a quick summary of all available commands.
-
Words in UPPER_CASE are the parameters that needs to be specified by each user.
-
E.g.
create PROJECT_NAME
where PROJECT_NAME is a parameter which can be used ascreate CS2113_Project
-
-
Parameters defined in square brackets are optional.
-
E.g.
-n NAME [-i PHONE_NUMBER]
can be used as-n Cynthia -i 91234567
or as-n Cynthia
-
-
-n
indicates a name or string flag. -
-e
indicates a flag for email. -
-i
indicates an integer flag. -
-d
indicates a flag for a date in the DD/MM/YYYY format. -
-p
indicates a flag for task priority, represented in integers. -
-c
indicates a flag for the amount of credit awarded for completion of a certain task, represented in integers. -
-s
indicates the flag where user can specify the state of the specific task. -
-r
indicates a flag for either task requirements or roles of member, depending on the command used
This command will create a new project with a given name, which is automatically saved in JSON.
-
Format:
create PROJECT_NAME
-
Example:
create New Project
Shows a list of all projects and project details: project index number, project name, the names of all project members, nearest deadline and overall progress of project.
-
Format:
list
Allows user to manage a project at the specified index. The index refers to the index number shown in the list of all projects and project details through the command view. Index number are generated using 1-based indexing.
-
Format:
manage PROJECT_INDEX
-
Example:
manage 1
Important
|
All Member, Task, Assignment and other commands are only executable after the user has selected a project that he or she wishes to manage. |
Allows user to delete a project at the specified index. The index refers to the index number shown in the list of all projects and project details through the command view. Index number is generated using 1-based indexing.
-
Format:
delete PROJECT_INDEX
-
Example:
delete 2
Adds members to the specific project selected using manage
.
-
Format:
add member -n NAME [-i PHONE_NUMBER] [-e EMAIL_ADDRESS] [-r ROLE]
-
Example:
add member -n Jerry Zhang -i 9123456 -e [email protected] -r Lead
Note
|
Member details should not contain any hyphens (eg. Mary-Jane) or the details will be truncated and not recorded properly. |
Note
|
Email must be a valid email address with the format “<String>@<String>.com”. |
Note
|
Phone number must be an integer with no more than 8 digits. |
Displays all members’ details like their name, phone number, email and their role in the project.
-
Format:
view members
Edits details of the members. Only fields that need editing need to be entered.
-
Format:
edit member INDEX [-n NAME] [-i PHONE_NUMBER] [-e EMAIL]
-
Example:
edit member 2 -n Jerry Zhang -e [email protected]
Note
|
The member index must be a positive integer. |
Note
|
Email must be a valid email address with the format “<String>@<String>.com”. |
Note
|
Phone number must be an integer with no more than 8 digits. |
Remove selected member(s) from a project based on their index number. Index number is generated using 1-based indexing and can be viewed using the view members command. Multiple index numbers may be used to delete multiple members at once.
Note
|
The keyword all may be used to delete all members in the project. Please use this command
with caution to avoid losing work.
|
-
Format:
delete member INDEX1 [INDEX2]
-
Examples:
delete member 4
delete member 1 2
delete member all
Note
|
Index numbers of the remaining members may be changed after deletion. (All member index numbers after the deleted member will be shifted up by 1. For example, if there are 4 members in the group and member 2 is deleted, then the current members 3 and 4 will become members 2 and 3 respectively). |
Note
|
If multiple index numbers are used, then members will be deleted in descending order of index numbers. This is to prevent any errors caused by possible shifting of index numbers during the deletion process. |
Allows a user to assign roles to specific members, where a role can be any String. Members must be specified using the index of a specific member in a group project.
-
Format:
role INDEX -n ROLE_NAME
-
Example:
role 2 -n Badguy
The role of a new member can also be changed during the addition, by using the -r flag.
* Example: add member -n Thor -r AlienGuy
Adds a task to the project.
-
Format:
add task -n TASK_NAME -p TASK_PRIORITY -c TASK_CREDIT [-d TASK_DUEDATE-(dd/mm/yyyy)] [-s STATE] [-r TASK_REQUIREMENT1] [-r TASK_REQUIREMENT2]
-
Example:
add task -n Documentation for product -p 2 -d 21/09/2019 -c 40 -r do something -r do another thing
Note
|
Task name should not contain any hyphens (eg. Task-1) or the details will be truncated and not recorded properly. |
Note
|
Task priority is represented by an integer from 1-5 which denotes how important a task is, with a smaller number meaning higher priority. |
Note
|
Task credit is represented by an integer from 0 to 100, which denotes the amount of credit a person would receive for completing a task (eg. a more difficult task which requires more work would receive higher credit.) |
Note
|
Task credit is accumulated throughout the selected project |
Note
|
Due date may or may not need to be added depending on the nature of the task. |
Note
|
The input for date is in the dd/mm/yyyy format. E.g. 21/09/2019 |
Note
|
Each task will be given an index number based on the amount of tasks in the list |
Note
|
State refers to whether the task is in OPEN, TODO, DOING, DONE. If no state is specified, task created will automatically be assigned to OPEN. |
Note
|
Any number of task requirements can be added to give specific requirements for the task so that the member will be clear of what to do |
Edits the details of a task: task name, priority, credit and due date. Only fields that need to be edited must be filled in. Fields that are not filled will not be changed.
Note
|
Task requirements cannot be edited through this command. |
-
Format:
edit task TASK_INDEX [-n TASK_NAME] [-p TASK_PRIORITY] [-d TASK_DUEDATE] [-c TASK_CREDIT] [-s STATE]
-
Examples:
-
edit task 12 -p 5 -c 80
-
edit task 4 -s doing
-
edit task 12 -p 5 -c 80
edit task 4 -s doing
Removes a task from the current selected project. All details regarding the task will be removed. If the task is assigned to any member, the member will automatically be unassigned. Multiple index numbers may be used in 1 command to delete more than 1 task.
Note
|
The keyword all may be used to delete all members in the project. Please use this command
with caution to avoid losing work.
|
-
Format:
delete task INDEX1 [INDEX2]
-
Examples:
delete task 1
delete task 1 2 3
delete task all
Note
|
Index numbers of the remaining tasks may be changed after deletion. (All task index numbers after the deleted member will be shifted up by 1. For example, if there are 4 tasks in the group and task 2 is deleted, then the current tasks 3 and 4 will become tasks 2 and 3 respectively). |
Note
|
If multiple index numbers are used, then members will be deleted in descending order of task numbers. This is to prevent any errors caused by possible shifting of index numbers during the deletion process. |
Shows user a list of all tasks in the current project, sorted based on certain criteria as chosen by the user.
By default, the tasks are displayed in the order that they are added to the project.
The criteria can be changed by using a different [MODIFIER]
suffix added in the command.
-
Format:
view tasks [MODIFIER]
MODIFIER |
Sorting criteria |
|
Sort based on task name, lexicographically. |
|
Sort based on the deadline/due date of the task: from earliest to latest. Tasks without a deadline will be classified as the latest. |
|
Sort based on task priority from highest to lowest priority (ascending). |
|
Sort based on task credit from highest to lowest credit (descending). |
|
Sort based on the name of member assigned to all tasks in alphabetical order. |
|
Sort based on task State: List from |
-
Examples
-
view tasks -name
: shows all the tasks sorted lexicographically
-
-
view tasks -date
: show all the dates sorted by the due date
-
view tasks -priority
: shows all the dates sorted by priority
-
view tasks -credits
: shows all the tasks sorted by credits
-
view tasks -who Dilen
: shows all the tasks assigned to “Dilen”
-
view tasks -state done
: shows all the tasks with the state “DONE”
Shows user a list of task requirements for a specific task in the current project:
-
Format:
view task requirements TASK_INDEX
-
Example:
view task requirements 2
Adds or removes a list of task requirements to a specific task in the current project.
The flag -r
indicates a task requirement that can be added to the task
The flag -rm
indicates the index numbers of existing requirements to be removed.
-
Format:
edit task requirements TASK_INDEX [-r TASK_REQUIREMENT_TO_ADD] [-rm TASK_REQUIREMENT_INDEX_TO_REMOVE]
-
Examples:
edit task requirements 2 -r do something -r do another thing
edit task requirements 2 -rm 1 2 4 -r do something
Note
|
The user may input multiple requirements to be added and multiple requirements to be removed. |
Assigns or unassigns the task to a member or several members in the group. Task assignments can be added or removed simultaneously.
Note
|
Multiple tasks may be assigned or unassigned to multiple members in 1 command. |
Note
|
A task may be assigned to multiple members. The task credit will then be split evenly between them. |
Note
|
The keyword `all' may be used after any of the flags to represent all task or member index numbers. This allows the user to assign/unassign all tasks to members, or assign/unassign a task to all members. |
-
Flags:
-
-i
: Task index numbers -
-to
: Assignee index numbers -
-rm
: Unassignee index numbers
-
-
Format:
assign task -i TASK_INDEX1 [TASK_INDEX2] [-to MEMBER1_INDEX [MEMBER2_INDEX]] [-rm MEMBER3_INDEX [MEMBER4_INDEX]]
-
Examples:
-
assign task -i 1 -to 3 4
| assign task 1 to members 3 and 4 -
assign task -i 1 -rm 1 2
| unassign task 1 to members 1 and 2 -
assign task -i 1 -to 5 -rm 3
| simultaneously assign task 1 to member 5, unassign member 3 -
assign task -i 2 3 -to 1
| assign tasks 2 and 3 to member 1 -
assign task -i all -to 1 2
| assign all tasks to members 1 and 2 -
assign task -i 1 -rm all
| unassign task 1 from all members
-
Shows user the task assignments based on certain specifications. This allows the user to check which task is assigned to who, and vice versa.
A modifier suffix must be added behind the command to specify the format to display the task assignments.
The suffix -m
indicates member index numbers, while -t
indicates tasks index numbers.
Shows all members’ credits, their index number, name, and name of tasks completed. * Format: view credits
Note
|
Credits are only calculated for tasks which have the “DONE” state. |
Note
|
Credits are equally distributed amongst assigned members. |
MODIFIER |
Display |
|
Shows the list of tasks assigned to the specified members. |
|
Shows the members who are assigned to the specified tasks. |
Note
|
The keyword all can be used to show the assignments for all members, or all tasks. It is recommended
to use this keyword if the user would like to get an overview of all the assignments in the project.
|
-
Format:
view assignments MODIFIER
-
Examples:
-
view assignments -m all
| view tasks assigned to all members. -
view assignments -m 1 2 3
| view tasks assigned to members 1, 2 and 3. -
view assignments -t all
| view members assigned to all tasks. -
view assignments -t 4 5 6
| view members assigned to tasks 1, 2 and 3.
-
In case of confusion, the following are examples that demonstrate the difference between -m and -t, and how they can be used to show assignments in different formats.
Shows all members’ credits, their index number, name, and name of tasks completed. * Format: view credits
Note
|
Credits are only calculated for tasks which have the “DONE” state. |
Note
|
Credits are equally distributed amongst assigned members. image::images/screenshots/viewcredits.png[] |
Adds a reminder to the project. The due date may or may not need to be added depending on the nature of the reminder. The input for date is in the dd/mm/yyyy format. (E.g. 21/09/2019)
-
Format:
add reminder -n reminder_NAME [-d TASK_DUEDATE-(dd/mm/yyyy)] [-l REMINDER_LIST_NAME] [-r Requirements]
-
Examples:
add reminder -n Fix important bug -d 21/09/2019 -l Software Reminder List
add reminder -n Do activate patch -r need to check internet connection -d 10/10/2000 -l System
View all the of reminders information in the project. Information such as the state of the reminder, the category, remarks and the deadline.
Format: view reminders [by list]
Example: view reminders [by list]
Deletes a reminder from the project. The index number is based on the list given by the view reminder command.
-
Format:
delete reminder INDEX_NUMBER
-
Example:
delete reminder 1
Edit the details of the reminder in the project: reminder name, remarks, category and due date.
Only fields that need to be edited must be filled in. Fields that are not filled will not be changed.
-
Format:
edit reminder INDEX_NUMBER -n REMINDER_NAME [-d REMINDER_DUEDATE-(dd/mm/yyyy) -l REMINDER_LIST_NAME]
-
Example:
edit reminder 1 -n Fix important bug -d 21/09/2019
edit reminder 1 -n Apply critical patch -r need to understand some stuff -d 10/10/2000 -l Software
View the current details about the project that is being managed.
-
Format:
view
Allows user to rename the project currently being managed.
-
Format:
rename PROJECT_NAME
-
Example:
rename Avengers
Reports the progress of all projects, and the contributions of each member (the credit each member earned, the dates of tasks completed, whether the tasks were overdue).
-
Format:
report
Exits the current project being managed, allowing the user to manage other projects.
-
Format:
exit
Exits the program, regardless of what the user was doing at the current point of application runtime. User will be able to exit the program even when they have selected a project, or when they have selected a task.
-
Format:
bye
Q: How can I transfer data from one workstation to another?
A: The application must be installed in the other computer by downloading the same version of the .jar file used in the original work environment. You may then copy the data file from the original work environment and overwrite the empty data file in the new work environment.
Project Commands
-
Create project:
create PROJECT_NAME
-
Example:
create Infinity Gauntlet
-
-
View projects:
list
-
Delete project:
delete PROJECT_INDEX
-
Example:
delete 1
-
-
Manage project:
manage PROJECT_INDEX
-
Example:
manage 2
-
Member Commands
-
Add members:
add member -n NAME [-i PHONE_NUMBER] [-e EMAIL] [-r ROLE]
-
Example:
add member -n Jerry Zhang -i 9123456 -e [email protected] -r Lead
-
-
View members:
view members
-
Edit members:
edit member INDEX [-n NAME] [-i PHONE_NUMBER] [-e EMAIL]
-
Example:
edit member 2 -n Jerry Zhang -e [email protected]
-
-
Delete members:
delete member INDEX1 [INDEX2]
-
Example:
delete member 3 4
-
-
Give roles for members:
role INDEX -n ROLE_NAME
-
Example:
role 2 -n Badguy
-
-
-
Task Commands
-
Add task:
add task -n TASK_NAME -p TASK_PRIORITY [-d TASK_DUEDATE-(dd/mm/yyyy)] -c TASK_CREDIT [-s STATE] [-r TASK_REQUIREMENT1] [-r TASK_REQUIREMENT2]
-
Example:
add task -n Documentation for product -p 2 -d 21/09/2019 -c 40 -r do something -r do another thing -r do another thing
-
-
Edit task:
edit task TASK_INDEX [-n TASK_NAME] [-p TASK_PRIORITY] [-d TASK_DUEDATE-(dd/mm/yyyy)] [-c TASK_CREDIT] [-s TASK_STATE]
-
Example:
edit task 12 -p 5 -c 80
-
-
Delete tasks:
delete task INDEX
-
Example:
delete task 3
-
-
View tasks:
view tasks MODIFIER
-
Example:
view tasks -state done
-
Example:
view tasks -name
-
Example:
view tasks -priority
-
Example:
view tasks -credits
-
Example:
view tasks -date
-
Example:
view tasks -who EXISTING_MEMBER_NAME
-
-
View task requirements:
view task requirements TASK_INDEX
-
Example:
view task requirements 1
-
-
Edit task requirements:
edit task requirements TASK_INDEX [-r TASK_REQUIREMENT_TO_ADD] [-rm TASK_REQUIREMENT_INDEX_TO_REMOVE]
-
Example:
edit task requirements 1 -r Testing -r Documentation
-
Example:
edit task requirements 1 -rm 1 2 3 -r Submit
-
-
Agenda of Tasks:
agenda
-
-
Assignment Commands
-
Assign/Unassign members to tasks:
assign task -i TASK_INDEX1 [TASK_INDEX2] [-to MEMBER1_INDEX [MEMBER2_INDEX]] [-rm MEMBER3_INDEX [MEMBER4_INDEX]]
-
Example:
assign task -i 1 2 -to 1 2
-
Example:
assign task -i 2 4 -to 3 4 5
-
Example:
assign task -i 1 -to 5 -rm 2
-
Example:
assign task -i 3 -to all
-
-
View assignments:
view assignments MODIFIER
-
Example:
view assignments -m all
(show all members' tasks) -
Example:
view assignments -m 1 2
(show tasks of member 1 and 2) -
Example:
view assignments -t all
(show all the members assigned to a task) -
Example:
view assignments -t 3 4
(show members assigned to tasks 3, 4, 5)
-
-
View total credits completed by each member:
view credits
-
-
Requirement Commands
-
Create reminder:
add reminder -n reminder_NAME [-d TASK_DUEDATE-(dd/mm/yyyy) -l REMINDER_LIST_NAME]
-
Example:
add reminder -n Fix important bug -d 21/09/2019 -l Software Reminder List
-
-
View reminders:
view reminder [by list]
-
Example:
view reminders
-
Example:
view reminders by list
-
-
Edit reminder:
edit reminder INDEX_NUMBER -n REMINDER_NAME [-d REMINDER_DUEDATE-(dd/mm/yyyy) -l REMINDER_LIST_NAME]
-
Example:
edit reminder 1 -n Fix error -d 21/09/2019
-
-
Mark reminder:
mark reminder INDEX_NUMBER
-
Example:
mark reminder 1
-
-
Unmark reminder:
unmark reminder INDEX_NUMBER
-
Example:
unmark reminder 2
-
-
Delete reminder:
delete reminder INDEX_NUMBER
-
Example:
delete reminder 1
-
-
-
Miscellaneous
-
View current details of project:
view
-
Edit the name of the current project :
rename PROJECT_NAME
-
Example: rename AvengersAssemble
-
-
Report progress :
report
[coming in v2.0] -
Exit managing a project:
exit
-
Exiting the program from anywhere:
bye
-
Display help:
help
-
-
-