By: CS2103-T16-3
Since: Sep 2019
Licence: MIT
1. Introduction
Weme is a meme manager app for those who prefer to use a desktop app for managing memes. More importantly, Weme is optimized for those who prefer to work with a Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI). If you can type fast, Weme can let you manage memes faster than traditional GUI apps. Interested? Jump to the Section 2, Section 2, “Quick Start” to get started. Enjoy!
2. Quick Start
-
Ensure you have Java
11
or above installed in your Computer. -
Download the latest
weme.jar
here. -
Copy the file to the folder you want to use as the home folder for your Weme.
-
Double-click the file to start the app. The GUI should appear in a few seconds.
-
Type the command in the command box and press Enter to execute it.
e.g. typinghelp
and pressing Enter will open the help window. -
Some example commands you can try:
-
tab memes
: switches to the memes tab -
In the memes tab:
-
list
: lists all memes -
add
p//Users/Me/Downloads/meme.jpg d/Top meme
: adds a meme located at/Users/Me/Downloads/meme.jpg
with the descriptionTop meme
-
delete
3
: deletes the 3rd meme shown in the memes tab -
exit
: exits the app
-
-
-
Refer to Section 3, “Features” for details of each command.
3. Features
Command Format
-
Words in
UPPER_CASE
are the parameters to be supplied by the user e.g. inadd p/PATH
,PATH
is a parameter which can be used asadd p//Users/Me/Downloads/meme.jpg
. -
Items in square brackets are optional e.g
p/PATH [t/TAG]
can be used asp//Users/Me/Downloads/meme.jpg t/cs2103
or asp//Users/Me/Downloads/meme.jpg
. -
Items with
…
after them can be used multiple times including zero times e.g.[t/TAG]…
can be used ast/cs2103
,t/soc t/funny
etc. -
Parameters can be in any order e.g. if the command specifies
p/PATH d/DESCRIPTION
,d/DESCRIPTION p/PATH
is also acceptable. -
Commands that do not require parameters will ignore additional parameters provided. e.g.
list 1
is the same aslist
. -
Whenever
INDEX
is encountered, it refers to the index in the currently displayed list and must be a positive integer.
3.1. General Commands
3.1.1. Viewing help : help
Format: help
3.1.2. Undoing previous commands : undo
Undoes commands and tells you the command you just undid.
Format: undo
Example: undo
3.1.3. Redoing previously undone commands: redo
Redoes previously undone commands and tells you the command you just redid.
Format: redo
Example: redo
3.1.4. Switching tabs : tab
Switches between tabs in the application.
Format: tab TAB_NAME
TAB_NAME
options:
-
memes
-
templates
-
create
-
statistics
-
export
-
import
-
preferences
Illustration after switching to templates
tab:
Command: tab templates
3.1.5. Exiting the program : exit
Exits Weme.
Format: exit
3.2. Memes Tab
3.2.1. Adding a meme: add
Adds a new meme to Weme. Weme will copy the given image into its data storage folder.
Format: add p/PATH [d/DESCRIPTION] [t/TAG]…
A meme can have any number of tags (including 0). Tags can only contain letters and numbers and cannot exceed a length of 35 characters. |
Example:
-
add p//Users/Me/Downloads/dgirl_oof.jpg t/Funny
Adds a meme with the image from/Users/Me/Downloads/dgirl_oof.jpg
and tagFunny
Illustration of adding a meme with description Cat and child
and tags baby
and cuteCat
:
Command: add p/pathToMeme d/Cat and child t/baby t/cuteCat
Before command:
After command:
3.2.2. Listing all memes: list
Lists all memes in the memes tab.
Format: list
3.2.3. Editing a meme: edit
Edits the details of a meme at the specified index. Only description and tags are editable.
Format: edit INDEX [d/DESCRIPTION] [t/TAG]…
Examples:
-
edit 1 d/Funny SoC Meme t/funny t/SoC
Edits the description of the 1st meme to beFunny SoC Meme
and tags to befunny
andSoC
. -
edit 2 d/Random Meme t/
Edits the description of the 2nd meme to beRandom Meme
and clears all existing tags.
Illustration of editing the description of the meme at index 1 in the displayed list:
Command: edit 1 d/doge doge doge
Before command:
After command:
3.2.4. Finding a meme: find
Finds all memes whose tags contain any of the specified keywords.
Format: find KEYWORD [MORE_KEYWORDS]
Examples:
-
find pikachu
Returns memes whose tags containpikachu
Illustration of finding memes with tag cute
:
Command: find cute
Before command:
After command:
3.2.5. Deleting a meme: delete
Deletes the meme at the specified index.
Format: delete INDEX
Examples:
-
list
delete 2
Deletes the 2nd meme in the results of thelist
command. -
find pikachu
delete 1
Deletes the 1st meme in the results of thefind
command.
3.2.6. Clearing all memes: clear
Clears all memes.
Format: clear
3.2.7. Staging a meme for export: stage
Stages the meme at the specified index into the export staging area.
Format: stage INDEX
3.2.8. Liking a meme: like
Likes a meme at the specified index.
Format: like INDEX
Before like
command:
After like
command:
You could use arrow key UP to quickly like a meme at the given index. To do this, key in the full command like INDEX then press arrow key UP.You can also use arrow key LEFT and RIGHT to increase / decrease the meme index. |
Before pressing UP:
After pressing UP for 1 second:
3.2.9. Disliking a meme: dislike
Dislike a meme at the specified index.
Format: dislike INDEX
Same as like, dislike also allows arrow key operations. |
3.2.10. Listing archived memes: archives
Lists all memes that are archived in the memes tab.
Format: archives
3.2.11. Archiving a meme: archive
Archives the meme at the specified index. Hides the meme from the default view.
Format: archive INDEX
3.2.12. Unarchiving a meme: unarchive
Unarchives the meme at the specified index. Shows the meme in the default view.
Format: unarchive INDEX
3.2.13. Viewing a meme: view
Views the meme at the specified index.
Format: view INDEX
3.3. Templates Tab
Templates are meme prototypes. You can add templates to Weme and use them to create new memes. The templates tab handles template management and meme creation is handled in the create tab.
3.3.1. Adding a template: add
Adds a new template to Weme.
Format: add n/NAME p/PATH
Examples:
-
add n/Drake p//Users/Me/Downloads/Drake.jpg
Adds a template with image/Users/Me/Downloads/Drake.jpg
and name itDrake
3.3.2. Listing all templates: list
Lists all templates.
Format: list
3.3.3. Editing a template: edit
Edits a template at the specified index. Only the name is editable.
Format: edit INDEX n/NAME
Examples:
-
edit 1 n/Surprised Pikachu
Edits the name of the 1st template to beSurprised Pikachu
.
3.3.4. Locating templates by name: find
Finds templates whose names contain any of the given keywords.
Format: find KEYWORD [MORE_KEYWORDS]
Examples:
-
find Thanos
Returns all templates containingThanos
in their names -
find Stonks Doge Pikachu
Returns any templates whose names containstonks
,doge
, orpikachu
3.3.5. Deleting a template: delete
Deletes the template at the specified index.
Format: delete INDEX
3.3.6. Clearing all templates: clear
Clears all templates.
Format: clear
3.3.7. Creating memes from templates: use
Uses the template at the specified index to start a meme creation session.
Weme will enter the create tab and allow you to add text to the template.
For details, please refer to the next section Section 3.4, “Create Tab”.
Format: use INDEX
3.3.8. Listing all archived templates: archives
Lists all templates that are archived in the templates tab.
Format: archives
3.3.9. Archiving a template: archive
Archives the template at the specified index. Hides the template from the default view.+
Format: archive INDEX
3.3.10. Unarchiving a template: unarchive
Unarchives the template at the specified index. Shows the template in the default view.+
Format: unarchive INDEX
3.4. Create Tab
The create tab allows you to create a new meme from a template.
To start a meme creation session, select a template from the templates tab and execute the use
command.
3.4.1. Adding text: add
Adds a piece of text to the template.
Format: add TEXT x/X_COORDINATE y/Y_COORDINATE [c/COLOR] [s/SIZE] [S/STYLE]…
The x and y coordinates given in the command specify the position for the center of the text.
This means if you want to add text to the center of the image, the command will always be add TEXT x/0.5 y/0.5 no matter how long your text is.
|
Examples:
-
add CS students be like x/0.5 y/0.3
Adds textCS students be like
to the template, placing its center 50% right of the left border and 30% down from the top border. -
add sToNKs x/0.5 y/0.75 c/red s/5 S/bold
Adds red and bold textsToNKs
with size 5 to the template, placing its center 50% right of the left border and 75% down from the top border.
3.4.2. Editing text: edit
Whenever you add text, the list at the right hand side will be updated.
The edit
command allows you to choose and edit a piece of text from that list.
Format: edit INDEX [t/TEXT] [x/X_COORDINATE] [y/Y_COORDINATE] [c/COLOR] [s/SIZE] [S/STYLE]…
Examples:
-
edit 1 t/CODE
Changes the text at index 1 toCODE
. -
edit 2 x/0.5
Changes the x-coordinate of the text at index 2 to 0.5. -
edit 3 c/#FC1423 s/5 S/bold
Edits the text at index 3, changing its color to #FC1423, size to 5 and style to bold.
3.4.3. Moving text: move
Moves the specified text.
Format: move INDEX [x/X_CHANGE] [y/Y_CHANGE]
Examples:
-
move 1 x/-0.1
Moves the text at index 1 to the left by 10% of the image width. -
move 2 y/0.3
Moves the text at index 2 down by 30% of the image height. -
move 3 x/0.2 y/-0.3
Moves the text at index 3 to the right by 20% of the image width and up by 30% of the image height.
You can type move INDEX and use arrow keys to move the specified text.Hold Shift while pressing arrow keys to make the text move faster. Hold Alt (Option on MacOS) while pressing arrow keys to make the text move slower. |
3.4.4. Deleting text: delete
Deletes the text at the specified index.
Format: delete INDEX
3.4.5. Aborting meme creation: abort
Aborts this meme creation session and go back to the templates tab.
Format: abort
3.4.6. Completing the creation session: create
Creates a new meme with all the added text applied. The new meme will be saved into Weme’s meme collection, with the specified description and tags.
Format: create [d/DESCRIPTION] [t/TAG]…
Examples:
-
create d/sleep or code t/soc t/cs2103
Creates a new meme from the current meme creation session, giving it a descriptionsleep or code
and tagssoc
andcs2103
.
3.5. Export Tab
Weme supports exporting memes into the local filesystem. To export memes, stage them from the memes tab. Staged memes will appear in the export staging area in the export tab. You can then unstage or export them as you wish in the export tab.
3.5.1. Unstaging a meme: unstage
Unstages the meme at the specified index from the export staging area.
Format: unstage INDEX
3.5.2. Exporting memes: export
Exports the memes in the export staging area into a directory. The directory path can be either specified or not.
-
If the path is not specified, then the memes will be exported to an export folder located at where the jar file is.
-
Format:
export
-
-
If path is specified, the memes will be exported to that directory.
-
Format:
export p//Users/bill/favourites/
-
-
The user can use a special [d] keyword to export to a default path configured by preferences.json.
-
Format:
export p/[d]
-
3.5.3. Clearing the staging area: clear
Clears all memes in the export tab.
Format: clear
3.6. Import Tab
Weme supports batch importing memes from a local directory. To import a directory of images, first load the directory into the the import tab. You can then edit or delete memes in the staging area before actually importing them into Weme.
3.6.1. Loading memes into the import tab: load
Loads memes from a specified directory into the import tab.
Format: load p/PATH
3.6.2. Editing a meme in the import tab: edit
Edits a meme from the import tab. This allows the user
to make changes before actually importing the meme.
Format: edit INDEX [d/DESCRIPTION] [t/TAG]…
3.6.3. Deleting a meme: delete
Deletes an unwanted meme from the import tab.
Format: delete INDEX
3.6.4. Importing memes: import
Imports all the memes from the import tab into Weme.
Format: import
3.6.5. Clearing loaded memes: clear
Clears all the memes in the import tab.
Format: clear
3.7. Statistics Tab
View various statistics about the memes such as tags and likes count by tags.
As the statistics data is updated real time, an undo/redo command affecting the memes and their data will re-render
the statistics charts. E.g. after executing like 1 in Memes panel for meme with tag cute and undo it in statistics
panel, the charts will be re-rendered, with like count for tag cute incremented. Same goes to edit command that
edits the tags of a meme.
|
3.8. Command Suggestions
Weme supports command suggestions and auto-completion using tab for every command available.
Examples:
-
When user types in
a
in the meme tab, the following suggestions will appear:
add: adds a meme to Weme.
archive: archive a meme by index.
archives: list all archived memes.
After pressing Tab, a
in the command box will be replaced by add
.
-
When user types in
add p/pathToMeme t/c
in the memes tab, the following suggestions will appear:
CS
cute
csgg
After pressing Tab, c
in the command box will be replaced by CS
.
-
When user types in
find doge joker funny cuuuuutie
in the memes tab, the following suggestions will appear:
cute
CUTECATS
favorite
After pressing Tab, cuuuuutie
in the command box will be replaced by cute
.
3.9. Screen Time [Coming in v2.0]
In the coming v2.0 version, the user can view their screen time on the Application, just like some mobile platform
such as iOS or Android. It allows user to keep track of the amount of time spent on the App so that he/she could
manage time properly. It will be under statistics tab, accessed via command tab statistics
, and is updated by weeks.
4. FAQ
Q: How do I transfer my data to another Computer?
A: Download the jar in the other computer and copy the entire data folder over to the same directory. Run Weme and update the preferences.json if necessary.
5. Command Summary
-
Universal Commands :
-
Help :
help
-
Undo :
undo
-
Redo :
redo
-
Switch tabs :
-
Memes Tab :
tab memes
-
Templates Tab :
tab templates
-
Create Tab :
tab create
-
Statistics Tab :
tab statistics
-
Export Tab :
tab export
-
Import Tab :
tab import
-
Preferences Tab :
tab preferences
-
-
Exit :
exit
-
-
Commands for the Memes tab :
-
Add Meme :
add p/PATH [d/DESCRIPTION] [t/TAG]…
e.g.add p//Users/Me/Downloads/dgirl_oof.jpg d/Disaster Girl t/Funny
-
Clear Memes :
clear
-
Delete Meme :
delete INDEX
-
Edit Meme :
edit INDEX [d/DESCRIPTION] [t/TAG]…
-
Stage Meme :
stage INDEX
-
Like Meme :
like INDEX
-
Dislike Meme :
dislike INDEX
-
Find Meme :
find KEYWORD [MORE_KEYWORDS]
-
List Memes :
list
-
List Archived Memes :
archives
-
Archive Meme :
archive INDEX
-
Unarchive Meme :
unarchive INDEX
-
View Meme :
view INDEX
-
-
Commands for the Templates Tab :
-
Add Template :
add n/NAME p/PATH
-
Edit Template :
edit INDEX n/NAME
-
Delete Template :
delete INDEX
-
Clear Templates :
clear
-
Find Template :
find KEYWORD [MORE_KEYWORDS]
-
Archive Template :
archive INDEX
-
Unarchive Template :
unarchive INDEX
-
List Templates :
list
-
List Archived Templates :
archives
-
Use Template :
use INDEX
-
-
Commands for the Create Tab :
-
Add text :
add TEXT x/X_COORDINATE y/Y_COORDINATE [c/COLOR] [s/SIZE] [S/STYLE]…
-
Edit text :
edit INDEX [t/TEXT] [x/X_COORDINATE] [y/Y_COORDINATE] [c/COLOR] [s/SIZE] [S/STYLE]…
-
Delete text :
delete INDEX
-
Move text :
move INDEX [x/X_CHANGE] [y/Y_CHANGE]
-
Abort creation :
abort
-
Finish creation :
create [d/DESCRIPTION] [t/TAG]…
-
-
Commands for the Export Tab :
-
Unstage Meme :
unstage INDEX
-
Export Meme :
export [p/PATH]
-
Clear staged Memes :
clear
-
-
Commands for the Import Tab :
-
Load Memes :
load p/PATH
-
Edit Meme :
edit INDEX [d/DESCRIPTION] [t/TAG]…
-
Delete Meme :
delete INDEX
-
Import Memes :
import
-
Clear loaded Memes :
clear
-