View on GitHub

tp

Fluffle User Guide

Table of Contents

Introduction
About this document
Quick start
Features
    Basic CLI commands
        Viewing help: help
        Changing line divider in Fluffle: divider
        Clearing certain object in the database: clear
        Closing the program: exit
    Words list commands
        Adding a noun: noun
        Adding a verb: verb
        Adding an adjective: adj
        Listing words: list words
        Generating three random words: three words
        Filtering words in word list: filter words
        Listing your filter list: list filter words
        Clear all of words stored in the database: reset words
    Bunnies list commands
        Adding bunny idea: bunny
        Listing bunny ideas: list bunny
        Filtering bunny ideas: filter bunny
        Saving bunny ideas: save bunny
        Deleting a bunny idea: delete bunny
        Generating a random bunny idea: random bunny
        Resetting the entire list of Bunny ideas: reset bunny
    Names list commands
        Generating names from name database: name
        Listing names from name database: list name
        Finding names from name database: filter name
        Adding name to the name database: add name
        Removing a name from the name database: delete name
    Writings list commands
        Beginning your writing session: start
        Choosing the “type” of your writing: type
        Choosing the “topic” of your writing: topic
        Tracking your past writings: stats
        Getting reminders for your writings scheduled for a specific day: remind
        Reset the entire writing list: reset writings
FAQ
Glossary
Command summary

Jump to top

Introduction

Fluffle is a desktop app for creative writers, optimized for use via a Command Line Interface (CLI). It aids users in creating and managing their writings and ideas. As a fast-typing writer, this CLI app is highly suitable for you.

Jump to top

About This Document

This document aims to provide you with the best way to utilize Fluffle for your own writing experience. You may want to first have a look at the glossary to be clear on the terminology used in the document.

Jump to top

Quick Start

If you are a first-time user of Fluffle, make use you follow the instructions below:

  1. Check that your computer has Java 11 installed.
  2. Get the latest Fluffle from here.
  3. Copy the file to the folder you want to use as the home folder.
  4. Open a command prompt window in the folder by typing ‘cmd’ in the navigation bar at the top of the window.
  5. In the command prompt window, typejava -jar duke.jar and press Enter. If the setup is correct, you should see something like below:
    --------------------------------------------------------------
    Write a story with
      ______ _        __  __ _
     |  ____| |      / _|/ _| |
     | |__  | |_   _| |_| |_| | ___
     |  __| | | | | |  _|  _| |/ _ \
     | |    | | |_| | | | | | |  __/
     |_|    |_|\__,_|_| |_| |_|\___|
    --------------------------------------------------------------
    Hello User! Welcome to Fluffle!
    What can I do for you?
    --------------------------------------------------------------
    What is your name?
    
  6. After entering your name, type the help command and press Enter to get started.
  7. Some example commands you can try:
    1. list words: List the vocabulary stored in the word list.
    2. filter bunny g\fantasy: Filters bunny ideas that are of the fantasy genre.
    3. exit: Exits the app.
  8. Refer to the Features below for details of each command. A Command Summary Table is provided at the end of this User Guide.

Jump to top

Features

(Quang Hung)

This section includes five subsections which will guide you through all the commands in the five main components of Fluffle: Basic CLI, Words list, Bunnies list, Names list and Writings list. We will adhere to the following format in explaining the syntax of the commands in Fluffle.


Command format

Jump to top

Basic CLI Commands

Basic CLI commands consist of commands that are standard CLI application commands such as help and exit, as well as an aesthetic option to change the line divider.

Viewing help: help

Shows a list of commands you can use and what the commands do. Prints the instructions at each stage of the program.
Output:

Type 'help FUNCTION_NAME' to view help for each command.
Available commands:
- help
- divider
- noun
- verb
- adj
- three words
- bunny
- list bunny
- filter bunny
- save bunny
- delete bunny
- random bunny
- list
- list filter words
- start
- filter words
- stats
- reset
- name
- list name
- filter name
- add name
- delete name
- remind
- clear
- exit

Format: help [COMMAND_NAME]

Example of usage:

help

help filter name

Example output:

help filter name
--------------------------------------------------------------
Find all the names from the list of names
Format: filter name NAME
--------------------------------------------------------------

Changing line divider in Fluffle: divider

(Amelia Tan)

