User Guide

- 1. Introduction
- 2. About this User Guide
- 3. Quick start
- 4. gitGud User Interface
-
5. Features
-
5.1 Friend commands
- 5.1.1 Adding a friend:
friend --add - 5.1.2 Editing a friend:
friend --edit - 5.1.3 Deleting a friend:
friend --delete - 5.1.4 Link a game to a friend:
friend --link - 5.1.5 Unlinking a game from a friend:
friend --unlink - 5.1.6 Assigning a skill value for a linked game :
friend --skill - 5.1.7 Scheduling a friend’s availability:
friend --schedule - 5.1.8 Recommending friends available to play with:
recommend - 5.1.9 Getting a single friend’s complete data:
friend --get - 5.1.10 Listing/Filtering multiple friends data:
friend --list
- 5.1.1 Adding a friend:
- 5.2 Game commands
- 5.3 Other commands
-
5.1 Friend commands
- 6. Managing data
- 7. FAQ
- 8. Glossary
- 9. Command summary
1. Introduction
1.1 What is gitGud?
gitGud is a desktop application for storing and managing your friends’ gaming information and schedules. It is dedicated to gamers like you and provides a gamer-themed experience with a focus on increasing your efficiency through its typing-based interface.
Previously, keeping track of all of yours friends’ gaming information and schedules can be difficult and time-consuming. However, with gitGud, there is no need to get tilted (frustrated) by this anymore as gitGud provides you with a convenient platform to manage essential gaming information of your fellow gamer friends.
For example, to get you excited, gitGud supports many time-saving features such as finding friends who are available to play with just a single command.
2. About this User Guide
2.1 How to use this guide?
If you’re new to gitGud, don’t worry! This guide will walk you through the basic setup necessary to get you ready to use gitGud for the first time quickly.
Additionally, this guide provides you with in-depth information on the functionality gitGud provides, which will turn you into a gitGud pro in the features section.
For experienced users of gitGud, this guide also provides a command summary for your reference, so you can quickly look up all of gitGud’s core commands at a glance.
2.2 Reading this document
This guide utilizes symbols and syntax to highlight specific points made throughout the guide and to enhance your overall reading experience. The section below on the meanings of symbols used provides more details for your reference.
2.2.1 General symbols used
This table describes the main symbols used in the user guide and their respective meanings.
| Symbol/Syntax | What it means |
|---|---|
| Indicates warnings (take caution when you see this symbol) | |
| Important information to take note about |
3. Quick start
- Ensure you have Java
11installed on your computer. -
Next, download the latest
gitgud.jarfrom here. -
Copy the file to the folder you want to use as the home folder for your gitGud application.
- Double-click the file to start the app. The GUI similar to the below should appear in a few seconds.
- For MacOS users, you may encounter an error stating that the app is from unidentified developer. No worries, just go to System Preferences -> Security & Privacy -> General and click on Open Anyway.
- Alternatively, just open Terminal and enter
java -jar gitGud.jarinto the command line to start the app.
Image: gitGud upon startup.
-
Choose and type in a command into the command input box and press
Enterto execute it. e.g. typinghelpand pressingEnterwill open the help window.
Here are some example commands you can try:-
friend --add Draco -n Marcus: Adds a friendMarcuswith gitGudFRIEND_IDofDracoto the application. -
friend --delete Draco: Deletes friend with gitGudFRIEND_IDofDraco. -
exit: Exits the app.
-
Congratulations! You have successfully set up gitGud. For more in-depth details of each command, refer to the features section below.
4. gitGud User Interface
Before we jump into the commands, let us take a moment to familiarise ourselves with the user interface.
gitGud provides a gamer-themed user interface as shown in the image below with 6 main sections.
| Number | Section Name | Description |
|---|---|---|
| 1 | Toolbar | Provides functionality related to exiting and accessing the help screen. |
| 2 | Command input box | This is where you can input commands to perform actions in gitGud. |
| 3 | Command feedback box | This box displays information related to the status of the commands you have executed. |
| 4 | Friends list | This section displays the friends list and may be filtered to display specific friends based on the previously executed commands. |
| 5 | Main card | This box displays in-depth information for friends or games after running get commands. |
| 6 | Games list | This section displays the games list and may be filtered to display specific games based on the previously executed commands. |
5. Features
Notes about the command format:
-
Words in
UPPER_CASEare the parameters to be supplied by the user.
e.g. ingame --get GAME_ID,GAME_IDis a parameter which can be used as such:game --get CSGO. -
Items in square brackets are optional. e.g.
friend --add FRIEND_ID [-n NAME]can be used asfriend --add ketanyeluri -n Yeluri Ketanorfriend --add ketanyeluri. -
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.
e.g. if you specify-n Marcus Tang -n Taufiq, only-n Taufiqwill be taken.
5.1 Friend commands
This section includes commands that help you manage information regarding the friends you play with, such as adding, editing, deleting or viewing of friends in your gitGud friend list.
5.1.1 Adding a friend: friend --add
Adds a new friend to gitGud friend’s list with an associated unique friend identifier.
What is the friend identifier?
The friend identifier (FRIEND_ID) is an ID you assign to a friend to refer to each unique friend for use within the
gitGud application,
it must also be unique and not exist in the friends list.
gitGud has imposed the command constraints listed below on the friend identifier to ensure it is easy for you to remember and type.
Format: friend --add FRIEND_ID [-n NAME]
Command constraints:
- The
FRIEND_IDused:- must be non-empty and cannot contain only whitespaces.
- must be a single word (no spaces) e.g.
Kevinand notKevin Lee. - must only contain alphanumeric characters e.g.
Kevinand notK@v!n. - can have at most 20 characters.
- The
NAMEused:- must be non-empty and cannot contain only whitespaces.
- can have at most 20 characters.
- supports all characters except for
-.
- The
FRIEND_IDmust be unique (case-insensitive) and should not already exist in the friends list.
Warning: FRIEND_ID cannot be changed after being set. Hence, make sure to use a FRIEND_ID
you are sure about.
Examples:
-
friend --add DracoAdds a brand-new friend into the friends list with the identifierDracoand which does not currently have an associated real-life name. -
friend --add tau -n TaufiqAdds a brand-new friend into the friends list with the identifiertauand has the real-life nameTaufiq.
5.1.2 Editing a friend: friend --edit
Updates the friend’s name to a new name for an existing friend with the given FRIEND_ID.
Format: friend --edit FRIEND_ID -n NEW_FRIEND_NAME
Command constraints:
- The
FRIEND_IDused must currently exist in the friends list.
Examples:
-
friend --edit Draco -n KevinSets the name of existing friend with theFRIEND_IDDracotoKevin.
5.1.3 Deleting a friend: friend --delete
Deletes a friend from gitGud’s friends list with the given FRIEND_ID.
Format: friend --delete FRIEND_ID
Command constraints:
- The
FRIEND_IDmust currently exist in the friends list.
Examples:
-
friend --delete DracoDeletes friend with gitGudFRIEND_IDofDracoand all their data from the friends list.
5.1.4 Link a game to a friend: friend --link
Links a game with the specified GAME_ID and the associated in-game username specified by IN_GAME_USERNAME to a
friend with the provided FRIEND_ID.
A link between a particular friend and game shows that the friend plays the game.
This association is required for subsequent commands, e.g. for the application to display all games that a friend plays
or to recommend a friend to play with based on a particular game.
Notes about the link command:
-
When a game is newly linked to a friend, the skill value is initially set to
0. -
If you link an already linked game to particular friend again, the previous link will be overridden with the new link with the new
IN_GAME_USERNAMEand the friend’s skill value set to0.
Format: friend --link FRIEND_ID -g GAME_ID -u IN_GAME_USERNAME
Command constraints:
- Both
FRIEND_IDandGAME_IDhave to already exist within the friends and games list respectively. - The
IN_GAME_USERNAMEused:- must be non-empty and cannot contain only whitespaces.
- can have at most 20 characters.
- supports all characters except for
-.
Examples:
-
friend --link Draco -g DOTA -u Draco995Links a single game,DOTAwith the in-game usernameDraco995, to the friend with the gitGudFRIEND_IDDraco.
5.1.5 Unlinking a game from a friend: friend --unlink
Removes the link between a friend specified by the FRIEND_ID and a game specified by the GAME_ID.
This may be used if for example, a friend no longer plays a previously linked game.
Format: friend --unlink FRIEND_ID -g GAME_ID
Command constraints:
-
FRIEND_IDhas to already be inside the friends list. - The friend has to be previously linked to the game with the provided
GAME_ID.
Examples:
-
friend --unlink Draco -g DOTARemoves the link between the friend withFRIEND_IDDracoand the game withGAME_IDDOTA.Dracois now no longer associated withDOTA.
5.1.6 Assigning a skill value for a linked game : friend --skill
Assigns the provided skill value specified by the NUMBER_VALUE to the friend with the given FRIEND_ID for the linked
game with the given GAME_ID.
This command allows you to record your personal gauge of a friend’s skill at a particular game.
Format: friend --skill FRIEND_ID -g GAME_ID -v NUMBER_VALUE
Command constraints:
- A friend with the given
FRIEND_IDprovided must exist in the friends list. - The friend has to be previously linked to the game with the given
GAME_ID. - The skill value assigned must be integers within the range 0 to 10 (inclusive). e.g. 0, 8 and 10 are valid skill values, whereas -1, 11, 1.2, and ‘one’ are invalid skill values.
Examples:
-
friend --skill Draco -g Valorant -v 7Sets the skill value for friendDracofor the linked gameValorantto 7.
5.1.7 Scheduling a friend’s availability: friend --schedule
Schedules an existing friend by updating their schedule to indicate the time periods they are free or busy.
- gitGud stores a weekly schedule for each friend, from Monday to Sunday, with each day having 24 blocks of hours that can be marked as free or busy.
- The hourly blocks of time allows users to get an estimate of when their friends are free, allowing them to easily find common timeslots to play.
Format: friend --schedule FRIEND_ID -p START_HOUR END_HOUR DAY -f IS_FREE
Notes about the schedule:
-
New friends start off with a schedule with all periods marked as busy.
-
gitGud displays the periods of time friends are free using the 24-hour notation. The end of a day, midnight (12am) is displayed as
2400to allow users to easily differentiate it from the start of the day, which is displayed as0000.
Command constraints:
-
FRIEND_IDmust belong to an existing friend in gitGud. -
START_HOURandEND_HOURmust be an integer between 0 and 24 inclusive, and represents the hour of the day.-
END_HOURmust be strictly afterSTART_HOUR. - For example,
START_HOUR= 2 andEND_HOUR= 20 represents the time period from the 2nd to the 20th hour of the day.
-
-
DAYmust be an integer between 1 and 7 inclusive, with each day representing a day of the week from Monday to Sunday. -
IS_FREEis used to mark the period as a free or busy period, and can only be the values1meaning free or0meaning busy.
Examples:
-
friend --schedule Draco -p 18 22 2 -f 1SchedulesDracoas free from 18th to 22nd hour, 1800 - 2200 on Tuesday. -
friend --schedule Draco -p 12 24 7 -f 0SchedulesDracoas busy from 12th to 24th hour, 1200 - 2400 (midnight) on Sunday.
5.1.8 Recommending friends available to play with: recommend
Lists all friends who both play the given game with GAME_ID and are available to play
with at the specified time each week based on their stored schedules.
Format: recommend -g GAME_ID -t HOUR DAY
Command constraints:
- The
HOURprovided must be an integer within 0 to 23 inclusive, with 0 representing the 24-hour time (start of the day)0000and 23 representing the 24-hour time2300. - The
DAYprovided must be an integer within 1 - 7 inclusive, with1representing Monday and7representing Sunday. - The
GAME_IDmust exist in the games list.
Examples:
-
recommend -g Valorant -t 10 6Recommends friends who play the game with theGAME_IDValorantand are available weekly at1000every Saturday based on the stored schedule.
5.1.9 Getting a single friend’s complete data: friend --get
Displays a particular friend’s complete data with gitGud’s unique friend identifier FRIEND_ID.
A friend’s complete data includes:
- The weekly schedule of the friend.
- List of games the friend plays.
- In-game username for each game and the skill value in that game.
Format: friend --get FRIEND_ID
Command constraints:
- The
FRIEND_IDmust currently exist in the friends list.
Examples:
-
friend --get DracoGets the complete data for friendDraco.
5.1.10 Listing/Filtering multiple friends data: friend --list
Lists all friends stored in gitGud whose friend id contains any of the given keywords.
Format: friend --list [KEYWORD]
- If
KEYWORDis left empty, all friends stored in gitGud will be listed. - The filter keyword is case-insensitive e.g.
Taubarwill matchtaubar. - Only the
FRIEND_IDof friends is filtered. - Partial matches will be displayed e.g.
tauwill matchtaubar.
Examples:
-
friend --listLists all friends stored in gitGud. -
friend --list tLists all friends stored in gitGud that havetin theirFRIEND_ID.
5.2 Game commands
This section includes commands that help you manage the games you and your friends play, such as adding, deleting or viewing of games in your gitGud game list.
5.2.1 Adding a game: game --add
Adds a game with the given unique GAME_ID into the gitGud game list.
Format: game --add GAME_ID
Command constraints:
- The
GAME_IDprovided:- must be non-empty and cannot contain only whitespaces.
- must be a single word (no spaces) e.g.
ApexLegendsand notApex Legends. - must only contain alphanumeric characters e.g.
CSGOand notCS:GO. - can have at most 20 characters.
- The
GAME_IDprovided must be unique (case-insensitive) should not already exist in the games list.
Notes on GAME_ID:
-
To ensure the
GAME_IDis easy to remember and use,GAME_IDis limited to a single word and to alphanumeric characters as it is used to refer to games stored in gitGud. -
To store games with multiple words in gitGud, you may choose to capitalize the first character of each word. e.g.
Apex Legendsmay be stored asApexLegends.
Examples:
-
game --add RocketLeagueAdds a brand-new game into the game list with the uniqueGAME_IDRocketLeague.
5.2.2 Deleting a game: game --delete
Deletes a game from the gitGud game list.
Notes on deleting games:
- When a game is deleted, all previous links between the game and friends will be removed.
Format: game --delete GAME_ID
Command constraints:
- The
GAME_IDmust exist in the games list to be deleted.
Examples:
-
game --delete ValorantDeletes the gameValorantfrom the game list if it exists.
5.2.3 Getting a single game’s complete data: game --get
Displays a particular game’s complete data with gitGud’s unique game identifier GAME_ID.
A game’s complete data includes:
- List of friends that play the game.
- In-game username for each friend and their skill value.
Format: game --get GAME_ID
Command constraints:
- The
GAME_IDmust currently exist in the database.
Examples:
-
game --get CSGOGets all the relevant information for the gameCSGO.
5.2.4 Listing/Filtering multiple games data: game --list
Lists all games stored in gitGud whose GAME_ID contains any of the given keywords.
Format: game --list [KEYWORD]
- If
KEYWORDis left empty, all games stored in gitGud will be listed. - The filter keyword is case-insensitive e.g.
valorantwill matchValorant. - Only the
GAME_IDof games is filtered. - Partial matches will be displayed e.g.
Valowill matchValorant.
Examples:
-
game --listLists all games stored in gitGud. -
game --list ValoLists all games stored in gitGud that haveValoin theirGAME_ID.
5.3 Other commands
This section contains miscellaneous commands that may help improve your experience with gitGud.
5.3.1 Viewing help: help
Shows a message providing a link to the User Guide page.
Format: help
5.3.2 Clearing the friends and games lists : clear
Clears all friends and games from gitGud.
Format: clear
Warning: This command deletes all friends and games from gitGud!
Only use this command if you are absolutely sure you would like to restart gitGud from a clean slate.
5.3.3 Exiting the program : exit
Terminates and exits gitGud.
Format: exit
6. Managing data
Your friends and games application data is stored in the files within the data folder relative to the where the gitGud.jar file
is running on your computer [JAR file location]/data/gamesList.json and [JAR file location]/data/friendsList.json.
6.1 Saving of application data
Application data is saved in the hard disk automatically after any command that changes the data. There is no need to save manually.
6.2 Editing data files externally
For advanced users, you are able to change the values stored in the data files directly. However, this is not recommended and may cause your files to be corrupted - hence, we will not be covering the in-depth details in our guide.
Warning: If the changes you have made cause the format of the data files to be invalid,
gitGud will start with empty data for the list(s) affected by the invalid file(s) at the next run and
may override the invalid files with subsequent saves.
This may cause loss of data and hence should be avoided unless you are absolutely sure of what you are doing!
7. FAQ
Q: How do I transfer my friends and games list data to another Computer running gitGud?
A: Copy over the data folder (containing friendsList.json and gamesList.json) generated by gitGud on your current computer into the folder containing the
gitGud.jar on the other computer.
Q: Which operating systems do gitGud support?
A: gitGud is developed and tested to support most popular Operating systems including Microsoft Windows 10, Mac OS and
on Linux. However, as there are many different distributions of Linux, we are not able to test and guarantee full support
for all distributions.
8. Glossary
| Terminology used | What it means |
|---|---|
| Tilted | A term widely used in the gaming community to express frustration. |
| Pro | A term widely used in the gaming community to refer to a someone who is considered highly skilled. |
| Friend Identifier | A unique identifier you assign to a friend to refer to that specific friend within the gitGud application. |
| Game Identifier | A unique identifier you assign to a game to refer to that specific game within the gitGud application. |
9. Command summary
| Action | Format, Examples |
|---|---|
| Add friend |
friend --add FRIEND_ID [-n NAME] e.g., friend --add Draco -n Marcus Tang
|
| Edit friend |
friend --edit FRIEND_ID -n NEW_FRIEND_NAME e.g., friend --edit Draco -n Kevin
|
| Delete friend |
friend --delete FRIEND_IDe.g., friend --delete Draco
|
| Link game and friend |
friend --link FRIEND_ID -g GAME_ID -u IN_GAME_USERNAMEe.g., friend --link Draco -g Valorant -u taufiq007
|
| Unlink game and friend |
friend --unlink FRIEND_ID -g GAME_ID e.g., friend --unlink Draco -g DOTA
|
| Add skill value to linked game |
friend --skill FRIEND_ID -g GAME_ID -v NUMBER_VALUE e.g., friend --skill Draco -g Valorant -v 7
|
| Schedule friend |
friend --schedule FRIEND_ID -p START_HOUR END_HOUR DAY -f IS_FREEe.g., friend --schedule Draco -p 18 22 2 -f 1
|
| Recommend friends |
recommend -g GAME_ID -t HOUR DAYe.g., recommend -g Valorant -t 10 6
|
| Get friend |
friend --get FRIEND_IDe.g., friend --get Draco
|
| List/filter friends |
friend --list [KEYWORD]e.g., friend --list, friend --list Tau
|
| Add game |
game --add GAME_ID e.g., game --add Valorant, game --add ApexLegends
|
| Delete game |
game --delete GAME_ID e.g., game --delete Valorant
|
| Get game |
game --get GAME_IDe.g., game --get Valorant
|
| List/filter games |
game --list [KEYWORD]e.g., game --list, game --list Valorant
|
| Viewing help | help |
| Clearing friends and games lists | clear |
| Exit program | exit |