# DataDash – Explore public APIs and datasets [TOC] ## Description DataDash is a simple Product Hunt-like "tool" for searching and discovering the newest datasets and APIs. It provides the ability to up-/downvote entries, and to indicate the quality of a given dataset/API by rating it on a scale of 0 to 5 stars. ## Installation ### On Linux and Mac To install DataDash, follow these steps: #### 1. Clone the repository: ```bash $ git clone https://git.fim.uni-passau.de/padas/24ss-5430-web-and-data-eng/gruppe-3/datadash.git ``` #### 2. Enter the repo: ```bash $ cd datadash ``` #### 3. Install Java JDK 22: Please refer to the installation instructions for your package manager/OS. #### 4. Start the application: ```bash $ ./mvnw spring-boot:run ``` Additional dependencies will be downloaded and managed by maven. ## Deployment ### 1. Follow [installation steps 1-3](#installation). ### 2. _(Optional)_ Remove sample data: Remove [`src/main/resources/data.sql`](src/main/resources/data.sql) to remove the sample data. > **Note:** This will also remove all default categories. ### 3. Package the application: ```bash $ ./mvnw package ``` This will create the `.war` file that you can deploy as you like. ## Usage 1. Open your web browser and navigate to `http://localhost:8080`. 2. Some **dummy data** will be shown (if configured, see [deployment step 2](#2-optional-remove-sample-data)). 3. Add your own datasets and APIs via the **add button** in the top left corner. 4. In the top right you can see the **search toolbar**. Here you can **sort**, input **search terms**, and **filter by categories or type of content** (i.e. dataset or API). 5. For **more information** on a certain dataset just click on it 1. You can differentiate between **API** and **dataset** via the **blue box**. 2. The **user perceived quality** is indicated by the **number and stars** on the left hand side just below the title. 3. You can also **vote** by just **hovering** and then **clicking on the stars**. 4. Right next to the stars the **summary** is displayed. It's a short text describing the main purpose. 5. Below the star rating and summary the **dataset's/API's source** is linked 6. In the next section some metadata regarding the **date of submission**, **category**, **license** and a link to the **Terms of Use** are shown. 7. Next you can see a **full description**. 8. At the very bottom of the page there is a button that will bring you **back to the homepage**. If you want to go back to the **previous page** (e.g. search) you might want to use **your browser's back button**. 9. If you created the entry that you are currently looking at, you will find a **`Delete`** button next to the `Back to main page` button. This will **delete** the entry **without any further confirmation**. ## Used Frameworks/Libraries ### Frontend None, our whole frontend is written in **native HTML, CSS, and JavaScript**. It has been tested on **Firefox 127** and **Chromium 126**. ### Backend We have used the following dependencies: - `spring-boot-starter-web` - `springdoc-openapi-starter-webmvc-ui` - `spring-boot-starter-tomcat` - `spring-boot-starter-test` - `com.h2database`