Giter Club home page Giter Club logo

codex-frontend's Introduction

codex-frontend

The frontend for Codex, written in React with Material UI components.

Contributions

Found a bug? Submit a report here.

Developer contributions are very much appreciated. Refer to the contribution guide or reach out to us on the Wild Me discord.

Setup and Installation

To install a working codex-frontend dev environment, you'll need install the backend by following the instructions in the Houston.

Instructions assume that you are signed into your GitHub account, have admin access to your OS's terminal, and have Git, Docker, and docker-compose installed. Instructions are written for linux with limited support for other OSs.

  1. From your browser in the top right corner of the codex-frontend repo, click the Fork button. Confirm the be redirected to your own fork (check the url for your USERNAME in the namespace).
  2. In your terminal, enter the command git clone https://github.com/USERNAME/codex-frontend
  3. Once you have both houston and codex-frontend repos available, move to your codex-frontend repo with cd codex-frontend
  4. Add a reference to the original codex-frontend repo to denote it as an upstream repo.
git remote add upstream https://github.com/WildMeOrg/codex-frontend
git fetch upstream
  1. Set up (husky)[https://github.com/typicode/husky] so that the linter runs before you commit.
  2. Run the command npm install husky -D
  3. npm run prepare
  4. In the houston project, edit the docker-compose.codex.yml file to redirect to your local copy of the dev-frontend code.
  5. In the file, find dev-frontend: and navigate to volumes:
  6. Delete the line - ../../_frontend:/code
  7. In its place, enter - LOCATION/codex-frontend:/code where LOCATION is the relative path to your local copy.
  8. Save your changes.
  9. Back in the terminal, cd to your local houston copy and run the following commands, noting that the docker-compose steps may take a long time to run the first time:
./scripts/codex/activate.sh
./scripts/codex/build.frontend.sh
docker-compose pull
docker-compose build
docker-compose up -d
  1. In your browser, go to https://localhost:84. If you see a welcome screen with Codex Initialized, you're ready to get started!
  2. If you see a blank screen or a 502 nginx error, run docker-compose down to bring down the instance.
  3. Allocate more memory to Docker. * If you're on linux, enter the command sudo sysctl -w vm.max_map_count=262144. This will need to be done each time you restart your system. Instead, add vm.max_map_count = 262144 to your system file /etc/sysctl.conf * If you're leveraging Docker Desktop, go to Settings > Resources and adjust the Memory limit.
  4. Run docker-compose up again.

App Setup

  1. At http://localhost:84, work through the admin initial setup.
  2. Navigate to Set Settings > Custom Fields
  3. Add Species
  4. Add Regions

Development

Create Local Branch

  1. Verify you are on the main branch. The branch you have checked out will be used as the base for your new branch, so you typically want to start from main. git checkout main
  2. Create your feature branch (FEATUREBRANCHNAME). It can be helpful to include the issue number (ISSUENUMBER) you are working to address. git branch ISSUENUMBER-FEATUREBRANCHNAME
  3. Change to your feature branch so your changes are grouped together. git checkout ISSUENUMBER-FEATUREBRANCHNAME
  4. Update your branch (this is not needed if you just created a new branch, but is a good habit to get into). git pull upstream

Git Commands

As you make the code changes necessary for the issue you're working on, you may find the following git commands useful.

  • git log: latest commits of current branch
  • git status: current staged and unstaged modifications
  • git diff --staged: the differences between the staging area and the last commit
  • git add <file name>: add files that have changes to staging in preparation for commit
  • git commit: commits the staged files, opens a text editor for you to write a commit log

Docker Commands

The following commands are helpful when developing in this manner:

  • docker-compose up -d: Run all containers in daemon mode, so you don't see all the logs running together.
  • docker-compose restart <image>: Restart a particular docker image (remember these are listed in docker-compose.yml).
  • docker-compose logs -f <image>: Show logs for a particular image.
  • docker-compose down: Stop all images.

Configuration and build

A build can be initiated with the command npm run build. You can specify the URL for Houston in /config/config.json or as a command line argument. Here are some examples:

npm run build -- --env=houston=https://houston.dyn.wildme.io
npm run build -- --env=houston=http://localhost:9999
npm run build -- --env=houston=relative // use relative file paths for API requests

Submit PR

Up to this point, all changes have been done to your local copy of codex-frontend. You need to push the new commits to a remote branch to start the PR process. Note: Now is the time to clean up your PR if you choose to squash commits. If you're looking for more information on these practices, see this pull request tutorial.

  1. Push to the remote version of your branch git push <remote> ISSUENUMBER-FEATUREBRANCHNAME If you want to push upstream directly, use git push origin ISSUENUMBER-FEATUREBRANCHNAME
  2. When prompted, provide your username and GitHub Personal Access Token. If you do not have a GitHub Personal Access Token, or do not have one with the correct permissions for your newly forked repository, you will need to create a Personal Access token.
  3. Check the fork's page on GitHub to verify that you see a new branch with your added commits. You should see a line saying "This branch is X commits ahead" and a Pull request link.
  4. Click the Pull request link to open a form that says "Able to merge". (If it says there are merge conflicts, go to the Wild Me Development Discord for help).
  5. Use an explicit title for the PR and provide details in the comment area. Details can include text, files, or images, and should provide details as to what was done and why design decisions were made.
  6. Click ** Create a pull request**.

Respond to Feedback

At this point, it's on us to get you feedback on your submission. Someone from the Wild ME team will review the project and provide any feedback that may be necessary. If changes are recommended, you'll need to checkout the branch you're working from, update the branch, and make these changes locally.

  1. git checkout ISSUENUMBER-FEATUREBRANCHNAME
  2. git pull upstream main
  3. Make required changes
  4. git add <filename> for all files impacted by changes
  5. git commit

Thanks

  • Thanks to Lokalise for providing translation management services.
  • Thanks to Flatfile for providing data import services.
  • Thanks to Emily Ke for developing the server status screen, page transitions, and more!
  • Thanks to Madeleine Webb for design assistance.
  • Thanks to Iris Shin for design assistance.

codex-frontend's People

Contributors

541joehill avatar atticus29 avatar bluemellophone avatar brmscheiner avatar emily-ke avatar erinz2020 avatar hinata-shoyo avatar holmbergius avatar hwindsor avatar karenc avatar mmulich avatar naknomum avatar tanyastere42 avatar tsubramanian avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

codex-frontend's Issues

selected region includes nested regions in the matching set

User story:

As a researcher (or admin) on the sighting page when trying to re-run an ID job, I can select a region for matching, and the regions nested under that region are also selected automatically.

Validation information:

  • Verify that the match set includes nested regions (easiest through the api)

sighting search - freeform location in table

User story

Freeform location should display immediately after region
Column name: Freeform location

Technical notes

table options are set up here: /src/models/sighting/useSightingSearchSchemas.js

individual search - last region location in table

User story

As a researcher on the individual search table, I can see an individual's last region (the region of the most recent sighting associated with the individual)

  • Last region should display immediately after last seen
  • Column name: Last region

Technical notes

table options are set up here: /src/models/individual/useIndividualSearchSchemas.js

Use the same logic as "last seen" column to determine the most recent sighting. will keep results consistently pointing at the same thing
'LAST_SIGHTING_DATE_RANGE'

Dependency on WildMeOrg/houston#907

move error messages on modal

Current behavior
Error messages are in a consistent location that works well on small modals, but gets lost when there are long lists of information (such as the metadata edit on individuals, sightings, or animals within sightings)
image

Desired behavior
Have error messages display in a static location so that users will see message, regardless of how far they have scrolled on the page
image

Autogenerate names/Codex ID - Sighting Search

Context: arguments about names are a significant reason against collaboration within biology. People want to maintain the specific name they leverage in their personal catalogue.

By providing an automatically generated name that is associated with Codex specifically, we can promote Codex as a collaboration tool, as well as a catalogue solution, by providing a workspace with common shared nomenclature that does not threaten the name spaces used in individual catalogues.

Resources

Final design: https://www.figma.com/file/CQlIlIp73EjmGKANvWzoIR/Codex%3A-Autogenerate-names?type=design&node-id=414-24333&mode=design&t=lL6As7KZvdqzLDeh-0

User Story:

As a user on the sighting search page, I can search by either species or the Codex ID number

Image

Replace plus button on annotation management with text button

Context

The + button on the annotation card is supposed to indicate annotation management. This is a unique concept to this platform, and should be referenced with words, not with symbols of assumed meaning, because as it stands, users cannot self-support their way through the curation process
image

User Story

As a user on the Sightings > Animals tab, I see a button that says "Adjust annotations" where the "+" button is

Technical notes

src/pages/sighting/encounters

Autogenerate names/Codex ID - New species + prefix

By providing an automatically generated name that is associated with Codex specifically, we can promote Codex as a collaboration tool, as well as a catalogue solution, by providing a workspace with common shared nomenclature that does not threaten the name spaces used in individual catalogues.

Resources

Final design: https://www.figma.com/file/CQlIlIp73EjmGKANvWzoIR/Codex%3A-Autogenerate-names?type=design&node-id=414-24333&mode=design&t=lL6As7KZvdqzLDeh-0

User Story:

  • As an Admin on the manage species page, I can click the + button above the table to add a new species via the add species modal

Image

  • As an Admin on the Add species modal, I am required to select a species and enter a prefix before I can add a species to the platform
    • prefix must be between 3-5 characters
  • As an Admin who has confirmed a species, I can see it in the table

QA:

  • can add species

Update button component

Resources

Untitled

User story:

We want to update the general look and feed of Codex. As part of this effort, we will work through our components library and update them match new styling. We will tackle one to two components each dev cycle

Validation information:

  • Updates to Primary, Secondary, and Tertiary buttons
  • buttons need to reflect theme color
  • Buttons should allow just text, just icons, icon before text, and text before icon

Metadata display redesign - sightings tabs

Context: The original designs waste a lot of space and tend to confuse people about how to take certain actions. Incremental redesigns until we get to a more intuitive UI

Resources

Final design: https://www.figma.com/file/xmP0wBn2rIfZxEu1TWRrO5/Codex%3A-metadata-display-redesign?type=design&node-id=197-2396&mode=design&t=XzxOha5f7HuOxMIE-0

Image

User story:

As a user on a sighting page, I will only see 3 tabs: overview, annotation, and animals

  • Annotation tab will default to annotations on, with toggle to turn them off (see current photograph tab)
  • 3dot menu will have add annotation (currently on photograph tab) and delete annotation (currently on annotation tab)

QA:

  • verify visual changes
    • There are only three tabs, labelled Overview, Annotations, and Animals
    • on the Annotations tab, the annotations are on by default
    • on the Annotations tab, the 3dot menu displays both add annotation and delete annotation
  • smoke test: verify all functions still work in new arrangement
    • Annotations tab: toggle on/off annotations
    • Annotations tab: add annotation
      • add annotations to an image that has no annotation
      • add annotations to an image that has annotations
      • click at an image that has no annotations, check if the "add tag" button is disabled, it should be
    • Annotations tab: delete annotations
      • delete all annotations of the same image and check if the image still display on the page, it should be
      • delete one annotation off of an image; verify that the correct annotation is deleted and the rest remain
      • check the delete annotation button of an image that has no annotation, the button should be disabled
    • click at an image that has annotations, add tags, it should work

Autogenerate names/Codex ID - Edit species prefix

Context: arguments about names are a significant reason against collaboration within biology. People want to maintain the specific name they leverage in their personal catalogue.

By providing an automatically generated name that is associated with Codex specifically, we can promote Codex as a collaboration tool, as well as a catalogue solution, by providing a workspace with common shared nomenclature that does not threaten the name spaces used in individual catalogues.

Resources

Final design: https://www.figma.com/file/CQlIlIp73EjmGKANvWzoIR/Codex%3A-Autogenerate-names?type=design&node-id=414-24333&mode=design&t=lL6As7KZvdqzLDeh-0

User story

As an admin on the manage species page, I can click the edit button of a species to edit the species prefix.

On the edit species modal, I can enter a code between 3-5 characters that is unique to the platform to be the new prefix for a given species

Image

QA

  • prefix of the edited species updates for all individuals of that species (backend)
  • prefix must be between 3-5 characters

Individual search UI rework

Resources

Final design mockup: https://www.figma.com/file/67AYBU2OioLcLpEVdq7uEQ/Codex%3A-support-search-of-all-sighting%2Findividual-content?node-id=0-1&t=JVxfCugm3SBQfd7t-0

User Stories:

  • As a researcher or admin, on the individual search page, I can access all search filters in a single page
  • As a researcher or admin on the individual search page, I can adjust all my filters, then see them apply to the search results

Validation information

QA: focus on functionality

  • all sighting search fields appear and are functional in filtering the list, including custom fields
  • adjust all fields, one field, no fields, and a combination of fields
    • verify the results are as expected when submitted
    • verify no changes take place when the filtering is cancelled

Autogenerate names/Codex ID - Codex ID on merge individual page

Context: arguments about names are a significant reason against collaboration within biology. People want to maintain the specific name they leverage in their personal catalogue.

By providing an automatically generated name that is associated with Codex specifically, we can promote Codex as a collaboration tool, as well as a catalogue solution, by providing a workspace with common shared nomenclature that does not threaten the name spaces used in individual catalogues.

Resources

Image

Final design

User Story

  • As a user on the merge individual page, I see a dropdown labeled Codex IDs.
  • As a user on the merge individual page, I am required to select between the Codex IDs before I can submit the ID.

Table component has scroll bar instead of wrapping text

Current Behavior

Table component doesn't wrap, creating a scroll bar that is difficult to find if the table is longer than the page
image

Expected Behavior

Table contents wrap
image

##QA Checklist

  • change log table wraps correctly, no longer displays the horizontal scroll

terms and conditions PDF not working on production

current behavior

user clicks TOU link, tab opens but 404 error because pdf cannot be found

expected behavior

when user clicks TOU link, the pdf successfully opens

investigation notes

problem stems from where the pdf is located on production environments vs dev environments

codex initiation screen flashes on home page when not signed in

Current Behavior

From Dev branch, when platform home screen is accessed, the system initialization screen shows before the home page loads if user is not signed in

video1878594051.mp4

Expected behavior

  • Users only see initialization screen during platform setup
  • Users see home screen when they access a codex url when not signed in
  • Current behavior for signed-in users is maintained

Autogenerate names/Codex ID - new page species management

Context: arguments about names are a significant reason against collaboration within biology. People want to maintain the specific name they leverage in their personal catalogue.

By providing an automatically generated name that is associated with Codex specifically, we can promote Codex as a collaboration tool, as well as a catalogue solution, by providing a workspace with common shared nomenclature that does not threaten the name spaces used in individual catalogues.

Resources

Final design: https://www.figma.com/file/CQlIlIp73EjmGKANvWzoIR/Codex%3A-Autogenerate-names?type=design&node-id=414-24333&mode=design&t=lL6As7KZvdqzLDeh-0

User story:

  • As an Admin on the manage fields page, I go to a new page when I click the edit species button

Image

  • As an Admin on the Manage species page, I see a table with Species, Count, and Action
    • Species should display common name and scientific taxonomy
    • Count displays number of individuals in the species
    • Actions has an edit button (edit button function will be completed as part of Edit species prefix)

Image

ID prefix will be added as part of turn on Codex ID; edit button will be added as part of Edit species prefix

QA:

  • click button, goes to “Manage Species” page
  • Verify Manage Species table

Can't save Metadata edits on an Individual page

Expected Behavior
You can edit the metadata for an Individual and save your changes.

Current Behavior
If you edit the metadata for an individual and then click Save, nothing happens and the edit window stays up.

Community Link
https://community.wildme.org/t/cant-edit-metadata-on-individual-page-in-codex/2262

QA Notes
Weird error on submit. In testing with this zebra, we couldn't save the sex or adoption name.

Image

  • Tested with this seal in QA server; could not reproduce behavior.
  • Tested with this seal in Seal Codex; could not reproduce behavior.

two keywords to merge

keywords get added ad hoc and from historical data sets. These frequently have similar intentions but wildly different representations. We need to allow our admins to manage these duplication in bulk to unify datasets in our catalog.

Resources

Final design: https://www.figma.com/file/TfpDVirbMc3K8ctrVxVBFI/Codex%3A-keyword-edit?node-id=148-9094&t=P6QjPziL0OvosqsZ-0

User Stories:

  • As an administrator on the new keyword and data management page, I can select two or more keywords, with one or more to be merged and one to be retained, and I can see a preview of the changes before I confirm
    • example: merging duplicates with different capitalization (Female and female)

QA:

  • Merge two keywords; verify the merged keyword no longer appears in the platform or in the keyword list
  • Add an additional keyword; merge these three. Repeat the above.
  • Do this for up to 5 keywords at once

remove score from query annotation in match interface

Current Behavior
/src/pages/match/QueryAnnotationsTable.jsx currently has a column indicating the individual's score. When talking about the query annotation, having a "score" is counter-intuitive and disruptive to the interface.

  1. navigate to sighting
  2. click match results
  3. observe query table on match results page

Desired Behavior
We just need to drop the column entirely:
image

match page: set state

Users need to be able to set the state of a sighting when matching is complete.

Resources

Image

User Stories

  • As a researcher+ on the match page, I can set the sighting status to one of four states via a dropdown at the bottom of the page: unreviewed (default), in progress, reviewed, unidentifiable
  • I cannot set the state via action menu button at the top of the page.

QA

  • Visit a match page; see a dropdown at the bottom of the page: unreviewed, in progress, reviewed, unidentifiable
  • Set the state of the match
  • Verify the state is reflected on the sighting page for each state
  • no action menu at top of page

Update Theme Colors

Resources

https://www.figma.com/file/sUFpAqqCCRYUzVStKnLlQo/Style-and-Design---Codex?type=design&node-id=0-1&t=MPa9h05xQaPodd2c-0

User story:

We want to update the theme colors to be less neon, improving the legibility of the platform.

User selected theme colors:

  • (Default) Lavender: #8176B1
  • Forest: #71AC8F
  • Aqua: #53BAC5
  • Prairie: #E9AD60
  • Rose: #B95E9D

If platform is set to a color that doesn’t exist anymore (Lime or Sky), then it should automatically become the default on update.

Additionally, we want to reduce the stark contrast between the headings and the page.

  • #2B2351 to replace the black components, such as the header, and the apply to headers

Finally, we want to have secondary and tertiary brand colors available for body copy

  • Secondary: #6D6B7B
  • Tertiary: #9D9CAC

Validation information:

We should just be changing the theme colors; any additional fallout (colors cascading to the wrong components, etc) should be noted, but will not be addressed as part of this effort

Metadata display redesign - individual

Context: The original designs waste a lot of space and tend to confuse people about how to take certain actions. Incremental redesigns until we get to a more intuitive UI

Resources

Image

User story:

  • As a user on the individual page, I see card with the individual information rather than a banner across the top of the page
  • As a user on the individual page, photos are grouped with the individual information

QA:

  • verify visual changes

change log: page and table

By giving admins and support access to a table of the changes that have taken place in the platform, we are enabling them to see patterns and problems that may improve troubleshooting and head off development and support issues

Resources

Final design: https://www.figma.com/file/9kvaU99j6Q5XjzSYTyWmtZ/Change-Log?node-id=124-448&t=3hFNSNDVGWvYqyPo-0

Image

Technical notes

  • we are not making modifications to the log APIs as part of this feature. This feature is entirely about getting users access to the logs without having to leverage developer tools

User Stories

  • As an administrator on the change log page, I can see a paginated list of all actions that have taken place on the platform

QA

  • Verify the change log page is populated with a table that lists messages of what has happened in the platform
  • change a user’s name. verify the change shows in the table
  • create a sighting. verify it shows in the table
  • perform matching. verify it shows in the table
  • create an individual. verify it shows in the table
  • create a collaboration. verify it shows in the table

keyword to be replaced

keywords get added ad hoc and from historical data sets. These frequently have issues such as typos or outdated terminology. We want to give admins the ability to update these terms ad hoc to ensure the datasets are the best representation of state of the art and professionalism

Resources

Final design: https://www.figma.com/file/TfpDVirbMc3K8ctrVxVBFI/Codex%3A-keyword-edit?node-id=148-9094&t=P6QjPziL0OvosqsZ-0

User Stories:

  • As an administrator on the new keyword and data management page, I can select a keyword and enter replacement text
    • example: correcting a typo

QA:

  • Select a keyword and change the text; verify the changes appear in the platform and in the list
  • Select a keyword then cancel the edit. Verify no changes were made and the keyword persists.
  • Select a keyword and update with the same text. Verify that the submission successfully completes

bulk import: lat/long submission error

Expected Behavior
Successfully upload a bulk import as long as all the required fields are present for all encounters

Current Behavior

  1. bulk import with example data
  2. on submission of sightings, get this error:
    Cannot convert to float for decimalLatitude in Sighting 5
    because sighting 5 does not contain decimal. this should not block submission because not a required field

example data

mediaAssets decimalLatitude decimalLongitude year month day hour minutes sex species individualID locationID TimeSpecificity Life stage
harborseal1.jpg 4.33 74.22 2014 6 10     male Phoca vitulina SEAL-011 US Pacific day pup
harborseal2.jpg 5.22 71.21 2014 7 2       Phoca vitulina US Pacific day adult
harborseal3.jpg 6.11 70.12 2015 7 15     female Phoca vitulina US Pacific day adult
harborseal4.jpg 7.02 69.89 2017 4 2 12 34   Phoca vitulina US Pacific hour adult
harborseal5.jpg   2022 5         Phoca vitulina US Pacific year adult

individual search - last freeform location in table

User story

As a researcher on the individual search table, I can see an individual's last freeform location (the freeform location of the most recent sighting associated with the individual)

Last freeform location should display immediately after last seen
Column name: Last freeform

Technical notes

table options are set up here: /src/models/individual/useIndividualSearchSchemas.js

Use the same logic as "last seen" column to determine the most recent sighting. will keep results consistently pointing at the same thing
'LAST_SIGHTING_DATE_RANGE'

Dependency on WildMeOrg/houston#908

Restrict Contributor access to bulk import option in action menu

Context
FE allows Contributor users to go through entire bulk upload flow, but contributors are not permitted to use bulk import on BE, so submission fails

Expected Behavior
Sign in as Contributor
Do not see "Bulk Import" under Actions menu

Current Behavior

  1. Sign in as a Contributor
  2. Select Bulk Import under Actions menu
  3. Walk through the Bulk Import workflow
  4. Submit data after verifying all fields are correct
  5. Confirming data resulted in error message:
    "Submission error
    Cannot convert to float for decimalLatitude in Sighting 4"

QA Notes
Anastasia: Used the following example data while testing:

mediaAssets decimalLatitude decimalLongitude year month day hour minutes sex species individualID locationID TimeSpecificity Life stage
harborseal1.jpg 4.33 74.22 2014 6 10     male Phoca vitulina SEAL-011 US Pacific day pup
harborseal2.jpg 5.22 71.21 2014 7 2       Phoca vitulina US Pacific day adult
harborseal3.jpg 6.11 70.12 2015 7 15     female Phoca vitulina US Pacific day adult
harborseal4.jpg 7.02 69.89 2017 4 2 12 34   Phoca vitulina US Pacific hour adult
harborseal5.jpg   2022 5         Phoca vitulina US Pacific year adult

default value for whole number custom fields does not display or save

Expected Behavior

When a sighting is reported, the default value is saved unless a different value is provided by the user. Clearing the value is respected unless it is a required field.

Current Behavior

  1. As admin, create a custom sighting field that is a whole number with a default value
  2. Go to report sightings
  3. look at custom sighting field; will not have default value
  4. submit sighting
  5. go to sighting
  6. sighting will not have value in the whole number custom sighting

Additional test information - contributor test

Assume custom sighting field with default value is already created

  1. Log in as contributor
  2. Individual contribution Create a sighting as per usual.
  3. Fill in all the fields and hit submit.
  4. FE requests : /pending-sightings/{sightingGuid) which is not visible to the contributor user on the BE. FE should just show a "Thankyou" message for contributor created sightings

QA Verification

  • report a sighting without changing default value; verify default value is saved on the sighting
  • report a sighting and change the default value; verify your changed value is saved on the sighting
  • report a sighting with the default value on a required sighting field. clear the field; the sighting is blocked from being created
  • report a sighting with the default value on a non-required sighting field. clear the field. verify the field has no value saved on the sighting

Identification status bar does not report malformed information, misrepresenting queue time and jobs

Expected Behavior
From the sighting screen, the Overview tab should show the identification status with the time remaining and number of jobs its queued behind.
If the eta is invalid, it should instead display "Estimated time to complete failed to calculate. If processing does not complete within a day, re-run the job."

Current Behavior

  1. Start or re-start a match on a sighting.
  2. Look at the ID status, which will appear in the Overview tab. Identification status shows "Unknown time remaining. Queued behind 0 jobs"

because if the eta that FE gets is invalid, FE will show this "unknown" thing

if (!isEtaValid && isAheadValid) {
    return {
      id: 'PROGRESS_STATISTICS_UNKNOWN_ETA_&_QUEUE',
      values: { ahead },
    };
  }

QA Notes
Anastasia: I can see the number of jobs in the queue now getting smaller as time passes, although it still shows "unknown time remaining". After 25 minutes, ID is still incomplete even though it now shows 0 jobs in the queue. ID completed quickly in QA server, but took 30 minutes in Zebra Codex.

Image

performance issue blocks report sighting on firefox

Expected Behavior
User can submit a sighting on Firefox

Current Behavior
For some users, a series of 401 errors locks up the reporting page on firefox once you get past image submission stage. Suspected to be a performance issue

Image

"assign annotations" button on the pending sighting notification

Context

At present, users can add annotations and have no notice of how to assign an annotation to an animal, allowing them to commit the sighting. A quick-and-easy update we can do is provide direct navigation to the animals tab via the pending alert

User Story

As a researcher on an uncommitted sighting, I have a call to action button to assign annotations that navigates me to the appropriate tab, no matter what tab I'm on.

Button label is "Assign" to match button label from #570

Technical notes

Pattern after the commit alert
image

Autogenerate names/Codex ID - Codex ID on match page

Context

arguments about names are a significant reason against collaboration within biology. People want to maintain the specific name they leverage in their personal catalogue.

By providing an automatically generated name that is associated with Codex specifically, we can promote Codex as a collaboration tool, as well as a catalogue solution, by providing a workspace with common shared nomenclature that does not threaten the name spaces used in individual catalogues.

Resources

Image

User story

As a user on the create individual page, I see an alert letting me know that a Codex ID will be assigned to the new individual

QA

  • Verify text matches design
  • Verify alert displays on individual creation

change log: control panel

Admins and support need to have access to changes in the platform so they can better support users

Resources

Final design: https://www.figma.com/file/9kvaU99j6Q5XjzSYTyWmtZ/Change-Log?node-id=124-448&t=3hFNSNDVGWvYqyPo-0

Image

Technical notes:

  • we are not making modifications to the log APIs as part of this feature. This feature is entirely about getting users access to the logs without having to leverage developer tools

User Stories:

  • As an administrator on the control panel page, I can see a button that takes me to the change log page.
  • URL: /settings/changelog

QA:

  • Verify the button is on the control panel and it navigates to an appropriate url

keyword list

Admins need to have a top-level view of the data in the platform so they can help with data issues. This table is intended to be the start of that visibility

Resources

Final design: https://www.figma.com/file/TfpDVirbMc3K8ctrVxVBFI/Codex%3A-keyword-edit?node-id=148-9094&t=P6QjPziL0OvosqsZ-0

User Stories

  • As an administrator on the manage keywords page, I can see a list of all keywords in the platform.
    • The list displays the name and number of occurrences
    • The list filters on name
    • The list has a delete button in the actions section; delete performs a bulk delete, removing all instances of the keyword

Image

Delete Modal

Image

IMPORTANT: design only encompasses the list of keywords at the bottom. Merge keywords and Replace keywords will be handled in separate tickets

QA

  • Verify the following
    • The list displays the name and number of occurrences
    • The list filters on name
    • The list allows you to delete a keyword
    • When you click delete, a confirmation modal comes up. You must confirm before delete occurs

change log: search

By giving admins and support access to a table of the changes that have taken place in the platform, we are enabling them to see patterns and problems that may improve troubleshooting and head off development and support issues

Resources

Final design: https://www.figma.com/file/9kvaU99j6Q5XjzSYTyWmtZ/Change-Log?node-id=124-448&t=3hFNSNDVGWvYqyPo-0

Image

Technical notes

  • we are not making modifications to the log APIs as part of this feature. This feature is entirely about getting users access to the logs without having to leverage developer tools

User Stories

  • As an administrator on the change log page, I can input a guid to see a paginated list of actions that have been taken on that object

QA

  • search the change log using a guid for each of the following object types. make sure multiple messages appear:
    • sighting
    • encounter/animal
    • individual
    • user

Tips:

  1. pressing enter on keyborad can trigger searching, it acts the same as the search button
  2. clear the entered item guid and then press enter or click at search button will show all the change logs.

animal search default filters

Context

There are default fields within the system that the user should be able to use to adjust the search results.

User Story

As a researcher on the animal search page, I see the following filters:

  • state - dropdown
  • time - date picker
  • region - dropdown
  • exact location - gps
  • freeform location - string
  • name - string
  • codex ID - string
  • species - dropdown

Technical Notes

Filters are respected by the export option

Design

Image

Autogenerate names/Codex ID - Codex ID on Individual page

Context: arguments about names are a significant reason against collaboration within biology. People want to maintain the specific name they leverage in their personal catalogue.

By providing an automatically generated name that is associated with Codex specifically, we can promote Codex as a collaboration tool, as well as a catalogue solution, by providing a workspace with common shared nomenclature that does not threaten the name spaces used in individual catalogues.

Resources

Final design: https://www.figma.com/file/xWzUldKxiSvoKsQO4Y7azD/Codex-ID?type=design&node-id=0-1&mode=design&t=LrVVnr6vj3lJvtbo-0

Note: design assumes #508 has been completed.

Image

User Story:

As a user on an individual page, I see the Codex ID as a chip in the summary section at the top of the individual page.

add keyword management to control panel

Context: This is just a story to create natural access within the web app to keyword management.

Final design: https://www.figma.com/file/TfpDVirbMc3K8ctrVxVBFI/Codex%3A-keyword-edit?node-id=148-9094&t=P6QjPziL0OvosqsZ-0

User Story

As an administrator on the admin console, I can access a page that allows for keyword and data management

Image

url: /settings/keywords

QA:

  • Visit the control panel; make sure the button is labeled “Manage Keywords”
  • Click the button; make sure you are navigated to the manage keywords page (check breadcrumbs/url)

animal search custom filters

Context

Continuing to support the extensibility of the custom fields will continue to reduce customer support requests for custom data management.

User Story

As a researcher on the animal search page, I see all the animal custom fields as filters to be used in adjusting my search results

Technical Notes

Should pull all encounter custom fields and populate the filter area automatically

Design

Example of placement below default fields
image

Sighting search UI rework

Resources

Final Design mockup: https://www.figma.com/file/67AYBU2OioLcLpEVdq7uEQ/Codex%3A-support-search-of-all-sighting%2Findividual-content?node-id=0-1&t=JVxfCugm3SBQfd7t-0

User Stories:

  • As a researcher or admin, on the sighting search page, I can access all search filters in a single page
  • As a researcher or admin on the sighting search page, I can adjust all my filters, then see them apply to the search results

QA: focus on functionality

  • all sighting search fields appear and are functional in filtering the list, including custom fields
  • adjust all fields, one field, no fields, and a combination of fields
    • verify the results are as expected when submitted
    • verify no changes take place when the filtering is cancelled

sighting search - number of animals in table

User Story

As a user on the sighting search table, I can see the number of animals (encounters) in a sighting.

Technical notes

options are set at /src/models/sighting/useSightingSearchSchemas.js

match page: no match confirmation

Users need to be able to confirm no match when reviewing annotations for matching.

Resources

image (8)

User Stories

  • As a researcher+ on the match page, I am prompted with what to do if I cannot find a match in the list with the instruction "Can't find a match for the sighting?"
  • As a researcher+ on the match page, I can confirm there is no match in the potential matches with a "Confirm no match" button in the table.

QA

  • Visit a match page; see two buttons for next action:
    • Confirm no match
    • Save match (existing button)
  • Verify copy is "Can't find a match for the sighting?" and "Confirm no match"
  • Verify Confirm no match creates a new individual for the query annotation only
  • Verify confirm match works (already works)
    • requires a second annotation be selected
    • if both query and match annotations are not part of individuals, creates an individual with both annotations linked
    • if either query or match belong to an individual, the other is added to the existing individual
    • if both query and match belong to different individuals, merge process starts

sighting search - number of individuals in table

User Story

As a user on the sighting search table, I can see the number of individuals (animals that have been identified) in a sighting.

Technical notes

options are set at /src/models/sighting/useSightingSearchSchemas.js

Autogenerate names/Codex ID - Individual Search

Context: arguments about names are a significant reason against collaboration within biology. People want to maintain the specific name they leverage in their personal catalogue.

By providing an automatically generated name that is associated with Codex specifically, we can promote Codex as a collaboration tool, as well as a catalogue solution, by providing a workspace with common shared nomenclature that does not threaten the name spaces used in individual catalogues.

Resources

Final design: https://www.figma.com/file/CQlIlIp73EjmGKANvWzoIR/Codex%3A-Autogenerate-names?type=design&node-id=414-24333&mode=design&t=lL6As7KZvdqzLDeh-0

User Story:

As a user on the individual search, I can use a Filter called “Codex ID” to search by the number of the Codex ID

Image

update twitter submission description with cost requirements

Desired behavior
en.json needs to have a string updated to reflect that changes to the twitter API require a paid account for Twitterbot to work

Current behavior
en.json only indicates how to find account info, rather than including account restrictions

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.