Skip to content

Commit

Permalink
Merge pull request #7 from qualified/server-side-embed
Browse files Browse the repository at this point in the history
Fix links
  • Loading branch information
ggorlen committed Oct 26, 2023
2 parents 223e3e4 + e3fc171 commit fd0ec05
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 3 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,4 +46,4 @@ This shows how you can use Embedded Qualified to set up an experimental challeng
Embed supports challenges that offer testable written response fields using markdown.

### [Server Validation](server-validation)
This demonstration illustrates how to run Embed on the server programmatically with the browser automation library Playwright. This allows you to securely run your candidate's code, validate solutions and persist the results on your server without using Qualified to manage assessments or assessment results.
This demonstration illustrates how to run Embed on the server programmatically with the browser automation library [Playwright](https://playwright.dev/). This allows you to securely run your candidate's code, validate solutions and persist the results on your server without using Qualified to manage assessments or assessment results.
4 changes: 2 additions & 2 deletions server-validation/README.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
# Qualified Embed Server Validation

This demo app shows how you can run Qualified's [Embed](https://www.qualified.io/embed) feature on a server, allowing you to validate candidate (or student) solutions securely and persist the results.
This demo app shows how you can run Qualified's [Embed](https://www.qualified.io/embedded) feature on a server, allowing you to validate candidate (or student) solutions securely and persist the results.

Normally, Embed is run in a stateless [challenge](https://www.qualified.io/embed/api-docs/tutorial-challenges.html) mode. Solutions are sent to Qualified's Code Runner service which runs the test suite and responds directly to the client with the result. Since the Code Runner doesn't track the results, there's no way to trust that the result sent to the client hasn't been tampered with.

Embed can also run in a stateful [assessment](https://www.qualified.io/embed/api-docs/tutorial-assessments.html) mode, eliminating the trust issue. Adding an auth token to the challenge mode is another way to save results securely. However, results must be stored on Qualified, and creating and managing assessments and invitations on Qualified may not fit all use cases.

This demo app uses a browser automation service, [Playwright](playwright.dev/), to run Embed on your server, effectively proxying requests to the Code Runner in a way that lets you record the results in a trustworthy manner, yet continue to use Embed's lightweight challenge mode. The only input from the candidate would typically be the solution code, which the candidate can test and develop before submission using a regular Embed instance such as the [index.html](public/index.html) in this project.
This demo app uses a browser automation service, [Playwright](https://playwright.dev/), to run Embed on your server, effectively proxying requests to the Code Runner in a way that lets you record the results in a trustworthy manner, yet continue to use Embed's lightweight challenge mode. The only input from the candidate would typically be the solution code, which the candidate can test and develop before submission using a regular Embed instance such as the [index.html](public/index.html) in this project.

Using Embed this way, you can even create custom content outside of Qualified and inject arbitrary testing and starter code into Embed, effectively allowing you to manage your own content and results. This minimalist approach uses Qualified as a stateless code runner and, optionally, a web code editor.

Expand Down

0 comments on commit fd0ec05

Please sign in to comment.