The backend consists of 2 lambdas for interacting with Kintone and Redis Cloud, 1 API Gateway fronting the Kintone Lambda, 1 cloudfront, and S3 bucket for image, Kintone account, and Redis Cloud.
Please read the README file of kintone-lambda
and redis-lambda
for more information how to deploy the lambda and API Gateway.
I don't have terraform or cloud formation, so please deploy manually if you'd like to replicate the deployment.
- Create S3 bucket in AWS console by going to this page
- Feel free to use any region (I use Singapore region) and choose unique name for bucket
- Keep all default settings and click Create bucket
- You can upload the image you want to use for the event in the bucket
- Create cloudfront distribution in AWS console by going to this page
- Choose S3 bucket created earlier as Origin domain
- Choose Origin access control settings (recommended) in Origin access
- Click Create control setting, use default setting, and click Create
- Choose https only in Viewer protocol policy
- Keep all other default settings and click Create distribution
I assume you have basic knowledge of Kintone
- Crate kintone account here
- After account is ready, login and import
Event Management.zip
as app template and then create app or create app from template file and then uploadEvent Management.zip
- In the newly craeted app, populate the fields with (dummy) events you want to test
- Create API token for the Event app just created (feel free to give permission only for View Records as we don't update the record from front end) and note it as it will be used in Lambda environment variable
- Also note your kintone subdomain (it is subdomain to your account e.g.
pq3ad2mhj123.kintone.com
)
I assume you have basic knowledge of Redis
- Create redis cloud account here
- After account is ready, login and create new database, feel free to name it anything you like, I use Event as name.
- Get the connection info from database Endpoint (there's a button called Connect - click on it)
- Go to Redis Client, in Select your client choose Node.js, note the password, host, and port (host and port are under socket)