Coder Social home page Coder Social logo

fordlabs / peoplemover Goto Github PK

View Code? Open in Web Editor NEW
7.0 16.0 7.0 13.56 MB

DEPRECATED ⛔️: A tool for managing people allocation across projects

License: Apache License 2.0

Kotlin 31.88% JavaScript 0.71% HTML 0.23% TypeScript 60.51% SCSS 6.63% Shell 0.04%
kotlin react springboot no-longer-maintained

peoplemover's People

Contributors

aclift19 avatar alexwojtala avatar crouchsnap avatar dctid avatar dependabot[bot] avatar devguy22 avatar druage avatar dulcimerist avatar egriff38ford avatar hirava271 avatar jodee avatar jshaddac avatar jwcherney avatar kschmitt20 avatar lndobryden avatar lowbudgetman avatar max-wilkinson avatar michaelrygiel avatar mwilki71-ford avatar nataliakumar avatar nb00000 avatar nickilpat avatar randomashes avatar reneeliken avatar sabdul14 avatar sapphon avatar sgraha75 avatar tsatam avatar tslo11 avatar willot avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

peoplemover's Issues

Add ability to duplicate an existing space

Feature Request
As a user of peoplemover
I want the ability to clone an existing space
so that I can easily use it for prospective changes or split off new teams without having to reenter information

