Coder Social home page Coder Social logo

halbritter-lab / pld-progression-grouper Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 1.0 5.45 MB

PLD-Progression Grouper - visualize and analyze the progression of Polycystic Liver Disease (PLD) through user-inputted clinical data

License: MIT License

JavaScript 14.30% HTML 1.40% Vue 84.30%
kidney kidney-disease liver-disease rare-disease pld polycystic-liver-disease adpkd adpld prkcsh sec63

pld-progression-grouper's People

Contributors

berntpopp avatar halbrijp avatar rarschoen avatar sierksd avatar

Watchers

 avatar

Forkers

rarschoen

pld-progression-grouper's Issues

Add citation guideline

Add guideline how to cite the tool and which publication to both the README and the App

Implement state management for banner acknowledgment

Description

To improve user experience, we should implement state management for the acknowledgment of the disclaimer banner, using cookies or similar technology. This will ensure that returning users do not need to acknowledge the banner each time they visit the site if they have done so previously on the same device/browser.

Goals

  1. Implement cookie-based (or similar) state management for banner acknowledgment.
  2. Display a message or indicator confirming acknowledgment when a returning user visits the site.

Implementation Details

  • Use cookies or local storage to save the banner acknowledgment state.
  • Check the stored state upon user visit and bypass the disclaimer if already acknowledged.
  • Implement a user-friendly message or visual cue to confirm acknowledgment status to the user.

Implement testing

Develop a suite of automated tests to cover the various functionalities of the application, ensuring stability with future changes.

Modularize Footer Using Mixin

Issue Description: The footer is a reusable component that is currently hardcoded in the main template.

Proposed Solution: Refactor the footer into a mixin or a separate component to enhance reusability and maintainability across different parts of the application.

Refactor Long Texts into Mixins for Improved Maintainability

Issue Description: Currently, long text sections are directly embedded within components. This practice can hinder maintainability and readability.

Proposed Solution: Externalize long text sections into Vue mixins or similar structures. This approach will simplify updates and improve code organization.

Enhancing Button Accessibility: Contrast Ratio Improvement

Issue Description: Some buttons lack sufficient contrast between background and foreground colors, potentially affecting accessibility (Lighthouse).

Proposed Solution: Adjust button styles to improve contrast ratios, adhering to WCAG guidelines for accessibility.

Configuration Refinement: Addressing Magic Numbers

Issue Description: There are "magic numbers" within the application's configuration, leading to potential confusion and maintainability issues.

Proposed Solution: Identify and replace these magic numbers with named constants, defined in a centralized configuration file.

Enable Data Input Through URL Parameters

Issue Description: The application currently does not support data input via URL parameters.

Proposed Solution: Implement functionality allowing users to input data through URL parameters, facilitating easier data sharing and manipulation.

Example: https://halbritter-lab.github.io/pld-progression-grouper/?acknowledge_banner=true&id=p1&age=45&tlv=7000 should directly acknowledge the banner, generate the plot and table for id "p1 with data avlues for age = 45 and tlv = 7000

Implement internet connectivity check and offline version indicator

Description

The application should detect the user's internet connectivity status. If there is no internet access, the application should notify the user and display an 'offline' version status.

Goals

  1. Implement an internet connectivity check within the app.
  2. Display a clear indicator or message when the app is offline.
  3. Ensure the version status reflects the 'offline' state appropriately.

Implementation Details

  • Utilize window.navigator.onLine or a similar approach to detect connectivity status.
  • Update the UI dynamically based on the connectivity status.
  • Ensure the feature is responsive and updates in real-time when connectivity status changes.

Convert SPA to Progressive Web App (PWA)

Convert SPA to Progressive Web App (PWA)

Description

Our current SPA provides a great user experience, but it can be enhanced by leveraging PWA capabilities. Converting to a PWA will provide offline support, improved loading times, and a more app-like experience, especially on mobile devices.

Goals

  1. Implement a service worker for offline functionality and caching.
  2. Create a manifest file with proper app icons and theme colors.
  3. Ensure the application meets PWA standards as per Lighthouse in Chrome DevTools.

Implementation details

  • Use Vue CLI's PWA plugin for initial setup.
  • Customize the service worker and manifest file as per our app's requirements.
  • Test with Lighthouse and ensure PWA criteria are met.

Externalize formulas into config file

Summary

Externalize all mathematical formulas into a separate configuration file.

Current Implementation

Currently, mathematical formulas for calculations (e.g., progression group thresholds) are hardcoded within the component script.

Proposed Change

Shift all these formulas to an external configuration file. This change would allow for easier adjustments and better maintainability, especially when dealing with frequent formula modifications or different parameter sets.

Benefits

  • Maintainability: Simplifies the process of updating formulas without the need to delve into the component logic.
  • Flexibility: Allows for quicker adaptations to new research findings or different calculation models.
  • Readability: Enhances code readability by segregating the mathematical logic from the component code.

Suggested Implementation

Create a formulas.js or calculationsConfig.js in the config folder. Import this file in the components where calculations are done.

I believe this enhancement would significantly improve the code structure and ease the process of future updates.

Append ISO8601 Date-Time to Downloaded File Names

Issue Description: Downloaded file names lack timestamps, making version management challenging.

Proposed Solution: Modify the download functionality to append the current date and time in ISO8601 format to file names for better tracking and organization.

Make plot responsive

The main plot does reduce size but not increase again with changes of browser width.

Add LGR calculation as output

LGR is the liver growth rate and it should be an output righjt next to the PG calcualtion.
Se Figure S1 for formula.

Banner is to prominent

image

The acknowledged banner is currently to prominent at the position and stays sticky when scrolling.
Position it at the bottom.

Integrate Google Analytics for In-Depth Page Statistics

Issue Description: The application currently lacks a comprehensive method to gather and analyze user interaction data.

Proposed Solution: Integrate Google Analytics into the application. This integration will enable detailed tracking of user interactions, providing valuable insights into usage patterns, visitor demographics, and other important metrics. It will also help in making data-driven decisions for future improvements.

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.