salish-sea / acartia

Open source web3 code underlying the Acartia data cooperative for sharing animal location data in real time
https://acartia.io
MIT License
5 stars 4 forks source link
cooperative data ipfs open opendata-api orbitdb orbitdb-stores

Acartia: A decentralized data cooperative for sharing marine animal locations in real time

Let’s work together to monitor and map marine wildlife -- from plankton to orcas -- within the Salish Sea and across coastal Cascadia, the range of endangered Southern Resident killer whales.

Acartia

This is the public repository for the Acartia data cooperative. Acartia is a decentralised and communitarian project aimed at pooling community science data in support of (killer) whale conservation first and ecosystem monitoring second. We welcome your help designing and developing this open source code that demonstrates the ecological, scientific, and societal advantages of web3 technologies (see our contributing guidance).

Phase 1 (2020-22) developed a working prototype of Acartia, a distributed open data cooperative sharing marine animal location data in real time across the range of the endangered orcas (from California to Alaska, USA).

Phase 2 (2023-24) aims to add features to the prototype and diversify both the data providers and end users in the U.S.

Phase 3 (>2024) will aspire to share data across the US-Canada border and integrate with other applications to enhance regional ecosystem understanding and management for marine conservation.

For project context and updates, don't miss the Acartia wiki. There you will also find additional information for design-UXers, open source developers, devops leads, and system administrators.

SSEMMI

Salish Sea Ecosystem Monitoring and Modeling Infrastructure

Acartia is part of a transboundary (U.S./Canada) effort to build open infrastructure to understand, monitor, model, and conserve the marine ecosystem known as the Salish Sea. SSEMMI was initially proposed by members of the Puget Sound Ecosystem Monitoring Program's Marine Mammal Work Group (PSEMP/MMWG).

NOTE: development is active on a 2023 fork of this repo at the Acartia repository. For project context and updates, don't miss the Acartia wiki. There you will also find additional information for design-UXers, open source developers, devops leads, and system administrators.


Installation and running locally

Install all dependencies and packages of the backend


$ npm install (or npm ci)


Install all dependencies and packages of the front-end


$ cd src/client && npm install


Once dependencies of both "ends" have been installed you can run test the application on a local server by doing the following:


$ npm run start

or

$ npm run dev

Use this within the root directory to start the backend activity of the server as well as the database.

Note that if you were to use "npm run dev" it triggers a hotfix or a live reload if changes were to be made to the code.


This will start the front-end build and serving and a localhost port will be generated for local development use.


$ cd src/client && npm run serve

Note that the "cd src/client" script is only used if you are in the main directory.


API

Below are the sightings API endpoints that can be used to create and consume open access data provided by the cooperative. Before using this API, you are required to create an account and generate an API key on the Acartia Project Dashboard. Please also abide by the Acartia community guidelines and Creative Commons license governing these animal location data.

If you are a data provider or end user, we can offer you more detailed information about how to contribute data to or integrate your application with the Acartia cooperative. If you are a developer, we invite you to learn how to contribute to the Acartia open source codebase.


Sightings

Contribute sightings

Back to top

POST https://acartia.io/api/v1/sightings

Parameters - Parameter

Name Type Description
access_token String User access_token.

Success response

Success response - Success 200

Name Type Description
Entry Object of sighting.

Error response

Error response - Error 4xx

Name Type Description
400 Invalid input.

Delete specific sightings

Back to top

DELETE https://acartia.io/api/v1/sightings/:id

Parameters - Parameter

Name Type Description
access_token String User access_token.

Success response

Success response - Success 200

Name Type Description
200 Object Deleted sighting entry.

Retrieve current sightings

Back to top

GET https://acartia.io/api/v1/sightings/current

Success response

Success response - Success 200

Name Type Description
List Object of sightings.

Retrieve sightings marked as trusted

Back to top

GET https://acartia.io/api/v1/sightings/trusted

Parameters - Parameter

Name Type Description
access_token String User access_token.

Success response

Success response - Success 200

Name Type Description
Sightings Object with trusted source.

Retrieve specific sightings

Back to top

GET https://acartia.io/api/v1/sightings/:id

Parameters - Parameter

Name Type Description
access_token String User access_token.

Success response

Success response - Success 200

Name Type Description
Sighting Object based on id.

A complete version of the API documentation can be found in DOCS.md.

Direct Interactions With OrbitDB

The following is a link to the github repository of Orbit DB. There you can find the API documentation to the docs type Orbit DB database which is used with SSEMMI/Acartia, along with the full documentation of the database.

https://github.com/orbitdb/orbit-db/blob/master/API.md#orbitdbdocsnameaddress-options