https://github.com/broadinstitute/dig-dug-portal
Science Score: 36.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
✓Committers with academic emails
3 of 15 committers (20.0%) from academic institutions -
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (16.9%) to scientific vocabulary
Keywords from Contributors
Repository
Basic Info
Statistics
- Stars: 2
- Watchers: 6
- Forks: 2
- Open Issues: 1
- Releases: 23
Metadata Files
README.md
Welcome to DIG Portal - Frontend
This is the shared code base of the front-end-only resources for the new knowledge portals. It is served using the DIG-DUG server project.
Note: This code base make no assumption on how you choose to work with different portals. You can choose to work on them as separate branches, forked repos, etc ...
Getting Started
Installing npm
This project uses Javascript and uses npm for managing module dependencies and running the system which needs to be installed. Instructions for installing npm are here.
Installing Javascript Dependencies
To install the project's Javascript module dependencies, type:
$ cd /path/to/your/project/dig-dug-portal
$ npm install
Installations on Microsoft Windows may wish to use the --no-optional flag to avoid installation warnings due to the installation of packages targeting MacOSX (i.e. fsevents).
Special Note to Mac OSX Developers
Before installing the above npm dependencies on MacOSX, you may need to ensure that node-gyp is properly configured. See here for details. Note: if your Mac OSX is the Catalina release, see [the special note on properly configuring Catalina][https://github.com/nodejs/node-gyp/blob/HEAD/macOS_Catalina.md).
Running the Portal
The portal is not "run" on its own but as noted above, it is run as an integral part of the back-end server which needs to be installed and started first (refer to the dig-dug-server project README for details).
The portal code may, however, be watched by npm to enable updating of the front end code "on-the-fly" by typing the following command in a separate operating system terminal session, from within the dig-dug-portal project folder:
npm run watch
In this manner, as the dig-dug-portal code is modified locally, the changes are immediately incorporated into the web pages seen by the browser (upon browser page refresh).
Which BioIndex to Connect To
When building the portal, you need to decide if you'd like to serve data from the development BioIndex or the production one. By default, the production BioIndex is used.
To choose the development BioIndex, set the BIOINDEX_DEV environment variable to any "truthy" NodeJS value before building. For example:
$ BIOINDEX_DEV=1 npm run watch
On Windows (PowerShell), it can be done like this:
C:\> $env:BIOINDEX_DEV=1
C:\> npm run watch
Front-end framework
Vue.js / Vuex
Vue.js is an open-source JavaScript framework for building user interfaces and single-page applications. It is the core of our front-end. Because it is based on javascript, it can be incorporated with any javascript library like jQuery, lodash, etc ... or even plain javascript.
Vuex is a state management pattern + library for Vue.js applications. It serves as a centralized store for all the components in an application, with rules ensuring that the state can only be mutated in a predictable fashion.
File structure
Currently files are placed inside the www folder for consistency with the backend setup. However, it can be named
anything. You just need to make sure that the corresponding folder/mount point is the same in the config file.
cssThis folder contains all the stylesheets for the site.jsThis folder contains all the javascripts for the site.js/componentsThis folder contains the components. More info below.js/modulesThis folder contains the modules. More info below.js/utilsThis folder contains helper functions.
Components
Components are reusable Vue instances. They can accept the same options as a Vue object, such as data, computed,
methods, etc ... and lifecycle hooks.
Modules
Due to using a single state tree, all state of our application is contained inside one big object. However, as our application grows in scale, the store can get really bloated.
To help with that, Vuex allows us to divide our store into modules. Each module can contain its own state, mutations, actions, getters, and even nested modules. Each module is namespaced for example: The benefit of being namespaced is - So in order to enable this you have the option to define the module as namespaced, and then you can use the same method in different modules:
moduleA {
actions:{
save(){}
},
namespaced: true
}
moduleB {
actions:{
save(){}
},
namespaced: true
}
and then you call it like this:
this.$store.dispatch('moduleA/save')
this.$store.dispatch('moduleB/save')
In our project we currently have two modules:
datasetModule - you can call this module anywhere using context.dispatch('datasetModule/getDatasets', selectedPhenotype);
phenotypeModule - this.$store.dispatch("phenotypeModule/getPhenotypes");
Usage
Getting Started
The easiest way to get started is by including Vue.js library into a project.
For development:
<!-- development version, includes helpful console warnings -->
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
or:
For production:
<!-- production version, optimized for size and speed -->
<script src="https://cdn.jsdelivr.net/npm/vue"></script>
Declarative Rendering
At the core of Vue.js is a system that enables us to declaratively render data to the DOM using straightforward template syntax:
Add an element with an id to the html part of the page.
<div id="app">
{{ message }}
</div>
Attach a vue object to the element with chosen ID in the section.
var app = new Vue({
el: '#app',
data: {
message: 'Hello Word!'
}
})
And we have our first Vue app! The data and the DOM are now linked, and everything is now reactive.
Using Components
```
<phenotype></phenotype>
Owner
- Name: Broad Institute
- Login: broadinstitute
- Kind: organization
- Location: Cambridge, MA
- Website: http://www.broadinstitute.org/
- Twitter: broadinstitute
- Repositories: 1,083
- Profile: https://github.com/broadinstitute
Broad Institute of MIT and Harvard
GitHub Events
Total
- Create event: 325
- Issues event: 1
- Release event: 1
- Delete event: 291
- Issue comment event: 5
- Push event: 876
- Pull request review event: 5
- Pull request review comment event: 4
- Pull request event: 374
Last Year
- Create event: 325
- Issues event: 1
- Release event: 1
- Delete event: 291
- Issue comment event: 5
- Push event: 876
- Pull request review event: 5
- Pull request review comment event: 4
- Pull request event: 374
Committers
Last synced: 12 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| dkjang | d****g@b****g | 1,405 |
| Quy | q****y@b****v | 994 |
| Preeti | s****6@g****m | 631 |
| kbruskiewicz | k****z@g****m | 470 |
| Annie Moriondo | a****d@b****g | 429 |
| Jeffrey Massung | m****g@g****m | 283 |
| a-shilin | 1****n | 46 |
| Richard Bruskiewich | r****d@s****m | 22 |
| Kenneth Bruskiewicz | 9****z | 13 |
| Alex Shilin | s****n@w****m | 7 |
| Drew Hite | d****w@d****g | 4 |
| Quy | 5****B | 3 |
| hanzhang2021 | 8****1 | 2 |
| Andy Boughton | a****t@g****m | 1 |
| Marc Duby | m****y@b****g | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 10 months ago
All Time
- Total issues: 15
- Total pull requests: 547
- Average time to close issues: about 2 years
- Average time to close pull requests: 5 days
- Total issue authors: 5
- Total pull request authors: 9
- Average comments per issue: 0.2
- Average comments per pull request: 0.02
- Merged pull requests: 474
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 4
- Pull requests: 303
- Average time to close issues: 8 minutes
- Average time to close pull requests: about 7 hours
- Issue authors: 3
- Pull request authors: 5
- Average comments per issue: 0.0
- Average comments per pull request: 0.01
- Merged pull requests: 267
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- qu-y (5)
- RichardBruskiewich (4)
- moriondo2022 (3)
- kennethbruskiewicz (2)
- dkjang (1)
Pull Request Authors
- moriondo2022 (244)
- dkjang (139)
- a-shilin (60)
- qu-y (35)
- massung (23)
- preetisi (21)
- kennethbruskiewicz (15)
- hanzhang2021 (7)
- RichardBruskiewich (3)
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- @babel/preset-env ^7.12.0 development
- @vue/babel-preset-app ^4.5.7 development
- @vue/cli-plugin-babel ^4.5.7 development
- @vue/cli-service ^4.5.7 development
- babel-loader ^8.1.0 development
- babel-plugin-transform-remove-console ^6.9.4 development
- cache-loader ^4.1.0 development
- eslint-config-standard ^17.0.0 development
- eslint-plugin-import ^2.26.0 development
- eslint-plugin-n ^15.2.2 development
- eslint-plugin-promise ^6.0.0 development
- eslint-plugin-vue ^9.1.1 development
- regenerator-runtime ^0.13.7 development
- vue-template-compiler ^2.6.12 development
- @amcharts/amcharts4 ^4.10.7
- @vue/babel-preset-app ^4.5.8
- bootstrap ^4.6.0
- bootstrap-vue ^2.21.2
- c3 ^0.7.20
- chi-squared ^1.1.0
- color-ruler ^0.1.4
- cookie ^0.4.1
- core-js 3.6.5
- d3 ^5.16.0
- flat ^5.0.2
- gwas-credible-sets ^0.1.0
- jquery ^3.5.1
- json-query ^2.2.2
- locuszoom ^0.13.3
- lodash ^4.17.20
- lodash.merge ^4.6.2
- query-string ^6.13.5
- raremetal.js ^1.3.2
- showdown ^1.9.1
- string-replace-loader ^2.3.0
- tabix-reader ^1.0.1
- trapi-client ^0.0.3
- url-parse ^1.4.7
- vis-data ^7.1.2
- vis-network ^9.0.2
- vis-util ^5.0.2
- vue ^2.6.12
- vue-async-computed ^3.9.0
- vue-codemirror ^4.0.6
- vue-cookies ^1.7.4
- vue-select ^3.10.8
- vue-typeahead-bootstrap ^2.6.0
- vue-vis-network ^1.0.2
- vuex ^3.5.1
- xml-js ^1.6.11
- yaml ^1.10.2
- actions/checkout v3 composite
- github/codeql-action/analyze v2 composite
- github/codeql-action/autobuild v2 composite
- github/codeql-action/init v2 composite