User Guide
DevEnable is a desktop app for developers to manager their projects, optimized for use via a Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI). If you can type fast, DevEnable can get your project management tasks done faster than traditional GUI apps.
- Quick start
-
Features
- Viewing help :
help
- Clearing all entries :
clear
- Exiting the project book:
exit
- Field Details
- Add Command:
-a
- Edit Command:
-e
- Delete Command:
-d
- List Command:
-l
- Find Command:
-f
- Pin Command:
-p
- Sort Command:
-s
- Default View Command
-v
- Mark/Unmark Issue Command:
-m
- Saving the data
- Editing the data file
- Viewing help :
- FAQ
- Command summary
Quick start
-
Ensure you have Java
11
or above installed in your Computer. -
Download the latest
devenable.jar
. -
Copy the file to the folder you want to use as the home folder for DevEnable.
-
Double-click the file to start the app.
-
Type the command in the command box and press Enter to execute it. e.g. typing
help
and pressing Enter will open the help window.
Some example commands you can try:-
project -l
: Lists all projects. -
project -a
n/Orbital
: Adds a project namedOrbital
to the project list. -
project -d
3
: Deletes the project with project id3
. -
clear
: Deletes all data from all lists.
-
-
Refer to the Features below for details of each command.
Features
Notes about the command format:
-
Words in
UPPER_CASE
are the parameters to be supplied by the user.
e.g. inproject -a n/PROJECT_NAME
,PROJECT_NAME
is a parameter which can be used asproject -a n/PROJECT_NAME
. -
Items in square brackets are optional.
e.g.n/PROJECT_NAME [r/REPOSITORY]
can be used asproject -a n/ProjectY r/AgentX/ProjectY
orproject -a n/ProjectY
. -
Commands are in the following format:
COMMAND FLAG [ID/ARGUMENTS]
. Every command starts with a command keyword, followed by the command flag, then the arguments for said command. Typically, flags start with a dash-
, and arguments start with an identifierID/ARGUMENT
. -
Parameters can be in any order.
e.g. if the command specifiesclient -a p/PROJECT_ID n/CLIENT_NAME [m/CLIENT_MOBILE] [e/CLIENT_EMAIL]
,client -a p/PROJECT_ID n/CLIENT_NAME [e/CLIENT_EMAIL] [m/CLIENT_MOBILE]
are both acceptable. -
If a parameter is expected only once in the command, but you specified it multiple times, only the last occurrence of the parameter will be taken. (Does not apply for Find and Sort Commands)
e.g. if you specifym/12341234 m/56785678
, onlym/56785678
will be taken. -
Extraneous parameters for commands that do not take in parameters (such as
help
,exit
andclear
) will be ignored.
e.g. if the command specifieshelp 123
, it will be interpreted ashelp
. -
Trailing extraneous input for commands that take in parameters will be considered a part of the last valid argument identifier unless the argument identifier takes in an index parameter . e.g. if the command specifies
project -e n/New Project x/this is extra
,New Project x/this is extra
will be taken as the argument forn/
but if the command specifiesproject -e n/New Project p/2 x/this is extra
, then only2
will be taken as the argument forp/
.
Viewing help : help
Displays a list of commands and functionalities.
Format: help
Clearing all entries : clear
Clears all entries from the list.
Format: clear
Exiting the project book: exit
Exits the project book.
Format: exit
Field Details
PREFIX/ARGUMENT | Note |
---|---|
n/PROJECT_NAME or n/CLIENT_NAME or l/CLIENT_LABEL | must only contain alphanumeric characters (cannot be empty or start with a space) |
p/PROJECT_ID or c/CLIENT_ID or i/ISSUE_ID | must exist and be a positive integer (1, 2, 3 …) |
t/TITLE | cannot be empty or start with a space |
d/DEADLINE | must be in the format yyyy-mm-dd |
r/REPOSITORY | must be in the form USERNAME/REPO_NAME NOTE: Clicking the Repository Link of a project will copy it to the clipboard |
m/CLIENT_MOBILE | must only contain numbers and must be more than 3 digits long such that any number with a countrycode can be added without any prefix or connecting symbol |
e/CLIENT_EMAIL | must be in the format LOCAL_NAME@DOMAIN_NAME.com (local name must be longer than 3 characters) |
u/URGENCY | must be an integer from 0 to 3, 0 for NONE, 1 for LOW, 2 for MEDIUM and 3 for HIGH |
s/STATUS | must be either Incomplete or Completed
|
NOTE: Multiple issues can have the exact same fields (other than the issue id), as it is possible for a project to have multiple of the same issues.
Add Command: -a
Adds a project, client, or issue to the project book. A unique ID will be automatically generated.
Format:
- Project:
project -a n/PROJECT_NAME [r/REPOSITORY] [c/CLIENT_ID] [d/DEADLINE]
- Adds the project to the list of projects.
- Client:
client -a n/CLIENT_NAME p/PROJECT_ID [m/CLIENT_MOBILE] [e/CLIENT_EMAIL]
- Adds the client to the list of clients and to the project with the specified
PROJECT_ID
.
- Adds the client to the list of clients and to the project with the specified
- Issue:
issue -a p/PROJECT_ID t/TITLE [d/DEADLINE] [u/URGENCY]
- Adds the issue to the overall list of issues and to the list of issues of the project with the specified
PROJECT_ID
.
- Adds the issue to the overall list of issues and to the list of issues of the project with the specified
Examples:
-
project -a n/Coding101
Adds a project withPROJECT_NAME
Coding101 to the list of projects. -
client -a n/Bob p/2 m/12345678
Adds a client withCLIENT_NAME
Bob andCLIENT_MOBILE
12345678 to the list of clients and to the project withPROJECT_ID
2. -
issue -a t/Design GUI u/0 d/2022-09-12 p/3
Adds an issue withTITLE
Design GUI,URGENCY
NONE(0) andDEADLINE
2022-09-12 to the overall list of issues and to the list of issues of the project withPROJECT_ID
3.
Edit Command: -e
Edits the specified existing project, client or issue.
Format:
- Project:
project -e p/PROJECT_ID [n/PROJECT_NAME] [r/REPOSITORY] [c/CLIENT_ID] [d/DEADLINE]
- Edits the project with the specified
PROJECT_ID
. The ID refers to the unique ID generated upon adding a project.
- Edits the project with the specified
- Client:
client -e c/CLIENT_ID [n/CLIENT_NAME] [m/CLIENT_MOBILE] [e/CLIENT_EMAIL]
- Edits the client with the specified
CLIENT_ID
. The ID refers to the unique ID generated upon adding a client.
- Edits the client with the specified
- Issue:
issue -e i/ISSUE_ID [t/TITLE] [d/DEADLINE] [u/URGENCY]
- Edits the issue with the specified
ISSUE_ID
The ID refers to the unique ID generated upon adding an issue.
- Edits the issue with the specified
Note:
- At least one of the optional fields must be provided.
Examples:
-
client -e c/1 n/Amy
Edits the client withCLIENT_ID
1 to have the newCLIENT_NAME
Amy. -
issue -e i/2 d/2021-12-20 u/1
Edits the issue withISSUE_ID
2 to have the newDEADLINE
2021-12-20 andURGENCY
LOW(1). -
project -e p/4 n/ThirdProject d/2022-02-02 r/Jackson/ThirdProject c/2
Edits the project withPROJECT_ID
4 to have the newPROJECT_NAME
ThirdProject, newDEADLINE
2022-02-02, newREPOSITORY
Jackson/ThirdProject and new client withCLIENT_ID
2.
Delete Command: -d
Removes the specified existing project, client or issue.
Format:
- Project:
project -d PROJECT_ID
- Deletes the project with the specified
PROJECT_ID
- Deletes the project with the specified
- Client:
client -d CLIENT_ID
- Deletes the client with the specified
CLIENT_ID
- Deletes the client with the specified
- Issue:
issue -d ISSUE_ID
- Deletes the issue with the specified `ISSUE_ID
Note:
- The ID must exist and be a positive integer 1, 2, 3, …
Examples:
-
project -d 1
Deletes project withPROJECT_ID
1. -
client -d 6
Deletes client withCLIENT_ID
6. -
issue -d 3
Deletes issue withISSUE_ID
3.
List Command: -l
Shows a list of all projects, clients or issues.
Format:
- Project:
project -l
- Client:
client -l
- Issue:
issue -l
Find Command: -f
Finds and lists all the projects, clients or issues matching the search criteria.
Format:
- Project:
project -f [n/PROJECT_NAME] [p/PROJECT_ID] [r/REPOSITORY] [l/CLIENT_LABEL] [c/CLIENT_ID]
- Finds all the projects with the specified
PROJECT_NAME
,PROJECT_ID
,REPOSITORY
,CLIENT_LABEL
andCLIENT_ID
. TheCLIENT_LABEL
is the name of the project’s client, appearing as a label on the project card. - Finds all the projects such that the fields under the project contain at least one word from the keywords provided after each search criteria if the search criteria is project or client name.
- Finds all the projects with the specified
- Client:
client -f [n/CLIENT_NAME] [c/CLIENT_ID] [e/CLIENT_EMAIL] [m/CLIENT_MOBILE]
- Finds all the clients with the specified
CLIENT_NAME
,CLIENT_ID
,CLIENT_EMAIL
, andCLIENT_MOBILE
- Finds all the clients such that the fields under the client contain at least one word from the keywords provided after each search criteria if the search criteria is client name.
- Finds all the clients with the specified
- Issue:
issue -f [t/TITLE] [s/STATUS] [u/URGENCY] [n/PROJECT_NAME] [p/PROJECT_ID] [i/ISSUE_ID]
- Finds all the issues with the specified
TITLE
,STATUS
,URGENCY
,PROJECT_NAME
,PROJECT_ID
andISSUE_ID
. - Finds all the issues such that the fields under the issue contain at least one word from the keywords provided after each search criteria if the search criteria is title or project name.
- Finds all the issues with the specified
Note:
- At least one of the optional fields must be provided.
- The keywords provided must be valid arguments for their respective search criteria.
- Repeated prefixes (e.g. t/Do t/Find) in a command will return results containing either of the two arguments
Examples:
-
project -f n/DevEnable
Finds and lists all the projects whosePROJECT_NAME
contains the word DevEnable. -
client -f n/Amy Bob
Finds and lists all the clients with theCLIENT_NAME
contains the word Amy or Bob. -
issue -f p/3 p/5
Finds and lists the issue tied to project withPROJECT_ID
3 or 5. -
client -f n/Amy e/amy@gmail.com m/12345678
Finds and lists all the clients whoseCLIENT_NAME
contains the word Amy and withCLIENT_EMAIL
amy@gmail.com and withCLIENT_MOBILE
12345678. -
project -f n/AB4 AB3 r/tp/F13
Finds and lists all the projects whosePROJECT_NAME
contains the word AB4 or AB3 and with theREPOSITORY
tp/F13. -
issue -f t/enhancement p/DevEnable AB3 u/HIGH u/LOW
Finds and lists all the issues withTITLE
enhancement andURGENCY
HIGH or LOW and tied to project withPROJECT_NAME
containing DevEnable or AB3. -
issue -f s/Incomplete
Finds and lists all the issues with theSTATUS
Incomplete.
Pin Command: -p
Pins a project, client, or issue to the top of the project list, client list or issue list.
Format:
- Project:
project -p PROJECT_ID
- Pins the project with the specified
PROJECT_ID
- Pins the project with the specified
- Client:
client -p CLIENT_ID
- Pins the client with the specified
CLIENT_ID
- Pins the client with the specified
- Issue:
issue -p ISSUE_ID
- Pins the issue with the specified
ISSUE_ID
- Pins the issue with the specified
Note:
- Executing the command on an already pinned project will unpin the project.
- The ID must be a positive integer 1, 2, 3, …
Examples:
-
project -p 1
Pins the project withPROJECT_ID
1. -
client -p 4
Pins the client withCLIENT_ID
4. -
issue -p 2
Pins the issue withISSUE_ID
2.
Sort Command: -s
Sorts all projects, clients or issues based on a specified key.
IMPORTANT: Unlike other commands, input 0/1 as the argument for each prefix (e.g.p/0)
Format:
- Project:
project -s [p/PROJECT_ID] [d/DEADLINE] [i/ISSUE_COUNT] [n/PROJECT_NAME]
- For
PROJECT_ID
, 0 for ascending and 1 for descending. - For
DEADLINE
, 0 for chronological and 1 for reverse chronological. - For
ISSUE_COUNT
, 0 for incomplete issues and 1 for completed issues. - For
PROJECT_NAME
, 0 for alphabetical and 1 for reverse alphabetical.
- For
- Client:
client -s [c/CLIENT_ID] [n/CLIENT_NAME]
- For
CLIENT_ID
, 0 for ascending and 1 for descending. - For
CLIENT_NAME
, 0 for alphabetical and 1 for reverse alphabetical
- For
- Issue:
issue -s [i/ISSUE_ID] [d/DEADLINE] [u/URGENCY]
- For
ISSUE_ID
, 0 for ascending and 1 for descending.- For
DEADLINE
, 0 for chronological and 1 for reverse chronological. - For
URGENCY
, 0 for ascending and 1 for descending.
- For
Note:
- Exactly one optional value (the prefix/the sorting key) is to be provided (Command will not accept multiple optional values or repeated prefixes).
Examples:
-
project -s p/1
Sorts list of projects based onPROJECT_ID
from highest to lowest. -
issue -s d/0
Sorts list of issues based onDEADLINE
from earliest to latest. -
client -s n/1
Sort list of clients based onCLIENT_NAME
in reverse alphabetical order. -
project -s i/0
Sorts list of projects based onISSUE_COUNT
from the highest incomplete issue count to the lowest. -
issue -s u/1
Sorts list of issues based onURGENCY
from highest to lowest.
Default View Command -v
Sets list of projects, clients or issues to be the default view when application is re-opened.
Format:
- Project:
project -v
- Sets list of projects as default view
- Client:
client -v
- Sets list of clients as default view
- Issue:
issue -v
- Sets list of issues as default view
Mark/Unmark Issue Command: -m
Marks specified existing issue as completed or incomplete
Format:
- Mark:
issue -m ISSUE_ID
- Marks the issue with the specified
ISSUE_ID
, changing itsSTATUS
to completed.
- Marks the issue with the specified
- Unmark:
issue -u ISSUE_ID
- Unmarks the issue with the specified
ISSUE_ID
, changing itsSTATUS
to incomplete.
- Unmarks the issue with the specified
Note:
- If issue is already completed, it remains completed when marked (the same goes for incomplete issue that is unmarked).
- The ID must exist and be a positive integer 1, 2, 3, …
Examples:
-
issue -m 1
Changes theSTATUS
of the issue withISSUE_ID
1 to completed. -
issue -m 4
Changes theSTATUS
of the issue withISSUE_ID
4 to incomplete.
Saving the data
DevEnable data is saved in the hard disk automatically after any command that changes the data. There is no need to save manually.
Editing the data file
DevEnable data is saved as a JSON file [JAR file location]/data/addressbook.json
. Advanced users are welcome to update data directly by editing that data file.
FAQ
Q: How do I transfer my data to another Computer?
A: Install the app in the other computer and overwrite the data file it creates with the file that contains the data of your previous DevEnable home folder.
Command summary
Action | Format |
---|---|
Add Project | project -a n/PROJECT_NAME [r/REPOSITORY] [c/CLIENT_ID] [d/DEADLINE] |
Edit Project | project -e p/PROJECT_ID [n/PROJECT_NAME] [r/REPOSITORY] [c/CLIENT_ID] [d/DEADLINE] |
Delete Project | project -d PROJECT_ID |
List Projects | project -l |
Find Projects | project -f [n/PROJECT_NAME] [r/REPOSITORY] [p/PROJECT_ID] [c/CLIENT_ID] [l/CLIENT_LABEL] |
Pin Projects | project -p PROJECT_ID |
Sort Projects | project -s [p/PROJECT_ID] [d/DEADLINE] [i/ISSUE_COUNT] [n/PROJECT_NAME] |
Set Default View (Project) | project -v |
Add Client | client -a n/CLIENT_NAME p/PROJECT_ID [m/CLIENT_MOBILE] [e/CLIENT_EMAIL] |
Edit Client | client -e c/CLIENT_ID [n/CLIENT_NAME] [m/CLIENT_MOBILE] [e/CLIENT_EMAIL] |
Delete Client | client -d CLIENT_ID |
List Clients | client -l |
Find Clients | client -f [n/CLIENT_NAME] [m/CLIENT_MOBILE] [e/CLIENT_EMAIL] [c/CLIENT_ID] |
Pin Clients | client -p CLIENT_ID |
Sort Clients | client -s [c/CLIENT_ID] [n/CLIENT_NAME] |
Set Default View (Client) | client -v |
Add Issue | issue -a p/PROJECT_ID t/TITLE [d/DEADLINE] [u/URGENCY] |
Edit Issue | issue -e i/ISSUE_ID [t/TITLE] [d/DEADLINE] [u/URGENCY] |
Delete Issue | issue -d ISSUE_ID |
List Issues | issue -l |
Find Issues | issue -f [t/TITLE] [n/PROJECT_NAME] [p/PROJECT_ID] [u/URGENCY] [s/STATUS] [i/ISSUE_ID] |
Pin Issues | issue -p ISSUE_ID |
Sort Issues | issue -s [i/ISSUE_ID] [d/DEADLINE] [u/URGENCY] |
Mark Issue | issue -m ISSUE_ID |
Unmark Issue | issue -u ISSUE_ID |
Set Default View (Issue) | issue -v |
Clear | clear |
Help | help |
Exit | exit |