Welcome to Maplet, your goto solution for trip planning.
If you often find yourself bookmarking attractions online but forgetting them later, or struggling to prioritize destinations for a trip, Maplet is built for you.
It’s a desktop app for managing travel attractions and itineraries, designed for efficiency through a Command Line Interface (CLI) paired with a Graphical User Interface (GUI) allowing you to type commands quickly while still visualizing your data.
Whether you’re a travel content creator categorizing attractions for your next viral trip or a student planning your next overseas trip with friends, Maplet helps you plan smarter and faster.
Maplet is designed for:
You’ll get the most out of Maplet if you:
cd or java -jar).Unsure on the above? Fret not! Refer to our Quick start guide to get you started!
| What You Can Do | Description |
|---|---|
| Add attractions | Record any new attraction you come across online with a single command. |
| Customize details | Each attraction has editable fields such as priority, cost to help you plan effectively. |
| Sort by criteria | Sort attractions by name, price, or priority to focus on what matters most. |
| Find by keyword | Quickly search through attractions using relevant keywords. |
| What You Can Do | Description |
|---|---|
| Group attractions | Combine attractions that are in the same area. |
| Add or remove | Add or remove attractions from a location as your plans change. |
| Create new locations | Build your own custom location groups for better organization. |
| What You Can Do | Description |
|---|---|
| Create itineraries | Plan custom trips by grouping attractions into one itinerary. |
| Add attractions | Include specific attractions to map out your day-by-day plan. |
| Sort for optimization | Sort itineraries by total cost or average priority to compare plans. |
Follow these simple steps to install and start using Maplet.
Ensure you have Java 17 or higher installed.
Mac users:
Follow the official installation guide for the correct JDK version.
You can verify your version by running in your terminal:
java -version
Ensure you see something like:
openjdk version "17.x.x" 2025-01-21 LTS
Download the latest .jar file from the Maplet GitHub Releases page.
Download it to a folder of your choice, this will be your home folder where all your data will be automatically saved.
Warning:
Keep the file name asmaplet.jarto avoid any compatibility issues.
Open your terminal and run:
cd [your-folder-name]
java -jar maplet.jar
After a few seconds, Maplet will appear with sample attractions preloaded.
Figure 1. Maplet interface showing sample data.
Type commands in the command box and press Enter:
| Command | Description |
|---|---|
help | Opens the help window. |
list | Displays all attractions. |
add n/Eiffel Tower p/9 a/Paris act/climb tower pr/$200 | Adds an attraction called Eiffel Tower. |
delete 3 | Deletes the attraction at index 3 shown in the current list. |
addlocation ln/Singapore i/1 | Adds attraction with index 1 to location "Singapore". |
addlocation ln/Singapore i/1 | Adds attraction with index 1 to location "Singapore". |
additinerary n/Singapore Trip ai/1 ai/2 | Creates an itinerary called "Singapore Trip" with the attractions that are at index 1 and 2. |
clear | Deletes all attractions. |
exit | Closes the app. |
Tip 1: Use the help command anytime to see all available actions.
Tip 2: Refer to the Commands below for details of each command.
Start adding attractions, group them by location, and build your first itinerary.
Next, visit the Navigation section to explore how each panel works.
This section guides you through the main panel options of Maplet so you can move between attractions, itineraries and locations.
The Attraction Panel appears first when launching the application. It has 3 main components:
| Section | Description |
|---|---|
| User Input | Enter your commands here to manage your attractions. |
| Status Bar | Displays messages confirming whether your command was successful or not. If there’s an error, the message explains what went wrong. |
| Attraction List | Shows all the attractions you’ve added. Each entry contains user-defined information such as name, cost, and priority. |
Tip: To start adding attractions, refer to the Adding an Attraction section.
To open the Itinerary Panel, click on the Itinerary button above the attraction list, or use the Tab and arrow keys to navigate there (press tab until the Attraction button is highlighted before using arrow keys for navigation).
Figure 3. Itinerary Panel overview.
| Section | Description |
|---|---|
| Itinerary List | Displays all your saved itineraries. |
| Attraction List | Shows the attractions linked to the selected itinerary. |
Tip: To add an itinerary refer to the add an itinerary section.
Finally, navigate to the Location Panel by clicking the Location button or using the Tab and arrow keys (press tab until the Attraction button is highlighted before using arrow keys for navigation).
Figure 4. Location Panel overview.
| Section | Description |
|---|---|
| Location List | Lists all user defined location. |
| Attraction List | Displays attractions assigned to the selected location. |
Tip: To add a location refer to the add a location section.
Commands are the main method for perform operation in the Maplet application.
Notes about the command format:
| Format Element | Description | Example |
|---|---|---|
| UPPER_CASE | Placeholder for a parameter to be supplied by you. | add n/NAME -> add n/Eiffel Tower where NAME is replaced with Eiffel Tower |
| [Square Brackets] | Optional parameter. | n/NAME [t/TAG] → n/Eiffel Tower t/bucketlist or just n/Eiffel Tower |
Ellipsis … | Parameter can any amount of times. | [t/TAG]… → t/movies t/leisure or t/ |
| Order Flexibility | Parameters can appear in any order. | p/PRIORITY n/NAME works like n/NAME p/PRIORITY |
| Extra Parameters Ignored | Commands like help, list, and exit ignore extra text. | help 123 → works like help |
WARNING For PDF Users: 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.
| Action | Format, Examples |
|---|---|
| Add | add n/NAME p/PRIORITY_NUMBER c/CONTACT a/ADDRESS act/ACTIVITIES [o/OPENING_HOURS] pr/PRICE [t/TAG]… [com/COMMENT]… e.g., add n/Universal Village p/4 c/UniVillage@example.com a/123, Clementi Rd, 1234665 act/Date pr/ 10USD t/movies t/leisure com/This place has a lot of rides but they have long queues. |
| List | list |
| Edit | edit INDEX [n/NAME] [p/PRIORITY_NUMBER] [c/CONTACT] [a/ADDRESS] [o/OPENING_HOURS] [pr/PRICE] [t/TAG]… [c/COMMENT]…e.g., edit 2 n/Golden Studios c/GoldenSS@example.com |
| Detailed Edit | dedit INDEXe.g., dedit 1 |
| Find | find KEYWORD [MORE_KEYWORDS]e.g., find Golden Studios |
| Delete | delete INDEXe.g., delete 3 |
| Clear | clear |
| Comment | comment INDEX com/COMMENTe.g., comment 2 com/Amazing place! |
| Add Itinerary | additinerary n/ITINERARY_NAME [ai/ATTRACTION_INDEX]…e.g., additinerary n/Singapore Trip ai/1 ai/2 |
| Delete Itinerary | deleteitinerary INDEXe.g., deleteitinerary 1 |
| Add Location | addlocation ln/LOCATION_NAME i/ATTRACTION_INDEX [i/ATTRACTION_INDEX]…e.g., addlocation ln/Singapore i/1 i/2 i/3 |
| Edit Location | editlocation ln/LOCATION_NAME action/ACTION i/ATTRACTION_INDEXe.g., editlocation ln/Singapore action/ADD i/5 |
| Delete Location | deletelocation ln/LOCATION_NAMEe.g., deletelocation ln/Singapore |
| Sort | sort PREFIXe.g., sort p/ |
| Help | help |
| Exit | exit |
Prefixes are used before parameters to help the program differentiate between different types of parameters. Below is a comprehensive list of prefix-parameter pairs.
| Prefix | Parameter |
|---|---|
| n/ | NAME |
| p/ | PRIORITY_NUMBER |
| c/ | CONTACT |
| a/ | ADDRESS |
| act/ | ACTIVITIES |
| o/ | OPENING_HOURS |
| pr/ | PRICE |
| t/ | TAG |
| c/ | COMMENT |
| i/ | ATTRACTION_INDEX (LOCATIONS) |
| ai/ | ATTRACTION_INDEX (ITINERARY) |
As seen in the command summary a parameter is a stand-in for user input. These parameters are directly after their corresponding prefix. Each parameter has a corresponding restriction that prevents users from keying in nonsense data.
| Parameter | Restriction |
|---|---|
| NAME | Name of the attraction. Must be alphanumerical. |
| INDEX | The index of each attraction. Must correspond to an existing attraction and cannot be negative. |
| PRIORITY_NUMBER | A number that ranges from 1 - 10 (inclusive) |
| CONTACT | A number containing at least 3 digits OR a valid email address of the form: local-part@domain |
| ADDRESS | Any value as long as it's not blank |
| ACTIVITIES | Any value as long as it's not blank |
| OPENING_HOURS | Should take the form: HHmm - HHmm |
| PRICE | Numerical value with the currency symbol or the 3-letter ISO code, and it should not be blank |
| TAG | Alphanumeric (no spaces allowed) (Optional field) |
| COMMENT | Any value as long as it's not blank (Optional field) |
| ATTRACTION_INDEX (LOCATIONS) | The index of each attraction. Must correspond to an existing attraction and cannot be negative. |
| ATTRACTION_INDEX (ITINERARY) | The index of each attraction. Must correspond to an existing attraction and cannot be negative. |
These commands are responsible to adding, editing and deleting attractions.
addAdds an attraction to Maplet.
Format: add n/NAME p/PRIORITY c/CONTACT a/ADDRESS act/ACTIVITIES [o/OPENING_HOURS] pr/PRICE [t/TAG]… [com/COMMENT]…
Tips:
Examples:
add n/Big ben a/London c/hello@gmail.com p/5 act/listen to ben pr/SGD5add n/Eiffel Tower p/9 c/example@gmail.com a/Paris act/climb tower o/1200-1500 pr/500 t/bucketList t/friendsadd n/Pisa Tower p/9 c/hey123@gmail.com a/Italy act/phototaking pr/US$2 t/friends com/It's leaning!After adding an attraction successfully you will be able to see the following output as the status message.
listShows a list of all attractions in Maplet.
Format: list
editEdits an existing attraction in Maplet.
Format: edit INDEX [n/NAME] [p/PHONE] [c/CONTACT] [a/ADDRESS] [act/ACTIVITIES] [o/OPENING_HOURS] [pr/PRICE] [t/TAG]… [com/COMMENT]…
INDEX. The index refers to the index number shown in the displayed attraction list. The index must be a positive integer 1, 2, 3, …WARNING:
t/ without
specifying any tags after it.Examples:
edit 1 p/9 c/orangerestaurant@example.com Edits the priority value and contact detail of the 1st attraction to be 9 and orangerestaurant@example.com respectively.edit 2 n/Golden Star t/ Edits the name of the 2nd attraction to be Golden Star and clears all existing tags.After a successful edit the status message should be as shown:
Figure 6. edit command example.
deditEdits the existing details of an attraction instead of replace the attributes.
Format : dedit INDEX
INDEX. The index refers to the index number shown in the displayed attraction list. The index must be a positive integer 1, 2, 3, …Below is the sample window:
Figure 7. dedit command example.
Tip: To avoid clicking on the fields to edit them one by one, consider using the tab key instead to swap between fields effortlessly!
Examples:
dedit 1 Opens the edit window for attraction 1.findFinds attractions whose names contain any of the given keywords.
Format: find KEYWORD [MORE_KEYWORDS]
milk will match MilkTea Milk will match Milk TeaGold will not match GoldenOR search).
e.g. Golden Stop will return Golden Studios, Golden StarExamples:
find Golden returns Golden Studios and Golden Friesfind Coffee Tea returns Runalds Coffee, Milk Tea Central
Figure 8. find command example.deleteDeletes the specified attraction from Maplet.
Format: delete INDEX
INDEX.Examples:
list followed by delete 2 deletes the 2nd attraction in Maplet.find Cat Cafe followed by delete 1 deletes the 1st attraction in the results of the find command.WARNING
clearClears all entries from Maplet.
Format: clear
WARNING
commentAdds a comment to the specified attraction
Format: comment INDEX com/COMMENT
COMMENT to the attraction at INDEX.Examples:
comment 1 com/Expensive place Adds the comment "Expensive place" to the attraction at index 1.comment 2 com/Terrible service Adds the comment "Terrible service" to the attraction at index 2.Tip: Instead of clicking on the view comments button, you can use tab to select the button and press enter
to view the comments instead!
These commands are responsible for managing itineraries
additineraryAdds an itinerary to Maplet. An itinerary is a collection of attractions that the user plans on visiting together.
Format: additinerary n/ITINERARY_NAME [ai/ATTRACTION_INDEX]…
ITINERARY_NAME.Examples:
additinerary n/Singapore Trip ai/1 ai/2 creates an itinerary called "Singapore Runaround" with attractions at index 1 and 2additinerary n/Europe Tour ai/3 ai/5 ai/7 creates an itinerary called "Europe Tour" with attractions at index 3, 5, and 7If you have successfully added the itinerary you should see the following status message.
Figure 9. additinerary command example.
deleteitineraryDeletes the specified itinerary from Maplet.
Format: deleteitinerary INDEX
INDEX.Examples:
deleteitinerary 1 deletes the 1st itinerary in the itinerary list.deleteitinerary 3 deletes the 3rd itinerary in the itinerary list.WARNING
These commands are responsible for managing locations
addlocationAdds a location to Maplet so you can group related attractions together.
Format: addlocation ln/LOCATION_NAME i/ATTRACTION_INDEX [i/ATTRACTION_INDEX]…
Tip: An attraction can belong to many locations, but each location can only list an attraction once.
Examples:
addlocation ln/Singapore i/1 i/2addlocation ln/Paris i/5 i/7 i/9Upon successfully adding a location you should see the following status message.
Figure 10. addlocation command example.
editlocationUpdates an existing location by adding or removing a single attraction using its index in the displayed attraction list.
Format: editlocation ln/LOCATION_NAME action/ACTION i/ATTRACTION_INDEX
ACTION must be either ADD or REMOVE (case-insensitive).Examples:
editlocation ln/Singapore action/ADD i/5 adds the attraction at index 5 into the Singapore location.editlocation ln/Singapore action/remove i/2 removes the attraction at index 2 from the Singapore location, as long as at least one attraction remains afterwards.Note: The ATTRACTION_INDEX refers to the index of the Attraction in the Attractions tab.
deletelocationDeletes the specified location from Maplet.
Format: deletelocation ln/LOCATION_NAME
LOCATION_NAME.Examples:
deletelocation ln/Singapore deletes the location Singapore.WARNING
These commands are responsible for general system operations.
helpShows a message explaining how to access the help page.
Figure 11. help command example.
Format: help
sortSorts all attractions and itineraries in Maplet based on the specified prefix.
Format: sort PREFIX
PREFIX.PREFIX can be one of the following:
n/ : Sorts attractions and itineraries in alphabetical order of names (A to Z)p/ : Sorts attractions in descending order of priority (High to Low),
and itineraries in descending order of their cumulative attractions' prioritypr/ : Sorts attractions in ascending order of price (Cheapest to Most Expensive),
and itineraries in ascending order of their cumulative attractions' priceExamples:
sort n/ sorts all attractions and itineraries in alphabetical order of names (A to Z)sort p/ sorts all attractions and itineraries in based on priority (High to Low)Tip: This command is great for finding which attractions or trip plans are most suitable for you.
exitExits the program.
Format: exit
When exiting Maplet will save your attractions automatically!
Maplet data is saved in the hard disk automatically after any command that changes the data. There is no need to save manually.
Maplet data is saved automatically as a JSON file [JAR file location]/data/maplet.json. Advanced users are welcome to update data directly by editing that data file.
Caution:
If your changes to the data file makes its format invalid, Maplet will discard all data and start with an empty data file at the next run. Hence, it is recommended to take a backup of the file before editing it.
Furthermore, certain edits can cause Maplet to behave in unexpected ways (e.g., if a value entered is outside the acceptable range). Therefore, edit the data file only if you are confident that you can update it correctly.
[coming in v2.0]Details coming soon ...
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 of your previous Maplet home folder.
Q: Why is my command not working? A: Refer to the status message for details! Note that commands keywords are case-sensitive.
preferences.json file created by the application before running the application again.help command (or use the Help menu, or the keyboard shortcut F1) again, the original Help Window will remain minimized, and no new Help Window will appear. The remedy is to manually restore the minimized Help Window.