Allows the user to change the line divider used in Fluffle. Format: divider DIVIDER_OPTION
The DIVIDER_OPTION is a parameter indicating your preferred type of line divider, and can take values from 1 to 3. The list of dividers is:

  1. -—————————————————————
  2. =^..^= =^..^= =^..^= =^..^= =^..^= =^..^= =^..^=
  3. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Example usages:

Example output:

divider 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Changing line divider...
--------------------------------------------------------------
divider 3
=^..^=  =^..^=  =^..^=   =^..^=   =^..^=   =^..^=   =^..^=
Changing line divider...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Clearing a certain object in the database: clear

(Minh Thong)

Deletes an item of choice from a list in Fluffle. A warning prompt will be generated before deletion.

Format:

Example usage:
clear type\word item\-noungrass
Example Output:
Are you sure you want to delete this item grass? Yes/no

There are two major types of clearing:

Clearing a writing:

Format: clear type\writing item\0

Expected effect: Clear the first writing stored in the database (the writing stays on the top expected to see when use command stats before apply command clear)

Format: clear type\writing item\-id5

Expected effect: Clear the writing(s) with ID 5 in the database

Clearing a word:

Format: clear type\word item\-noungrass

Expected effect: Check the existence of word “grass” with type “noun” in the database and then remove it

Format: clear type\word item\-adjbeautiful

Expected effect: Check the existence of word “beautiful” with type “adj” in the database and then remove it

Format: clear type\word item\-verbkill

Expected effect: Check the existence of word “kill” with type “verb” in the database and then remove it

Closing the program: exit

Exits the program. All data is auto-saved.

Format: exit

Jump to top

Words List Commands

(Yu Xuan)
Fluffle has a word list which stores the words that you wish to store. It can be used to store words that you wish to research more on, or words that you find interesting and may add value to your stories. The more words you add to it, the more useful it becomes.

Adding a noun: noun

(Yu Xuan)
Adds a noun, together with its meaning, into the word bank in the program.
Format: noun WORD d\DESCRIPTION

Adding a verb: verb

(Yu Xuan)
Adds a verb, together with its meaning, into the word bank in the program.
Format: verb WORD d\DESCRIPTION

Adding an adjective: adj

(Yu Xuan)
Adds an adjective, together with its meaning, into the word bank in the program.
Format: adj WORD d\DESCRIPTION

Listing words: list words

(Yu Xuan)
Lists all words stored in the program.
Format: list words

Generating three random words: three words

(Yu Xuan)
Generates three random words from the Fluffle word bank. You may use this function when you need inspiration for story ideas.
Format: three words

Filtering words in word list: filter words

(Quang Hung)

Suppose you need to list out all the nouns in your word bank, or you want to find out the words starting with the strings “st” and “cg”. In such cases, you can use the filter words command to achieve your goal.

Note: You must key in the parameters in order for the application to work properly.

Format: filter words [-continue] [limit\PRINT_LIMIT] by\TYPE_OF_FILTER -TARGET_STRING...:

Step-by-step example usages and example outputs:

  1. house: a building for people to live in, usually for one family
  2. grass: a common wild plant with narrow green leaves and stems 
  3. eat: to put food in your mouth, bite it and swallow it.
  4. computer: an electronic machine that can store, organize and find information
  5. class: a group of students who are taught together
  6. study: the activity of learning or gaining knowledge
  7. beautiful: having beauty; giving pleasure to the senses or to the mind
  8. nice: pleasant or attractive
  9. meaningful : important and serious
  10. attack: to use violence to try to hurt or kill somebody
There are cases that
- You didn't specify the print limit
- Your limit is not an integer

The program will print out all the words in your filter list.

Printing all 7 word(s) from your filter list:
  1. house: a building for people to live in, usually for one family
  2. grass: a common wild plant with narrow green leaves and stems
  3. computer: an electronic machine that can store, organize and find information
  4. class: a group of students who are taught together
  5. beautiful: having beauty; giving pleasure to the senses or to the mind
  6. nice: pleasant or attractive
  7. meaningful : important and serious
Your filter list has more than 3 word(s)
Do you want to print all the words in the filter list? y/n
Printing all 4 word(s) from your filter list:
  1. house: a building for people to live in, usually for one family
  2. grass: a common wild plant with narrow green leaves and stems
  3. computer: an electronic machine that can store, organize and find information
  4. nice: pleasant or attractive
