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.
- 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.