• REST APIs for admin and user operations, including user and account management, and seamless transactions, using Go, Gin, PostgreSQL, sqlc.
• Authentication middleware to authorize API requests, with PASETO, and exhaustive unit tests.
• CI/CD pipelines for automated testing, database migration, containerization, and deployment, utilizing Github Actions, Docker, Kubernetes, Amazon Web Services (ECR, RDS, EKS and IAM).
Go
- WebsiteGin
- HTTP web framework written in Go GithubPostgreSQL
- Open-source relational database PostgreSQL Website Docker Image Websitesqlc
- SQL to type-safe code WebsitePASETO
- JOSE (JWT, JWE, JWS) without any of the design deficits in JOSE standards. WebsiteDocker
- For containerization Docker WebsiteKubernetes
- Container orchestration Kubernetes WebsiteAWS
- Used RDS, EKS, ECR, IAM WebsiteViper
- Go configurations Githublib/pq
- Pure Go Postgres driver for database/sql Websitejwt-go
- JWT in Go GithubTablePlus
- Database management with GUI WebsitePostman
- Testing APIs Websitekubectl
- WebsiteNginx Ingress Controller
- Website
- Install Go, Docker Desktop, sqlc, TablePlus, Postman and other required tools and software mentioned.
- Make changes to the Makefile, Dockerfile, yml/yaml files for different settings for containerization, deployment, testing, AWS configurations.
- For running and testing on localhost, setup the postgreSQL docker image,
go mod tidy
and run the Makefile commands. - The database can be viewed in TablePlus and tested on Postman.
NOTE For deploying with Github Actions, AWS configurations have to be setup and the deploy.yml in workflows has to be moved into the .github/workflows directory. For EKS operations, configurations can be managed with kubectl. This has been disabled here due to AWS service costs of EKS and VPC.