Acceptance Criteria
From the opening screen of PeopleMover (which lists all the user's current spaces), a user will be able to click the three menu dots. In addition to the current Edit option, a user will also be able to select "Duplicate space" which will create a copy of the existing space. On click of Duplicate space, the screen of available spaces will reload and the the new screen will now have an additional space with the name of the copied space listed as "[Space name] Duplicate"

Duplicating a board menu:
image

State when board has been duplicated:
image

Currently the ownership and editorship details remain the same for the duplicated board

Accessiblity Criteria
Text and background color meets a minimum color contrast ratio of 4.5:1
All non-text content (e.g. images, icon) has alt text
Web page includes appropriate headings to communicate structure/hierarchy (h1>h2>h3)
All functionality is available to a keyboard
Focus styles are highly visible
Tab order is logical and aligns with the visual order
Voice over is understandable and logical
Aria labels are added to elements with no visible text
Decorative elements (e.g. non-informative icons) are hidden from screen readers
Form fields have appropriately coded labels that are visible during input
Links are visually identifiable and have a clear focus and active state
Notes

Move people to Unassigned when Product end date passes

Feature Request

As a user of PeopleMover
I want people on products that have a future end date to move to the unassigned section instead
so that people do not disappear if I forgot to move them before the scheduled product end date

Acceptance Criteria

Given a product with people on it has a future end date
When the date occurs
Then the people assigned to only that product should be moved to the unassigned column unless they have a scheduled assignment on that date
And everyone on the archived product should no longer be on it
AND this date should show as a purple circle on the calendar if reassignments occur

Given a person assigned to two different products
When the product end date occurs
Then we should continue the current behavior of NOT adding the person to unassigned since they already exist on a different product
And everyone on the archived product should no longer be on it

Accessibility Criteria

  • Text and background color meets a minimum color contrast ratio of 4.5:1
  • All non-text content (e.g. images, icon) has alt text
  • Web page includes appropriate headings to communicate structure/hierarchy (h1>h2>h3)
  • All functionality is available to a keyboard
    • Focus styles are highly visible
    • Tab order is logical and aligns with the visual order
  • Voice over is understandable and logical
    • Aria labels are added to elements with no visible text
    • Decorative elements (e.g. non-informative icons) are hidden from screen readers
  • Form fields have appropriately coded labels that are visible during input
  • Links are visually identifiable and have a clear focus and active state

Notes

Please provide notes on this feature if applicable.

Run E2E environments on different ports than the normal local environments run on

Tech Debt

Whenever we run E2E tests locally, they fail if a local instance of the backend is already running

Why is this needed?

It's really annoying to have to kill local running instances to run tests of any sort

Select all that apply:
-[ ] Confusing for onboarding
-[ ] Addresses poor performance
-[ ] Does not meet a software standard
-[ ] Embarrassing from an open source perspective
-[ ] Updating dependencies
-[ ] Strengthens brittle tests
-[ ] Shift to new infrastructure requirements
-[X] A one-time fix for a problem that's wasted my time many times

Do we have a solution in mind?

(If no, label with "Engineering Discussion Needed")

  • Run the E2E backend on a different port

What's the expected result?

  • I don't have to stop anything to run E2E tests locally

Impact to Product:

Broken test(s) and / or buildable package version issue(s)

Tech Debt

Broken test(s) and / or buildable package version issue(s).

Why is this needed?

Select all that apply:
-[x] Confusing for onboarding
-[x] Updating dependencies
-[x] Strengthens brittle tests

Do we have a solution in mind?

Notes from slack conversation with Lee and Dan

  • Sonar initially broke: the stage branch which the default one broke here - fdf43ff
  • then that was fixed but a fossa scan failed
  • then Nick did something to the github actions that broke it here - 4fa1115
  • doesn't look like that's what broke the test though, and the build log is nearly 25k lines long
  • he may not be wrong though. Every package is set to use "^" which installs a potentially breaking minor version update
  • running "npm ci" to install dependencies in theory should install a good working version of dependencies based on what is in the package-lock.json
  • doesn't seem to have fixed it, or there's some very flakey tests, or there was some sweet spot of buildable package versions that's forever lost

What's the expected result?

  • PeopleMover should be able to be built and test cases run with no impact to user.

Impact to Product:

  • Ability to push to Prod again.

export/get all products and people in a space

requested by a Ford user, looking for a way to automate user creation in a different app and looking to be able to pull teams and members from a space

solutions:

  • GET API
  • export via CSV

Hide Filters in View Only

Feature Request
As a PeopleMover user
I would not like the people tags or product tags for my space to be viewable in View Only
so that I can keep that information limited to only the editors of a space

Acceptance Criteria
Given someone with view only access views my space
When they are sent to my space
Then they cannot see People Tags or product tags reflected in the sub-navigation or anywhere else

Accessiblity Criteria
Text and background color meets a minimum color contrast ratio of 4.5:1
All non-text content (e.g. images, icon) has alt text
Web page includes appropriate headings to communicate structure/hierarchy (h1>h2>h3)
All functionality is available to a keyboard
Focus styles are highly visible
Tab order is logical and aligns with the visual order
Voice over is understandable and logical
Aria labels are added to elements with no visible text
Decorative elements (e.g. non-informative icons) are hidden from screen readers
Form fields have appropriately coded labels that are visible during input
Links are visually identifiable and have a clear focus and active state
Notes
Please provide notes on this feature if applicable.

Accessibility Issues within Share Access

As found in testing Issue: Matomo not capturing all activity - the confirmation modal when user removes themself from space does not allow tabbing within modal (to go from Yes or No to cancel). Also voice-over is not reading the message within the modal.

Multiple issues with tabbing through the modals, shift tabbing works sometimes but then you can get lost.

Within the Share Access double modal experience, when user tabs/enters the second modal and hits tab again the cursor returns to the first modal rather then the modal the user had opened. This is not expected behavior.

Update 11/8/21: multiple issues with tabbing on this area, need to revisit

Add Product level notes

Feature Request

As a PeopleMover editor
I would like to be able to view product level notes without going into the edit product popup
so that product notes can be visible on the main screen for both editors and viewers

Acceptance Criteria

If I am on the main screen and a product has an associated note, I will be able to view that note without going into edit product.

Constraints on this acceptance criteria:

  1. Editors can still edit the note via the edit product popup box
  2. Viewers can view the notes but not edit them

Accessibility Implemented (optional)

  1. Constraint 1
  2. Constraint 2
  3. etc

Notes

Please provide notes on this feature if applicable.

Triple dot context menu disappears with default black role color

The person context menu disappears when the user chooses the default black color for a role. The triple dot context menu is visible for all other colors.

Make dots white when role is black label
Design - image

Recommend either
(useful UX)

change triple dot to another color (white) when role color is black, or
not allow black as a role color (maybe a gray instead of black?), or
(less useful UX)
change default color to something other than black and hope no one ever chooses black, or
after the user clicks save, change the color chosen behind the scenes so that although black can selected, that selection can never be saved to the database, or
On discovering that a user has chosen black as a role color, show an error screen indicating that the PeopleMover has been compromized, and that the user should reboot their machine as a preventive measure, or
... (trying to stretch my mind to come up with something even more innocuous but insidious sounding)

Consolidate Location Tags as a subtype of Product Tags

As it stands now, product location effectively operates as a product tag, but it stands as a completely separate domain concept - we should at least discuss consolidating all tags pertaining to a product into a single domain concept, and discuss the implications for doing so (including how we'd change the DB, backend, and frontend).

We have a lot of somewhat complicated code that grabs all tag types and just mashes them together, using hard-coded indices and magic strings to demarcate the different types (for example, ProductFilter.tsx:67) - if we had a single interface for tags, we could simply return all desired tags including their subtype (i.e. location, role, user-defined, etc...) as part of a single request, instead of making 3 requests to 3 controllers and waiting for all 3 to return.

This would make adding new subtypes in the future easier, and also better prepare our codebase for if our users ever wanted the ability to define their own tag subtypes.

Add global focus style on all primary buttons (see Get Started button on home page)

Feature Request
As a peoplemover user with a disability
I would like all focus states for primary buttons to be visually clearer
so that I know when I am focused on a particular button

Acceptance Criteria
Save button in Add New Space modal
Create button in Create New Space modal
Assign button in Assign a person modal
Save button in Edit person modal
Add button in Add New Person modal
Invite button in Invite others to edit modal
Save button in Edit Product modal
Add button in Add Product modal

Add a global style for primary buttons to inherit from.

Make it look like Get Started button on landing page.

Accessibility Criteria
Text and background color meets a minimum color contrast ratio of 4.5:1
All non-text content (e.g. images, icon) has alt text
Web page includes appropriate headings to communicate structure/hierarchy (h1>h2>h3)
All functionality is available to a keyboard
Focus styles are highly visible
Tab order is logical and aligns with the visual order
Voice over is understandable and logical
Aria labels are added to elements with no visible text
Decorative elements (e.g. non-informative icons) are hidden from screen readers
Form fields have appropriately coded labels that are visible during input
Links are visually identifiable and have a clear focus and active state
Notes

Editor Leaves Space

Feature Request

As a peoplemover user with Editor access
I would like the ability to leave a space
so that I no longer have access to it and it does not appear on my dashboard

Acceptance Criteria

Given I am in my dashboard
When I click the Space ellipses on a space that I am an Editor on
Then the Leave Space button appears
And I click it
And I am asked if I'm sure I want to leave the space
And I can click leave or cancel

When I click Leave
Then the space is removed from my dashboard

When I click Cancel
Then the modal is closed

Design

ellipses: https://www.figma.com/file/S4XKeovlQqeRk64k2qzhf8gL/PeopleMover?node-id=9092%3A9890

pop-up modal: https://www.figma.com/file/S4XKeovlQqeRk64k2qzhf8gL/PeopleMover?node-id=9063%3A9627

Accessibility Criteria

  • Text and background color meets a minimum color contrast ratio of 4.5:1
  • All non-text content (e.g. images, icon) has alt text
  • Web page includes appropriate headings to communicate structure/hierarchy (h1>h2>h3)
  • All functionality is available to a keyboard
    • Focus styles are highly visible
    • Tab order is logical and aligns with the visual order
  • Voice over is understandable and logical
    • Aria labels are added to elements with no visible text
    • Decorative elements (e.g. non-informative icons) are hidden from screen readers
  • Form fields have appropriately coded labels that are visible during input
  • Links are visually identifiable and have a clear focus and active state

Notes

Please provide notes on this feature if applicable.

App integration can hit API for a list of products within a given space ID

Feature Request

As a an engineer who'd like to integrate with PeopleMover
I would like an API endpoint for a list of products and their IDs within a space
so that I can improve API response time

Acceptance Criteria

If I do A B should happen

Constraints on this acceptance criteria:

  1. Constraint 1
  2. Constraint 2
  3. etc

Accessiblity Implemented (optional)

  1. Constraint 1
  2. Constraint 2
  3. etc

Notes

Please provide notes on this feature if applicable.

These are my life goals for an MVP of my app could allow our end users to sync peoplemover assignments into a given product team in our app

Newsie Peoplemover team member sync

Add Public GitHub Link to PeopleMover Page (peoplemover.ford.com)

Add Public GitHub Link to Peoplevover Page (peoplemover.ford.com)

As aVisitor to Peoplemover
I would Be able to access Peoplemover's public GitHub from peoplemover.ford.com
so that I can provide feedback or that what has been worked on

Acceptance Criteria

Given They are on the homepage
When They click on the GitHub Link
*Then The link takes them to the public GitHub

Notes

Feel free to use the same styling as on the home Retroquest page
image

https://retroquest.ford.com/login

Stop putting people into an "unassigned" product

Tech Debt
Why is this needed?
The concept of being not assigned to a product should be separate from being assigned to a product. Presently people who are "unassigned" get put into a product called "unassigned" behind the scenes.

This forces us to special case the "unassigned" product, which has created issues in the past, and might do so in the future as well.

Select all that apply:
-[x] Confusing for onboarding
-[ ] Addresses poor performance
-[ ] Does not meet a software standard
-[ ] Embarrassing from an open source perspective
-[ ] Updating dependencies
-[ ] Strengthens brittle tests
-[ ] Shift to new infrastructure requirements
-[ ] _______________________________________

Do we have a solution in mind?
Use a separate table for unassigned?
Brainstorm ideas as part of story
What's the expected result?
"Unassigned" is a separate concept from projects
Impact to Product:
Should give app development greater stability in the long-term, as handling of products no longer needs to account for the "unassigned" case

Update Contact Us to generic ID

Feature Request

As a user of the peoplemover product user with a question or problem
I would like to be able to contact someone that is still connected to the product and able to help
so that my question or problem may be resolved.

Acceptance Criteria

when I click on contact us the email to is populated with the [email protected] email ID
no additional email IDs are in the email's to section

Notes

Mockups

image

Revert person not working after archiving product

to reproduce defect:

archive a product with a person on it
revert the change on the person within the reassigned drawer
expected result:
option 1 - the person(s) are now unassigned but there's no option to revert the change
option 2 - reverting the person(s) in reassigned area unarchives the product and puts them back on it

actual result:
the person goes bye bye

Ability to move people between boards

Feature Request

As a PeopleMover board owner that works with team members across different boards/board owners/teams
I would like to be able to move people and whole teams across different boards
so that I could see the full organization on one board.

Acceptance Criteria

If I do A B should happen

Constraints on this acceptance criteria:

  1. Constraint 1
  2. Constraint 2
  3. etc

Accessibility Implemented (optional)

  1. Constraint 1
  2. Constraint 2
  3. etc

Notes

Feature request from the user:

It would be AMAZING to be able to move people at at a minimum, or entire teams, from one board to another.
Across board owners

Here's an example:
My Engineering counterparts (three) maintain their own boards. I maintain mine. I want to create a converged board that shows the entirety of our organization - product and engineering. (edited)

I could just retype everyone's names, teams, etc. into my board, but it's not terribly efficient.

Re-arrange Dashboard Order of Spaces

As a peoplemover user
I would like a more intuitive order of spaces to appear on my dashboard
so that I am not confused about where to look when finding a space

Acceptance Criteria
Given I have access to multiple spaces
When I navigate to my dashboard
Then the spaces are in order by the most recent last modified date

Accessibility Criteria
Text and background color meets a minimum color contrast ratio of 4.5:1
All non-text content (e.g. images, icon) has alt text
Web page includes appropriate headings to communicate structure/hierarchy (h1>h2>h3)
All functionality is available to a keyboard
Focus styles are highly visible
Tab order is logical and aligns with the visual order
Voice over is understandable and logical
Aria labels are added to elements with no visible text
Decorative elements (e.g. non-informative icons) are hidden from screen readers
Form fields have appropriately coded labels that are visible during input
Links are visually identifiable and have a clear focus and active state
Notes
Please provide notes on this feature if applicable.

Account dropdown accessibility: Use arrow keys to navigate dropdown

Feature Request
As a peoplemover user with a disability
I would like to navigate the account dropdown with arrow keys
so that I have a consistent accessible dropdown experience across peoplemover

The W3C WAI documentation says to use arrow keys to navigate items within a menu bar item or drop-down list.

Press the 'Tab' key to move through the elements on the page. You can press 'Shift-Tab' to go backwards.
To move within elements such as drop-down lists and menu bars, press the arrow keys.

Acceptance Criteria
Given I tab to account dropdown
When I open dropdown with my keyboard
Then I can navigate the dropdown with arrow keys

Accessibility Criteria
Text and background color meets a minimum color contrast ratio of 4.5:1
All non-text content (e.g. images, icon) has alt text
Web page includes appropriate headings to communicate structure/hierarchy (h1>h2>h3)
All functionality is available to a keyboard
Focus styles are highly visible
Tab order is logical and aligns with the visual order
Voice over is understandable and logical
Aria labels are added to elements with no visible text
Decorative elements (e.g. non-informative icons) are hidden from screen readers
Form fields have appropriately coded labels that are visible during input
Links are visually identifiable and have a clear focus and active state
Notes
Please provide notes on this feature if applicable.

Pin Side Menu To Browser When Scrolling

Feature Request

As a peoplemover user on a large space
I would like the Add Person side menu to follow me when I scroll down
so that I don't have to scroll all the way up then all the way back down if I'm allocating to a product at the bottom of my space

Acceptance Criteria

If user scrolls to the bottom of the page, then the top of the side menu is pinned to the top of the browser

Each subsection (Unassigned, Archived Products, ReAssigned) should show five entries max with a scroll bar for more entries

Subsections can be expanded/minimized as they currently do

If user scrolls to the very bottom of the page then unpin the side menu

Accessibility Criteria

  • Text and background color meets a minimum color contrast ratio of 4.5:1
  • All non-text content (e.g. images, icon) has alt text
  • Web page includes appropriate headings to communicate structure/hierarchy (h1>h2>h3)
  • All functionality is available to a keyboard
    • Focus styles are highly visible
    • Tab order is logical and aligns with the visual order
  • Voice over is understandable and logical
    • Aria labels are added to elements with no visible text
    • Decorative elements (e.g. non-informative icons) are hidden from screen readers
  • Form fields have appropriately coded labels that are visible during input
  • Links are visually identifiable and have a clear focus and active state

Notes

Please provide notes on this feature if applicable.

Request Edit Access from Read Only

Feature Request
As a peoplemover user
I would like a way to request edit access from Read Only view
so that I can easily request edit access from the space that I don't have access

Acceptance Criteria
Given I am on the space with read only access
When I click 'View only'
Then pop up appears right underneath to request access
And when I click to request access, editor will be notified to give permission

Design

FordLabs easily knows when visitors to PeopleMover attempt to contact

Feature Request

As a FordLabs team member who cares about PeopleMover users
I would like to see a Slack message when help is needed from an end user
so that I can ensure their concerns and/or needs are addressed

Context

Currently, the Contact Us link in the PeopleMover footer opens a default email client to a draft email addressed the Ford CDSID pplmover -- but this inbox is only accessed regularly by a small group of individuals. This

Acceptance Criteria

  • When I click the "Contact Us" link in the PeopleMover app's footer (no matter what page I'm on), then I am taken to the Contact Us page
  • When I look at the empty Contact Us form, I see that "Send" is disabled
  • When I fill in only some fields on the Contact Us form, I see that "Send" remains disabled
  • When I have filled in all fields on the Contact Us form, I see that "Send" has now enabled
  • When I lose focus on a field after leaving it empty or with invalid email, I see a validation warning (see mockups)
  • When I click "Send", I see a confirmation that my message has been sent, and the form clears
  • When I log into Slack as a FordLabs team member, I see that the #peoplemover-contact channel now has a notification with the message content

Accessibility Implemented (optional)

  1. Constraint 1
  2. Constraint 2
  3. etc

Notes

Mockups

image

Link to Figma: https://www.figma.com/file/S4XKeovlQqeRk64k2qzhf8gL/PeopleMover?node-id=9452%3A11173
image

Validation

image

image

Move People to Unassigned When Archiving a Product within the Delete product modal

Feature Request
As a user of PeopleMover
I want people on products that are archived on the Delete Product modal to move to unassigned section instead
so that people do not disappear if I forgot to move them before the product is archived

Acceptance Criteria
This is an extension of Issue: People Disappear When Product Is Archived Or Passes End Date

Given a user is clicking on Delete Product within the Edit Product modal, and they decide to Archive the product instead of deleting it,
Then the people assigned to only that product should be moved to the unassigned column
And everyone on the archived product should no longer be on it

Given a person assigned to two different products
When the Archive product button is pressed
Then we should continue the current behavior of NOT adding the person to unassigned since they already exist on a different product
And everyone on the archived product should no longer be on it

Accessibility Criteria
Text and background color meets a minimum color contrast ratio of 4.5:1
All non-text content (e.g. images, icon) has alt text
Web page includes appropriate headings to communicate structure/hierarchy (h1>h2>h3)
All functionality is available to a keyboard
Focus styles are highly visible
Tab order is logical and aligns with the visual order
Voice over is understandable and logical
Aria labels are added to elements with no visible text
Decorative elements (e.g. non-informative icons) are hidden from screen readers
Form fields have appropriately coded labels that are visible during input
Links are visually identifiable and have a clear focus and active state

View Only does not work after 7pm est (12am utc)

Bug
Issue description
This issue needs to be reproduced, not sure if it still exists.

Our product is now used by people all over earth. The view only works by making a request by asking to see the data of today. But sometimes the server and the front end are not in the same time zone. So when a user is asking for the view only at 9pm eastern time the server is on utc time and therefore on a different day. The request fail because view only can only show data for today.

Steps to reproduce the issue
Go to View Only link at 7 pm EST
Blank error page appears
What's the expected result?
View Only should always work and show the current day of the visitor (based on the time zone that the visitor is in)

What's the actual result?
Additional details / screenshot

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.