All Projects → p4kl0nc4t → praesentia

p4kl0nc4t / praesentia

Licence: MIT license
Simple Python-based web application to allow UGM students to fill their QR presence list without having another device in hand.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to praesentia

Qrbtf
An art QR code (qrcode) beautifier. 艺术二维码生成器。https://qrbtf.com
Stars: ✭ 1,391 (+7221.05%)
Mutual labels:  qr
Qrcode Library
Create QrCodes with ease
Stars: ✭ 184 (+868.42%)
Mutual labels:  qr
paper-store
Cold store small files on paper as QR codes -- PGP keys, Bitcoin keys, Tox keys or any other small files in general.
Stars: ✭ 28 (+47.37%)
Mutual labels:  qr
Jrqrcode
二维码生成库,把内容生成二维码,以base64编码的图片输出
Stars: ✭ 128 (+573.68%)
Mutual labels:  qr
Flutter qr mobile vision
QR reader plugin using mobile vision API for Flutter.
Stars: ✭ 159 (+736.84%)
Mutual labels:  qr
Qrcode
qrcode scanner ( decoder ) by golang 二维码扫描识别
Stars: ✭ 233 (+1126.32%)
Mutual labels:  qr
Qrious
Pure JavaScript library for QR code generation using canvas
Stars: ✭ 1,160 (+6005.26%)
Mutual labels:  qr
promptpay
Thai QR PromptPay Generator
Stars: ✭ 24 (+26.32%)
Mutual labels:  qr
Qr Code Bundle
Bundle for generating QR codes in Symfony
Stars: ✭ 169 (+789.47%)
Mutual labels:  qr
euli treasure hunt
Euli is not a computer game but a tool which helps you set up a real life treasure hunt
Stars: ✭ 34 (+78.95%)
Mutual labels:  qr
Qrscanner
A simple QR Code scanner framework for iOS. Provides a similar scan effect to ios13.
Stars: ✭ 134 (+605.26%)
Mutual labels:  qr
Qr Code Generator
High-quality QR Code generator library in Java, TypeScript/JavaScript, Python, Rust, C++, C.
Stars: ✭ 2,363 (+12336.84%)
Mutual labels:  qr
emv-qrcode
Golang Based EMV QR Code Generator and Parser (MPM, CPM)
Stars: ✭ 43 (+126.32%)
Mutual labels:  qr
Qrandbarcodescanner
An Android app for scanning QR codes and barcodes
Stars: ✭ 114 (+500%)
Mutual labels:  qr
vk-qr
VK QR Code generator library
Stars: ✭ 43 (+126.32%)
Mutual labels:  qr
Awesome Qr.js
An awesome QR code generator written in JavaScript.
Stars: ✭ 1,247 (+6463.16%)
Mutual labels:  qr
Jsqr
A pure javascript QR code reading library. This library takes in raw images and will locate, extract and parse any QR code found within.
Stars: ✭ 2,722 (+14226.32%)
Mutual labels:  qr
nova-qrcode-field
A Laravel Nova field to generate QR Code
Stars: ✭ 28 (+47.37%)
Mutual labels:  qr
go-emv-code
EMV® QR Code Encoder/Decoder for Go.
Stars: ✭ 60 (+215.79%)
Mutual labels:  qr
QRCode-Decoder
An iOS QRCode Scanner and Decoder
Stars: ✭ 17 (-10.53%)
Mutual labels:  qr

Praesentia

Praesentia is a simple Python-based web application to allow UGM students to fill their QR presence list without having another device in hand.

You can use an image file containing a QR code (can be obtained using a screenshot). Alternatively, you can just directly use the camera.

Frequently Asked Questions (FAQ)

Demo

The demo is available at https://lcat.dev/praesentia. Don't expect a 99.99% uptime, the server is an old Raspberry Pi 3. As a fallback, you can also use https://praesentia.herokuapp.com.

Background

  • Many UGM students are required to use SIMASTER mobile app to scan QR codes to fill their presence list. This mostly means that a student needs at least two devices to make the mechanism works.
  • Two devices are not always available.

API Source

I decompiled SIMASTER mobile app to get the source code. I also used interceptors to quickly recognize what was being sent and received.

Working Principle

It works just like scanning QR in the SIMASTER mobile app.

Side-effect

I don't think there is any except that you will get logged out of your SIMASTER app on your phone (just re-login, it will work again). I have never done research about the API's rate-limiting or any possible ban.

Installation and Deployment

Installation of Praesentia is fairly straightforward. You just need at least Python 3.6.

Installing Requirements

This app only requires flask (to serve the web) and requests library (to call the API). You can install both using pip.

pip install flask requests

Or, you can install it using the requirements.txt:

pip install -r requirements.txt

It is recommended but not necessary to separate an app's environment by using a virtual environment (e.g. venv).

Deployment

There are many ways to deploy Praesentia. You can use the following (but not limited to) ways:

  • Gunicorn
gunicorn -b :6749 wsgi:app
  • Flask development server
python wsgi.py
  • Heroku: there is already a Procfile file, feel free to use and/or edit it.

Contribution

Contribution in any form will be highly appreciated.

License

This project is licensed under MIT License.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].