- Install
Kubectl - Install
Docker - Install
Skaffold - Setup
nginx ingress controller - Add this line
127.0.0.1 ticketing.devto your/etc/host - run
skaffold dev - Access ticketing.dev
- Bypass Chrome https security by type
thisisunsafeor use another browser
docker-compose up -d(in order to create a local database image)yarn test
Linux: WIP, but you can try to run it with minikube
- Kubernetes
- Message driven architecture (with NATS)
- Skaffold, wich allow us to run the project in dev mode
- Typeorm as ORM, using Postgres as primary database
- NextJs provinding a good SSR and project template
- Chakra UI ❤️ an awesome design system that provides a bunch of accessibility features
- Typescript on backend 🙌
- others...
Unfotunately, we have different ways to run the project at Mac and Linux environments, for now, I'm prioritizing Mac.
Business rules need to be improved (you can buy your own ticket), user should edit a ticket, user should upload a ticket, edit profile. But I'm focused primarily on development
This project is focused on Backend development, front end stack needs a huge improvement, such as: better file separation unit test, integrations tests, Typescript, prop types organization, an in house design system library, microfrontend concepts
It would take a long time for me to improve this project and I am considering that it is not worth the effort, the main goal here was develop my backend and DevOps skills. I still need to find a free kubernetes cluster in order to deploy this application
The project as a whole needs some amount of improvement, I've listed some of them in the todo list bellow
- create unit tests for remaining files
- E2E between services
- Revisit auth strategy
- Revisit Error Handler
- Monorepo patterns
- Layout
- Template (g8?)
- add errors message to a constant
- create d.ts files
- use Helm
- Translations
- rabbitMQ or kafka
- move db connection to common
- API version ?
- add more code to common (tests, nats-wrapper, app ?, database config)
- generic forms
- route file
- Add cert-manager in order to use https in localhost
- Add eslint and prettier to common module
