2
7 Comments

Modern approach to kiosk applications for exams

Hi everyone

We're building an online quiz application. Exam centres would either download an app to a desktop/notebook computer or start up a browser, and the learner would answer the questions. Easy enough - but to prevent cheating we have a requirement to prevent the learner from leaving the app/browser. So what we're really trying to build is a kiosk application that the exam administrator kicks off at the start of the session.

Has anyone found any good cross-platform approaches to this? Ideally we'd be using a web stack to build the app rather than a native windows/iOS application.

posted to Icon for group Developers
Developers
on February 18, 2020
  1. 2

    I've heard great things about Flutter (https://flutter.dev/) from my developer friends and it is certainly cross-platform.

  2. 1

    I would use Ionic framework for this. Off course it is made for cross-platform development for Android and iOS, but it has a built in solution which is built on top of Electron.
    You can use it with any lib/framework you want now (Angular, Vue, React), or even vanilla JS.
    https://ionicframework.com/docs/publishing/desktop-app

    1. 1

      Thanks! I don't think I understand what role Ionic would play here (assuming native apps are out of scope) - can't we just publish a windows app from Electron directly?

      1. 1

        My bad. Sure you can publish it with only electron on windows.
        On Mac I'm not sure, because Apple just started to ban all electron apps from its store.
        https://9to5mac.com/2019/11/04/electron-app-rejections/

        On second though maybe It won't work with ionic either.
        sorry

  3. 1

    I would create the quiz application as a website, then create an electron app "shell".

    The electron "shell" just opens your website in fullscreen (aka "kiosk" mode) and doesn't have anything like the url bar/tabs/menus/devtools that users can click on.

    Then to prevent leaving the app, enable something like this:
    https://docs.microsoft.com/en-us/windows/configuration/kiosk-single-app

    A similar feature exists on mac. There are libraries in the electron ecosystem that can create installers for multiple platforms at the same time.

    You can also build a simple "shell" app for iOS/Android that is basically just a "webview" that shows your quiz website. React Native or Expo would work. I haven't used Expo, but for something as simple as that, it's probably easier than making a full React-Native app. I'm not familiar with other, native app technologies.

    iPads have some"Single App Mode", not sure about Android. Also you can connect keyboards to tablets if that is a requirement.

    1. 2

      Thanks, that's really useful. I was kind of hoping the answer would be "electron" as I wouldn't mind a crack at that. The unknown here then is whether it's 100% possible to package an electron app in such a way that it enforces kiosk mode. I found this just now, which looks relevant although pretty involved and seems to require Windows 10 Enterprise to execute the shell script.

      https://www.microsoft.com/developerblog/2018/04/17/packaging-electron-app-managed-distribution-across-devices/

      This looks interesting though:

      https://medium.com/@andreas.schallwig/building-html5-kiosk-applications-with-vue-js-and-electron-c64ac928b59f

      ... so maybe that will get us far enough for v1.

Trending on Indie Hackers
I'm a lawyer who launched an AI contract tool on Product Hunt today — here's what building it as a non-technical founder actually felt like User Avatar 151 comments Never hire an SEO Agency for your Saas Startup User Avatar 85 comments A simple way to keep AI automations from making bad decisions User Avatar 65 comments “This contract looked normal - but could cost millions” User Avatar 54 comments 👉 The most expensive contract mistakes don’t feel risky User Avatar 41 comments We automated our business vetting with OpenClaw User Avatar 34 comments