Skip to content

leonard0antonio/OrganizaTask-api

Repository files navigation

⚙️ OrganizaTask API (Back-end)

Demo da aplicação

Node.js TypeScript Express Prisma PostgreSQL


🎯 Arquitetura e Funcionalidades Principais

  • 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.

📊 Modelo Entidade-Relacionamento (MER)

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
    }

Loading

🚀 Como executar o projeto localmente

Pré-requisitos

  • Node.js v18+
  • Instância do PostgreSQL (Local ou Nuvem via Supabase)

Instalação

  1. Clone este repositório:
git clone [https://github.com/leonard0antonio/task-manager-api.git](https://github.com/leonard0antonio/task-manager-api.git)
  1. Acesse o diretório e instale as dependências:
cd task-manager-api
npm install
  1. Configure as variáveis de ambiente em um arquivo .env na raiz do projeto:
DATABASE_URL="postgresql://usuario:senha@localhost:5432/organizatask"
JWT_SECRET="sua_chave_secreta_super_segura"
PORT=3000
  1. Execute as migrações do Prisma para estruturar o banco de dados:
npx prisma generate
npx prisma db push
  1. Inicie o servidor em modo de desenvolvimento:
npm run dev

A API estará disponível em http://localhost:3000.


🌐 Deploy da Aplicação

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).

👨‍💻 Autor

Foto do leonardo no GitHub
Leonardo Antonio

About

A **Task Manager API** é uma interface de programação de aplicações (API) robusta desenvolvida em Node.js com TypeScript e Prisma, destinada a gerir tarefas e equipas com sistema de autenticação JWT, controlo de níveis de acesso (Admin e Membro) e base de dados PostgreSQL, consolidando

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Contributors