{"id":18985514,"url":"https://github.com/jagoda11/elastic-vision","last_synced_at":"2026-04-09T16:01:14.752Z","repository":{"id":237812046,"uuid":"795282481","full_name":"Jagoda11/Elastic-Vision","owner":"Jagoda11","description":"This repository contains a full-stack application designed to explore data from ElasticSearch🧐indices and visualize it using charts and graphs. The backend is built using Node.js and the frontend is powered🚀 by React.","archived":false,"fork":false,"pushed_at":"2025-02-10T22:43:07.000Z","size":3542,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-13T11:12:59.505Z","etag":null,"topics":["backend","chartjs","dashboard-development","data-analysis","data-visualization","docker","elasticsearch","frontend","fullstack","javascript","material-ui","monorepo","mui-x","node","pie-chart","react","restful-api","tables"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/Jagoda11.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},"funding":{"github":"Jagoda11"}},"created_at":"2024-05-03T00:18:29.000Z","updated_at":"2025-02-10T22:43:10.000Z","dependencies_parsed_at":"2024-11-08T16:34:16.997Z","dependency_job_id":"9efb1b1e-134c-40af-a05a-c63841e9f333","html_url":"https://github.com/Jagoda11/Elastic-Vision","commit_stats":null,"previous_names":["jagoda11/motherbrain","jagoda11/elastic-vision"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jagoda11%2FElastic-Vision","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jagoda11%2FElastic-Vision/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jagoda11%2FElastic-Vision/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jagoda11%2FElastic-Vision/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Jagoda11","download_url":"https://codeload.github.com/Jagoda11/Elastic-Vision/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239994005,"owners_count":19730780,"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":["backend","chartjs","dashboard-development","data-analysis","data-visualization","docker","elasticsearch","frontend","fullstack","javascript","material-ui","monorepo","mui-x","node","pie-chart","react","restful-api","tables"],"created_at":"2024-11-08T16:26:56.550Z","updated_at":"2025-11-11T16:03:31.640Z","avatar_url":"https://github.com/Jagoda11.png","language":"JavaScript","funding_links":["https://github.com/sponsors/Jagoda11"],"categories":[],"sub_categories":[],"readme":"# 🚀 Elastisearch Full Stack Challenge\n\n![Open Issues](https://img.shields.io/github/issues/Jagoda11/Elastic-Vision?style=flat-square\u0026color=orange)\n![Last Commit](https://img.shields.io/github/last-commit/Jagoda11/Elastic-Vision/main?style=flat-square\u0026color=blue)\n![Build Status](https://github.com/Jagoda11/Elastic-Vision/actions/workflows/main.yml/badge.svg)\n![Build Status](https://github.com/Jagoda11/Elastic-Vision/actions/workflows/npm-update.yml/badge.svg?branch=main)\n\n\n\n## 📝 Project Overview\n\nThis repository contains a full-stack application designed to explore data from ElasticSearch indices and visualize it using charts and graphs. The backend is built using Node.js and the frontend is powered by React.\n\n## 🛠️ Getting Started\n\n### Prerequisites\n\n- 🐳 [Docker](https://www.docker.com/) installed (recommended)\n- Alternatively, ensure 🌍 [Node.js](https://nodejs.org/) and 📦 [Yarn](https://yarnpkg.com/) are installed locally.\n\n### Running the Project\n\n#### Using Docker (Recommended)\n\n1. 📂 Clone or fork this repository.\n2. Navigate to the root folder.\n3. Run the following command to start the project:\n\n   ```bash\n   docker compose up\n   ```\n\n4. 🖥️ Open your browser and navigate to [http://localhost:3000](http://localhost:3000) to view the application.\n\n#### Using Node.js and Yarn (Alternative)\n\n1. 📂 Clone or fork this repository.\n2. Navigate to the `backend` folder and run:\n\n   ```bash\n   yarn start\n   ```\n\n3. In a separate terminal, navigate to the `frontend` folder and run:\n\n   ```bash\n   yarn start\n   ```\n\n4. 🖥️ Open your browser and navigate to [http://localhost:3000](http://localhost:3000) to view the application.\n\n## 📊 Project Details\n\n### Backend\n\n- 🛠️ Node.js backend with a connection to an ElasticSearch node.\n- 🗃️ Two pre-populated indices:\n  - `org` - Collection of organizations. Accessed via [http://localhost:8080/orgs](http://localhost:8080/orgs).\n  - `funding` - Collection of funding rounds. Accessed via [http://localhost:8080/fundings](http://localhost:8080/fundings).\n- Endpoint implementations located in `backend/src/index.js`.\n- Use `yarn start` to start the backend in development mode.\n- Additional scripts:\n  - `yarn test` - Run tests using Jest.\n  - `yarn format` - Automatically format the codebase using Prettier.\n\n### Frontend\n\n- 🎨 React-based frontend using various charting libraries:\n  - `@mui/x-charts` for interactive charts.\n  - `react-chartjs-2` for advanced chart customization.\n- Displays two interactive tables:\n  - `OrgTable` for organizations data, with built-in filters and menus for easy data manipulation.\n  - `FundingTable` for funding data, with similar built-in features for filtering and sorting.\n- Includes two interactive charts:\n  - A pie chart (`FundingChart`) for funding data, allowing you to toggle company visibility by clicking on the legend.\n  - A pillar chart (`CompanySizeChart`) for organizations data.\n- Predefined npm scripts to streamline development.\n- Use `yarn start` to start the production server.\n- Additional scripts:\n  - `yarn build` - Build the production version of the application.\n  - `yarn test` - Run tests using Jest.\n  - `yarn format` - Automatically format the codebase using Prettier.\n\n### Dashboard Screenshots\n\n**Table View:** Shows data tables with interactive filters and menus.\n\n![Dashboard Table](assets/Dashboard-table.png)\n\n**Pie Chart View:** Demonstrates how company visibility can be toggled on and off.\n\n![Funding Pie Chart](assets/Funding-pie-chart.png)\n\n## ✅ Continuous Integration\n\nThe project has a CI pipeline using GitHub Actions. The workflow includes:\n\n1. 📂 Checking out the code.\n2. 📦 Installing dependencies and running tests for both frontend and backend.\n3. 🎨 Running Prettier for code formatting checks.\n4. 🐳 Building and running Docker services.\n\n### Dependency Update Workflow\n\nTo keep dependencies up to date and secure, the project includes a separate workflow named **npm-update.yml** that runs automatically:\n\n- **Scheduled Updates**: This workflow runs daily at 2 AM UTC to check for the latest updates of npm dependencies in both the frontend and backend projects.\n- **Manual Trigger**: You can also manually trigger the workflow if needed.\n\n- **Dependency Management**:\n  - 🗑️ Removes existing `yarn.lock` files to ensure a fresh start.\n  - ⬆️ Updates `package.json` files with the latest versions using `npm-check-updates`.\n  - 📦 Re-generates `yarn.lock` files by reinstalling dependencies with the updated versions.\n\n- **Vulnerability Scanning**: Integrates with Debricked for automated vulnerability scanning of updated dependencies.\n\n- **Automated Commit and Push**: If updates are found, the workflow commits the changes and pushes them to the main branch automatically.\n\nThe workflow ensures that your project dependencies are always up to date and secure, reducing the manual overhead of managing updates.\n\n\n## 🤝 Contribution Guidelines\n\n1. Fork the repository.\n2. Create a new branch (`git checkout -b feature/your-feature`).\n3. Commit your changes (`git commit -am 'Add new feature'`).\n4. Push to the branch (`git push origin feature/your-feature`).\n5. Create a Pull Request.\n\n## 📜 License\n\nThis project is licensed under the MIT License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjagoda11%2Felastic-vision","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjagoda11%2Felastic-vision","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjagoda11%2Felastic-vision/lists"}