Printing all 1 word(s) from your filter list:
  1. grass: a common wild plant with narrow green leaves and stems

Listing your filter list: list filter words

(Quang Hung)

Suppose you want to refer back to the words that have just been filtered recently. In this scenario, you can use the command list filter words to print out the filtered list.

Note: You must key in the parameters in order for the application to work properly.

Format: list filter words [limit\PRINT_LIMIT]

Example of usage and example outputs:

Your filter list has more than 3 words
Do you want to print all the words in the filter list? y/n
Printing 3 out of 5 word(s) from your filter list:
  1. house: a building for people to live in, usually for one family
  2. grass: a common wild plant with narrow green leaves and stems 
  3. computer: an electronic machine that can store, organize and find information

Clear all of words stored in the database: reset words

(Minh Thong)

Remove all of your added words automatically

reset words
--------------------------------------------------------------
--------------------------------------------------------------

Jump to top

Bunnies List Commands

(Amelia Tan)

Bunnies List commands allows you to collate your list of ideas in one place, making it easy for you to find specific ideas. It can randomly pick one for you to work on so you don’t have to waste time deciding on one on your own.

Adding a bunny idea: bunny

(Amelia Tan)

Adds a bunny idea to the list of bunny ideas in the current run of the program. This list is not automatically saved.

Format: bunny i\IDEA g\[GENRE]

Note:

Example usages:

Example output:

bunny i\test idea 2 g\ fantasy  
 --------------------------------------------------
 New bunny added!
   idea: test idea 2
   genre:  fantasy
 ---------------------------------------------------

Listing bunny ideas: list bunny

(Amelia Tan)

If you want to view the list of plot bunnies you have collected, you can use the list bunny command to print the full list of bunnies.

Format: list bunny

Example usage: list bunny

Example output:

list bunny
-----------------------------------------------------
Here are the bunnies stored in the program:
1.
  idea: test idea 1
  genre: fantasy
  
2.
  idea: test idea 2
  genre: romance

3.
  idea: test idea 3
  genre: none
------------------------------------------------------

Filtering bunny ideas: filter bunny

(Amelia Tan)

Filters specific bunny ideas from the list by searching the idea or the genre for specific key terms.

Format: filter bunny i\[IDEA] g\[GENRE]

Note:

Example usages:

Example output:

filter bunny g\ fantasy
------------------------------------------------------
1.
  idea: bunny idea 1
  genre: fantasy

2.  
  idea: test idea 2
  genre: fantasy

number bunny filter: 2
-------------------------------------------------------

Saving bunny ideas: save bunny

(Amelia Tan)

Saves the current list of bunnies in the program into the designated text file. The existing text file is automatically read at the start of the program, and is overwritten when the save function is called.

Format: save bunny

Example usage:

Example output:

save bunny
--------------------------------------------------------------
Bunny list saved!
--------------------------------------------------------------

Deleting a bunny idea: delete bunny

(Amelia Tan)

You can delete a selected plot bunny from the list of bunny ideas when you have written it or are no longer interested in writing it.

Format: delete bunny BUNNY_INDEX

Example usage:

Example output:

delete bunny 2
--------------------------------------------------------------
Bunny deleted: 
  idea: test idea 2
  genre: none
--------------------------------------------------------------

Generating a random bunny idea: random bunny

(Amelia Tan)

The app can pick a random bunny from your list of plot bunnies for you to work on.

Format: random bunny

Example usages:

Example output:

random bunny
--------------------------------------------------------------
Random Bunny: 
  idea: some very funny idea
  genre: humor
--------------------------------------------------------------

Resetting the entire list of Bunny ideas: reset bunny

(Amelia Tan)

The app can help you clear the entire list of Bunny ideas if you decide that you want a fresh start with your ideas.

Note:

Format: reset bunny

Example usages:

Example output:

reset bunny
--------------------------------------------------------------
Type in "save bunny" to confirm your deletion of the bunny ideas!
--------------------------------------------------------------
save bunny
--------------------------------------------------------------
Bunny list saved!
--------------------------------------------------------------

Jump to top

Names List Commands

(Yong Wee)

