Skip to content

onerishabh/qrcode-analytics-flask

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

QR Code Analytics Flask Application 📓

.github/workflows/aws-deploy.yml License: GPL v3 PRs Welcome

This is a flask app that lets user download QR Code for a given targetURL. This application helps user get analytics on when their QR Codes were scanned, device from which QR Code was scanned, location of scanning. Users can maintain as many QR Codes in the application as they want.

Table of Contents

  1. Application Demo
  2. Application Overview
  3. Application Backend Overview
  4. API Documentation
  5. GitHub Actions / CI CD Pipline
  6. Infrastructure-as-Code
  7. Release History
  8. Future Plans/Improvements

Application Demo

Application Demo

Application Overview

Application Overview

Application Backend Overview

Application Backedn Overview

API Documentation

Add User

https://{public-ip-address}:5000/registerUser?name={name-of-user}&email={email-of-user}password={password-of-user}

Authenticate User

https://{public-ip-address}:5000/authUser?email={email-of-user}&password={password-of-user}

Create QR Code

https://{public-ip-address}:5000/qrcode/{url-to-be-qrcodeified}

Application generated QR Code points to https://{public-ip-address}:5000/short/{qr-code-id} which redirects to target

GitHub Actions / CI CD Pipline

This application can be deployed to production using just one click on GitHub Actions.

Make sure, AWS_ACCESS_KEY and AWS_SECRET_KEY are created/updated with valid credentials.

Go to Actions>> .github/workflows/aws-deploy.yml >> Run Workflow

Infrastructure-as-Code

The entire application has two AWS Cloudformation stacks: InfrastructureStack, QRCodeFlaskServerStack. All three cloudformation stacks are deployed to AWS using AWS Cloud Development Kit.

This cdk application is a Java based. Make sure node, aws-cdk, aws-cli, java, mvn are installed on software release machine.

Release History

  1. v1.0.0 - 8th August, 2022

Future Plans/Improvements

  • Add better front-end to interact with the application.
  • Integrate stripe payment gateway to the application.
  • Write test cases to acheive 100% coverage.
  • Add test case to check docker image hashes between GitHub and AWS ECR.
  • Add test case to check QRCodeFlaskServerStack. Currently failing due to inter-stack parameter passing. Need to read more into AWS CDK testing.