{"id":22940862,"url":"https://github.com/scottgriv/javascript-api_data_fisher","last_synced_at":"2025-04-01T20:36:54.833Z","repository":{"id":209568612,"uuid":"699158863","full_name":"scottgriv/javascript-api_data_fisher","owner":"scottgriv","description":"The data fisher is a single page web application that calls multiple API endpoints and returns the data in a CSV format.","archived":false,"fork":false,"pushed_at":"2025-01-09T04:46:42.000Z","size":1394,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-28T18:32:32.369Z","etag":null,"topics":["api","api-parser","css","csv","csv-export","html","javascript","papaparse","spa"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/scottgriv.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-10-02T03:44:22.000Z","updated_at":"2025-01-09T04:46:45.000Z","dependencies_parsed_at":"2024-02-16T02:28:05.280Z","dependency_job_id":"27e2d0cb-1ee5-4fc0-bbc6-105744419868","html_url":"https://github.com/scottgriv/javascript-api_data_fisher","commit_stats":null,"previous_names":["scottgriv/js-api_data_fisher","scottgriv/javascript-api_data_fisher"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scottgriv%2Fjavascript-api_data_fisher","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scottgriv%2Fjavascript-api_data_fisher/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scottgriv%2Fjavascript-api_data_fisher/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scottgriv%2Fjavascript-api_data_fisher/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/scottgriv","download_url":"https://codeload.github.com/scottgriv/javascript-api_data_fisher/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246709918,"owners_count":20821297,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","api-parser","css","csv","csv-export","html","javascript","papaparse","spa"],"created_at":"2024-12-14T13:32:51.117Z","updated_at":"2025-04-01T20:36:54.801Z","avatar_url":"https://github.com/scottgriv.png","language":"JavaScript","funding_links":["https://www.buymeacoffee.com/scottgriv"],"categories":[],"sub_categories":[],"readme":"\u003c!-- Begin README --\u003e\n\n\u003cdiv align=\"center\"\u003e\n    \u003ca href=\"https://scottgriv.github.io/javascript-api_data_fisher\" target=\"_blank\"\u003e\n        \u003cimg src=\"./docs/images/icon.png\" width=\"200\" height=\"200\"/\u003e\n    \u003c/a\u003e\n\u003c/div\u003e\n\u003cbr\u003e\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://www.javascript.com/\"\u003e\u003cimg src=\"https://img.shields.io/badge/JavaScript-3.8.3-F7DF1E?style=for-the-badge\u0026logo=javascript\" alt=\"JavaScript Badge\" /\u003e\u003c/a\u003e\n    \u003cbr\u003e\n    \u003ca href=\"https://github.com/scottgriv\"\u003e\u003cimg src=\"https://img.shields.io/badge/github-follow_me-181717?style=for-the-badge\u0026logo=github\u0026color=181717\" alt=\"GitHub Badge\" /\u003e\u003c/a\u003e\n    \u003ca href=\"mailto:scott.grivner@gmail.com\"\u003e\u003cimg src=\"https://img.shields.io/badge/gmail-contact_me-EA4335?style=for-the-badge\u0026logo=gmail\" alt=\"Email Badge\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://www.buymeacoffee.com/scottgriv\"\u003e\u003cimg src=\"https://img.shields.io/badge/buy_me_a_coffee-support_me-FFDD00?style=for-the-badge\u0026logo=buymeacoffee\u0026color=FFDD00\" alt=\"BuyMeACoffee Badge\" /\u003e\u003c/a\u003e\n    \u003cbr\u003e\n    \u003ca href=\"https://prgportfolio.com\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/badge/PRG-Silver Project-C0C0C0?style=for-the-badge\u0026logo=data:image/svg%2bxml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/Pgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDIwMDEwOTA0Ly9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9UUi8yMDAxL1JFQy1TVkctMjAwMTA5MDQvRFREL3N2ZzEwLmR0ZCI+CjxzdmcgdmVyc2lvbj0iMS4wIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiB3aWR0aD0iMjYuMDAwMDAwcHQiIGhlaWdodD0iMzQuMDAwMDAwcHQiIHZpZXdCb3g9IjAgMCAyNi4wMDAwMDAgMzQuMDAwMDAwIgogcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQgbWVldCI+Cgo8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLjAwMDAwMCwzNC4wMDAwMDApIHNjYWxlKDAuMTAwMDAwLC0wLjEwMDAwMCkiCmZpbGw9IiNDMEMwQzAiIHN0cm9rZT0ibm9uZSI+CjxwYXRoIGQ9Ik0xMiAzMjggYy04IC04IC0xMiAtNTEgLTEyIC0xMzUgMCAtMTA5IDIgLTEyNSAxOSAtMTQwIDQyIC0zOCA0OAotNDIgNTkgLTMxIDcgNyAxNyA2IDMxIC0xIDEzIC03IDIxIC04IDIxIC0yIDAgNiAyOCAxMSA2MyAxMyBsNjIgMyAwIDE1MCAwCjE1MCAtMTE1IDMgYy04MSAyIC0xMTkgLTEgLTEyOCAtMTB6IG0xMDIgLTc0IGMtNiAtMzMgLTUgLTM2IDE3IC0zMiAxOCAyIDIzCjggMjEgMjUgLTMgMjQgMTUgNDAgMzAgMjUgMTQgLTE0IC0xNyAtNTkgLTQ4IC02NiAtMjAgLTUgLTIzIC0xMSAtMTggLTMyIDYKLTIxIDMgLTI1IC0xMSAtMjIgLTE2IDIgLTE4IDEzIC0xOCA2NiAxIDc3IDAgNzIgMTggNzIgMTMgMCAxNSAtNyA5IC0zNnoKbTExNiAtMTY5IGMwIC0yMyAtMyAtMjUgLTQ5IC0yNSAtNDAgMCAtNTAgMyAtNTQgMjAgLTMgMTQgLTE0IDIwIC0zMiAyMCAtMTgKMCAtMjkgLTYgLTMyIC0yMCAtNyAtMjUgLTIzIC0yNiAtMjMgLTIgMCAyOSA4IDMyIDEwMiAzMiA4NyAwIDg4IDAgODggLTI1eiIvPgo8L2c+Cjwvc3ZnPgo=\" alt=\"Silver\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n---------------\n\n\u003ch1 align=\"center\"\u003e🎣 API Data Fisher 🐟\u003c/h1\u003e\n\nThe data fisher is a single page web application that calls multiple `API` endpoints and returns the data in a `CSV` format.\n\n\u003cdiv align=\"center\"\u003e\n    \u003cimg src=\"./docs/images/demo.gif\" style=\"width: 50%;\"/\u003e\n    \u003cbr\u003e\n    \u003ci\u003eApplication Preview\u003c/i\u003e\n\u003c/div\u003e\n\n---------------\n\n## Table of Contents\n\n- [Features](#features)\n- [Getting Started](#getting-started)\n    - [Dependencies](#dependencies)\n    - [Configuration](#configuration)\n    - [Installation](#installation)\n    - [Usage](#usage)\n    - [Error Handling](#error-handling)\n    - [Tested With](#tested-with)\n- [What's Inside?](#whats-inside)\n- [Attribution](#attribution)\n- [Resources](#resources)\n- [License](#license)\n- [Credits](#credits)\n\n## Features\n\n- Calls multiple `API` endpoints and returns the data in a `CSV` format.\n- Allows you to specify the groups you want to use to call the `API` endpoints.\n- Allows you to specify the sample groups you want to use to call the `API` endpoints.\n- Allows you to specify the `API` key/credentials and the end point you want to call.\n- Allows you to start and stop the data retrieval process.\n- Allows you to download the data as a `CSV` file.\n\n## Getting Started\n\nBelow are the instructions for getting the data fisher up and running on your local machine.\n\n### Dependencies\n\n- [PapaParse 5.3.0](https://www.papaparse.com/)\n\n### Configuration\n\n- `data/groups.js` - Contains the groups that will be used to call the `API` endpoints.\n   - Update `groupIDs` array with the groups you want to use. This should contain *ALL* the groups you want to use.\n   - Update `groupIDsTest` array with the sample groups you want to use. This should contain *ONLY* the handful of sample groups you want to use.\n- `config/config.js` - Contains the configuration for the data fisher.\n   - Update `config` object with your `API` key/credentials and the end point you want to call.\n   - Update `useTestGroups` to `true` if you want to use the sample groups array `groupIDsTest` in `data/groups.js`. Otherwise, set it to `false` to use the groups array `groupIDs` in `data/groups.js`.\n\n### Installation\n\n1. Clone the repository.\n2. Open the `data_fisher.html` web page in a browser.\n3. Click on *Start Fishing for Data* button to start the data retrieval process.\n4. When the data retrieval process is complete, the data will be downloaded as a `CSV` file in your browser.\n\n\u003e [!IMPORTANT]\n\u003e This application was built with the intention of being run locally on your machine (and any machine since most browsers are supported being that it is built with `HTML`, `CSS`, and `JavaScript`). If you want to deploy this application to a server, you will need to make some changes to the code to allow for cross-origin resource sharing (CORS) and to allow for the download of the `CSV` file.\n\n### Usage\n\n1. Open the `data_fisher.html` web page in a browser.\n2. Click on *Start Fishing for Data* button to start the data retrieval process.\n3. When the data retrieval process is complete, the data will be downloaded as a `CSV` file in your browser.\n4. Click on *Stop Fishing for Data* button to stop the data retrieval process.\n    - Note: The data retrieval process will stop automatically when all the `API` endpoints have been called and you will not be able to download the data as a `CSV` file until you start the data retrieval process again.\n\n### Error Handling\n\n- If an error occurs while calling an `API` endpoint, the error will be logged in the console and displayed in the *Errors* section of the web page.\n- Troubleshoot the error and refresh the page to try the data retrieval process again.\n\n### Tested With\n- [Chrome 117.0.5938.92](https://www.google.com/chrome/)\n\n## What's Inside?\n\n- `data_fisher.html` - The main web page that contains the data fisher.\n- `js/app.js` - The main JavaScript file that contains the logic for the data fisher.\n- `config/config.js` - The configuration file that contains the configuration for the data fisher.\n- `data/groups.js` - The file that contains the groups that will be used to call the `API` endpoints.\n- `images/` - The folder that contains the images used in the data fisher.\n- `css/styles.css` - The CSS file that contains the styles for the data fisher.\n\n## Attribution\nAll emojis designed by [OpenMoji](https://openmoji.org/) – the open-source emoji and icon project. License: [CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/#)\n\n## Resources\n\n- [JavaScript 3.8.3](https://www.javascript.com/) - `JavaScript` is a lightweight, interpreted, object-oriented language with first-class functions, and is best known as the scripting language for Web pages, but it's used in many non-browser environments as well.\n- [PapaParse 5.3.0](https://www.papaparse.com/) - Papa Parse is a powerful, in-browser CSV (Comma-Separated Values) parser for JavaScript. It's designed to handle various types of CSV data efficiently and provides a simple interface for parsing CSV files or strings in the client-side environment. Papa Parse is widely used in web applications to read and process CSV files, especially when dealing with large datasets or files.\n- [OpenMoji](https://openmoji.org/) - OpenMoji is the open-source emoji and icon project. License: [CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/#)\n- [JavaScript Documentation](https://developer.mozilla.org/en-US/docs/Web/JavaScript) - `JavaScript` is a lightweight, interpreted, object-oriented language with first-class functions, and is best known as the scripting language for Web pages, but it's used in many non-browser environments as well.\n- [HTML Documentation](https://developer.mozilla.org/en-US/docs/Web/HTML) - `HTML` is the language for describing the structure of Web pages.\n- [CSS Documentation](https://developer.mozilla.org/en-US/docs/Web/CSS) - `CSS` is a language that describes the style of an `HTML` document.\n- [Visual Studio Documentation](https://docs.microsoft.com/en-us/visualstudio/) - Visual Studio is an integrated development environment (IDE) from Microsoft. It is used to develop computer programs, as well as websites, web apps, web services and mobile apps.\n- [Chrome Developer Tools Documentation](https://developer.chrome.com/docs/devtools/) - Chrome DevTools is a set of web developer tools built directly into the Google Chrome browser. DevTools can help you edit pages on-the-fly and diagnose problems quickly, which ultimately helps you build better websites, faster.\n- [Google Chrome Documentation](https://developers.google.com/web/tools/chrome-devtools) - Google Chrome is a cross-platform web browser developed by Google. It was first released in 2008 for Microsoft Windows, and was later ported to Linux, macOS, iOS, and Android.\n\n## License\n\nThis project is released under the terms of the **MIT License**, which permits use, modification, and distribution of the code, subject to the conditions outlined in the license.\n- The [MIT License](https://choosealicense.com/licenses/mit/) provides certain freedoms while preserving rights of attribution to the original creators.\n- For more details, see the [LICENSE](LICENSE) file in this repository. in this repository.\n\n## Credits\n\n**Author:** [Scott Grivner](https://github.com/scottgriv) \u003cbr\u003e\n**Email:** [scott.grivner@gmail.com](mailto:scott.grivner@gmail.com) \u003cbr\u003e\n**Website:** [scottgrivner.dev](https://www.scottgrivner.dev) \u003cbr\u003e\n**Reference:** [Main Branch](https://github.com/scottgriv/javascript-api_data_fisher) \u003cbr\u003e\n\n---------------\n\n\u003cdiv align=\"center\"\u003e\n    \u003ca href=\"https://www.scottgrivner.dev\" target=\"_blank\"\u003e\n        \u003cimg src=\"./docs/images/footer.png\" width=\"100\" height=\"100\"/\u003e\n    \u003c/a\u003e\n\u003c/div\u003e\n\n\u003c!-- End README --\u003e","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscottgriv%2Fjavascript-api_data_fisher","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fscottgriv%2Fjavascript-api_data_fisher","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscottgriv%2Fjavascript-api_data_fisher/lists"}