Names List commands allow you to look through a pre-built list of character names offline. You may also compile your own list, and the program can help you pick one out at random so you can start writing right away.

Generating names from name database: name

(Yong Wee)

You can generate a name randomly from the stored database of names.

Format: name

Example output:

name
--------------------------------------------------------------
name 2
--------------------------------------------------------------

Listing names from name database: list name

(Yong Wee)

You can display all the names currently stored in the names database.

Format: list name

Example usages:

Example output:

list name
--------------------------------------------------------------
1. name 1
2. name 2
3. name 3
--------------------------------------------------------------

Finding names from name database: filter name

(Yong Wee)

You can get the list of names after filtering from the stored list of names.

Format: filter name NAME

Example usage:

Example output:

filter name 2
--------------------------------------------------------------
name 2
--------------------------------------------------------------

Example usage:

Example output:

filter name name
--------------------------------------------------------------
1. name 1
2. name 2
3. name 3
--------------------------------------------------------------

Adding names from name database: add name

(Yong Wee)

You can add a name to the list of names currently stored in the names database.

Format: add name NAME

Example usages:

Example output:

add name name 3
--------------------------------------------------------------
name 3 has been added to the Names list!
--------------------------------------------------------------

Removing names from name database: delete name

(Yong Wee)

You can remove a name from the list of names currently stored in the names database.

Format: delete name INDEX

Example usages:

Example output:

delete name 3
--------------------------------------------------------------
name 3 has been deleted from the Names list!
--------------------------------------------------------------

Jump to top

Writings List Commands

Writings List allows you to keep a collection of short pieces within the program, and can help you track your writing statistics as motivation to consistently practice writing.

Beginning your writing session: start

(Minh Thong)

Requires you to type the following commands for your writings’ configurations:

After choosing the “type” and the “topic” configurations, we can start writing our poems and essays.

Choosing the “type” of your writing: type

(Minh Thong)

Currently, our application offers you with 2 options of “type”, which are “poem” or “essay”.

Choosing the “topic” of your writing: topic

(Minh Thong)

(Reserved for v2.1, currently you are only able to choose any arbitrary topic for your writing)

Lists the available topics in the list and pop out the relevant keywords for your writing.

start
--------------------------------------------------------------
Please indicate your type by typing in "type" command
type
Please let us know your type of writings, either poem or essay
poem
Please let us know your preferred topic, the available are travelling, life story, ghost story, sci-fi, historical
ghost story
Great! The words we have found for you are killing, death and terrify!
Please let us know the title of your writing
Der Erlkönig
Now you can type your content, terminate by typing "end"
Wer reitet so spät durch Nacht und Wind?
Es ist der Vater mit seinem Kind;
Er hat den Knaben wohl in dem Arm,
Er faßt ihn sicher, er hält ihn warm.

Dem Vater grauset's; er reitet geschwind,
Er hält in Armen das ächzende Kind,
Erreicht den Hof mit Mühe und Not;
In seinen Armen das Kind war tot.
end
Please indicate the date you want to continue with this writing by keying the date in the format "dd/MM/yyyy"
01/12/2020
This Poem, Der Erlkönig has been added
Done! We have added your writing to our storage! You can type "stats" for future reference!

Tracking your past writings: stats

(Minh Thong)

Informs the user detailed specifications like IDs, authors, contents, and other attributes of the writings stored in the database.

stats
This is a Poem
Written by Goethe

Id: 5
DER ERLKÖNIG

Wer reitet so spät durch Nacht und Wind?
Es ist der Vater mit seinem Kind;
Er hat den Knaben wohl in dem Arm,
Er faßt ihn sicher, er hält ihn warm.

Dem Vater grauset's; er reitet geschwind,
Er hält in Armen das ächzende Kind,
Erreicht den Hof mit Mühe und Not;
In seinen Armen das Kind war tot.

This writing was created on 18/10/2020
You want to continue on this writing on 01/12/2020
--------------------------------------------------------------

Getting reminders for your writings scheduled for a specific date: remind

(Quang Hung)

Let’s say you are an absent-minded person, and you would like the program to remind you which writings you are about to continue on a specific day. In this scenario, you can use the remind command.

Format: remind DATE

Example usage and example output:

Reset the entire writing list: reset writings

(Minh Thong)

Clear the whole writings stored in the database

