Skip to content

Latest commit

 

History

History
644 lines (483 loc) · 23.5 KB

UserGuide.adoc

File metadata and controls

644 lines (483 loc) · 23.5 KB

ArchDuke Project Manager - User Guide

1. Introduction

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

UI
Figure 1. UI of ArchDuke

2. Quick Start

  1. Ensure Java 11 is installed in your computer. To check the version of Java installed in your work environment, type java -version into your preferred terminal (such as Command Prompt, Git Bash, or MacOS terminal)

  2. Download the latest .jar file from here: Releases

  3. Copy the .jar file to your desired folder.

  4. Run the java file using java -jar ArchDuke.jar. The UI shown above will appear within a few seconds.

  5. Type your commands in your terminal and press Enter to execute it.

    1. 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.

  6. Refer to the Features section for detailed documentation and usage of each command

  7. Refer to Command Summary section for a quick summary of all available commands.

3. Features

3.1. Command Format

  • 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 as create 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

3.1.1. Basic Flags

  • -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

3.1.2. Other notes

  • All names (eg. for members, tasks, etc) should not be hyphenated or they will not be recorded properly.

  • Dates are entered in the following format: dd/mm/yyyy (eg. 10/11/2019)

3.2. Project Commands

3.2.1. Create a project: create

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

3.2.2. View all projects: list

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

3.2.3. Manage a project : manage

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.

3.2.4. Delete a project : delete project

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

3.3. Member Commands

3.3.1. Add members to specific project: add member

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 jerryzhang@gmail.com -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.

3.3.2. View members : view members

Displays all members’ details like their name, phone number, email and their role in the project.

  • Format: view members

viewmembers

3.3.3. Edit members : edit member

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 zhangjerry@u.nus.edu
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.

3.3.4. Delete members : delete member

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.

3.3.5. Give roles to specific members in a project : role

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

3.4. Task Commands

3.4.1. Add a task to project : add task

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

3.4.2. Edit a task : edit task

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

3.4.3. Delete a task : delete task

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.

3.4.4. View tasks : view tasks

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

-name

Sort based on task name, lexicographically.

-date

Sort based on the deadline/due date of the task: from earliest to latest. Tasks without a deadline will be classified as the latest.

-priority

Sort based on task priority from highest to lowest priority (ascending).

-credits

Sort based on task credit from highest to lowest credit (descending).

-who {name}

Sort based on the name of member assigned to all tasks in alphabetical order.

-state {state}

Sort based on task State: List from OPEN, TODO, DOING, DONE in a Kanban board style

  • Examples

    • view tasks -name : shows all the tasks sorted lexicographically

viewtasks name
  • view tasks -date : show all the dates sorted by the due date

viewtasks date
  • view tasks -priority : shows all the dates sorted by priority

viewtasks priority
  • view tasks -credits : shows all the tasks sorted by credits

viewtasks credits
  • view tasks -who Dilen : shows all the tasks assigned to “Dilen”

viewtasks who
  • view tasks -state done : shows all the tasks with the state “DONE”

viewtasks state

3.4.5. View task requirements : view task requirements

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

3.4.6. Edit task requirements : edit task requirements

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.

3.4.7. Show an agenda of tasks that are due within a time period : agenda

Displays the current month with any dates marked with an X if there is a task that is due then, much like a calendar. * Format: agenda

agenda

3.5. Assignment Commands

3.5.1. Assign/Remove tasks to/from members: assign task

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

assigntask
Figure 2. Example of assign task command

3.5.2. View task assignments : view assignments

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.

3.5.3. View total credits completed by each member : view credits

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.
viewcredits

3.6. Task Commands

MODIFIER

Display

-m INDEX_NUMBERS

Shows the list of tasks assigned to the specified members.

-t INDEX_NUMBERS

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.

viewassignmentstall
Figure 3. view assignments -t all
viewassignmentsmall
Figure 4. view assignments -m all

3.6.1. View total credits completed by each member : view credits

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[]

3.7. Reminder Commands

3.7.1. Create reminder: add reminder

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

3.7.2. View reminder: view reminders

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]

view reminders
Figure 5. If command was view reminders
view reminders by list
Figure 6. If command was view reminders by list

3.7.3. Delete reminder: delete reminder

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

3.7.4. Edit reminder: edit reminder

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

3.7.5. Mark status of the reminder: [un]mark reminder

Mark the status of the reminder in the project.

  • Format: mark reminder INDEX_NUMBER

  • Example:

mark reminder 1
unmark reminder 2

3.8. Miscellaneous Commands

3.8.1. View current details of project: view

View the current details about the project that is being managed.

  • Format: view

view

3.8.2. Edit the name of the current project : rename

Allows user to rename the project currently being managed.

  • Format: rename PROJECT_NAME

  • Example:

rename Avengers

3.8.3. Report progress : report [coming in v2.0]

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

3.8.4. Exit managing a project: exit

Exits the current project being managed, allowing the user to manage other projects.

  • Format: exit

3.8.5. Exiting the program from anywhere: bye

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

3.8.6. Shows list of available commands: help

Displays a list of commands that are available for use at the current point of application

  • Format: help

4. FAQ

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.

5. Command Summary

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

      1. Member Commands

        1. Add members: add member -n NAME [-i PHONE_NUMBER] [-e EMAIL] [-r ROLE]

        2. View members: view members

        3. Edit members: edit member INDEX [-n NAME] [-i PHONE_NUMBER] [-e EMAIL]

        4. Delete members: delete member INDEX1 [INDEX2]

          • Example: delete member 3 4

        5. Give roles for members: role INDEX -n ROLE_NAME

          • Example: role 2 -n Badguy

      2. Task Commands

        1. 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

        2. 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

        3. Delete tasks: delete task INDEX

          • Example: delete task 3

        4. 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

        5. View task requirements: view task requirements TASK_INDEX

          • Example: view task requirements 1

        6. 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

        7. Agenda of Tasks: agenda

      3. Assignment Commands

        1. 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

        2. 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)

        3. View total credits completed by each member: view credits

      4. Requirement Commands

        1. 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

        2. View reminders: view reminder [by list]

          • Example: view reminders

          • Example: view reminders by list

        3. 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

        4. Mark reminder: mark reminder INDEX_NUMBER

          • Example: mark reminder 1

        5. Unmark reminder: unmark reminder INDEX_NUMBER

          • Example: unmark reminder 2

        6. Delete reminder: delete reminder INDEX_NUMBER

          • Example: delete reminder 1

      5. Miscellaneous

        1. View current details of project: view

        2. Edit the name of the current project : rename PROJECT_NAME

          • Example: rename AvengersAssemble

        3. Report progress : report [coming in v2.0]

        4. Exit managing a project: exit

        5. Exiting the program from anywhere: bye

        6. Display help: help