A simple application to manage a church's members.
- Member's control (register & search)
- Member's report
- Legal members (all except children)
- All members (including children)
- By classification
- Birthdays list
- Marriage list
- Notification jobs
- Weekly births through email
- Dailly birthdays through SMS
- i18n
- Supports pt-BR and en-US
The application was build upon a Docker image, but rely mostly on AWS resources to work. To deploy on AWS, simple configure a Terraform with some vars described bellow and run the script and it's all done!
The following resources are used on AWS
- DynamoDB to store churchs, users and members information
- S3 to store report files
- Event Bridge to CRON the jobs
- SNS to send notifications from jobs
- ECR to store a private image of the application
- Lambda to run the serverless application (both API and JOB)
- API Gateway to provide a RESTfull interface and authorize access
The following configuration are required through Terraform vars
Terraform var | Environment variable | Description |
---|---|---|
Hard coded on Terraform | SERVER | Used to define the environment where the application will run. Defaults to AWS |
Hard coded on Terraform | APPLICATION | Used to defined the Lambda type: API or JOB |
Terraform takes it from dynamo resource | TABLE_MEMBER | DynamoDB members table |
Terraform takes it from dynamo resource | TABLE_USER | DynamoDB users table |
Terraform takes it from dynamo resource | TABLE_CHURCH | DynamoDB churchs table |
Terraform takes it from SNS resource | REPORTS_TOPIC | The topic to notify weekly jobs through email |
Terraform takes it from S3 resource | STORAGE | The S3 bucket |
You can create a PR for it =)