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.
-
📂 Clone or fork this repository.
-
Navigate to the root folder.
-
Run the following command to start the project:
docker compose up
-
🖥️ Open your browser and navigate to http://localhost:3000 to view the application.
-
📂 Clone or fork this repository.
-
Navigate to the
backend
folder and run:yarn start
-
In a separate terminal, navigate to the
frontend
folder and run:yarn start
-
🖥️ Open your browser and navigate to http://localhost:3000 to view the application.
- 🛠️ Node.js backend with a connection to an ElasticSearch node.
- 🗃️ Two pre-populated indices:
org
- Collection of organizations. Accessed via http://localhost:8080/orgs.funding
- Collection of funding rounds. Accessed via http://localhost:8080/fundings.
- Endpoint implementations located in
backend/src/index.js
. - Use
yarn start
to start the backend in development mode. - Additional scripts:
yarn test
- Run tests using Jest.yarn format
- Automatically format the codebase using Prettier.
- 🎨 React-based frontend using various charting libraries:
@mui/x-charts
for interactive charts.react-chartjs-2
for advanced chart customization.
- Displays two interactive tables:
OrgTable
for organizations data, with built-in filters and menus for easy data manipulation.FundingTable
for funding data, with similar built-in features for filtering and sorting.
- Includes two interactive charts:
- A pie chart (
FundingChart
) for funding data, allowing you to toggle company visibility by clicking on the legend. - A pillar chart (
CompanySizeChart
) for organizations data.
- A pie chart (
- Predefined npm scripts to streamline development.
- Use
yarn start
to start the production server. - Additional scripts:
yarn build
- Build the production version of the application.yarn test
- Run tests using Jest.yarn format
- Automatically format the codebase using Prettier.
Table View: Shows data tables with interactive filters and menus.
Pie Chart View: Demonstrates how company visibility can be toggled on and off.
The project has a CI pipeline using GitHub Actions. The workflow includes:
- 📂 Checking out the code.
- 📦 Installing dependencies and running tests for both frontend and backend.
- 🎨 Running Prettier for code formatting checks.
- 🐳 Building and running Docker services.
To keep dependencies up to date and secure, the project includes a separate workflow named npm-update.yml that runs automatically:
-
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.
-
Manual Trigger: You can also manually trigger the workflow if needed.
-
Dependency Management:
- 🗑️ Removes existing
yarn.lock
files to ensure a fresh start. - ⬆️ Updates
package.json
files with the latest versions usingnpm-check-updates
. - 📦 Re-generates
yarn.lock
files by reinstalling dependencies with the updated versions.
- 🗑️ Removes existing
-
Vulnerability Scanning: Integrates with Debricked for automated vulnerability scanning of updated dependencies.
-
Automated Commit and Push: If updates are found, the workflow commits the changes and pushes them to the main branch automatically.
The workflow ensures that your project dependencies are always up to date and secure, reducing the manual overhead of managing updates.
- Fork the repository.
- Create a new branch (
git checkout -b feature/your-feature
). - Commit your changes (
git commit -am 'Add new feature'
). - Push to the branch (
git push origin feature/your-feature
). - Create a Pull Request.
This project is licensed under the MIT License.