π A real world production-grade RESTful Web Services proof-of-concept project.
-
An optimized Go implementation follows The Clean Architecture, provides mechanism to declare Entities, Use cases, and External Services (e.g. data access).
-
An optimized Go implementation provides mechanism to expose Entities and Use Cases as RESTful Web Services.
-
An optimized Go implementation of Token-based Authentication and Authorization.
-
An optimized Go implementation provides abstract mechanism to access Relational Databases.
-
An optimized Go Development Environment with Git, Docker, Go Modules, Go Debuggers (GDB/Delve) and popular code editors (VSCode/GoLand/Vim).
-
An optimized CI/CD Solution with Github Actions and AWS.
-
An optimized Distribution Solution with Github Releases and Github Package Registry.
-
A scalable and highly-available Production Deployment Solution over AWS using Terraform.
-
An optimized Staging Environment replicating Production Environment for testing purposes.
-
An optimized Issues Tracking mechanism with Github Project, Issues and Pull Requests.
-
Continual improvements.
This project use Github project, issues and pull requests to manage and track issues. Refer to this Github project for further details.
Local development machines need to have following tools installed and working properly:
-
Docker for running a full-time containerized development environment.
-
Visual Studio Code with Remote - Containers extension for writing code with Intellisense, running and debugging code within containers.
Windows users need to additionally have an Unix-shell emulator to be able to run utility scripts (Git Bash is recommended).
With all of above requirements fullfiled, developers can experience a full-time local-quality VSCode-powered containerized development environment by just opening the repository in VSCode container mode.
Go here for further details.
Without VSCode, developers will not be able to achieve a full-time local-quality VSCode-powered containerized development environment. However, if there's any reason that you can not or do not want to work with Visual Studio Code, you can still start a containerized development environment and start working on that or even build your own development solution on top of that.
Go here for further details.
Quick overview of project structure, components and their roles.
βββ π.vscode/ # VSCode configurations.
βββ π¦common/ # Common, utility Go components.
βββ πdocs/ # Documentation & assets.
βββ πscripts/ # Utility scripts.
βββ π¦users/ # Users-related Go components.
βββ π.devcontainer.json # VSCode Remote-Containers configuration.
βββ π.gitignore
βββ πDockerfile # Instructions to build development Docker image.
βββ πgo.mod # Go module configuration.
βββ πgo.sum # Go module checksum/lock.
βββ πLICENSE
βββ πREADME.md
βββ πmain.go # Application's main entry point.
Copyright Β© The Evengers. All rights reserved.
This project is licensed under the Apache License 2.0 and is available for free.