{"id":19440592,"url":"https://github.com/kitparl/angular-flask-dashboard","last_synced_at":"2026-04-09T02:31:08.735Z","repository":{"id":237499606,"uuid":"773364525","full_name":"kitparl/angular-flask-dashboard","owner":"kitparl","description":"Basic Visualization Dashboard","archived":false,"fork":false,"pushed_at":"2024-10-09T13:58:36.000Z","size":323,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-28T00:37:23.889Z","etag":null,"topics":["angular","d3-js","flask","mysql","python","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kitparl.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2024-03-17T13:21:55.000Z","updated_at":"2024-10-10T08:41:48.000Z","dependencies_parsed_at":"2024-05-02T08:43:49.283Z","dependency_job_id":"db058cd7-2342-4e5c-b617-ee3116132223","html_url":"https://github.com/kitparl/angular-flask-dashboard","commit_stats":null,"previous_names":["kitparl/angular-flask-dashboard"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/kitparl/angular-flask-dashboard","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kitparl%2Fangular-flask-dashboard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kitparl%2Fangular-flask-dashboard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kitparl%2Fangular-flask-dashboard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kitparl%2Fangular-flask-dashboard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kitparl","download_url":"https://codeload.github.com/kitparl/angular-flask-dashboard/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kitparl%2Fangular-flask-dashboard/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31582561,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-08T14:31:17.711Z","status":"online","status_checked_at":"2026-04-09T02:00:06.848Z","response_time":112,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["angular","d3-js","flask","mysql","python","typescript"],"created_at":"2024-11-10T15:29:46.304Z","updated_at":"2026-04-09T02:31:08.721Z","avatar_url":"https://github.com/kitparl.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Visualization Dashboard REST API\n\n## Overview\nWelcome to the **Visualization Dashboard REST API**, a seamless basic integration of Angular (v9.1.11) for the frontend and Flask (v2.3.2) for the backend, with MySQL database support. This API provides powerful data visualization solutions to enable users to gain actionable insights and make informed decisions.\n\n## Assignment: Visualization Dashboard Assignment\n\nThis project is part of a **self-learning initiative** aimed at enhancing my skills in different technologies, like python, flask.\n\n## API Endpoints\n\n### 1. End Year Filter\nFetch data filtered by the given end year.\n\n- **URL**: `/dashboard/end-year/{value}`\n- **Method**: `GET`\n- **URL Path Variable**:  \n  - `value` = [integer]\n  \n- **Success Response**:\n  - **Code**: `200 OK`\n  - **Content**: Array of arrays `[[..], [..],[..]]`\n  \n- **Error Response**:\n  - **Code**: `404 NOT FOUND`\n  - **Content**:  \n    ```json\n    {\n      \"timestamp\": \"DATETIMESTAMP\", \n      \"message\": \"No data found with endyear: [value]\", \n      \"details\": \"uri=/dashboard/end-year\"\n    }\n    ```\n    \n- **Sample Call**:\n    ```javascript\n    fetch('https://localhost:5000/dashboard/end-year/2023')\n    .then(response =\u003e response.json())\n    .then(data =\u003e { console.log(data); })\n    .catch(error =\u003e { console.error(error); });\n    ```\n\n---\n\n### 2. Topic Filter\nFetch data filtered by a specific topic keyword.\n\n- **URL**: `/dashboard/topic/?keyword={value}`\n- **Method**: `GET`\n- **URL Params**:  \n  - `keyword` = [string]\n  \n- **Success Response**:\n  - **Code**: `200 OK`\n  - **Content**: Array of objects `[{}, {}, {}]`\n  \n- **Error Response**:\n  - **Code**: `404 NOT FOUND`\n  - **Content**:  \n    ```json\n    {\n      \"timestamp\": \"DATETIMESTAMP\", \n      \"message\": \"No data found with filter: [value]\", \n      \"details\": \"uri=/dashboard/topic\"\n    }\n    ```\n    \n- **Sample Call**:\n    ```javascript\n    fetch('https://localhost:5000/dashboard/topic?keyword=travel')\n    .then(response =\u003e response.json())\n    .then(data =\u003e { console.log(data); })\n    .catch(error =\u003e { console.error(error); });\n    ```\n\n---\n\n### 3. Sector Filter\nFetch data filtered by a specific sector keyword.\n\n- **URL**: `/dashboard/sector/?keyword={value}`\n- **Method**: `GET`\n- **URL Params**:  \n  - `keyword` = [string]\n\n- **Success Response**:\n  - **Code**: `200 OK`\n  - **Content**: Array of objects `[{}, {}, {}]`\n\n- **Error Response**:\n  - **Code**: `404 NOT FOUND`\n  - **Content**:  \n    ```json\n    {\n      \"timestamp\": \"DATETIMESTAMP\", \n      \"message\": \"No data found with sector: [value]\", \n      \"details\": \"uri=/dashboard/sector\"\n    }\n    ```\n    \n- **Sample Call**:\n    ```javascript\n    fetch('https://localhost:5000/dashboard/sector?keyword=Pharmaceuticals')\n    .then(response =\u003e response.json())\n    .then(data =\u003e { console.log(data); })\n    .catch(error =\u003e { console.error(error); });\n    ```\n\n---\n\n### 4. Region Filter\nFetch data filtered by a specific region keyword.\n\n- **URL**: `/dashboard/region?keyword={value}`\n- **Method**: `GET`\n- **URL Params**:  \n  - `keyword` = [string]\n\n- **Success Response**:\n  - **Code**: `200 OK`\n  - **Content**: Array of objects `[{}, {}, {}]`\n\n- **Error Response**:\n  - **Code**: `404 NOT FOUND`\n  - **Content**:  \n    ```json\n    {\n      \"timestamp\": \"DATETIMESTAMP\", \n      \"message\": \"No data found with region: [value]\", \n      \"details\": \"uri=/dashboard/region\"\n    }\n    ```\n    \n- **Sample Call**:\n    ```javascript\n    fetch('https://localhost:5000/dashboard/region?keyword=Asia')\n    .then(response =\u003e response.json())\n    .then(data =\u003e { console.log(data); })\n    .catch(error =\u003e { console.error(error); });\n    ```\n\n---\n\n### 5. Pestle Filter\nFetch data filtered by a specific PESTLE keyword.\n\n- **URL**: `/dashboard/pestle?keyword={value}`\n- **Method**: `GET`\n- **URL Params**:  \n  - `keyword` = [string]\n\n- **Success Response**:\n  - **Code**: `200 OK`\n  - **Content**: Array of objects `[{}, {}, {}]`\n\n- **Error Response**:\n  - **Code**: `404 NOT FOUND`\n  - **Content**:  \n    ```json\n    {\n      \"timestamp\": \"DATETIMESTAMP\", \n      \"message\": \"No data found with pestle: [value]\", \n      \"details\": \"uri=/dashboard/pestle\"\n    }\n    ```\n    \n- **Sample Call**:\n    ```javascript\n    fetch('https://localhost:5000/dashboard/pestle?keyword=Healthcare')\n    .then(response =\u003e response.json())\n    .then(data =\u003e { console.log(data); })\n    .catch(error =\u003e { console.error(error); });\n    ```\n\n---\n\n### 6. Source Filter\nFetch data filtered by a specific source keyword.\n\n- **URL**: `/dashboard/source?keyword={value}`\n- **Method**: `GET`\n- **URL Params**:  \n  - `keyword` = [string]\n\n- **Success Response**:\n  - **Code**: `200 OK`\n  - **Content**: Array of objects `[{}, {}, {}]`\n\n- **Error Response**:\n  - **Code**: `404 NOT FOUND`\n  - **Content**:  \n    ```json\n    {\n      \"timestamp\": \"DATETIMESTAMP\", \n      \"message\": \"No data found with source: [value]\", \n      \"details\": \"uri=/dashboard/source\"\n    }\n    ```\n    \n- **Sample Call**:\n    ```javascript\n    fetch('https://localhost:5000/dashboard/source?keyword=infosysblogs')\n    .then(response =\u003e response.json())\n    .then(data =\u003e { console.log(data); })\n    .catch(error =\u003e { console.error(error); });\n    ```\n\n---\n\n### 7. SWOT Filter\nFetch data filtered by a specific SWOT keyword.\n\n- **URL**: `/dashboard/swot/keyword={value}`\n- **Method**: `GET`\n- **URL Params**:  \n  - `keyword` = [integer]\n\n- **Success Response**:\n  - **Code**: `200 OK`\n  - **Content**: Array of objects `[{}, {}, {}]`\n\n- **Error Response**:\n  - **Code**: `404 NOT FOUND`\n  - **Content**:  \n    ```json\n    {\n      \"timestamp\": \"DATETIMESTAMP\", \n      \"message\": \"No data found with swot: [value]\", \n      \"details\": \"uri=/dashboard/swot\"\n    }\n    ```\n    \n- **Sample Call**:\n    ```javascript\n    fetch('https://localhost:5000/dashboard/swot?keyword=Strength')\n    .then(response =\u003e response.json())\n    .then(data =\u003e { console.log(data); })\n    .catch(error =\u003e { console.error(error); });\n    ```\n\n---\n\n### 8. Country Filter\nFetch data filtered by a specific country keyword.\n\n- **URL**: `/dashboard/country?keyword={value}`\n- **Method**: `GET`\n- **URL Params**:  \n  - `keyword` = [integer]\n\n- **Success Response**:\n  - **Code**: `200 OK`\n  - **Content**: Array of objects `[{}, {}, {}]`\n\n- **Error Response**:\n  - **Code**: `404 NOT FOUND`\n  - **Content**:  \n    ```json\n    {\n      \"timestamp\": \"DATETIMESTAMP\", \n      \"message\": \"No data found with country: [value]\", \n      \"details\": \"uri=/dashboard/country\"\n    }\n    ```\n    \n- **Sample Call**:\n    ```javascript\n    fetch('https://localhost:5000/dashboard/country?keyword=India')\n    .then(response =\u003e response.json())\n    .then(data =\u003e { console.log(data); })\n    .catch(error =\u003e { console.error(error); });\n    ```\n\n---\n\n### 9. City Filter\nFetch data filtered by a specific city keyword.\n\n- **URL**: `/dashboard/city?keyword={value}`\n- **Method**: `GET`\n- **URL Params**:  \n  - `keyword` = [string]\n\n- **Success Response**:\n  - **Code**: `200 OK`\n  - **Content**: Array of objects `[{}, {}, {}]`\n\n- **Error Response**:\n  - **Code**: `404 NOT FOUND`\n  - **Content**:  \n    ```json\n    {\n      \"timestamp\": \"DATETIMESTAMP\", \n      \"message\": \"No data found with city: [value]\", \n      \"details\": \"uri=/dashboard/city\"\n    }\n    ```\n    \n- **Sample Call**:\n    ```javascript\n    fetch('https://localhost:5000/dashboard/city?keyword=lucknow')\n    .then(response =\u003e response.json())\n    .then(data =\u003e { console.log(data); })\n    .catch(error =\u003e { console.error(error); });\n    ```\n\n---\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkitparl%2Fangular-flask-dashboard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkitparl%2Fangular-flask-dashboard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkitparl%2Fangular-flask-dashboard/lists"}