-
Notifications
You must be signed in to change notification settings - Fork 328
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Replace the outdated HTML report generation #192
Comments
The current report generation generates HTML files by combining strings. Java 1.0 style, but considered bad practise for many years . Thus, I would propose the strict separation of machine-readable report data generation and GUI code to view those. 21b9bd3 prepares this by adding a Vue 3 boilerplate for a web-based report viewer. By updating the report generation, e.g., to a JSON-based format, we could separate generation and viewing and minimize dependencies. To do so, I would propose the following steps:
|
The max similarity should be already provided in the current result object. Thus it can be used in the new report generation to additionally display the top n matches according to max similarity. |
I have some questions regarding the old report and the API, since it is lacking a java doc (edit: java doc found).
|
Please refer to the JavaDoc comments here.
For the report use the name of the Language. The language options tell JPlag what frontends exist, without requiring a dependency on every frontend. The frontends are instantiated via reflections. Also note that the names of the frontends changed during the major overhaul, thus they might vary in the legacy version.
I am not sure what you are referring to here, do you mean the minimum token match?
No, that just specifies how many comparisons (matching submission pairs) are stored at max. For now, just use
EDIT: The
No, but it could include what strategy was used, similarly as it shows how long the comparison took and other meta data.
That is a good question, I would recommend you to look at the current web report generation, maybe you can find there how this is resolved. |
I inspected the old Web Report pages as well as the JPlag API. I am posting a file which contains a quick overview of what was included in the old report as well as what information can be obtained from a JPlagResult through the JPlag API. I have also defined some functional requirements for the new Web Report. |
This comment has been minimized.
This comment has been minimized.
@tsaglam @sebinside I have some questions. So I took a second look at the old report from the report example, a report which I generated with the CLI and a report which I generated with the API and there are some differences.
Old Report Example:
|
Teaser, first jsons generated by the new reporting: |
@cholakov11 Regarding your questions:
The JSON file teasers and diagrams look promising, looking forward to seeing them in action! |
Multiple comments from me after reading it a second time:
EDIT: I might have been wrong with the second point. This exclusion list is meant for folders and files in the root directory, thus excluding submissions directly. This is implemented in a confusing way. |
@cholakov11 I added a (private) repo with pseudonymized reports, which might help you think about large result sets (200-500 submissions). |
@sebinside Thanks for the update. @tsaglam
What I meant was the file names. The exclusion files is read but then what is read is not stored and therefore I need to read it again in the when generating the report file, in order to obtain the names of the excluded files/folders.
So for now I do not need to display the number of failed submissions and their names, is that right? Sorry that I took so long to respond. I used the last week to get used to Typescript and Vue. Quick update on the project so far (screenshots are from working application and not prototype images) : |
Yes, but you could make a placeholder for that information. Moreover, I think it would be helpful if you would make another issue (e.g. named "missing information in result object") where you document what you need for your report. |
@cholakov11 The initial version looks good, thank you. We should discuss when and how the JSON files are loaded by the GUI which is also related to the deployment of the GUI files. I would propose to deliver them together with the JSON result files in a defined file/folder structure so that the reports can be loaded on startup. However, the drag and drop from the first picture is still a good idea as a fallback. Where can I find the current version of your code? And did the vue 3 boilerplate I added to https://github.com/jplag/JPlag/tree/192-webreport help you? Last, I would second the comment from @tsaglam, collecting these in a separate issue sounds good. |
@sebinside Here is the repo where I am working: https://github.com/cholakov11/JPlag/tree/192-webreport.
Yes, I used the already created vue + typescript project in the repo. @sebinside @tsaglam I submitted an issue about missing information. |
@tsaglam @sebinside Project update: OverviewWhole space on the right is reserved for comparisons. Comparison ViewIn comparison view I am grouping the matches in file pairs. Then in the list on the left at the bottom the user can select which @sebinside I saw the repo with larger datasets but I cannot display these in the report viewer since they are csv and html files. Is it possible for me to obtain from somewhere folders with java files which I can feed to JPlag and produce the JSON files for the report viewer. |
@cholakov11 Here are the simple test submissions I just mentioned: https://github.com/jplag/JPlag/tree/master/jplag/src/test/resources/de/jplag/samples/PartialPlagiarism |
@csidirop Thanks for the feedback. It was really helpful. @sebinside @tsaglam Project update: |
@cholakov11 Looks good, looking forward to seeing it in action in our next meeting. Two minor things:
|
@cholakov11 The highlighting lib: https://highlightjs.org/ |
@cholakov11 Just one note on the drag n drop feature for the hosted web viewer: Please ensure that everything is handled in-browser client-side. An actual data flow to our servers would probably violate some policies. See, e.g., : https://developer.mozilla.org/en-US/docs/Web/API/HTML_Drag_and_Drop_API/File_drag_and_drop |
@sebinside @tsaglam Initial pull request opened. |
Replace the outdated HTML report generation #192
The text was updated successfully, but these errors were encountered: