https://github.com/allen-woods/the-supertask
Passion project and professional capstone, this is my deep-dive playground for learning by doing.
https://github.com/allen-woods/the-supertask
api authentication-middleware caddyserver ci-cd circleci docker-compose encryption gqlgen graphql grpc-go microservices mongodb portfolio-website reactjs redis shell-scripts
Last synced: 3 months ago
JSON representation
Passion project and professional capstone, this is my deep-dive playground for learning by doing.
- Host: GitHub
- URL: https://github.com/allen-woods/the-supertask
- Owner: allen-woods
- License: mit
- Created: 2019-09-05T13:22:37.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2023-03-07T01:11:45.000Z (over 3 years ago)
- Last Synced: 2026-01-03T13:47:46.040Z (6 months ago)
- Topics: api, authentication-middleware, caddyserver, ci-cd, circleci, docker-compose, encryption, gqlgen, graphql, grpc-go, microservices, mongodb, portfolio-website, reactjs, redis, shell-scripts
- Language: Go
- Homepage: https://www.thesupertask.com
- Size: 1.81 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# The Supertask
Personal portfolio site for the second half of 2020.
Technologies planned for project:
- Caddy Server
- CircleCI
- Custom Authentication
- Docker Machine
- Golang
- GraphQL (gqlgen)
- MongoDB
- ReactJS
- Redis
- WebAssembly (?)
### TODO:
- Dockerize local environment (ongoing)
- Create draft of architecture (done)
- Begin building API
- Design toward implementation of `Apollo Server` and `Apollo Client`. (on track)
- **Provide single source of truth for models.**
- Will be migrating to use of HashiCorp Vault.
- **Define Redis and MongoDB secrets as environment variables.**
- These will be managed by Vault, see above.
- **Create initialization for unique email fields requirement.**
- gRPC "user" microservice will manage this.
- Successfully create and persist the following accounts:
- Global super user to replace "root" in MongoDB.
- Database owners, each dedicated to a given microservice.
### DONE:
- Implement `docker/mongo` and `docker/redis`
- Implement MongoDB with Authentication
- Wrote custom shell scripts for initializing database.
- Implemented string interpolation of environment variables to keep secrets secure.
- Researched and feasibility tested `heredoc` and escaped line break options for more readable JavaScript (all failed).
- Implement Redis securely (done)
- Fixed broken config support in `docker-compose` using `chown` and the `redis` user inside the image.
- Disable THP support inside the container.
- Removed unnecessary volume "persist_redis_backups" (should be /data).
- Make sure both data stores are persisted (done)
- API
- Define User schema. (done)
- Generate User model and resolvers. (done)
- Populate resolvers with logic. (in progress)