New users would never be able to login because of the manual checking of email.
This has happened since the requirements and code has changed over time and we
missed the manual constraint.
This is related to the fix where we removed the database constraint.
The last paragraph in the about page, stated that 'All processing is done locally ...'.
It was not clear enough where 'locally' actually was.
Changed the last paragraph to have more clarity.
The rewrite reads like this:
'All processing is done locally at the Department of Computer and Systems Sciences (DSV), Stockholm University, Sweden.
No information is transmitted to external servers or cloud services, ensuring your privacy and data security.'
The title in the head element was mispelled previously
it showed 'Seshat Auido Transcriber'.
Now it's fixed to the correct spelling 'Seshat Audio Transcriber'.
Currently, it uses an endpoint similar to OpenID Connect UserInfo but with some differences. The endpoint does not require the "openid" scope for example. There is an ongoing effort to replace the OAuth 2.0 authorization server with a more standard compliant one which would break the endpoint (since it would require the "openid" scope). It is currently not possible to request the "openid" scope to future-proof since Spring would act differently if that scope is present and assume full OpenID Connect. That leads to requiring an id token to have been issued which the current authorization server does not do.
To get around this the implementation is changed to use a standard compliant Token Introspection endpoint to get access to the subject of the access token (which is the only part that's necessary right now). Since the endpoint is standard compliant it will work with any future authorization server.
It may be necessary to run docker compose up --build to get the latest version of the Toker containers.
Co-authored-by: Andreas Svanberg <andreass@dsv.su.se>
Reviewed-on: #27
Reviewed-by: Andreas Svanberg <andreass@dsv.su.se>
Co-authored-by: Nico Athanassiadis <nico@dsv.su.se>
Co-committed-by: Nico Athanassiadis <nico@dsv.su.se>
Previously when using a mobile unit there was a vertical and horizontal scroll outside the content.
Now there is no vertical or horizontal scrolling outuside the content area, and no horizontal scrolling when using a mobile device.
Added an about page that describes succinctly what the application is and what tech it is using.
Made it as a single page so that a link can be referenced in text.
Added a progressbar when uploading files.
Added text under the Seshat Audio Transcriber heading so that users know
that the application uses whisper ai. The text is also clickable and
opens a new tab or window that goes to https://openai.com/index/whisper
if the users wants to learn more about whisper ai.
Jobs that are in state of PROCESSING or PENDING will be enqueued after
application restart so users that have had an uploaded file in PROCESSING or PENDING do not
need to manually re-upload the files again.
Decided to not use matomo for analytics.
The application is a single page.
Any statistics we want we can parse from the logs.
An issue #16 has been added to make the logs more parse friendly.
Added a simple file content validation to what files can be uploaded.
This should at least help users select the correct file type.
There is no server side validation and that is something we actually will need to implement
at some point.
Previously if a job failed and it's status was set to `JobStatus.FAILED` the uploaded
file was never removed. Which was the intended design. This was an omission.
Now if the job is set to FAILED, the uploaded file will be removed correctly.
This is to ensure that uploaded files do not persist in perpetuity on the file system.
FileMetadata will still be available in the DB (B.N. not the actual file).
Utilizing htmx to load and trigger relevant parts of the page.
`PENDING` and `PROCESSING` uploaded files now have a spinner to show that something
is happening behind the scenes.
Once a file is completed a trigger will be sent so the `Your Transcribed Files` section
will be updated with the new file.
Note: A side effect that needs addressing later is that the checkbox to select all transcribed files
stops working as intended. The side effect dispersal after a refresh of the page and the select all checkbox works.
User can still select multiple files with the checkboxes and download selected as intended.
I experienced some weird behavior when using webjars to get the dependencies of
bootstrap, bootstrap-icons, htmx. Opted to manually download and include the
files in the project instead.
All the files can be found under a folder called 3p with their respective subfolder.
Since we are going to production we should not make use of CDNs
For more information you can read https://blog.wesleyac.com/posts/why-not-javascript-cdn
Now uses webjars to take down the needed dependencies.
Also moved the javascript to its own file.
Changed the upload and output root so when developing you can more easily find the files.
Model folder is also changed to be consistent with other directory changes.
Users are no longer required to go from a login page and click on the application name to get to oauth login.
Transcribed files in the files management view are now sorted the same way as the uploaded file status.
The section that uses this class was not working properly due to the
missing overflow-y: scroll statement.
The idea was to only show 3 of the uploaded files at a time, when the overflow statement was missing
the other uploaded files where bleeding through and over the transcribed files section.
This should fix that issue so that the uploaded file section does not bleed over the transcribed section content.
Single sign on has been added, it works in the same fashion as the Scipro application.
Application no longer supports self registration of users.
Users can now upload the same file again if they want too.
UI SU logotype added, "look and feel" a la stockholm university.
UI improved feedback of the uploaded files, now also shows when a file was uploaded together with the status
UI improved feedback of the transcribed files, files are grouped in collapsable divs based on the source file.
The transcribed files section also shows when the files where created which are based on the upload of the source file,
this to help differentiate if the user uploaded the same source file.
Bulk download zip file will have a folder structure resembling the grouped structure from the transcribed files section,
transcribed files belonging together will be in their correct folder.
Increased the varchar limit from the default value to a more appropriate value to handle long file names or paths.
When cleaning up files the application now cleans up empty folders when needed.
The application needs a bit more internal improvements and polish, for example in some places the application
both uses java.io and java.nio it would be better to use java.nio across the board.
This can be done at a later date.