{"id":347832,"name":"PlanktoScope","description":"A modular, open-source hardware and software platform that allows for high-throughput quantitative imaging of plankton samples in aquatic biology and ecology.","url":"https://github.com/fairscope/planktoscope","last_synced_at":"2026-04-30T02:30:18.165Z","repository":{"id":37419694,"uuid":"248410583","full_name":"fairscope/PlanktoScope","owner":"fairscope","description":"Open and Affordable Quantitative Imaging Platform","archived":false,"fork":false,"pushed_at":"2026-04-09T14:12:44.000Z","size":508575,"stargazers_count":81,"open_issues_count":141,"forks_count":30,"subscribers_count":5,"default_branch":"main","last_synced_at":"2026-04-12T02:09:44.608Z","etag":null,"topics":["citizen","citizen-science","imaging","microscope","microscope-platform","microscopy","ocean","oceanography","plankton","planktoscope","raspberry-pi-4","raspberry-pi-camera","science","water"],"latest_commit_sha":null,"homepage":"https://www.planktoscope.org","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc-by-sa-4.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fairscope.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE-CC-BY-SA-4.0","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2020-03-19T04:29:00.000Z","updated_at":"2026-04-09T07:21:20.000Z","dependencies_parsed_at":"2023-09-21T19:47:51.382Z","dependency_job_id":"989d6aba-cfc4-4672-ae45-e3166b66c366","html_url":"https://github.com/fairscope/PlanktoScope","commit_stats":{"total_commits":873,"total_committers":10,"mean_commits":87.3,"dds":0.6093928980526919,"last_synced_commit":"befca90aaba210e59551fb5164a9495d515ac2d3"},"previous_names":["fairscope/planktoscope","planktoscope/planktoscope"],"tags_count":44,"template":false,"template_full_name":null,"purl":"pkg:github/fairscope/PlanktoScope","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fairscope%2FPlanktoScope","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fairscope%2FPlanktoScope/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fairscope%2FPlanktoScope/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fairscope%2FPlanktoScope/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fairscope","download_url":"https://codeload.github.com/fairscope/PlanktoScope/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fairscope%2FPlanktoScope/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31779947,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-14T02:24:21.117Z","status":"ssl_error","status_checked_at":"2026-04-14T02:24:20.627Z","response_time":153,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"owner":{"login":"fairscope","name":"FairScope","uuid":"203827607","kind":"organization","description":"Disruptive flow-through microscopy","email":"hi@fairscope.com","website":"https://www.fairscope.com/","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/203827607?v=4","repositories_count":1,"last_synced_at":"2026-03-09T20:38:41.187Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/fairscope","funding_links":[],"total_stars":80,"followers":6,"following":0,"created_at":"2026-03-09T20:38:41.208Z","updated_at":"2026-03-09T20:38:41.208Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fairscope","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fairscope/repositories"},"packages":[],"commits":{"id":11683291,"full_name":"fairscope/planktoscope","default_branch":"master","total_commits":1328,"total_committers":18,"total_bot_commits":125,"total_bot_committers":1,"mean_commits":73.77777777777777,"dds":0.7432228915662651,"past_year_total_commits":319,"past_year_total_committers":8,"past_year_total_bot_commits":45,"past_year_total_bot_committers":1,"past_year_mean_commits":39.875,"past_year_dds":0.25705329153605017,"last_synced_at":"2026-04-27T01:02:36.660Z","last_synced_commit":"f9737ead097b6c57d0b95b0bdf7d07494b515e8f","created_at":"2026-03-12T01:01:10.161Z","updated_at":"2026-04-27T01:01:22.200Z","committers":[{"name":"Romain Bazile","email":"gromain.baz@gmail.com","login":"gromain","count":341},{"name":"tpollina","email":"thibaut.pollina@gmail.com","login":"tpollina","count":303},{"name":"Sonny Piers","email":"sonny@fairscope.com","login":"sonnyp","count":269},{"name":"Ethan Li","email":"lietk12@gmail.com","login":"ethanjli","count":257},{"name":"dependabot[bot]","email":"49699333+dependabot[bot]","login":"dependabot[bot]","count":125},{"name":"Adam","email":"30325853+babo989","login":"babo989","count":12},{"name":"tcebron","email":"tanguy@fairscope.com","login":"tcebron","count":9},{"name":"Thibaut Pollina","email":"thibaut+github@fairscope.com","login":"chevreuill3000","count":2},{"name":"Adam Larson","email":"adam@fairscope.com","login":null,"count":1},{"name":"chevreuill3000","email":"chevreuill3000@github.com","login":null,"count":1},{"name":"Bakhtiyorjon Rasulov","email":"32024479+bahtibyte","login":"bahtibyte","count":1},{"name":"Laurent Paul Vallet","email":"laurentpaulvallet@gmail.com","login":"LaurentPV","count":1},{"name":"Melissa Djadoun","email":"153541510+melissadjadoun","login":"melissadjadoun","count":1},{"name":"Romain Fauvel","email":"123301565+RomainFauvel","login":"RomainFauvel","count":1},{"name":"Simon-Martin Schröder","email":"sms@informatik.uni-kiel.de","login":"moi90","count":1},{"name":"Wassim Chakroun","email":"87650566+W7CH","login":"W7CH","count":1},{"name":"coulm","email":"34215459+redhox","login":"redhox","count":1},{"name":"dnberlin","email":"fw@felixwerner.name","login":"dnberlin","count":1}],"past_year_committers":[{"name":"Sonny Piers","email":"sonny@fairscope.com","login":"sonnyp","count":237},{"name":"dependabot[bot]","email":"49699333+dependabot[bot]","login":"dependabot[bot]","count":45},{"name":"Ethan Li","email":"lietk12@gmail.com","login":"ethanjli","count":12},{"name":"Adam","email":"30325853+babo989","login":"babo989","count":12},{"name":"Thibaut Pollina","email":"thibaut@fairscope.com","login":"tpollina","count":9},{"name":"Thibaut Pollina","email":"thibaut+github@fairscope.com","login":"chevreuill3000","count":2},{"name":"chevreuill3000","email":"chevreuill3000@github.com","login":null,"count":1},{"name":"Adam Larson","email":"adam@fairscope.com","login":null,"count":1}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/fairscope%2Fplanktoscope/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-29T00:00:10.453Z","repositories_count":6221882,"commits_count":900187272,"contributors_count":34900012,"owners_count":1146960,"icon_url":"https://github.com/github.png","host_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories"}},"issues_stats":{"full_name":"fairscope/PlanktoScope","html_url":"https://github.com/fairscope/PlanktoScope","last_synced_at":"2026-04-27T04:07:50.716Z","status":null,"issues_count":20,"pull_requests_count":17,"avg_time_to_close_issue":2642126.0,"avg_time_to_close_pull_request":381124.3333333333,"issues_closed_count":2,"pull_requests_closed_count":12,"pull_request_authors_count":2,"issue_authors_count":2,"avg_comments_per_issue":1.55,"avg_comments_per_pull_request":0.11764705882352941,"merged_pull_requests_count":7,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":20,"past_year_pull_requests_count":17,"past_year_avg_time_to_close_issue":2642126.0,"past_year_avg_time_to_close_pull_request":381124.3333333333,"past_year_issues_closed_count":2,"past_year_pull_requests_closed_count":12,"past_year_pull_request_authors_count":2,"past_year_issue_authors_count":2,"past_year_avg_comments_per_issue":1.55,"past_year_avg_comments_per_pull_request":0.11764705882352941,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":7,"created_at":"2026-03-10T11:00:11.645Z","updated_at":"2026-04-27T04:07:50.717Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/fairscope%2FPlanktoScope","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/fairscope%2FPlanktoScope/issues","issue_labels_count":{"software":20,"bug":2,"ui":1},"pull_request_labels_count":{},"issue_author_associations_count":{"NONE":15,"COLLABORATOR":5},"pull_request_author_associations_count":{"COLLABORATOR":17},"issue_authors":{"jeremyszym":15,"sonnyp":5},"pull_request_authors":{"babo989":13,"sonnyp":4},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-29T00:00:10.439Z","repositories_count":14440988,"issues_count":34185775,"pull_requests_count":112276824,"authors_count":11248272,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"},"past_year_issue_labels_count":{"software":20,"bug":2,"ui":1},"past_year_pull_request_labels_count":{},"past_year_issue_author_associations_count":{"NONE":15,"COLLABORATOR":5},"past_year_pull_request_author_associations_count":{"COLLABORATOR":17},"past_year_issue_authors":{"jeremyszym":15,"sonnyp":5},"past_year_pull_request_authors":{"babo989":13,"sonnyp":4},"maintainers":[{"login":"babo989","count":13,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/babo989"},{"login":"sonnyp","count":9,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/sonnyp"}],"active_maintainers":[{"login":"babo989","count":13,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/babo989"},{"login":"sonnyp","count":9,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/sonnyp"}]},"events":{"total":{"DeleteEvent":11,"PullRequestEvent":6,"IssuesEvent":17,"IssueCommentEvent":3,"PushEvent":41,"PullRequestReviewEvent":2,"PullRequestReviewCommentEvent":3,"CreateEvent":14},"last_year":{"DeleteEvent":11,"PullRequestEvent":6,"IssuesEvent":17,"IssueCommentEvent":3,"PushEvent":41,"PullRequestReviewEvent":2,"PullRequestReviewCommentEvent":3,"CreateEvent":14}},"keywords":["citizen","citizen-science","imaging","microscope","microscope-platform","microscopy","ocean","oceanography","plankton","planktoscope","raspberry-pi-4","raspberry-pi-camera","science","water"],"dependencies":[{"ecosystem":"actions","filepath":".github/workflows/documentation-build.yml","sha":null,"kind":"manifest","created_at":"2023-09-21T19:47:44.629Z","updated_at":"2023-09-21T19:47:44.629Z","repository_link":"https://github.com/fairscope/PlanktoScope/blob/main/.github/workflows/documentation-build.yml","dependencies":[{"id":13856923727,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false},{"id":13856923728,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false},{"id":13856923729,"package_name":"docker/metadata-action","ecosystem":"actions","requirements":"v5","direct":true,"kind":"composite","optional":false},{"id":13856923730,"package_name":"docker/setup-qemu-action","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":13856923731,"package_name":"docker/setup-buildx-action","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":13856923732,"package_name":"docker/login-action","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":13856923733,"package_name":"docker/build-push-action","ecosystem":"actions","requirements":"v5","direct":true,"kind":"composite","optional":false},{"id":13856923734,"package_name":"actions/upload-artifact","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/documentation-deploy-edge.yml","sha":null,"kind":"manifest","created_at":"2023-09-21T19:47:44.964Z","updated_at":"2023-09-21T19:47:44.964Z","repository_link":"https://github.com/fairscope/PlanktoScope/blob/main/.github/workflows/documentation-deploy-edge.yml","dependencies":[{"id":13856923941,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false},{"id":13856923946,"package_name":"actions/configure-pages","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":13856923948,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false},{"id":13856923950,"package_name":"actions/upload-pages-artifact","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":13856923952,"package_name":"actions/deploy-pages","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"docker","filepath":"documentation/Dockerfile","sha":null,"kind":"manifest","created_at":"2023-09-21T19:47:45.446Z","updated_at":"2023-09-21T19:47:45.446Z","repository_link":"https://github.com/fairscope/PlanktoScope/blob/main/documentation/Dockerfile","dependencies":[{"id":13856924113,"package_name":"caddy","ecosystem":"docker","requirements":"2.7.4","direct":true,"kind":"build","optional":false}]},{"ecosystem":"npm","filepath":"software/node-red-dashboard/package-lock.json","sha":null,"kind":"lockfile","created_at":"2023-09-21T19:47:45.700Z","updated_at":"2023-09-21T19:47:45.700Z","repository_link":"https://github.com/fairscope/PlanktoScope/blob/main/software/node-red-dashboard/package-lock.json","dependencies":[{"id":13856924139,"package_name":"@socket.io/component-emitter","ecosystem":"npm","requirements":"3.1.0","direct":false,"kind":"runtime","optional":false},{"id":13856924140,"package_name":"@types/cookie","ecosystem":"npm","requirements":"0.4.1","direct":false,"kind":"runtime","optional":false},{"id":13856924141,"package_name":"@types/cors","ecosystem":"npm","requirements":"2.8.13","direct":false,"kind":"runtime","optional":false},{"id":13856924142,"package_name":"@types/node","ecosystem":"npm","requirements":"20.5.6","direct":false,"kind":"runtime","optional":false},{"id":13856924143,"package_name":"accepts","ecosystem":"npm","requirements":"1.3.8","direct":false,"kind":"runtime","optional":false},{"id":13856924144,"package_name":"base64id","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"runtime","optional":false},{"id":13856924145,"package_name":"bytes","ecosystem":"npm","requirements":"3.0.0","direct":false,"kind":"runtime","optional":false},{"id":13856924146,"package_name":"compressible","ecosystem":"npm","requirements":"2.0.18","direct":false,"kind":"runtime","optional":false},{"id":13856924147,"package_name":"compression","ecosystem":"npm","requirements":"1.7.4","direct":false,"kind":"runtime","optional":false},{"id":13856924148,"package_name":"cookie","ecosystem":"npm","requirements":"0.4.2","direct":false,"kind":"runtime","optional":false},{"id":13856924149,"package_name":"cors","ecosystem":"npm","requirements":"2.8.5","direct":false,"kind":"runtime","optional":false},{"id":13856924150,"package_name":"debug","ecosystem":"npm","requirements":"2.6.9","direct":false,"kind":"runtime","optional":false},{"id":13856924151,"package_name":"depd","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"runtime","optional":false},{"id":13856924152,"package_name":"destroy","ecosystem":"npm","requirements":"1.2.0","direct":false,"kind":"runtime","optional":false},{"id":13856924153,"package_name":"ee-first","ecosystem":"npm","requirements":"1.1.1","direct":false,"kind":"runtime","optional":false},{"id":13856924154,"package_name":"encodeurl","ecosystem":"npm","requirements":"1.0.2","direct":false,"kind":"runtime","optional":false},{"id":13856924155,"package_name":"engine.io","ecosystem":"npm","requirements":"6.5.2","direct":false,"kind":"runtime","optional":false},{"id":13856924156,"package_name":"engine.io-parser","ecosystem":"npm","requirements":"5.2.1","direct":false,"kind":"runtime","optional":false},{"id":13856924157,"package_name":"debug","ecosystem":"npm","requirements":"4.3.4","direct":false,"kind":"runtime","optional":false},{"id":13856924158,"package_name":"ms","ecosystem":"npm","requirements":"2.1.2","direct":false,"kind":"runtime","optional":false},{"id":13856924159,"package_name":"escape-html","ecosystem":"npm","requirements":"1.0.3","direct":false,"kind":"runtime","optional":false},{"id":13856924160,"package_name":"etag","ecosystem":"npm","requirements":"1.8.1","direct":false,"kind":"runtime","optional":false},{"id":13856924161,"package_name":"fresh","ecosystem":"npm","requirements":"0.5.2","direct":false,"kind":"runtime","optional":false},{"id":13856924162,"package_name":"fs-extra","ecosystem":"npm","requirements":"7.0.1","direct":false,"kind":"runtime","optional":false},{"id":13856924163,"package_name":"graceful-fs","ecosystem":"npm","requirements":"4.2.11","direct":false,"kind":"runtime","optional":false},{"id":13856924164,"package_name":"gridstack","ecosystem":"npm","requirements":"0.6.4","direct":false,"kind":"runtime","optional":false},{"id":13856924165,"package_name":"http-errors","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"runtime","optional":false},{"id":13856924166,"package_name":"inherits","ecosystem":"npm","requirements":"2.0.4","direct":false,"kind":"runtime","optional":false},{"id":13856924167,"package_name":"jquery","ecosystem":"npm","requirements":"3.7.0","direct":false,"kind":"runtime","optional":false},{"id":13856924168,"package_name":"jsonfile","ecosystem":"npm","requirements":"4.0.0","direct":false,"kind":"runtime","optional":false},{"id":13856924169,"package_name":"mime","ecosystem":"npm","requirements":"1.6.0","direct":false,"kind":"runtime","optional":false},{"id":13856924170,"package_name":"mime-db","ecosystem":"npm","requirements":"1.52.0","direct":false,"kind":"runtime","optional":false},{"id":13856924171,"package_name":"mime-types","ecosystem":"npm","requirements":"2.1.35","direct":false,"kind":"runtime","optional":false},{"id":13856924172,"package_name":"ms","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"runtime","optional":false},{"id":13856924173,"package_name":"mustache","ecosystem":"npm","requirements":"4.2.0","direct":false,"kind":"runtime","optional":false},{"id":13856924174,"package_name":"negotiator","ecosystem":"npm","requirements":"0.6.3","direct":false,"kind":"runtime","optional":false},{"id":13856924175,"package_name":"node-gpsd","ecosystem":"npm","requirements":"0.3.4","direct":false,"kind":"runtime","optional":false},{"id":13856924178,"package_name":"node-red-contrib-dir2files","ecosystem":"npm","requirements":"0.3.0","direct":false,"kind":"runtime","optional":false},{"id":13856924179,"package_name":"node-red-contrib-gpsd","ecosystem":"npm","requirements":"1.0.7","direct":false,"kind":"runtime","optional":false},{"id":13856924180,"package_name":"node-red-contrib-python3-function","ecosystem":"npm","requirements":"0.0.4","direct":false,"kind":"runtime","optional":false},{"id":13856924181,"package_name":"node-red-contrib-ui-multistate-switch","ecosystem":"npm","requirements":"1.2.3","direct":false,"kind":"runtime","optional":false},{"id":13856924182,"package_name":"node-red-dashboard","ecosystem":"npm","requirements":"3.5.0","direct":false,"kind":"runtime","optional":false},{"id":13856924183,"package_name":"node-red-node-pi-gpio","ecosystem":"npm","requirements":"2.0.6","direct":false,"kind":"runtime","optional":false},{"id":13856924184,"package_name":"node-red-node-ui-list","ecosystem":"npm","requirements":"0.3.6","direct":false,"kind":"runtime","optional":false},{"id":13856924185,"package_name":"object-assign","ecosystem":"npm","requirements":"4.1.1","direct":false,"kind":"runtime","optional":false},{"id":13856924186,"package_name":"on-finished","ecosystem":"npm","requirements":"2.4.1","direct":false,"kind":"runtime","optional":false},{"id":13856924187,"package_name":"on-headers","ecosystem":"npm","requirements":"1.0.2","direct":false,"kind":"runtime","optional":false},{"id":13856924188,"package_name":"parseurl","ecosystem":"npm","requirements":"1.3.3","direct":false,"kind":"runtime","optional":false},{"id":13856924189,"package_name":"path","ecosystem":"npm","requirements":"0.12.7","direct":false,"kind":"runtime","optional":false},{"id":13856924190,"package_name":"process","ecosystem":"npm","requirements":"0.11.10","direct":false,"kind":"runtime","optional":false},{"id":13856924191,"package_name":"range-parser","ecosystem":"npm","requirements":"1.2.1","direct":false,"kind":"runtime","optional":false},{"id":13856924192,"package_name":"safe-buffer","ecosystem":"npm","requirements":"5.1.2","direct":false,"kind":"runtime","optional":false},{"id":13856924193,"package_name":"send","ecosystem":"npm","requirements":"0.18.0","direct":false,"kind":"runtime","optional":false},{"id":13856924194,"package_name":"ms","ecosystem":"npm","requirements":"2.1.3","direct":false,"kind":"runtime","optional":false},{"id":13856924195,"package_name":"serve-static","ecosystem":"npm","requirements":"1.15.0","direct":false,"kind":"runtime","optional":false},{"id":13856924196,"package_name":"setprototypeof","ecosystem":"npm","requirements":"1.2.0","direct":false,"kind":"runtime","optional":false},{"id":13856924197,"package_name":"socket.io","ecosystem":"npm","requirements":"4.7.2","direct":false,"kind":"runtime","optional":false},{"id":13856924198,"package_name":"socket.io-adapter","ecosystem":"npm","requirements":"2.5.2","direct":false,"kind":"runtime","optional":false},{"id":13856924199,"package_name":"socket.io-parser","ecosystem":"npm","requirements":"4.2.4","direct":false,"kind":"runtime","optional":false},{"id":13856924200,"package_name":"statuses","ecosystem":"npm","requirements":"2.0.1","direct":false,"kind":"runtime","optional":false},{"id":13856924201,"package_name":"toidentifier","ecosystem":"npm","requirements":"1.0.1","direct":false,"kind":"runtime","optional":false},{"id":13856924202,"package_name":"universalify","ecosystem":"npm","requirements":"0.1.2","direct":false,"kind":"runtime","optional":false},{"id":13856924203,"package_name":"util","ecosystem":"npm","requirements":"0.10.4","direct":false,"kind":"runtime","optional":false},{"id":13856924204,"package_name":"inherits","ecosystem":"npm","requirements":"2.0.3","direct":false,"kind":"runtime","optional":false},{"id":13856924205,"package_name":"vary","ecosystem":"npm","requirements":"1.1.2","direct":false,"kind":"runtime","optional":false},{"id":13856924206,"package_name":"ws","ecosystem":"npm","requirements":"8.11.0","direct":false,"kind":"runtime","optional":false}]},{"ecosystem":"npm","filepath":"software/node-red-dashboard/package.json","sha":null,"kind":"manifest","created_at":"2023-09-21T19:47:46.409Z","updated_at":"2023-09-21T19:47:46.409Z","repository_link":"https://github.com/fairscope/PlanktoScope/blob/main/software/node-red-dashboard/package.json","dependencies":[{"id":13856925852,"package_name":"node-red-contrib-dir2files","ecosystem":"npm","requirements":"^0.3.0","direct":true,"kind":"runtime","optional":false},{"id":13856925855,"package_name":"node-red-contrib-gpsd","ecosystem":"npm","requirements":"^1.0.4","direct":true,"kind":"runtime","optional":false},{"id":13856925858,"package_name":"node-red-contrib-python3-function","ecosystem":"npm","requirements":"^0.0.4","direct":true,"kind":"runtime","optional":false},{"id":13856925860,"package_name":"node-red-contrib-ui-multistate-switch","ecosystem":"npm","requirements":"^1.2.2","direct":true,"kind":"runtime","optional":false},{"id":13856925862,"package_name":"node-red-dashboard","ecosystem":"npm","requirements":"^3.1.2","direct":true,"kind":"runtime","optional":false},{"id":13856925863,"package_name":"node-red-node-pi-gpio","ecosystem":"npm","requirements":"^2.0.1","direct":true,"kind":"runtime","optional":false},{"id":13856925865,"package_name":"node-red-node-ui-list","ecosystem":"npm","requirements":"^0.3.6","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"pypi","filepath":"documentation/poetry.lock","sha":null,"kind":"lockfile","created_at":"2023-09-21T19:47:47.411Z","updated_at":"2023-09-21T19:47:47.411Z","repository_link":"https://github.com/fairscope/PlanktoScope/blob/main/documentation/poetry.lock","dependencies":[{"id":13856926812,"package_name":"babel","ecosystem":"pypi","requirements":"2.12.1","direct":false,"kind":null,"optional":false},{"id":13856926813,"package_name":"beautifulsoup4","ecosystem":"pypi","requirements":"4.12.2","direct":false,"kind":null,"optional":false},{"id":13856926814,"package_name":"certifi","ecosystem":"pypi","requirements":"2023.7.22","direct":false,"kind":null,"optional":false},{"id":13856926815,"package_name":"charset-normalizer","ecosystem":"pypi","requirements":"3.2.0","direct":false,"kind":null,"optional":false},{"id":13856926816,"package_name":"click","ecosystem":"pypi","requirements":"8.1.7","direct":false,"kind":null,"optional":false},{"id":13856926817,"package_name":"colorama","ecosystem":"pypi","requirements":"0.4.6","direct":false,"kind":null,"optional":false},{"id":13856926818,"package_name":"csscompressor","ecosystem":"pypi","requirements":"0.9.5","direct":false,"kind":null,"optional":false},{"id":13856926819,"package_name":"dnspython","ecosystem":"pypi","requirements":"2.4.2","direct":false,"kind":null,"optional":false},{"id":13856926820,"package_name":"ghp-import","ecosystem":"pypi","requirements":"2.1.0","direct":false,"kind":null,"optional":false},{"id":13856926821,"package_name":"htmlmin2","ecosystem":"pypi","requirements":"0.1.13","direct":false,"kind":null,"optional":false},{"id":13856926822,"package_name":"idna","ecosystem":"pypi","requirements":"3.4","direct":false,"kind":null,"optional":false},{"id":13856926823,"package_name":"imgp","ecosystem":"pypi","requirements":"2.8","direct":false,"kind":null,"optional":false},{"id":13856926824,"package_name":"importlib-metadata","ecosystem":"pypi","requirements":"6.8.0","direct":false,"kind":null,"optional":false},{"id":13856926825,"package_name":"jinja2","ecosystem":"pypi","requirements":"3.1.2","direct":false,"kind":null,"optional":false},{"id":13856926826,"package_name":"jsmin","ecosystem":"pypi","requirements":"3.0.1","direct":false,"kind":null,"optional":false},{"id":13856926827,"package_name":"linkchecker","ecosystem":"pypi","requirements":"10.2.1","direct":false,"kind":null,"optional":false},{"id":13856926828,"package_name":"markdown","ecosystem":"pypi","requirements":"3.4.4","direct":false,"kind":null,"optional":false},{"id":13856926829,"package_name":"markupsafe","ecosystem":"pypi","requirements":"2.1.3","direct":false,"kind":null,"optional":false},{"id":13856926830,"package_name":"mergedeep","ecosystem":"pypi","requirements":"1.3.4","direct":false,"kind":null,"optional":false},{"id":13856926831,"package_name":"mkdocs","ecosystem":"pypi","requirements":"1.5.2","direct":false,"kind":null,"optional":false},{"id":13856926832,"package_name":"mkdocs-charts-plugin","ecosystem":"pypi","requirements":"0.0.10","direct":false,"kind":null,"optional":false},{"id":13856926833,"package_name":"mkdocs-glightbox","ecosystem":"pypi","requirements":"0.3.4","direct":false,"kind":null,"optional":false},{"id":13856926834,"package_name":"mkdocs-macros-plugin","ecosystem":"pypi","requirements":"1.0.4","direct":false,"kind":null,"optional":false},{"id":13856926835,"package_name":"mkdocs-markdownextradata-plugin","ecosystem":"pypi","requirements":"0.2.5","direct":false,"kind":null,"optional":false},{"id":13856926836,"package_name":"mkdocs-material","ecosystem":"pypi","requirements":"9.2.8","direct":false,"kind":null,"optional":false},{"id":13856926837,"package_name":"mkdocs-material-extensions","ecosystem":"pypi","requirements":"1.1.1","direct":false,"kind":null,"optional":false},{"id":13856926838,"package_name":"mkdocs-minify-plugin","ecosystem":"pypi","requirements":"0.7.1","direct":false,"kind":null,"optional":false},{"id":13856926839,"package_name":"mkdocs-redirects","ecosystem":"pypi","requirements":"1.2.1","direct":false,"kind":null,"optional":false},{"id":13856926840,"package_name":"packaging","ecosystem":"pypi","requirements":"23.1","direct":false,"kind":null,"optional":false},{"id":13856926841,"package_name":"paginate","ecosystem":"pypi","requirements":"0.5.6","direct":false,"kind":null,"optional":false},{"id":13856926842,"package_name":"pastel","ecosystem":"pypi","requirements":"0.2.1","direct":false,"kind":null,"optional":false},{"id":13856926843,"package_name":"pathspec","ecosystem":"pypi","requirements":"0.11.2","direct":false,"kind":null,"optional":false},{"id":13856926844,"package_name":"pillow","ecosystem":"pypi","requirements":"10.0.0","direct":false,"kind":null,"optional":false},{"id":13856926845,"package_name":"platformdirs","ecosystem":"pypi","requirements":"3.10.0","direct":false,"kind":null,"optional":false},{"id":13856926846,"package_name":"poethepoet","ecosystem":"pypi","requirements":"0.22.1","direct":false,"kind":null,"optional":false},{"id":13856926847,"package_name":"pygments","ecosystem":"pypi","requirements":"2.16.1","direct":false,"kind":null,"optional":false},{"id":13856926848,"package_name":"pymdown-extensions","ecosystem":"pypi","requirements":"10.3","direct":false,"kind":null,"optional":false},{"id":13856926849,"package_name":"python-dateutil","ecosystem":"pypi","requirements":"2.8.2","direct":false,"kind":null,"optional":false},{"id":13856926850,"package_name":"pytz","ecosystem":"pypi","requirements":"2023.3.post1","direct":false,"kind":null,"optional":false},{"id":13856926851,"package_name":"pyyaml","ecosystem":"pypi","requirements":"6.0.1","direct":false,"kind":null,"optional":false},{"id":13856926852,"package_name":"pyyaml-env-tag","ecosystem":"pypi","requirements":"0.1","direct":false,"kind":null,"optional":false},{"id":13856926853,"package_name":"regex","ecosystem":"pypi","requirements":"2023.8.8","direct":false,"kind":null,"optional":false},{"id":13856926854,"package_name":"requests","ecosystem":"pypi","requirements":"2.31.0","direct":false,"kind":null,"optional":false},{"id":13856926855,"package_name":"six","ecosystem":"pypi","requirements":"1.16.0","direct":false,"kind":null,"optional":false},{"id":13856926856,"package_name":"soupsieve","ecosystem":"pypi","requirements":"2.5","direct":false,"kind":null,"optional":false},{"id":13856926857,"package_name":"termcolor","ecosystem":"pypi","requirements":"2.3.0","direct":false,"kind":null,"optional":false},{"id":13856926858,"package_name":"tomli","ecosystem":"pypi","requirements":"2.0.1","direct":false,"kind":null,"optional":false},{"id":13856926859,"package_name":"urllib3","ecosystem":"pypi","requirements":"2.0.4","direct":false,"kind":null,"optional":false},{"id":13856926860,"package_name":"watchdog","ecosystem":"pypi","requirements":"3.0.0","direct":false,"kind":null,"optional":false},{"id":13856926861,"package_name":"zipp","ecosystem":"pypi","requirements":"3.16.2","direct":false,"kind":null,"optional":false}]},{"ecosystem":"pypi","filepath":"documentation/pyproject.toml","sha":null,"kind":"manifest","created_at":"2023-09-21T19:47:48.432Z","updated_at":"2023-09-21T19:47:48.432Z","repository_link":"https://github.com/fairscope/PlanktoScope/blob/main/documentation/pyproject.toml","dependencies":[{"id":13856926956,"package_name":"python","ecosystem":"pypi","requirements":"^3.8","direct":true,"kind":"runtime","optional":false}]}],"score":8.293049139768444,"created_at":"2026-03-10T00:15:13.294Z","updated_at":"2026-04-30T02:30:18.170Z","avatar_url":"https://github.com/fairscope.png","language":"Python","category":"Biosphere","sub_category":"Marine Life and Fishery","monthly_downloads":0,"total_dependent_repos":0,"total_dependent_packages":0,"readme":null,"funding_links":[],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":["frugal","raspberry"],"project_url":"https://ost.ecosyste.ms/api/v1/projects/347832","html_url":"https://ost.ecosyste.ms/projects/347832"}