church-members-api

command module
v0.0.0-...-5863de9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 28, 2024 License: GPL-3.0 Imports: 2 Imported by: 0

README

church-members-api ⛪️

Go codecov Go Report Card Deploy

A simple application to manage a church's members.

Features 💻

  • 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

Libraries ⚙️

Deploy ✈️

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!

AWS ☁️

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

GitHub Logo

Configuration 🛠

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

Support ✉️

You can create a PR for it =)

Documentation

Overview

church-members-api

This API manages the members of a church.

Schemes: http
Host: localhost:8080
Version: 1.0.0

Consumes:
- application/json

Produces:
- application/json
   - application/csv
   - application/pdf

Security:
- login:
- token:

SecurityDefinitions:
  login:
    type: basic
  token:
    type: apiKey
    name: X-Auth-Token
    in: header

swagger:meta

Directories

Path Synopsis
internal
modules/church/mock
Package mock_church is a generated GoMock package.
Package mock_church is a generated GoMock package.
modules/jobs/mock
Package mock_jobs is a generated GoMock package.
Package mock_jobs is a generated GoMock package.
modules/member/mock
Package mock_member is a generated GoMock package.
Package mock_member is a generated GoMock package.
modules/report/file/mock
Package mock_file is a generated GoMock package.
Package mock_file is a generated GoMock package.
modules/report/mock
Package mock_report is a generated GoMock package.
Package mock_report is a generated GoMock package.
modules/user/mock
Package mock_user is a generated GoMock package.
Package mock_user is a generated GoMock package.
services/calendar/mock
Package mock_calendar is a generated GoMock package.
Package mock_calendar is a generated GoMock package.
services/email/mock
Package mock_email is a generated GoMock package.
Package mock_email is a generated GoMock package.
services/notification/mock
Package mock_notification is a generated GoMock package.
Package mock_notification is a generated GoMock package.
services/storage/mock
Package mock_storage is a generated GoMock package.
Package mock_storage is a generated GoMock package.
platform
aws/wrapper/mock
Package mock_wrapper is a generated GoMock package.
Package mock_wrapper is a generated GoMock package.
cdi
security/mock
Package mock_security is a generated GoMock package.
Package mock_security is a generated GoMock package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL