OINP stands for Ontario Immigrant Nominee Program. You can learn more about it here.
This is a fully serverless application running on AWS. It leverages AWS Free Tier to send notifications whenever there is an update on the targeted OINP official webpage.
You will need the following packages properly installed in your local environment in order to deploy this app.
Name | Tested version(s) |
---|---|
Git | 2.17.0 |
Node.js (with NPM) | node==12.16.3, npm==6.14.4 |
Serverless Framework | core==1.77.1, plugin==3.6.18, sdk==2.3.1, components==2.33.1 |
AWS CLI | aws-cli/2.0.16 Python/3.7.4 Darwin/18.7.0 botocore/2.0.0dev20 |
Search for [Action required]
in serverless.yml
, and change the bucketName
to make it globally unique.
git clone https://github.com/jellycsc/serverless-oinp-notifier.git
cd serverless-oinp-notifier/
npm i -g serverless
npm i
sls deploy
- Uses headless Chrome to render dynamic javascript content [ref]
- Checks for update every minute [ref]
- Ability to send notifications of type HTTP/HTTPS, SMS or Email [ref]
- Full-page screenshot is taken on each webpage update [ref]
- Lambda
- CloudFormation
- S3
- DynamoDB
- CloudWatch
- EventBridge
$0 since everything is under "Always Free" type of AWS Free Tier
- PK: webpage URL
- SK: a date-time string specified in ISO 8601 format
It is designed this way to allow easy query for the latest record.
You can use lambda layers to reduce the deployment package size from 45 MB to <100 KB. Checkout the use-layers
branch of this repo.