Giter Site home page Giter Site logo

u8sand / fairshake Goto Github PK

View Code? Open in Web Editor NEW
0.0 2.0 0.0 1.95 MB

A web interface for the scoring of biomedical digital objects by user evaluation according to the FAIR data principles: Findability, Accessibility, Interoperability, and Reusability.

License: Apache License 2.0

Python 49.31% JavaScript 12.11% CSS 3.16% HTML 35.42%

fairshake's Introduction

FAIRshake

A web interface for the scoring of biomedical digital objects by user evaluation according to the FAIR data principles: Findability, Accessibility, Interoperability, and Reusability.

Project Layout

  • app: Application primary namespace, modules are recursively imported for inversion of control registration
    • entities: Implementations of abstract interfaces. Should only ever depend on abstractions in interfaces, not directly on other entities.
    • interfaces: Abstract interfaces to be implemented. API interfaces define the swagger spec in the same place for close coupling.
    • util: Application-independent utility functions for code-reuse
  • tests: Nose tests for verifying entities properly implement their interface and general app functionality.
    • test_util: Nose tests for verifying that utilities work as anticipated.

Development

Setting up environment

Python version of >= 3.5 is recommended, type annotation support is required. Install dependencies with pip install -r requirements.txt.

Run FAIRshakeWeb server

python run.py

Generate pure swagger spec from interfaces

python run.py dump

Run Application Tests

nosetests

Run Application Static Type Checks

mypy --ignore-missing-imports app

fairshake's People

Contributors

u8sand avatar lw453 avatar

Watchers

James Cloos avatar  avatar

fairshake's Issues

API Accession via SwaggerClient

It's important that APIs can be access programmatically, even remote ones. This should be accomplished via Swagger client injections.

Runtime injection and command-line dependency injection configuration

It'd be good to allow command-driven dependency injection configuration allowing us to start APIs individually and inject dependencies as remote clients. This would allows us to split up functionality across multiple images while retaining the same code base. In the future, a Registry (e.g. SmartAPI) could be configured to obtain running APIs.

# Start FAIRshakeScore
./run.py FAIRshakeWeb --listen=0.0.0.0:8080 --FAIRshakeScore=localhost:8081 ...
./run.py FAIRshakeScore --host=0.0.0.0 --port=8081 --FAIRshakeRubric=localhost:8082 ...
./run.py FAIRshakeRubric --host=0.0.0.0 --port=8082
...

Self injection

Ensure modules can inject themselves via recursive importing.

Full API Implementation Test

  1. Create and Register Test Rubric via RubricAPI
  2. Create and Register Test Digital Object via RepositoryAPI
  3. Perform Assessment(s) on Test Digital Object with Test Rubric via AssessmentAPI.
  4. Aggregate assessment(s) with ScoreAPI.

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.