- Random project for learning purposes
- Expects a lot of comments
-
$ git clone https://github.com/rafaelbreno/go-proj.git
-
$ cd go-proj
-
$ sudo ./start.sh
- Update the generated .env
-
$ sudo ./start.sh
-
Choose an option: 1- Run Tests 2- Run Prod 3- Run Tests and Prod 4- Purge All
-
$ 3
- Hit enter and Enjoy
- Understanding of Design Patterns
- SSO systems
- Microservice architecture
- Communication protocols
- Virtualisation
- Continuous integration (CI/CD)
- Unit testing
- FOCUS ON GOROUTINES
- WebServer
- Nginx
- Database
- Choose one:
MySQL- PostgreSQL
MongoDB
- Redis
- Connection
- Postgres
- Redis
- Migrations
- Seeding
- Choose one:
- Database Connection
- Banking App
- TODO List
- TODO Items
- User CRUD
- Sign Up (registration)
- Sign In (login)
- Sign off
- Update
- Delete
- JWT
- Creating Token
- Deleting Token
- Refreshing Token
- Explode Functionalities into Microservices
- Implement some design pattern
- SOLID
- TDD
- Hexagonal Architecture
- Choose one
JenkinsGitlab CI- Github Actions
CircleCI
- /.github
-
Choose One
- Docker
-
Configuration Management
- Ansible
-
Container Orchestration
- Kubernetes
-
Infraestructure Provisioning
- Terraform
-
Service Mesh
- Istio
- Logs
- Elastic Stack
- Application Monitoring
- Jaeger
- New Relic
- Implement monitoring system
- Prometheus
- Grafana
- Cloud Providers
- AWS
- Digital Ocean
- Linode
- Here will be all Dockerfiles
- go/
- Go image
- nginx/
- Server image
- postgresql
- Database image
- redis/
- Key/Value Database image
- Here will be all Dockerfiles
- Functionalities globally accessible
- E.G.
- Database Connection
- Helpers
- Errors Handlers
- Logging
- etc.
- Stores all App's Domain
- I came from a MVC background, so I like to think Domain as a Model
- Retrieve DB connections
- Redis, PostgreSQL
- Run Migrations
- Here is the User Domain("Model")
- Here'll be the User main struct and Repository
- Almost like and extension for the User's Domain
- Here'll be all methods/actions that this Domain will need to have
- Here will be the routing file
- Here will be all Services from the App
- Connecting Handler and Domain
- Handler <-> Service <-> Domain
Liked what I'm doing? And want to support?