OWASP / threat-dragon

An open source threat modeling tool from OWASP
https://owasp.org/www-project-threat-dragon/
Apache License 2.0
902 stars 244 forks source link

Vue Migration #87

Closed lreading closed 2 years ago

lreading commented 3 years ago

Describe what problem your feature request solves Write the front-end in Vue.js

Describe the solution you'd like The front-end should be written in Vue

Additional context The existing front-end is written in AngularJS. The EOL for AngularJS has been extended until December 2021. I suspect this will come up quickly, and we should move to migrate to a different tech stack that will have long-term support for security and bugfixes.

lreading commented 3 years ago

I think the best way of doing this is making it a long-running branch off of main. We can pull in updates from main at regular intervals, but will help keep the PRs to a minimum until it's close to a "ready" state. At that point, it will be a large review, but probably easier than incrementally checking into main.

https://github.com/OWASP/threat-dragon/tree/feature/vue-frontend

lreading commented 3 years ago

I think using jest for unit testing will work out better for Threat Dragon. You absolutely can test using mocha / chai, which is how I originally started. Unfortunately, mocha / vue-test-utils aren't playing nicely with NYC and other reporters. I tried the babel-istanbul-reporter webpack plugin as well, and the results were always inaccurate and inconsistent.

Jest, by default, has coverage reporting baked in and can accommodate lcov style reporting.

I'm keeping track of any design decisions in the td.vue README so that it can be discussed as needed. Feel free to take a peek whenever,

My goal is to have the vue site appear identical to the existing angularjs version of the site to limit any potential conflicts during the final merge. I'm currently making the pages just using dummy data and no glue to tie it to the server. When that is all done, I'll probably request a quick review before continuing on to the plumbing just to make sure all the maintainers are on board. :)

vibhuti019 commented 3 years ago

Hi @lreading I wish to contribute in the vue frontend. Is this open ?

lreading commented 3 years ago

Hi @vibhuti019 !

Yes, this is absolutely still open. It's a bit disorganized as it's been a solo effort thus far. The v2-development branch is where the source lives. The vue code is in td.vue on that branch. I am currently working on implementing the actions menu in the graph vue. The only flow that is actually working currently is logging in with github, then selecting an existing threat model. There's also a TODO in td.vue with some... admittedly scrambled items.

Any and all contributions are welcome. :)

lreading commented 2 years ago

This issue is a bit too broad. Jon has opened some issues with more manageable chunks of work, which is what we should probably do moving forward. In my opinion, this issue is "done", as the v2-development branch is written in vue, even if not all features are completed yet.

jgadsden commented 2 years ago

Yes, absolutely agree. The Vue migration is complete because it is certainly usable. Agreed it may lack some features still, but those should be worked on individually

Bravo @lreading !