Closed vselvarajijay closed 8 months ago
💎 $100 bounty created by akello-io
🙋 If you'd like to work on this issue, comment below to get assigned
👉 To claim this bounty, submit a pull request that includes the text /claim #229
somewhere in its body
📝 Before proceeding, please make sure you can receive payouts in your country
💵 Payment arrives in your account 2-5 days after the bounty is rewarded
💯 You keep 100% of the bounty award
🙏 Thank you for contributing to akello-io/akello!
/attempt #229
Algora profile | Completed bounties | Tech | Active attempts | Options |
---|---|---|---|---|
@oliverqx | 2 bounties from 2 projects | TypeScript, Python |
Cancel attempt |
Resolved by the following PR: https://github.com/akello-io/akello/pull/248
Make it easier for clinics to run Akello by making the setup into their infrastructure simpler. Use AWS Cloud Development Kit (CDK) to set up AWS resources automatically and update the app easily.
Objective
Create a deployment script utilizing AWS Cloud Development Kit (CDK) to automatically provision all necessary AWS resources for a given account ID. This script should also enable the update and deployment of the client application and the Python backend efficiently.
Submission Requirements
Here is a sample for a previous submission that was accepted: https://github.com/akello-io/akello/pull/108
Acceptance Criteria
cdk deploy
in a new AWS environment, resulting in a functional URL where users can register and create accounts./packages
or the application under/apps/cocm-registry
are deployable throughcdk deploy
, pushing the latest changes to the AWS account.http://localhost:8000/docs
.deleted
during any deployment to the AWS accountHow to contribute
Questions?
If you would like to discuss any questions or details about this or akello in general feel free to join the discord server by clicking the discord link above.
Ask questions under the
#questions
channel or feel free to create a new thread under#development
with thisGH issue ID
so we can follow the conversation.Notes
Developer Experience
The developer should be able to run the cdk deployment script into a fresh AWS account and within minutes access a URL with Akello running.
cdk deploy
Technical Notes
Current Project Structure
Setup Overview
Currently Akello relies on AWS services, in the future we should be able to remove this dependency and keep the application layer independent of the infrastructure it runs on. Core dependencies on AWS include Cognito and DynamoDB.
Environment variable templates are stored under akello/scripts
Local deployment example The
akello.py
script is a python script with a couple functions that help you run akello locally. You can use this as a reference to understand how the project runs.AWS resources needed for deployment
Environment Variables
AWS Roles
Make sure new IAM user accounts are not being created. The lambda function should be able to assume an execution role to insert data into DynamoDB and log data.
Cloudwatch Metrics / Alerts
Bonus points for anyone that can setup simple Cloud watch dashboard for monitoring the app
Examples:
DB notes
The script that defines the DynamoDB table. It would be great if this is part of the CDK setup script for DynamoDB. If so for the production deployment we can refactor this out in the startup script from Fast API.
AWS Diagram