*This repo is highly-dated and dependencies have known-security vulnerabilities.
Bluecard is a a prototype ID scanning system.
It's designed to replace manual registration workflows, where a clerk is handed a license, and hand-types information contained on it.
This project was created to:
- Learn Django
- Explore Amazon's AWS Lambda processing framework
- Experiment with the Captricity document processing API
Typically registration processes involve a clerk reading a license, and typing the information into an EHR or other proprietary system.
Instead the general workflow is:
- The license is scanned or photographed by the clerk, or even by a provider or other care-giver
- The license image is stored (in this case in an Amazon S3 bucket)
- A program notices the new image and sends it to Captricity (Amazon Lambda)
- Data is extracted and stored (Amazon RDS)
Ideally, the data would be extracted and stored by a seperate Lambda process, currently that is partially implemented in the Django layer.
The compute intensive portions of the app are almost entirely offloaded to Amazon and Captricity.
Django expects a config file in config/config.cnf.
Here's an example:
[django]
secret_key = mydjangosecret
[mysql]
database = bluecard
user = bluecard
password = mypassword
default-character-set = utf8
host = my-datastore-or-rds
port = 3306
[aws]
keyid = myamazon
key = key
bucket = 'bluecard'
[captricity]
apitoken = myapitoken
The AWS lambda worker lives in the aws-lambda
directory.
Deploying the lambda worker requires building and uploading a ZIP of the aws-lambda directory. See the shell script create-aws-package.sh
. This would ideally be automated to avoid having to use the AWS GUI.
The script depends on aws-lambda/config/config.cnf
, which can be identical to whats in the main config directory.