reset writings
--------------------------------------------------------------
We have clear all data in the writings list
--------------------------------------------------------------

Jump to top

FAQ

Q: How do I transfer my data to another Computer?

A: Install the app in the other computer and overwrite the empty data file it creates with the file that contains the data .txt files of your previous Fluffle home folder.

Q: Do I need to leave a space before each input tag?

A: Yes, the space is necessary. (e.g., noun computer engineering d\the best engineering major)

Q: Do the parameters need to be keyed in in order?

A: No. Our code will detect the indicators in any order as long as they are properly spaced out. However, there are still some features that will require you to type in the command in the exact order for the program to work properly.

Jump to top

Glossary

(Amelia Tan)

Bunny is a short form for the slang term plot bunny, often used in creative writing, which refers to short writing ideas that have yet to be written.

Jump to top

Command Summary

The following table summarizes all the commands that you need to know when using Fluffle.

Command Format, Examples  
divider divider DIVIDER_OPTION
Example: divider 2
The list of dividers is:
1. ————————————————————–
2. =^..^= =^..^= =^..^= =^..^= =^..^= =^..^= =^..^=
3. +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 
help help
Look through help guide
 
clear clear
clear type\[TYPE_OF_ITEM] item\[SPECIFICATION_MARK_OF_THE _OBJECT]
TYPE_OF_ITEM:
- word: specify that you are trying to clear a word from word list
- Writing: specify that you are trying to clear a writing from writing list
SPECIFICATION_MARK
- If the object is a word, then clear with the respective name
- If the object is a writing, then clear with respective id
 
exit exit
Exits the program.
 
noun noun [WORD] d\[DESCRIPTION]
Example: noun bus d\vehicle
 
verb verb [WORD] d\[DESCRIPTION]
Example: verb eat d\to consume
 
adjective adj [WORD] d\[DESCRIPTION]
Example: adj hungry d\having the desire to consume food
 
three words three words
Generates three random words from the word list in the program.
 
list words list words
Lists all the words stored in the program.
 
filter words filter [-continue] [limit\PRINT_LIMIT] by\TYPE_OF_FILTER -TARGET_STRING...
-continue (optional): If you want to continue with your last filter list, provide this argument in your command.
limit\PRINT_LIMIT (optional): indicate number of words that you want to print from your filter list
by\TYPE_OF_FILTER:
- type: arguments can be -verb, -noun and -adjective
- start: arguments can be -STRING
- include: arguments can be -STRING
 
list filter words list filter [limit\PRINT_LIMIT]
Print the filter list with a limited number of words indicated by PRINT_LIMIT (optional parameter)
 
bunny bunny i\IDEA g\[GENRE]
Adds a bunny idea to the list of bunnies in the current run.
 
list bunny list bunny
Lists all the bunny ideas.
 
filter bunny filter bunny i\IDEA g\[GENRE]
Filters bunny by terms in idea or genre (must have at least 1 filter parameter)
 
save bunny save bunny
Saves all the bunny ideas into a text file.
 
delete bunny delete bunny BUNNY_INDEX
Deletes a selected bunny from the list.
BUNNY_INDEX is the index of the bunny in the list
 
random bunny random bunny
Selects a random bunny from the list.
 
name name
Generates a random name.
 
list name list name
List all the stored names.
 
filter name filter name <NAME>
Gets the list of names after filtering.
 
add name add name <NAME>
Adds a name to the list of stored names.
 
delete name delete name <INDEX>
Removes a name from the list of stored names given the index.
 
stats stats
Show the content of past writings as well as their basic specifications, e.g: number of lines/sentences/type of the writings/date created/ …..
This is a poem
Written by Goethe
Id: 5
DER ERLKÖNIG
Wer reitet so spät, durch Nacht und Wind?
Es ist der Vater mit seinem Kind
Er hält den Knaben wohl in den Armen.
Er faßt ihn sicher, er hält ihn warm.
This writing was created on 18/10/2020
This poem has 4 lines, 31 words.
—————————————————————-
 
remind remind DATE
Show you which writings are scheduled on a specific day.
Example usage: remind 30/10/2020
 
list list  
reset reset <NAME_OF_CATEGORY>
NAME_OF_CATEGORY:
- Reset the respective input category database (e.g, bunny, writings, words,…)
 

Jump to top