The Top Five Destination List is a Java Swing application that showcases a curated list of top travel destinations. This project was created whilst learning about the Software Development Life Cycle (SDLC). The application displays destinations with images and descriptions, allowing users to click on each destination to open a related travel website in their default browser. Each destination will display an image, description and provide a link to a related travel website. This project was developed as part of learning about the Software Development Lifecycle (CS250).
There are two versions of this project that you may choose to run. One is the original project, which was created in Java, and the second one is an enhancement created under Enhancement Three: Databases for CS 499 (Computer Science Capstone).
-
Ensure that you have Java (JDK) installed. If not, download it from here.
-
Install the Java Extension Pack in Visual Studio Code.
-
Clone the repository
git clone https://github.com/functionfaiecho/CS-250-Software-Development-Lifecycle-Java-Website- Within
CS-250-Software-Development-Lifecycle-Java-Websiteand the "Basic List View" folder, there is aTopFiveDestinationList.javafile. Click on it, and hit run.
In line with Enhancement Three's database requirement, I created an API that holds a number of destinations, countries, links and descriptions. This API can be found here, and the documentation may be read here. The database related to this FastAPI is in MongoDB.
I chose to use MongoDB for a number of different reasons. Firstly, MongoDB offers schema flexibility. Given that the data related to destinations and countries can vary over time (such as the addition of new destinations or changes in descriptions), MongoDB's dynamic schema allows for easy updates without requiring migrations or major changes to the database structure.
Secondly, MongoDB stores data in a document-oriented format, which aligns well with FastAPI's JSON-based request and response handling. This allows for efficient, seamless data flow between the API and the database without needing to convert data formats extensively.
In addition, FastAPI's asynchronous capabilities work well with MongoDB’s motor driver, which allows for non-blocking database operations. This is particularly useful when the API is handling multiple requests concurrently, ensuring that the user experience remains fast and responsive. MongoDB’s community support and ecosystem make it easier to integrate additional features in the future, should the API need enhancements or new functionalities.
I have also incorporated this API into a Single-Page Application (SPA) that resembles the one created in Java. To run it, ensure that you have Docker installed on your computer, then:
- Navigate to
enhancedjavaas such:
cd EnhancedSite/enhancedjava- Once in the folder, run
docker-compose up --buildThe app will run on localhost:3000.
