High-level migration plan:
-
Re-develop kabuter UI using Angular 8 and Amplify
Created an kabuter.io angular 8 project by referring Michael Labieniec’s blog on Progressive Web Application
Follow amazon multi-environments doc for setting up prod, test and dev environments.
-
Use AWS Cognito for user-management and social federation (facebook and google)
Implemented social federation using AWS Cognito by referring Michael Labieniec’s blog on PWA Social Federation
Note: I had to use Cognito – implicit grant option to eliminate token url resulting in invalid_request error that prevented social federated users to get navigated to home page after successful login. Refer AWS Token link for more.
-
Use AWS DynamoDB as a backend no-sql database
Created a DynamoDB table named kabuterio with partition-key=pk, sort-key=sk.
Implemented a python lambda invoked by AWS Cognito pre-Sign-up trigger to write user info to kabuterio table. -
MILESTONE #1 Use AWS Cognito to trigger a Python lambda to save pre sign-up user info in the kabuterio DynamoDB database.
Created user-add, user-get python lambda functions to write to kabuterio table.
Note: Make sure to return event from lambda functions so that Cognito can return back to the caller webapp.
-
Use Swagger to define REST API
-
MILESTONE #2: Upon successful sign-up and authentication, allow users to update profile/preference info.
-
Use AWS CodeCommit
Created a repository “KabuterAngularApp” in AWSCodeCommit.
Pointed the local directory of angular app to remote AWS repository using the command below:git remote add
Validate the remote url:
git remote -v
Pushed local code to remote using:
git push
For more info refer Linuxize blog How to add git remote
-
Import Swagger definition into SOAP UI to run API tests
-
MILESTONE #3: Implement code-change to code-deployment cycle using AWS Bamboo
-
Implement Group, Event, and Message CRUD UI and REST functionality
-
MILESTONE #4: Kabuter.io is up and running on AWS platform and users are able to create groups, events and messages.
-
Implement workflow using AWS State Machine.
-
MILESTONE #5: Kabuter.io is able to send email and SMS notifications
-
Update ios and android apps
-
MILESTONE #6: Kabuter.io is fully functional on AWS.
References
A blog by Mark McDonell on AWS Cognito