- Arquitetura Multi-Tenant: Isolamento absoluto de dados. Membros só têm acesso às tarefas e times do Workspace do qual fazem parte.
- Autenticação Segura: Autenticação via JWT (JSON Web Tokens) com senhas criptografadas via bcrypt.
- Controle de Acesso (RBAC):
Admin: Gestão total do Workspace, criação de times, registro de membros e visão global das demandas.Member: Visão isolada, com acesso exclusivo às tarefas atribuídas a si ou abertas para o seu Squad.
- ORM Moderno: Utilização do Prisma ORM para queries tipadas, seguras e migrações ágeis.
Abaixo está a representação da arquitetura de banco de dados do projeto, destacando o auto-relacionamento da tabela User que viabiliza a regra de negócio do Workspace.
erDiagram
USER ||--o{ USER : "gerencia (adminId)"
USER ||--o{ TASK : "é responsável por (assigned_to)"
USER ||--o{ TASK : "cria para o workspace (adminId)"
TEAM ||--o{ TASK : "possui (team_id)"
USER {
int id PK
string name
string email
string password
string role "admin | member"
int adminId FK "Nullable (Auto-relacionamento)"
datetime created_at
}
TEAM {
int id PK
string name
datetime created_at
}
TASK {
int id PK
string title
string description
string priority "high | medium | low"
string status "pending | in_progress | completed"
int adminId FK "Workspace Link"
int team_id FK
int assigned_to FK "Nullable"
datetime created_at
}
- Node.js v18+
- Instância do PostgreSQL (Local ou Nuvem via Supabase)
- Clone este repositório:
git clone [https://github.com/leonard0antonio/task-manager-api.git](https://github.com/leonard0antonio/task-manager-api.git)
- Acesse o diretório e instale as dependências:
cd task-manager-api
npm install
- Configure as variáveis de ambiente em um arquivo
.envna raiz do projeto:
DATABASE_URL="postgresql://usuario:senha@localhost:5432/organizatask"
JWT_SECRET="sua_chave_secreta_super_segura"
PORT=3000
- Execute as migrações do Prisma para estruturar o banco de dados:
npx prisma generate
npx prisma db push
- Inicie o servidor em modo de desenvolvimento:
npm run dev
A API estará disponível em http://localhost:3000.
O ecossistema OrganizaTask está configurado para deploy contínuo utilizando as melhores práticas em infraestrutura serverless e edge:
- Back-end: Hospedado no Render.
- Front-end: Hospedado na Vercel. (Repositório do front-end não incluso aqui).
|
Leonardo Antonio |
