Coder Social home page Coder Social logo

miappe_api_frontend's Introduction

MIAPPE-API frontend

This repository contains the frontend code for APPN's data packaging service, that allows the user to enter plant phenotyping experminent metadata that conforms to the MIAPPE data standard.

The repository is written using React + React-Router + Radix-ui.

To run the frontend in developer mode

Please note that you may need to run the backend code.

npm run dev

To run the tests

npm run test 

To view stories via storybook

npm run storybook 

miappe_api_frontend's People

Contributors

haryle avatar

Watchers

Alisha Aneja avatar  avatar

miappe_api_frontend's Issues

[ENHANCEMENT] Reimplement memoisation of table

Summary
Describe the new feature you want to be added

At the moment, switching between detail pages - i.e. /investigation and /study causes the console to log a warning due to changing memoisation dependencies of useMemo. While this does not affect the output, it's more ideal to separate memoisation dependencies between pages

Example
Provide an example or use-case of the requested feature

Set up CI

  • Run storybook test - for verifying that storybook loads successfully
  • Run component unit test

[UI/UX] More robust redirection for form create/update/delete

Summary
Describe changes for the current UI/UX that you want to see.

Previously, form submissions trigger redirection to static routes - i.e. after submitting create, user is always directed to the details page. This is fine in most cases, except for when users want to create a new dependent entry in a create form. For instance, a user is creating a new study, but also wants to create a new investigation that the new entry references. Upon finishing creating the investigation, the previous logic redirects the user to the /study pages, whereas the ideal behavior is to direct the user to /study/create page.

This is probably solved using state and useLocation logic

Screenshots
If applicable, add screenshots to help explain your request.

Improve table features - pagination

Allow the user to control the number of entries to be displayed - i.e 20, 50 or 100 - could also try for the endless scrolling feature.

This ticket should only focus on the display aspect of table pagination. The data fetching pagination should be done by another ticket.

[UI/UX] Use labelKey and defaultValue for table header and data.

Summary
Describe changes for the current UI/UX that you want to see.

Allow table field renaming strategy.

At the moment, fields defined in schema are defined as-is in header. Use schema LabelKey for header title. Also use
getDefaultValue to display as table data - i.e. to avoid the ugly "2020-01-01T00:00:00Z"

Screenshots
If applicable, add screenshots to help explain your request.

[ENHANCEMENT] Add a field rename stragegy in SchemaEntryType

Summary
Describe the new feature you want to be added

At the moment, referencing fields - i.e. investigationId are renamed at the component level. While this is fine for many cases, the current ad-hoc solution is cumbersome for vocabulary references. For generality, it's simpler to have another field in the schema rather than to transform the field in-situ at component creation level.

Example
Provide an example or use-case of the requested feature

TBA

Improve navigation for completing page creation/update

At the moment, after filling out the create form, users are redirected to the detail page. This is an inconvenience if they were directed to the create form of one MIAPPE field after clicking on the create button of another MIAPPE field.

For instance, study references investigation, so there is a create button that directs to the investigation creation page if the investigation that study wants to reference is not yet available. Completing the investigation creation form redirects user to the investigation detail page. The correct behaviour is to direct the user to the previous study create form.

[ENHANCEMENT] Make select be a separate component

Summary
Describe the new feature you want to be added

The current select component can be reused. Simply pack it to a library

Example
Provide an example or use-case of the requested feature

  • Selection style - single and multiple

[ENHANCEMENT] Remove double dipping of schema with both types and json

Summary
Describe the new feature you want to be added

Currently, every route generation requires creating a data.json as schema and a .types.ts file which duplicates information. A more elegant solution would be to create an object/class directly from the interface outline in types.ts.

Example
Provide an example or use case of the requested feature

N/A

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.