An open API service indexing awesome lists of open source software.

https://github.com/raizertechdev/taskflow-gerenciador-de-tarefas

Gerencie tarefas com backend (Node/Express), frontend (React) e PostgreSQL – tudo rodando no Docker!
https://github.com/raizertechdev/taskflow-gerenciador-de-tarefas

docker-compose dockerfiles express java-scripts nodejs postgresql-database postman-collection reactjs tailwindcss vite

Last synced: about 2 months ago
JSON representation

Gerencie tarefas com backend (Node/Express), frontend (React) e PostgreSQL – tudo rodando no Docker!

Awesome Lists containing this project

README

          

# Task Manager Application

Imagem-Documentacao

[![Documentação](https://img.shields.io/badge/Documentação-Oficial-success)](https://github.com/RaizerTechDev/TaskFlow-Gerenciador-de-Tarefas/blob/master/Documentation.md)

[( Clique aqui para se `Cadastar` e criar suas `Tasks`)](https://task-flow-gerenciador-de-tarefas-frontend.vercel.app/)




[Demonstração-Projeto-RaizerTech]


---

## 📑 Índice



- [Task Manager Application](#task-manager-application)
- [Objetivo](#objetivo)
- [Tecnologias](#tecnologias)
- [Documentação da API](#-documentação-da-api)
- [Configuração e Instalação dos Ambientes](#️configuração-e-instalação-dos-ambientes)
- [Pré-requisitos](#pré-requisitos)
- [Instalação FrontEnd](#-instalação-frontend)
- [Instalação Backend](#-instalação-backend)
- [Instalação Docker](#-instalação-do-docker)
- [Execução](#-execução)
- [Banco de Dados](#️-banco-de-dados-postgresql)
- [Frontend](#️-frontend)
- [Implentações de Branches](#implementações-de-branches)
- [Licença](#licença)
- [Autor](#-autor)

---

## 🎯Objetivo

Um aplicativo completo de gerenciamento de tarefas com backend (Node.js/Express), frontend (React) e banco de dados PostgreSQL, tudo containerizado com Docker.


---

## 🚀Tecnologias

### Backend
[![Node.js](https://img.shields.io/badge/Node.js-18.x-green?logo=node.js&logoColor=white)](https://nodejs.org/)
![Express](https://img.shields.io/badge/-Express-000000?logo=express)
![PostgreSQL](https://img.shields.io/badge/-PostgreSQL-4169E1?logo=postgresql&logoColor=black)
![JWT](https://img.shields.io/badge/-JWT-000000?logo=json-web-tokens)

### Frontend
![React](https://img.shields.io/badge/-React-61DAFB?logo=react&logoColor=black)
![Vite](https://img.shields.io/badge/-Vite-646CFF?logo=vite&logoColor=black)
![JavaScript](https://img.shields.io/badge/-JavaScript-F7DF1E?logo=javascript&logoColor=black)
![TailwindCSS](https://img.shields.io/badge/-TailwindCSS-06B6D4?logo=tailwind-css&logoColor=black)

### DevOps
![Docker](https://img.shields.io/badge/-Docker-2496ED?logo=docker&logoColor=black)
![Postman](https://img.shields.io/badge/-Postman-FF6C37?logo=postman&logoColor=black)


---

## 📚 Documentação da API
[Run in Postman](https://documenter.getpostman.com/view/19569624/2sB2qWH4Yv)

Endpoints principais:

POST /api/auth/register - Registro de usuário

POST /api/auth/login - Autenticação

GET /api/tasks - Listar tarefas

POST /api/tasks - Criar tarefa

PUT /api/tasks/:id - Atualizar tarefa


---

## 🛠️Configuração e Instalação dos Ambientes

### Pré-requisitos
- Node.js v18+
- Docker v20+
- PostgreSQL 15

### 📦 Instalação FrontEnd

#### Criar projeto React com Vite
```bash
npm create vite@latest . -- --template react
```


#### Dependências principais
```bash
npm install axios react-router-dom react-icons react-toastify @heroicons/react date-fns
```


#### Dependências de desenvolvimento (TailwindCSS)
```bash
npm install -D tailwindcss postcss autoprefixer
npx tailwindcss init -p
```


### 📦 Instalação BackEnd

#### Dependências principais
```bash
npm install express express-async-handler cors dotenv bcryptjs jest jsonwebtoken nodemon sequelize
```

### 🐋 Instalação do Docker

Antes de executar os serviços, é necessário ter o Docker instalado. Siga as instruções de acordo com seu sistema operacional:

#### Para Windows/macOS (Docker Desktop):

- Baixe o Docker Desktop
🔗 [Download Docker Desktop](https://www.docker.com/products/docker-desktop/)

- Recomendado para desenvolvimento local.

- Instale e Inicie

- Execute o instalador baixado

- Inicie o Docker Desktop após a instalação

- Aguarde até que o ícone do Docker na bandeja/barra de menus indique que está em execução (⏳→🐳)

#### Para Linux (Docker Engine):

```bash
1. Atualize os pacotes
sudo apt-get update

2. Instale dependências
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common

3. Adicione o repositório oficial do Docker
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

4. Instale o Docker Engine
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io

5. Adicione seu usuário ao grupo docker (evita usar sudo)
sudo usermod -aG docker $USER
newgrp docker # Recarrega as permissões (ou reinicie o terminal)
de teste
```

#### Verifique a Instalação
bash
docker --version # Deve mostrar a versão instalada
docker run hello-world # Executa um contêiner


---

#### Dependências Backend + Frontend + Docker
```bash
npm install
```


#### Listar dependências instaladas
```bash
npm list
```


---

## 🚀 Execução

### Iniciar todos os serviços (Docker)

```bash
docker-compose -f docker/docker-compose.yml up --build
```

- Portas:
- Backend: 5000

- Frontend: 5173

- Postgres: 5432


### Parar todos os serviços
```bash
docker-compose -f docker/docker-compose.yml down -v
```


### Limpeza de recursos Docker

- Limpar recursos não utilizados
```bash
# Limpar recursos não utilizados
docker system prune -a

# Remover volumes não utilizados
docker volume prune
```


---

## 🗄️ Banco de Dados (PostgreSQL)

### Acessar o banco de dados ```localhost```
```bash
docker exec -it postgres-db psql -U postgres -d taskmanager
```

### Acessar o banco de dados no ```Neon```
```bash
psql "postgresql://[DB_USER]:[DB_PASSWORD]@[DB_HOST]]/taskmanager?sslmode=require"
```


### Comandos úteis no PostgreSQL
```sql
-- Listar todas as tabelas
\dt

-- Descrever estrutura da tabela Tasks
\d "Tasks"

-- Consultar dados da tabela Tasks
SELECT * FROMs "Tasks";

-- Consultar dados da tabela Tasks por "userId" e verificar "status"
SELECT * FROM "Tasks" ORDER BY "userId" ;

-- Consultar dados da tabela Tasks por "userId" e verificar "status"
SELECT t.* FROM "Tasks" t JOIN "Users" u ON t."userId" = u.id AND u.id = 2 ORDER BY t."status";

-- Consultar dados da tabela Tasks por "username" e omite "userId"
SELECT t.id, t.title, t.description, t.status, t."taskDate", u.username FROM "Tasks" t JOIN "Users" u ON t."userId" = u.id WHERE u.username = 'Rafa' ORDER BY t."status";

-- Exemplo: Renomear coluna
ALTER TABLE "Tasks" RENAME COLUMN "dueDate" TO "taskDate";

-- Verificar alterações
\d "Tasks"
```


---

## 🖥️ Frontend

### Build de produção
```bash
npm run build
```

### Desenvolvimento FrontEnd
```bash
npm run dev
```

- Portas:
- Frontend: 5180


---

## Implementações de branches

1. Desenvolvimento Front-End
- [release/desenvolvimento-front-end](https://github.com/RaizerTechDev/TaskFlow-Gerenciador-de-Tarefas/tree/release/frontend/frontend)

2. Desenvolvimento Back-End
- [release/desenvolvimento-back-end](https://github.com/RaizerTechDev/TaskFlow-Gerenciador-de-Tarefas/tree/master/backend)

br>

---

## Licença

- Esse projeto está sob a licença MIT.


---

##### 👤 Autor




&nbsp&nbsp&nbspRafaRaizer-Dev

&nbsp&nbsp&nbspWhatsapp | LinkedIn | GitHubTableauPortfólio