Git Product home page Git Product logo

projectmanagementui's Introduction

Build Status Coverage Status

Project Management UI

An Angular UI frontend for the Product Management Service developed and maintained by Texas A&M University Libraries.

Deployment

For a quick and easy deployment using docker-compose consider using the Project Management App Repo.

For advanced use cases, or when docker-compose is unavailable, the UI may be either started using docker directly or even manually started. This process is further described in the Deployment Guide.

Additional Resources

Please feel free to file any issues concerning Project Management UI to the issues section of the repository.

Any questions concerning Project Management UI can be directed to [email protected].

Copyright © 2022 Texas A&M University Libraries under the MIT License.

projectmanagementui's People

Contributors

kaladay avatar wwelling avatar rladdusaw avatar jcreel avatar jeremythuff avatar jsavell avatar rmathew1011 avatar jmicah avatar

Watchers

Michael Nichols avatar James Cloos avatar  avatar Douglas Hahn avatar  avatar  avatar Devang Mehta avatar  avatar Stephen Pampell avatar  avatar  avatar  avatar

projectmanagementui's Issues

Can Create invalid Remote Project Managers, breaking system

  1. As Manager, Go to Remote Project Managers Tab.
  2. Clock Add a Remote Project Manager button.
  3. Partially fill out form, only selecting Name and Type (do not fill out URL, Username, etc..).
  4. Click Create button.

What happens is an error occurs (behind the modal) and (also behind the modal) an incomplete/invalid RPM gets created. Modal remains open.
Then you can fix the model, create and there are two copies, an invalid one and the valid one.

The invalid one breaks numerous aspects of the system.
In particular, if at this point the Service is ever shut down then it can never come back up without explicit database changes. The invalid RPM causes an error java.lang.reflect.InvocationTargetException and the Service refuses to start.

Additional problems or different aspects of the same problems seem to be that when type is VERSION_ONE and url is not specified, then a 500 error occurs but only after the data is saved. This results in invalid data being saved.
This can also create a situation coincidentally solved in TAMULib/ProjectManagementService#97 whereas the server will not start on invalid data. However, there may be more conditions that need to be handled that those described in the mentioned PR.

Furthermore, the <validationmessage results="remoteProjectManagerForms.getResults()"></validationmessage> on the modal does not catch this 500. The only way to catch this 500 would be to add something like <alerts seconds="45" channels="remote-project-manager" types="ERROR" exclusive></alerts> to the modal in addition to the validationmessage. There may need to be a more complex validation created that handles these complex conditions, if such a thing is possible.
At the very least it probably should not save anything when a 500 would otherwise occur.

Address current dependabot security concerns.

There are some dependabot reported security issues that may or may not be reported by npm audit.

Dependebot doesn't always report the security issues but when cross-references other projects, such as SAGE, one can find the issues. Cross-reference the issues.

Review these and see if it is possible to safely update these.
These may require using overrides.
If that is the case be sure to perform extra checks for regressions.

Such cases would be, for example, minimatch where some dependencies need a 5.x version of minimatch but the overrides is set to ^3.0.0.

Cursory invetigation on patterns like "minimatch": ">=3.1.2", or "minimatch": "^3.1.2 || >=3.1.2", result in always using a 5.x version and patterns like "minimatch": "^3.1.2", result in always using a 3.x version.

When there are dependencies requiring different versions there does not seem to be a way to allow a 3.1.2 to match for 3.x version and a 5.1.1 to match for a 5.x version.

Upgrade Weaver-UI-Core (2.2.2-rc.8)

  • Upgrade Weaver-UI-Core (use "@wvr/core": "2.2.2-rc.8" until release is available)
  • Upgrade all dependencies with vulnerabilities
  • Passes CI (all tests if no CI configured)
  • Provides a Dockerfile based on this (rough) spec
  • Replace grunt with webpack - at least requires to add or modify .wvr/build-config.js, package.json, and index.html (blocked by TAMULib/Weaver-UI-Core#182)

If a certain dependency upgrade or deprecated code replacement ends up being large in size, create an issue.

Document procedure followed to do the upgrades on the app - insofar as it varies from the previously documented apps

Tech debt tasks

These tasks should be confirmed/performed on each Weaver Client. This note should be a template for comments of each PR into staging.

  • 1. Standardize the multiple forms of gitignore
  • 2. Standardize README
  • 3. Standardize LICENSE, update date and package.json
  • 4. Standardize PR and Issue templates
  • 5. Update karma.config.js for consistency
  • 6. Update karma.config.js preprocessors to include index.html app/**/*.html
  • 7. Update karma.config.js using single quotes
  • 8. Remove version and any references from appConfig.js.template
  • 9. Update Dockerfile for consistency
  • 10. Update Dockerfile to combine RUN commands for better layer caching
  • 11. Update Dockerfile to use --non-unique to both useradd and groupadd commands
  • 12. Update default.conf.template with latest NGINX location regex location ~ ^${BASE_PATH}(.*)
  • 13. Refactor NPM_REGISTRY_URL to NPM_REGISTRY as not an actual URL
  • 14. Update GitHub workflow step versions

gitignore

https://github.com/github/gitignore

  1. Default JavaScript gitignore plus common docker and weaver ui files to ignore
  2. Standalone apps (CAP, SAGE, Vireo) with Java, JavaScript gitignore plus common docker and weaver ui files to ignore
  3. Standardize sections for .gitignore (community by project type, docker, application specific)

README

Create multiple md files next to primary README.

  1. README.md
  • badges
  • name
  • overview
  • app repo
  • deployment
  • license
  1. DEPLOYMENT.md
  • running for development
  • docker for development
  • docker for deployment

PR templates

Template defined for clients

Issue templates

Issues regarding intended purpose of client repositories.

  1. bug template
  2. feature template

Coverage report not being sent to coveralls

16 09 2022 17:25:59.048:INFO [coveralls.io]: uploading...
16 09 2022 17:25:59.048:INFO [coveralls.io]: 422 --- {"message":"Couldn't find a repository matching this job.","error":true}

PM UI Maintenance

  1. upgrade dependencies
  2. update auth service
  3. update/verify build and ci

Update Weaver UI Core:

"@wvr/core": "2.0.7"

Should be deployed to pre this sprint.

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.