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.