This project renders spatial geometry defined by GeoJSON assets and Web3 enriched STAC APIs. By default, The EASIER Data Initiative has opened up a STAC API with Landsat 9 metadata loaded. The motivation behind this project is to showcase how decentralized technology such as IPFS and Filecoin can cultivate an open ecosystem for data exploration and management. Coupled with other tools that complement this dashboard such as the chrome extension and IPFS-STAC, the suite of tools offer effortless integration to Python programs and other applications within the IPFS ecosystem.
⚠️ To achieve full functionality of this project, proper configuration of an IPFS Node and the complementary chrome extension is required.
Name | Description |
---|---|
Kubo RPC API | Documentation for the API opened by IPFS nodes running Kubo |
IPFS Desktop Installation | Installation for IPFS Desktop, to easily spin up an IPFS node |
Web3 Geo Extension | Repository of complementary dashboard chrome extension (REQUIRED) |
Web3 Dashboard API | Repository of API that serves IPFS metadata |
VEDA Integration | Walkthrough of exporting NASA VEDA Frontmatter |
In order to properly fetch metadata from IPFS such as the number of nodes that have a CID pinned as well as other interactions, you must have a properly configured IPFS node. To accept requests from the dashboard, update the Access-Control-Allow-Origin
array under HTTPHeaders
under API
. For local development, add http://127.0.0.1
, alternatively, you can accept requests from everywhere with *
(this poses a security risk, do it at your own discretion)
Once you've cloned the project and installed dependencies with npm install
(or pnpm install
or yarn
), start a development server:
npm run dev
# or start the server and open the app in a new browser tab
npm run dev -- --open
To create a production version of your app:
npm run build
You can preview the production build with npm run preview
.
To deploy your app, you may need to install an adapter for your target environment.
-
Option 1
- 🍴 Fork this repo!
-
Option 2
- 👯 Clone to your local machine using:
https://github.com/easierdata/web3-geo-dashboard.git
- 👯 Clone to your local machine using:
- HACK AWAY! 🔨🔨🔨
- 🔃 Create a new pull request using:
<a href="https://github.com/easierdata/web3-geo-dashboard/compare" rel="noopener noreferrer" target="_blank">
https://github.com/easierdata/web3-geo-dashboard/compare</a>
.
When running npm install
the prepare
script runs to install husky pre-commit hooks into ./husky/pre-commit
. Currently the hook automatically formats the code using prettier, then checks the code for linting issues. If there is a linting issue, it doesn't try to fix it. Instead, the commit fails with an error message.
If you want to make sure the pre-commit hooks are working, do the following
- Stage some badly linted/formatted code
- run
npx lint-staged
If there were only formatting issues, the hook will format your code and silently add it to the commit. If there were linting issues, the commit should fail.
Tests are located in /test
and are using Vitetest. Please write at least one test per component. This way, we can do broad refactorings and find out very quickly what is broken.
npm run test
npm run coverage
For the optimal user experience, please download and configure the complementary chrome extension and configure it to point to your node.