Skip to content

Using Django Web Framework as backend, this web app uses Alma APIs to process patron fulfilment requests. Authentication is done by requiring students to provide their identification card and email access to receive one-time password (OTP).

License

RonBulaon/SelfCheckout

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Self Checkout

This web application was presented at IGeLU 2021 Digital Conference, to show how a Two-Factor Authentication can be integrated to a self-service kiosk without heavy integration to third-party service providers. Thus, making it secure, user friendly and at the same time minimize the possibility of other users using an account without the patron's knowledge.

Using Django Web Framework as backend, this web app uses Alma APIs to process patron fulfilment requests. Authentication is done by requiring students to provide their identification card and email access to receive one-time password (OTP).

Table of Contents

How It Looks Like

How It Works

You Will Need

Installation

  1. Install Docker.

  2. If you have git installed clone this repository like this,

    $ git clone https://github.com/RonBulaon/SelfCheckout.git

    or download and extract to your local machine.

  3. Once cloned/downloaded open a command line, and navigate inside the folder SelfCheckout.

    $ cd /<path_to_folder>/SelfCheckout
  4. Using a text editor, open docker-compose.yml and change the following values to match your settings.

     environment:
         - EMAIL=<email@gmail.com>
         - PASSWORD=<password>
         - HOST=smtp.gmail.com   # no need to change this if using gmail.com
         - API_SERVER=https://api-ap.hosted.exlibrisgroup.com  
         - API=<your_api>
         - CIRC_DESK=<circ_desk>
         - LIBRARY=<library>

    Notes:

    • I'm using Gmail so I put in my exact EMAIL and PASSWORD of my google mail account.
    • For HOST I used smtp.gmail.com since I'm using gmail. You will also need to enable less secure apps for the email account.
    • For CIRC_DESK and LIBRARY use whatever alma configuration you have or verify yours from here (login required).
    • Generate values for API from here.
  5. [Optional] Any source code modification should be done here if there is any.

  6. Verify that Docker is running in the background. Then execute this command:

    $ docker-compose up --build 
  7. From a browser type in http://localhost:8000/ in address bar. Note that the browser will prompt for camera permission.

Notes and Roadmap

  1. For supported barcode formats please visit html5-qrcode project repository.
  2. I coded this in a very short time and realized that this approach has a potential to be a full-fledged barrowing station for our library. I'm considering to add the following in the future:
    • OTP code resend button.
    • Improved UI/UX design.
    • Use database to save settings.
    • Implement other fulfilment services.
    • Add in an RFID module.
    • Better utilization of Django templates.
    • Include test scripts.

Credits

The barcode and QR code scanner used is made by mebjas you can find more information on the html5-qrcode project repository.

License

Copyright 2021 Ron Bulaon
Apache License Version 2.0




About

Using Django Web Framework as backend, this web app uses Alma APIs to process patron fulfilment requests. Authentication is done by requiring students to provide their identification card and email access to receive one-time password (OTP).

Topics

Resources

License

Stars

Watchers

Forks