Project: Tourist-Book
Tourist-Book is a desktop tourist attractions application used for teaching Software Engineering principles. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 6 kLoC.
Code contributed: [Functional code] [Test code]
Enhancement Added: Display real-time Weather of Singapore
External behavior
Start of Extract [from: User Guide]
Displaying Weather of Singapore
*Display Weather of Singapore by typing in Command Line weather
Format: weather
End of Extract
Justification
Show the current weather of Singapore for tourist’s convenience.
Implementation
For clicking the 'Weather' tab in the MenuBar
, or calling the command weather
, the handleWeather
function is called, by FXML, on MainWindow.java
.
@FXML public void handleWeather() { logger.info("Open a weather forecast for today on BrowerPanel."); browserPanel.loadPage("https://www.accuweather.com/en/sg/singapore/300597/hourly-weather-forecast/300597"); }
Enhancement Proposed: Add command Goto
External behavior
Start of Extract [from: User Guide]
Display the location of the place
*Display the location of the place in Google Map by typing in Command 'goto' followed by the INDEX of the place
Format: goto
+ INDEX (must be positive)
Examples:
* goto 1
End of Extract
Justification
Show the location on Google Map.
Feature Modified: Update the colors for tags
Justification
Add more pallete colors for tags, and documentate the Hex colors for easy maintenance.
Implementation
Edit the color
array in PlaceCard
to display clearer colors and maintain.
/** * Names of the hex values in `colors` array: * Format: `HEX VALUE` : `NAME` (`NAME` would be replaced with a description of the color if not exists) * * 800000 : Maroon * FF0000 : Red * 800080 : Purple * 008000 : Green * 808000 : Olive * FFFF00 : Yellow * 000080 : Navy * D300D3 : A shade of magenta * FB6542 : A medium light shade of red-orange * CC3D00 : A mediam dark shade of red-orange * D55448 : A shade of red * 063852 : A dark shade of cyan-blue * 2D4262 : A medium dark shade of cyan-blue * 07575B : A dark shade of cyan */ private static String[] colors = {"#800000", "#FF0000", "#800080", "#008000", "#808000", "#FFFF00", "#000080", "#D300D3", "#FB6542", "#CC3D00", "#D55448", "#063852", "#2D4262", "#07575B"};
Feature Modified: Open the website of location when selected
Justification
Open the website of the location on BrowserPanel
when a location is selected.
Implementation
Open the website of the location by getWebsite()
if the website is available, else search the location, by name, on Google.
private void loadPlacePage(ReadOnlyPlace place) { if (place.getWebsite().toString().contains("www.-.com")) loadPage(GOOGLE_SEARCH_URL_PREFIX + place.getName().fullName.replaceAll(" ", "+") + GOOGLE_SEARCH_URL_SUFFIX); else loadPage(place.getWebsite().toString().replaceAll(" ", "+")); }