Git Product home page Git Product logo

darwin's People

Contributors

shintoo avatar

Stargazers

 avatar

Watchers

 avatar  avatar

darwin's Issues

Add node button to display next most specific ancestor for each child node

E.g. if the tree is:

  • Birds (aves)
    • Blue jay (cyanocitta cristata)
    • Common kingfisher (alcedo atthis)

Then there should be a button for the class Aves node that expands the tree into:

  • Birds (aves)
    • Perching birds (passeriformes)
      • Blue jay (cyanocitta cristata)
    • Kingfishers and allies (coraciiformes)
      • Common kingfisher (alcedo atthis)

By doing something like the following:

function expand(node):
  for each child of node:
    addNode(child.ancestors.indexOf(node.id) - 1)) # Add the next lowest ancestor (e.g. pass. or cora.)

Allow arbitrary iNat observation queries

This will allow users of shintoo/darwin-browser-extension to import any arbitrary iNaturalist observation search into Darwin.

Could be done by just adding a route that passes the query straight to the iNat fetch

For example if you are on this page, which is the iNaturalist search results for observations of birds made in the past year at Mead Botanical Gardens, Darwin's iNat query route should be able to take the same URL params as iNaturalist is and fetch the same observations. In short https://www.inaturalist.org/observations?foo=3&bar=5... should map to https://darwintree.app/b/iq?foo=1&bar=5...

Use observation images for iNat trees

Instead of using the taxon image as per usual, use the 'square' version of the observation's actual image when loading a tree using the iNat button (/inat/[user]-[count] route)

Add Annotations

The user should be able to annotate nodes (maybe branches?)

Or, the user can simply annotate the canvas, and it moves as the canvas is panned around; the only issue there being when the tree is updated, the annotation would not automatically move to where it should be (e.g. if Passeriformes is annotated, then a node addition moves that node on the canvas, the annotation would now know to follow the Passeriformes node)

And for that reason - I am more in favor of simply annotating nodes.

(This probably depends on Canvas clicks being fixed)

Add ABE domains

Create taxa not in the iNat API for Archaea, Bacteria, Eukarya, and assign the kingdoms to each by inserting the correct domain in a taxon's ancestor ID list

Cool project!

Hi there, I don't have a problem or question, but wanted to say this looks like a super cool project!

It's also worth mentioning there are some other developers of "fanmade" iNaturalist-related projects who hang out on the Discord server here: https://discord.gg/uskv2yx It might be worth showing off Darwin there, maybe in the 'research and tech' channel, and also on the iNat forums if you haven't already.

There's also this server, mainly for chat about development of an iNat Discord bot, but also stuff about the iNat API in general: https://discord.gg/pUbZFDbDdD I think a couple others there also work with the eBird API.

Brochure for Mobile

Preliminary to the mobile implementation, have a mobile home page saying it is only available on desktop

Fix canvas click events

Clicking on a button on the canvas can cause multiple click events. Fixing this would allow for buttons that do more interesting things, such as opening the wikipedia page for a taxon, or the iNat observation page for an observation's taxon.

Fix search results scroll loading

Multi-part issue!

  • 1.Fix repeated taxa being loaded during infinite scroll loading, e.g. on the default query view, if you keep scrolling, you will see the first taxa repeat (Aves stands out)

  • 2. Cancel a pending scroll query when a taxon card is clicked or new query is made:
    If you scroll and then click on a taxon card before the new results load, the taxon's children will load but then be replaced with the taxa pulled from the scroll's query

Things to maybe implement:

  • Using actual pages instead of 'infinite' scroll (not a fan of this)
  • Add a loading overlay over the search result box while a query is being ran to prevent clicks on taxon cards?
  • Assert unique taxa in the search result box

Allow subtree deletion

Show delete button on non-leaf nodes, and on click show confirmation button then delete the whole subtree.

Use observation response taxon data for iNat trees

Currently, we load the iNat images and taxon IDs when loading an iNat tree, and then load taxon data using the iNat taxon endpoint for each ID. The taxon data is already provided in the original response used to get the observations, use this instead of the taxon endpoint. This will make iNat tree loading use only 1 iNat API call.

Current:

observations = getObservations(query)
for obs in observations:
    taxon = getTaxon(obs.id)
    addNode(taxon, obs.photo)

Should be:

observations = getObservations(query)
for obs in observations:
    addNode(obs.taxon, obs.photo)

Just need to pass more data from the initial call to the builder props, rather than just the IDs and photos.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.