O projeto é um gerenciador de tarefas com um bot inteligente incluso, onde através desse bot o usuário pode pedir recomendações ao bot que irá retornar uma lista de soluções de como completar determinada tarefa. Ele foi desenvolvido com uma arquitetura de microserviços. Onde cada API é responsável por um tipo específico de recurso na aplicação, e a comunicação entre os serviços é orquestrada via Kubernetes.
- Backend: Django rest framework com Mysql
- Localização:
backend/projects
- Localização:
- Backend: Django rest framework com Postgresql
- Localização:
backend/tasks
- Localização:
- Backend: Nodejs typescript com MongoDB
- Localização:
backend/users
- Localização:
- Frontend: React
- Localização:
frontend
- Localização:
- Docker e Docker Compose
- Node.js e npm (ou yarn)
- Django
- Kubernetes com Helm
-
Navegue até a pasta do backend:
cd backend/tasks/
-
Suba a API com o docker-compose:
docker compose up
-
Configure o ambiente:
-
Crie um arquivo
.env
:MYSQL_ENGINE='django.db.backends.mysql' MYSQL_DATABASE='CHANGE-ME' MYSQL_USER='CHANGE-ME' MYSQL_PASSWORD='CHANGE-ME' MYSQL_ROOT_PASSWORD='CHANGE-ME' MYSQL_HOST='CHANGE-ME' MYSQL_PORT='CHANGE-ME' SECRET_KEY='CHANGE-ME' DEBUG='CHANGE-ME' ALLOWED_HOSTS='CHANGE-ME' CORS_ALLOWED_ORIGINS="CHANGE-ME"
-
Verifique e ajuste as variáveis de ambiente no arquivo
.env
conforme necessário.
-
-
Inicie o teste de requisições através do Insominia ou Postman: O backend estará disponível em
http://localhost:8000
.
-
Navegue até a pasta do backend:
cd backend/tasks/
-
Suba a API com o docker-compose:
docker compose up
-
Configure o ambiente:
-
Crie um arquivo
.env
:SECRET_KEY="CHANGE-ME" DEBUG="CHANGE-ME" DB_ENGINE="django.db.backends.postgresql" POSTGRES_DB="CHANGE-ME" POSTGRES_USER="CHANGE-ME" POSTGRES_PASSWORD="CHANGE-ME" POSTGRES_HOST="CHANGE-ME" POSTGRES_PORT="CHANGE-ME" OPEN_AI_MODEL='CHANGE-ME' OPEN_AI_KEY='CHANGE-ME' CORS_ALLOWED_ORIGINS="CHANGE-ME"
-
Verifique e ajuste as variáveis de ambiente no arquivo
.env
conforme necessário.
-
-
Inicie o teste de requisições através do Insominia ou Postman: O backend estará disponível em
http://localhost:8001
.
-
Navegue até a pasta do backend:
cd backend/users/
-
Suba a API com o docker-compose:
docker compose up
-
Configure o ambiente:
-
Crie um arquivo
.env
:ME_CONFIG_MONGODB_URL='CHANGE-ME' MONGO_DB_PORT='CHANGE-ME' JWT_SECRET='CHANGE-ME' CORS_ALLOWED_ORIGINS='CHANGE-ME'
-
Verifique e ajuste as variáveis de ambiente no arquivo
.env
conforme necessário.
-
-
Inicie o teste de requisições através do Insominia ou Postman: O backend estará disponível em
http://localhost:3000
.
-
Navegue até a pasta do frontend:
cd frontend/
-
Instale as dependências do React:
npm install
ou, se estiver usando yarn:
yarn install
-
Inicie o servidor de desenvolvimento do React:
npm start
ou, se estiver usando yarn:
yarn start
O frontend estará disponível em
http://localhost:3000
.
- Requisitos: Helm
- Navegue até a raiz do projeto:
- Instale o Helm
helm install <nome-da-sua-release> k8s
- Verique os Pods em execução
kubectl get all
- Obtenha o IP do frontend no cluster
- Foi usado o minikube no desenvolvimento desse projeto, então o processo de ativação do Ingress pode ser um pouco diferente, em ambientes como Kind.
- Ative o cert manager no cluster, com os seguintes comandos.
kubectl apply --validate=false -f https://github.com/cert-manager/cert-manager/releases/download/v1.12.5/cert-manager.crds.yaml
helm repo add jetstack https://charts.jetstack.io
helm repo update
helm install cert-manager jetstack/cert-manager --namespace cert-manager --create-namespace --version v1.12.5
kubectl wait --namespace cert-manager --for=condition=available deployment/cert-manager --timeout=120s
- Se estiver usando o minikube, ative o Ingress com esse seguinte comando.
minikube addons enable ingress
- Para conseguir o IP do front end através do minikube use.
minikube service <nome-da-sua-realease>-frontend-service --url
- Pegue o IP retornando e coloque ele ao navegador, a aplicação estará disponível lá.
-
Verifique os arquivos de configuração e as variáveis de ambiente para garantir que estejam configurados corretamente.
-
A senha de seu usuário precisa ter no mínimo 8 caracteres.
-
Para parar o cluster kubernetes, use:
helm unistall <nome-da-sua-release>
-
Para atualizar sua release, use:
helm upgrade <nome-da-sua-release> k8s
-
Para voltar a versão da sua release, use:
helm rollback <nome-da-sua-release> <numero-da-revisao>