LoveBook User Guide

Overview

LoveBook, is a dating-focused application, revolving around providing serial daters with a convenient and enjoyable tool to enhance their dating experiences. Featuring user preferences management, date organization, customizable filtering options and best match algorithms, LoveBook enhances the efficiency and effectiveness of your online dating journey.

Table of Contents

Glossary

Term Definition
Date A person that the user is interested in and is currently seeing.
Metric A certain characteristic of a date. (e.g. Gender, Height)
Command Text that the user types into the application to perform an action.
Parameter A value that the user provides to the application when executing a command. (e.g. ingender/M M is a parameter)
GUI Graphical User Interface
CLI Command Line Interface
Mainstream OS Windows, Linux, Unix, OS-X
To provide you with relevant suggestions on how to use the commands as well as address potential confusions when using these commands.
To inform you of some unintended or unexpected consequences that may occur when you use the commands.

Scroll back to Table of Contents

Common Symbols

As you navigate through the application, you may come across certain symbols depicting your date's gender and horoscope. Here's a quick guide to help you understand what they mean.

Gender Symbols

Gender Symbol
Male
Female

Horoscope Symbols

Horoscope Symbol Birthday Range
Aries March 21 - April 19
Taurus April 20 - May 20
Gemini May 21 - June 20
Cancer June 21 - July 22
Leo July 23 - August 22
Virgo August 23 - September 22
Libra September 23 - October 22
Scorpio October 23 - November 21
Sagittarius November 22 - December 21
Capricorn December 22 - January 19
Aquarius January 20 - February 18
Pisces February 19 - March 20

Scroll back to Table of Contents


Quick Start

Download and Installation

  1. Ensure that you have Java 11 or above installed in your Computer.
  2. Download the latest LoveBook.jar from here.
  3. Double-click the file to start the app. The window that appears will be similar to the one below.

    startScreen
  4. Follow the tutorial below to get started.

If you're new to this program, the initial screen might appear a bit daunting. Don't fret; let's explore the various elements of the LoveBook interface together. We suggest enlarging the program window for a clearer perspective, allowing you to view more content.

Here's the detailed breakdown of the LoveBook screen:
GUI

  • Menu Bar - This is where you can find the File and Help options. Click on File to access the Exit option. Click on Help to access the Help option.
  • Command Box - This is where you type in your commands. Press Enter to execute the command.
  • Presets Bar - This is where you can find the preset commands. Click on a preset command to populate your command box.
  • Result Display - This is where the results of your commands are displayed.
  • Date List Panel - This is where the list of dates are displayed. The list is scrollable, and you can scroll up and down to view the entire list.

LoveBook Tutorial: Getting started

Now that you are familiar with the layout of LoveBook, we recommend you try the following steps to develop a feel for the core features of LoveBook.

1. Adding a date

So you've just started dating. How do you begin using this app?

Let's say you went out on a date with John. Throughout your date you find out key things about him, he's 123cm tall, earns 3k a month, his horoscope is Libra. Here you can add John to LoveBook using the add command:

In the command box, enter add name/John Doe age/21 gender/M height/123 income/3000 horoscope/Libra and press the enter key. This will add John to LoveBook.


Let's imagine you've added a couple of dates to the LoveBook already. It should look something like this now:

2. Starring a date

With so many dates you might want to start keeping tabs on dates that are perhaps more exceptional. Fret not, star dates as you go along in your journey. Here you can star John for instance, using the star command: Enter star 2. This will star John.

starCommandExample

3. Filtering dates

With so many dates, you might want to start filtering down to the metrics that matter. Perhaps you seek someone younger, simply filter for a specific age. Here you can filter for an age of 21 for instance, using the filter command: Enter filter age/21. This will filter for John.

filterCommandExample

4. Set Preferences

Well, maybe you are indecisive as a serial dater, and you want a third party opinion. Fret not, simply begin by keying in your preferences using the setPreferences command: Enter setP age/22 height/130 income/3200 horoscope/Libra This will set your preferences like so:

setPreferencesCommandExample

5. Best Match

And here it is, to get the match of your dreams, simply use the bestMatch command: Enter bestMatch

bestMatchCommandExample

Congrats! You have completed the tutorial!

The tutorial shows you what a typical workflow might look like on LoveBook. Do continue to peruse the commands section which contains other commands that, while not worth covering in a quick start tutorial, are certainly important to using LoveBook as a whole. Here's to you embarking on your LoveBook journey!

Scroll back to Table of Contents


Features

  • Words in UPPER_CASE are the parameters to be supplied by the user.
    e.g. in edit INDEX METRIC/NEW_ARG, INDEX, NEW_ARG and METRIC are parameters which can be used as edit 2 income/3000.
  • Items in square brackets are optional.
    e.g age/AGE [horoscope/HOROSCOPE] can be used as age/22 horoscope/ARIES or as age/22.
  • Parameters can be in any order.
    e.g. if the command specifies name/NAME age/AGE, age/AGE name/NAME is also acceptable.
  • For commands that accept a positive integer, the integer cannot be preceded with a leading zero. For instance, star 9 is valid, but star 09 is invalid
  • Extraneous parameters for commands that do not take in parameters (such as help, list, exit and clear) will be ignored.
    e.g. if the command specifies help 123, it will be interpreted as help.
  • If you are using a PDF version of this document, be careful when copying and pasting commands that span multiple lines as space characters surrounding line-breaks may be omitted when copied over to the application.

The following table shows the list of metrics and their respective constraints.

Metric Prefix Constraints
Name name/ Name can only contain letters, numbers and spaces. It must not be left blank.
Age age/ Age should be a positive integer between 18 and 150 (inclusive).
Gender gender/ Gender should be either M or F. It is case sensitive.
Height height/ Height should be a positive integer in cm between 100cm and 250cm (inclusive).
Income income/ Income (per month) should be a positive integer in SGD less than or equal to a million.
Horoscope horoscope/ Horoscope should be a valid zodiac sign. It is case insensitive.

Managing Dates

Adding a new date: add

Adds a date to the LoveBook.

All parameters are compulsory.

The date added must have a unique name that is not already in the LoveBook.

Format: add name/NAME age/AGE gender/GENDER height/HEIGHT horoscope/HOROSCOPE income/INCOME

Example: add name/John Doe age/21 gender/M height/123 income/3000 horoscope/Libra

addCommandExample

Expected output: New date added: John Doe; Age: 21; Gender: M; Height: 123; Income: 3000; Horoscope: LIBRA

Scroll back to Table of Contents

Editing a date: edit

Edits a date in the specified index in the LoveBook.

Format: edit INDEX [name/NAME] [age/AGE] [gender/GENDER] [height/HEIGHT] [income/INCOME] [horoscope/HOROSCOPE]

  • Metric is limited to gender, age, horoscope, name, height, income only.
  • New value replaces the existing value.
  • User can edit up to n number of metrics in one command line, where n refers to the number of metrics available.
  • The index must be a positive integer, and be within the range of the recorded dates. For example, if there are 3 Dates in LoveBook, the indices are 1, 2 and 3.

