Skip to content

Coding Sample - Online Queue | Client + Queue waiting + Order submission | AWS and Docker solution | reactJs + Python3 + AWS Lambda + SQLAlchemy + RDBMS

Notifications You must be signed in to change notification settings

brianlaihkhk/sample-online-queue

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Coding sample

Coding sample - Online queuing system - Submitted by Brian Lai

Features

  • Order + queue system
  • Support local / non-AWS deployment or AWS Lambda deployment for distributed system
  • Session based token for queuing
  • JWT for message submission using Authorization header
  • ReactJs for client side, queue waiting and send order after finish queuing
  • Docker and serverless support for backend service

Framework

  • [Client]
    • reactJs
    • react-scripts / jest
    • jwt-simple
  • [Order + queue system]
    • SQLAlchemy orm
    • PyJWT
    • pymysql
    • unittest

Folder

  • Unit Test : Functional unit test code
  • Test Data : Data for testing in endpoints
  • Order : Order with online queue system using Python for AWS Lambda serving
  • Client : Client UI for online queue waiting and place orders after queuing
  • Setup : Setup script for database initialization
  • Deploy : Deployment script for Serverless framework
  • Tools : Tools for encryption (in env-prd.yml), encoding for testing
  • Documentation : Documentation
  • Screenshot : Application screenshot

Prerequsite

  • For more details please refer to Documentation folder

  • [AWS solution]

    • AWS IAM (Permission setup)
    • AWS VPC (Network connection capability)
    • AWS RDS MySQL (or equivalent)
    • AWS Lambda
    • Serverless (for AWS Lambda deployment)
    • npm, pip3
  • [non-AWS solution]

    • MySQL (or other SQL database for OLAP)
    • npm, pip3
    • Docker
    • (Optional) Docker swarm, Kubernetes or equivalent (For container orchestration)

Technical Assessment Requirement

  • Client and Backend are required to show queuing system is in function
  • Provide time estimation of the queue, current position for waiting
  • Support high volume of queuing users
  • Can use local or in-memory repository
  • Calls and creditals should be secured
  • Logging / documentation and testing are expected as part of the solution.

Time limit

  • 48 hours

Remarks

  • Using cryptography / cryptocode / simple-crypt will show invalid elf header in AWS Lambda (Under osx development). This project will use JWT for configuration encryption and decryption.

Contact