Examples:

  • edit 1 name/John (editing 1 metric)
  • edit 1 name/John horoscope/Cancer (editing 2 metrics)
  • edit 1 horoscope/Cancer name/John (sequence doesn't matter)

editCommandExample

Expected Output: Edited Date: John; Age: 21; Gender: M; Height: 123; Income: 3000; Horoscope: LIBRA

Scroll back to Table of Contents

Deleting a date: delete

Deletes the specified date from the LoveBook.

Format: delete INDEX

The index must be a positive integer, and be within the range of the recorded dates. For example, if there are 3 Dates in LoveBook, the indices are 1, 2 and 3.

Example: delete 1

deleteCommandExample

Expected output: Deleted Date: Ben Brown; Age: 21; Gender: F; Height: 194; Income: 6000; Horoscope: GEMINI

Scroll back to Table of Contents

Listing all dates: list

Shows a list of all dates in the LoveBook.

Format: list

listCommandExample

Expected output: Listed all Dates

Scroll back to Table of Contents

Clearing all dates: clear

Clears all dates in the LoveBook.

This command is irreversible. All data will be lost. Please use this command with caution.

Format: clear

clearCommandExample-1

clearCommandExample-2

Expected output: LoveBook has been cleared!

Scroll back to Table of Contents

Starring a date: star

Stars a date in the LoveBook.

Format: star INDEX

  • The index must be a positive integer, and be within the range of the recorded dates.
  • For example, if there are 3 Dates in LoveBook, the indices are 1, 2 and 3.

Example: star 1

starCommandExample-1

Expected output: Starred Date: John Doe; Age: 21; Gender: F; Height: 245; Income: 3000; Horoscope: LIBRA

Scroll back to Table of Contents

Unstarring a date: unstar

Unstars a date in the LoveBook.

Format: unstar INDEX

The index must be a positive integer, and be within the range of the recorded dates. For example, if there are 3 Dates in LoveBook, the indices are 1, 2 and 3.

Example: unstar 1

unstarCommandExample

Expected output: Unstarred Date: John Doe; Age: 21; Gender: M; Height: 123; Income: 3000; Horoscope: LIBRA

Scroll back to Table of Contents

Sorting, Finding dates

Finding a date: find

Finds a date in the LoveBook by a specific name(s)

Format: find NAME [MORE_NAMES]

More names can be added to the command line, and the search will be conducted for all names provided.

Example:

  • find Cleon
  • find Cleon John

Expected Output: Lists the dates with the name(s) specified

Scroll back to Table of Contents

Filtering dates by a certain metric: filter

Filters the dates in the LoveBook by a specific metric.

Format: filter METRIC/ARG

  • Metric is limited to gender, age, name, height only
  • Arguments should be non-empty and adhere to the constraints of the metric
  • Multiple valid METRIC/ARG pairs can be added to the command line, and the search will be conducted for all pairs provided. e.g. filter gender/M age/21
  • Filter format is valid as long as there is one valid METRIC/ARG pair. e.g. filter xx gender/M works as well, where xx is not a metric

When filtering dates by a valid metric and an invalid metric, the valid METRIC/ARG pair will be used to filter the dates. Note that the invalid metric will be ignored and there will be no checking of the validity of the invalid metric value.

Example:

  • filter name/Cleon
  • filter gender/M
  • filter gender/M name/Cleon
  • filter hi gender/M (provides flexibility to the user in the case they mistype a metric)
  • filter income/20 name/Cleon (this only returns dates with name Cleon since income is an invalid metric)

Expected Output: Lists the dates with the valid metric values specified

Scroll back to Table of Contents

Sorting dates by a certain metric: sort

Sorts the dates in the LoveBook by a specific metric.

Format: sort METRIC/ORDER

  • Metrics are limited to name/, age/, height/, income/ and horoscope/ only.
  • Order is limited to increasing or decreasing only and is case-sensitive.
  • Sort command is valid as long as there is only one valid METRIC/ORDER pair and no other metrics are provided.

When sorting dates by a field where both have an equal value, say Kevin and Wayne are sorted by income and both have an income of 2000, applying commands such as edit or star, can affect the stability of the sort. However, the overall sorting order by value is preserved.

Example:

  • sort name/increasing
  • sort horoscope/decreasing
  • sort xx income/decreasing, where xx is not a metric (provides flexibility to the user in the case they mistype a metric)

Expected Output: Lists the dates in the order specified

Scroll back to Table of Contents

Managing Preferences and Getting Matches

  • By default, Date Preference is set to:
    • AGE: 21
    • HEIGHT: 170
    • INCOME: 10000
    • HOROSCOPE: ARIES
  • If you wish to change your Date Preference, please use the setP command.
  • The bestMatch command will use the Date Preference set by the user.

Showing your date preferences: showP

Shows the User's Date Preference. This can be edited using the setP command.

Format: showP

Expected output: Here are your preferences: Age: 22; Height: 180; Income: 2000; Horoscope: TAURUS

Scroll back to Table of Contents

Setting your date preferences: setP

Sets the user's preferences for the matching algorithm.

  • At least one field to edit must be provided.
  • The user's preferences will be used in the bestMatch command.
  • Gender is not taken into account here
  • The relevant fields are
    • age/AGE
    • height/HEIGHT
    • income/INCOME
    • horoscope/HOROSCOPE

Format: setP [age/AGE] [height/HEIGHT] [income/INCOME] [horoscope/HOROSCOPE]

Example: setP age/22 height/180 income/2000 horoscope/TAURUS

setPCommandExample

Expected output: Updated Preferences: Age: 22; Height: 180; Income: 2000; Horoscope: TAURUS

Scroll back to Table of Contents

Filters out the most compatible date based on the set preferences.

Format: bestMatch

bestMatchCommandExample-1

bestMatchCommandExample-2

Expected Output: Here's your best match!

Scroll back to Table of Contents

Getting a blind date: blindDate

Outputs a random date from the LoveBook.

Format: blindDate

blindDate

blindDate

Expected Output: Here's a blind date for you!

Scroll back to Table of Contents

Other Commands

Exiting the application: exit

Exits the program.

Format: exit

Expected output: Exiting LoveBook...

Getting help: help

Shows a window to bring user to the LoveBook User Guide.

Format: help

helpCommandExample

Expected output: Opened help window.

Scroll back to Table of Contents


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 with the file that contains the data of your previous LoveBook home folder.

Q: Is my data stored in the cloud? Will I be open to data breaches?
A: No, all your data is stored locally, no need to fear a potential data hack.

Q: Do I have to save before exiting the application for my data to safely backed up on my computer?
A: All your data is saved on your computer as soon as you enter the command in. There is no need to manually save your data. In the event of a power outage, all your data will be safe.

Q: Where do I go if I have issues with LoveBook?
A: You may leave your issues here.

Q: What happens if I enter invalid data into the stored data file?
A: LoveBook will clear all the existing data and reset to as it was when you installed it. It is highly discouraged to manually edit the data file.

Q: How do I change my date's avatar?
A: Currently, the avatars are randomly selected from a pool of 9 avatars. We are working on a feature to allow users to choose their own avatars.

Scroll back to Table of Contents


Command Summary

Commands are sorted by alphabetical order.

Action Format Examples
Adding a new date add name/NAME age/AGE gender/GENDER height/HEIGHT horoscope/HOROSCOPE income/INCOME add name/John age/25 gender/M height/175 horoscope/Aries income/5000
Getting a recommended date bestMatch bestMatch
Getting a blind date blindDate blindDate
Clearing all dates clear clear
Deleting a date delete INDEX delete 2
Editing a date edit INDEX [name/NAME] [age/AGE] [gender/GENDER] [height/HEIGHT] [income/INCOME] [horoscope/HOROSCOPE] edit 3 name/Cleon
Exiting the application exit exit
Filtering dates by a certain metric filter METRIC/ARG filter name/Cleon
Finding a date find NAME [MORE_NAMES] find Cleon
Getting help help help
Listing all dates list list
Setting your date preferences setP [age/AGE] [height/HEIGHT] [income/INCOME] [horoscope/HOROSCOPE] setP age/22 height/180 income/2000 horoscope/TAURUS
Showing your date preferences showP showP
Sorting dates by a certain metric sort METRIC/ORDER sort name/increasing
Starring a date star INDEX star 1
Unstarring a date unstar INDEX unstar 1

Scroll back to Table of Contents