Manual do Usuário

Guia completo para usar o SmartProj

1. Introdução

Bem-vindo ao SmartProj! Este é um sistema completo de gerenciamento de projetos que permite organizar tarefas, equipes, recursos financeiros e muito mais.

O SmartProj é um sistema SaaS (Software as a Service), onde cada empresa tem seus dados isolados e seguros.

2. Primeiros Passos

2.1. Configurando seu Perfil

  1. Acesse Configurações no menu do avatar (canto inferior esquerdo)
  2. Preencha seu nome completo
  3. Faça upload de uma foto de perfil (opcional)
  4. Adicione informações de contato se desejar

2.2. Configurando sua Empresa

  1. Em Configurações > Empresa
  2. Informe o nome da sua empresa
  3. Adicione endereço e telefone (opcional)
  4. Faça upload do logo da empresa (opcional)
Importante: O nome da empresa é necessário para cancelar a conta no futuro.

2.3. Entendendo o Dashboard

O Dashboard é sua página inicial após fazer login. Ele oferece uma visão geral completa de suas atividades:

  • Resumo de Projetos: Estatísticas de projetos ativos, concluídos e pausados
  • Resumo Financeiro: Totais de orçamento, despesas e diferença
  • Taxa de Conclusão: Gráfico de pizza mostrando o percentual de tarefas concluídas vs. em andamento
  • Produtividade: Gráfico de linha mostrando:
    • Tarefas criadas ao longo do tempo
    • Tarefas concluídas ao longo do tempo
    • Tarefas atrasadas (vencidas e não concluídas)
  • Tarefas Recentes: Lista das suas últimas tarefas com status coloridos (herdam cores das colunas Kanban)
Dica: Use o Dashboard diariamente para acompanhar o progresso geral e identificar rapidamente tarefas que precisam de atenção.

Exemplo Visual do Dashboard:

Projetos

15

Tarefas

89

Concluídas

54

Equipes

8

Taxa de Conclusão

67%

54 de 89 tarefas concluídas

Tarefas Recentes

Em Progresso Implementar dashboard
Concluída Revisar código backend
A Fazer Testar integração API

3. Centros de Custo

Os Centros de Custo ajudam a organizar projetos por departamento, área ou categoria.

3.1. Criar Centro de Custo

  1. Acesse Centros de Custo no menu principal
  2. Clique em "Novo Centro de Custo"
  3. Preencha o nome (obrigatório)
  4. Adicione um código identificador (opcional)
  5. Adicione uma descrição (opcional)
  6. Clique em "Salvar"

3.2. Usar Centro de Custo em Projetos

Ao criar ou editar um projeto, você pode associá-lo a um centro de custo. Isso facilita a organização e relatórios financeiros.

4. Equipes

As Equipes permitem agrupar usuários para facilitar a colaboração em projetos.

4.1. Criar Equipe

  1. Acesse Equipes no menu principal
  2. Clique em "Nova Equipe"
  3. Informe o nome da equipe
  4. Adicione uma descrição (opcional)
  5. Clique em "Salvar"

4.2. Adicionar Membros à Equipe

  1. Abra a equipe desejada
  2. Na seção "Membros", clique em "Adicionar Membro"
  3. Selecione o usuário da lista
  4. Confirme a adição

5. Projetos

Os Projetos são o coração do SmartProj. Eles organizam tarefas, equipes e recursos financeiros.

5.1. Criar Projeto

  1. Acesse Projetos no menu principal
  2. Clique em "Novo Projeto"
  3. Preencha:
    • Nome: Nome do projeto (obrigatório)
    • Descrição: Detalhes do projeto
    • Status: Rascunho, Ativo, Pausado, Concluído ou Cancelado
    • Data Início/Fim: Período do projeto
    • Cor: Cor de identificação
    • Centro de Custo: Associação opcional
  4. Clique em "Salvar"
Ao criar um projeto, 4 colunas Kanban são criadas automaticamente: A Fazer, Em Progresso, Revisão, Concluído

5.2. Visualizações do Projeto

Cada projeto possui 5 visualizações diferentes:

  • Detalhes: Visão geral do projeto com:
    • Card compacto com informações principais (nome, descrição, datas, status)
    • Resumo financeiro com orçamento, despesas e diferença
    • Gráfico de produtividade mostrando tarefas criadas e concluídas ao longo do tempo
    • Lista de tarefas recentes com status colorido (herdam cores das colunas Kanban)
  • Kanban: Visualização em colunas, ideal para acompanhar o fluxo de trabalho com drag-and-drop
  • Lista: Visualização em tabela com status coloridos (herdam cores das colunas Kanban), fácil de filtrar e ordenar
  • Gantt: Visualização de cronograma com barras de tempo, linha "Hoje" centralizada e navegação por semana/mês/ano
  • Calendário: Visualização mensal com tarefas por data de vencimento

Exemplo Visual do Gantt:

Gráfico de Gantt

Tarefa
Seg 18
Ter 19
Qua 20 (Hoje)
Qui 21
Sex 22
Sáb 23
Dom 24
Implementar autenticação
3 dias
Revisar código backend
2 dias
Criar testes unitários
2 dias
Deploy em produção
1 dia
A linha vertical azul representa "Hoje". As cores das barras herdam as cores das colunas do Kanban.

5.3. Gerenciar Membros do Projeto

  1. Abra o projeto desejado
  2. Na aba "Membros", clique em "Adicionar Membro"
  3. Selecione o usuário
  4. Os membros podem visualizar e editar tarefas do projeto

5.4. Colunas Kanban

Você pode personalizar as colunas Kanban do projeto:

  • Criar: Adicione novas colunas conforme necessário
  • Editar: Renomeie ou reordene as colunas
  • Excluir: Remova colunas não utilizadas (as tarefas serão movidas)

Exemplo Visual do Kanban:

A Fazer

Sistema de login com JWT

Alta 📅 25/11
Média

Em Progresso

Gráficos e estatísticas

Urgente
JD

Revisão

Alta 📅 20/11

Concluído

Média ✓ Concluída
Baixa ✓ Concluída

6. Tarefas

As Tarefas são as unidades de trabalho dentro dos projetos.

6.1. Criar Tarefa

  1. Dentro de um projeto, clique em "Nova Tarefa"
  2. Preencha:
    • Título: Nome da tarefa (obrigatório)
    • Descrição: Detalhes da tarefa
    • Prioridade: Baixa, Média, Alta ou Urgente
    • Data de Vencimento: Quando a tarefa deve ser concluída
    • Orçamento: Valor estimado (opcional)
    • Coluna Kanban: Em qual coluna a tarefa inicia
  3. Clique em "Salvar"

6.2. Atribuir Tarefas

Você pode atribuir uma tarefa a um ou mais usuários:

  1. Abra a tarefa
  2. Na seção "Atribuídos", clique em "Atribuir"
  3. Selecione os usuários
  4. Os usuários atribuídos receberão notificações

6.3. Subtarefas

Quebre tarefas grandes em subtarefas menores:

  1. Abra a tarefa
  2. Na seção "Subtarefas", clique em "Adicionar Subtarefa"
  3. Informe o título da subtarefa
  4. Marque como concluída quando finalizar

6.4. Comentários

Comunique-se com a equipe através de comentários nas tarefas:

  1. Abra a tarefa
  2. Role até a seção "Comentários"
  3. Digite seu comentário
  4. Clique em "Enviar"

6.5. Anexos

Anexe arquivos às tarefas:

  1. Abra a tarefa
  2. Na seção "Anexos", clique em "Adicionar Anexo"
  3. Selecione o arquivo
  4. O arquivo será salvo e disponibilizado para download

6.6. Lembretes

Configure lembretes para não esquecer tarefas importantes:

  1. Abra a tarefa
  2. Na seção "Lembretes", clique em "Adicionar Lembrete"
  3. Selecione data e hora
  4. Você receberá notificação no navegador e por email

6.7. Mover Tarefas no Kanban

Arraste e solte tarefas entre colunas no Kanban para atualizar o status visualmente.

6.8. Gráficos e Estatísticas da Tarefa

Ao abrir os detalhes de uma tarefa, você terá acesso a gráficos e estatísticas úteis:

  • Progresso da Checklist: Gráfico de pizza mostrando o percentual de subtarefas concluídas vs. pendentes
  • Histórico de Atividades: Gráfico de linha mostrando a quantidade de atividades (comentários, edições, mudanças de status) ao longo do tempo
    • Você pode filtrar por período: últimos 7, 15, 30 ou 90 dias
    • Útil para identificar tarefas com muita ou pouca atividade
Dica: Todos os gráficos são renderizados em alta definição para melhor visualização e clareza dos dados.

Exemplo Visual do Modal de Tarefa:

Implementar autenticação

Sistema Web

Progresso da Checklist

75%

3 de 4 itens concluídos

Atividades

Principais Abas do Modal de Tarefa:

  • Informações: Dados gerais, gráficos de progresso e atividades
  • Itens: Checklist de subtarefas (criar, marcar como concluída)
  • Arquivos: Upload e gerenciamento de anexos
  • Financeiro: Orçamentos e despesas da tarefa
  • Lembretes: Notificações agendadas
  • Comentários: Histórico de discussões da equipe
  • Log de Auditoria: Histórico completo de alterações

7. Financeiro

O módulo Financeiro permite controlar orçamentos e despesas por tarefa e projeto.

7.1. Adicionar Entrada Financeira

  1. Abra uma tarefa
  2. Na seção "Financeiro", clique em "Adicionar Entrada"
  3. Selecione o tipo:
    • Orçamento: Valor planejado
    • Despesa: Valor gasto
  4. Informe o valor e descrição
  5. Selecione a data
  6. Clique em "Salvar"

7.2. Resumo Financeiro

Visualize resumos financeiros em:

  • Por Tarefa: Na página de detalhes da tarefa
  • Por Projeto: Na página de detalhes do projeto
  • Relatórios: Na seção de Relatórios

8. Relatórios

Os Relatórios fornecem insights detalhados sobre projetos, tarefas e recursos financeiros, com visualizações gráficas avançadas e opções de exportação.

8.1. Visão Geral dos Relatórios

A tela de relatórios oferece uma análise completa do desempenho de projetos e tarefas, incluindo:

  • Resumo Financeiro: Totais de orçamento, despesas e diferença consolidados
  • Tarefas por Status: Gráfico de pizza mostrando a distribuição de tarefas por status do Kanban
  • Tarefas por Prioridade: Gráfico de barras com distribuição por nível de prioridade (Baixa, Média, Alta, Urgente)
  • Produtividade: Gráfico de linha mostrando tarefas criadas, concluídas e atrasadas nos últimos 30 dias
  • Tabela Detalhada: Lista completa de tarefas com informações financeiras e SLA

8.2. Painel de Filtros

Use o painel de filtros para refinar os relatórios conforme suas necessidades:

  • Projeto: Selecione um projeto específico ou visualize todos os projetos
  • Status: Filtre por status das tarefas (Pendente, Em Andamento, Concluída, etc.)
  • Prioridade: Filtre por prioridade (Baixa, Média, Alta, Urgente)
  • Período: Defina data inicial e final para análise

Após ajustar os filtros, clique em "Aplicar Filtros" para atualizar todos os gráficos e a tabela.

8.3. Tabela de Tarefas Detalhadas

A tabela de tarefas oferece uma visão completa de cada tarefa:

  • Título: Nome da tarefa
  • Projeto: Projeto associado
  • Status: Status atual com cor da coluna Kanban
  • Prioridade: Nível de prioridade com badge colorido
  • Prazo: Data de vencimento da tarefa
  • SLA: Status do prazo (Em Dia, Vence Hoje, Atrasada, Concluída)
  • Orçamento: Valor orçado para a tarefa
  • Despesas: Valor total de despesas lançadas
  • Diferença: Diferença entre orçamento e despesas (positivo = economia, negativo = estouro)
  • Criada em: Data de criação da tarefa

8.4. Exportar Relatórios

Você pode exportar os relatórios em dois formatos:

8.4.1. Exportar CSV

Clique em "Exportar CSV" para baixar uma planilha com todas as tarefas filtradas. O arquivo CSV pode ser aberto no Excel, Google Sheets ou qualquer software de planilhas.

8.4.2. Exportar PDF

Clique em "Exportar PDF" para gerar um relatório profissional em PDF contendo:

  • Cabeçalho Personalizado: Logo e nome da sua empresa (configurado em Configurações > Empresa)
  • Linha de Separação: Cor da marca da empresa aplicada no cabeçalho
  • Data de Geração: Data e hora da geração do relatório
  • Gráfico de Produtividade: Visualização em alta resolução do gráfico de produtividade
  • Tabela Completa: Todas as tarefas com suas informações financeiras e status SLA coloridos
  • Rodapé: Informações da empresa e link para o SmartProj
Dica: Configure o logo e a cor da marca da sua empresa em Configurações > Empresa para personalizar os relatórios em PDF.

8.5. Cores e Indicadores

Os relatórios usam cores consistentes para facilitar a visualização:

  • Status SLA:
    • Em Dia - Verde: Tarefa dentro do prazo
    • Vence Hoje - Amarelo: Tarefa vence hoje
    • Atrasada - Vermelho: Tarefa vencida e não concluída
    • Concluída - Azul: Tarefa concluída
  • Diferença Financeira:
    • Verde: Valor positivo (economia no orçamento)
    • Vermelho: Valor negativo (estouro de orçamento)
  • Prioridades:
    • Baixa - Cinza
    • Média - Azul
    • Alta - Amarelo
    • Urgente - Vermelho
  • Status das Tarefas: Herdam a cor personalizada das colunas do Kanban de cada projeto

Exemplo Visual da Tela de Relatórios:

🔍 Filtros

Orçamento Total
R$ 150.000,00
Despesas Total
R$ 98.500,00
Diferença
R$ 51.500,00

📋 Tarefas Detalhadas

Título Projeto Status Prioridade SLA Orçamento Despesas Diferença
Implementar autenticação Sistema Web Em Progresso Alta Em Dia R$ 15.000 R$ 8.500 R$ 6.500
Revisar código backend API Gateway Concluída Alta Concluída R$ 8.000 R$ 9.200 -R$ 1.200
Criar testes unitários Sistema Web A Fazer Média Atrasada R$ 5.000 R$ 0 R$ 5.000

9. Gerenciamento de Usuários

Gerentes podem gerenciar usuários da empresa.

9.1. Criar Usuário

  1. Acesse Usuários no menu principal
  2. Clique em "Novo Usuário"
  3. Preencha:
    • Email: Email único do usuário
    • Senha: Mínimo 6 caracteres
    • Nome: Nome completo
    • Função: Gerente, Membro ou Visualizador
  4. Clique em "Salvar"
Funções:
  • Gerente: Acesso completo, pode gerenciar usuários
  • Membro: Pode editar recursos onde está associado
  • Visualizador: Apenas visualização, sem edição

9.2. Excluir Usuário

Ao excluir um usuário, você pode transferir todas as suas atribuições (projetos, tarefas, equipes) para outro usuário, garantindo que nenhum dado seja perdido.

  1. Abra o usuário que deseja excluir
  2. Clique em "Excluir"
  3. Selecione o usuário que receberá as atribuições
  4. Confirme a exclusão
Atenção: Não é possível excluir o último gerente. Promova outro usuário a gerente primeiro.

10. Assistente IA (Aistem)

O Aistem é um assistente de inteligência artificial integrado ao SmartProj que permite interagir com o sistema usando linguagem natural.

10.1. Como Usar o Aistem

  1. Clique no botão flutuante do assistente (geralmente no canto inferior direito)
  2. Digite sua pergunta ou comando em linguagem natural
  3. O Aistem processará sua solicitação e executará ações ou fornecerá informações

10.2. Exemplos de Comandos

  • "Crie um projeto chamado Marketing Digital" - Cria um novo projeto
  • "Mostre meus projetos ativos" - Lista projetos com status ativo
  • "Adicione uma tarefa 'Desenvolver API' no projeto X" - Cria tarefa em um projeto
  • "Quais tarefas estão atrasadas?" - Lista tarefas com prazo vencido
  • "Mostre o progresso do projeto Y" - Exibe estatísticas do projeto
O Aistem entende comandos em português e pode ajudar com criação, consulta e gerenciamento de recursos do sistema.

11. Configurações

11.1. Perfil do Usuário

Acesse através do menu do avatar (canto inferior esquerdo) > Configurações

  • Editar nome completo
  • Alterar foto de perfil
  • Atualizar telefone e biografia
  • Alterar senha

11.2. Configurações da Empresa

Acesse Configurações > Empresa para personalizar as informações da sua empresa.

  • Nome da empresa: Nome que aparece nos relatórios e documentos
  • Logo da empresa: Upload de imagem para cabeçalho de relatórios em PDF (formatos: PNG, JPG, SVG)
  • Cor da marca: Cor principal da empresa usada em cabeçalhos de relatórios em PDF
  • Endereço: Endereço completo da empresa
  • Telefone: Número de contato
  • Website: URL do site da empresa
Dica: O logo e a cor da marca configurados aqui serão usados automaticamente nos relatórios em PDF exportados, dando uma aparência profissional e personalizada aos documentos.

11.3. Cancelar Conta

Apenas gerentes podem cancelar a conta da empresa. Esta ação é irreversível e exclui todos os dados.

  1. Acesse Configurações > Empresa
  2. Role até a seção "Zona de Perigo"
  3. Clique em "Cancelar Conta"
  4. Leia os avisos cuidadosamente
  5. Digite o nome da empresa para confirmar
  6. Confirme a exclusão
ATENÇÃO: Ao cancelar a conta, TODOS os dados serão excluídos permanentemente: projetos, tarefas, usuários, equipes, dados financeiros. Esta ação NÃO pode ser desfeita!

12. Dúvidas Frequentes

Como adiciono um usuário a um projeto?

Abra o projeto, vá na aba "Membros" e clique em "Adicionar Membro". Selecione o usuário desejado.

Posso ter múltiplos usuários atribuídos a uma tarefa?

Sim! Você pode atribuir quantos usuários quiser a uma tarefa. Basta adicionar cada um individualmente.

Como altero o status de uma tarefa?

Você pode arrastar a tarefa entre colunas no Kanban, ou editar a tarefa e alterar o status manualmente.

O que acontece se eu excluir um usuário?

Você pode escolher transferir todas as atribuições (projetos, tarefas, equipes) para outro usuário antes de excluir. Nenhum dado é perdido.

Como vejo o progresso de um projeto?

Na página de detalhes do projeto, você verá automaticamente o percentual de conclusão baseado nas tarefas concluídas. Também há relatórios específicos na seção "Relatórios".

Posso personalizar as colunas Kanban?

Sim! Você pode criar, editar, reordenar e excluir colunas Kanban em cada projeto. Clique no ícone de configurações das colunas.

Como funcionam os lembretes?

Você pode criar lembretes para tarefas. Quando a data/hora chegar, você receberá uma notificação no navegador e por email (se configurado).

Qual a diferença entre Orçamento e Despesa?

Orçamento é o valor planejado para uma tarefa. Despesa é o valor realmente gasto. O sistema calcula automaticamente a diferença.

Precisa de mais ajuda? Entre em contato com o suporte.

SmartProj v1.0 - Desenvolvido por Onsiite Tech

Documentação da API REST

API completa para integração com o SmartProj

Introdução

A SmartProj API é uma API REST completa que fornece acesso programático a todos os recursos do sistema.

Base URL: https://smartproj.com.br/api/v1
Versão: 1.0.0
Formato: JSON

Estrutura de Resposta

Todas as respostas da API seguem um formato consistente com os campos success, data ou error, e message ou code.

Sucesso
{ "success": true, "data": { // Dados da resposta }, "message": "Operação realizada com sucesso" }
Erro
{ "success": false, "error": "Mensagem de erro descritiva", "code": "ERROR_CODE" }

Autenticação

Todas as requisições (exceto login e registro) requerem autenticação via Bearer Token no header.

POST /auth/login

Realiza login e retorna token de autenticação.

Parâmetros do Body:

Campo Tipo Obrigatório Descrição
email string SIM Email do usuário
password string SIM Senha do usuário

Resposta de Sucesso:

Status: 200 OK

Retorna dados do usuário e token de autenticação.

Request
{ "email": "[email protected]", "password": "senha123" }
Response 200
{ "success": true, "data": { "user": { "id": "uuid", "email": "[email protected]", "role": "leader", "display_name": "Nome do Usuário" }, "token": "session_id_or_jwt" } }
cURL
curl -X POST https://smartproj.com.br/api/v1/auth/login \ -H "Content-Type: application/json" \ -d '{ "email": "[email protected]", "password": "senha123" }'
POST /auth/register

Registra um novo usuário no sistema.

Parâmetros do Body:

Campo Tipo Obrigatório Descrição
email string SIM Email único do usuário
password string SIM Senha (mínimo 6 caracteres)
display_name string Não Nome de exibição do usuário
GET /auth/me

Obtém dados do usuário autenticado.

Headers: Authorization: Bearer {token}

Register Request
{ "email": "[email protected]", "password": "senha123", "display_name": "Novo Usuário" }
Get Current User (cURL)
curl -X GET https://smartproj.com.br/api/v1/auth/me \ -H "Authorization: Bearer {token}"
Inclua o token no header Authorization: Bearer {token} em todas as requisições autenticadas.

Usuários

GET /users

Lista todos os usuários visíveis para o usuário atual.

Permissões: Gerentes veem usuários gerenciados, Super Admin vê todos.

GET /users/:id

Obtém usuário específico. Use /users/me para usuário atual.

POST /users

Cria novo usuário (apenas gerentes e super admin).

Parâmetros do Body:

Campo Tipo Descrição
email string Email do novo usuário
password string Senha inicial
display_name string Nome completo
role string Função: leader, member, viewer
PUT /users/:id

Atualiza dados do usuário.

DELETE /users/:id

Exclui usuário (com transferência de atribuições).

Create User Request
{ "email": "[email protected]", "password": "senha123", "display_name": "Nome Completo", "role": "member" }
List Users (cURL)
curl -X GET https://smartproj.com.br/api/v1/users \ -H "Authorization: Bearer {token}"
Delete User (cURL)
curl -X DELETE https://smartproj.com.br/api/v1/users/{id} \ -H "Authorization: Bearer {token}"

Empresas

GET /companies

Obtém configurações da empresa do usuário atual.

PUT /companies

Atualiza configurações da empresa.

Parâmetros do Body:

Campo Tipo Descrição
company_name string Nome da empresa
address string Endereço completo
phone string Telefone de contato
brand_color string Cor da marca (hex)
company_logo file Logo da empresa (upload)
Get Company (cURL)
curl -X GET https://smartproj.com.br/api/v1/companies \ -H "Authorization: Bearer {token}"
Update Company Request
{ "company_name": "Minha Empresa", "address": "Rua Exemplo, 123 - São Paulo/SP", "phone": "(11) 98765-4321", "brand_color": "#ff0000" }
Response 200
{ "success": true, "message": "Configurações atualizadas", "data": { "company_name": "Minha Empresa", "brand_color": "#ff0000" } }

Centros de Custo

GET /cost-centers

Lista todos os centros de custo.

POST /cost-centers

Cria centro de custo.

Parâmetros do Body:

Campo Tipo Descrição
name string Nome do centro de custo
code string Código identificador
description string Descrição opcional
PUT /cost-centers/:id

Atualiza centro de custo.

DELETE /cost-centers/:id

Exclui centro de custo.

List Cost Centers (cURL)
curl -X GET https://smartproj.com.br/api/v1/cost-centers \ -H "Authorization: Bearer {token}"
Create Cost Center Request
{ "name": "Marketing", "code": "MKT", "description": "Centro de custo de marketing" }
Response 200
{ "success": true, "data": { "id": "uuid-here", "name": "Marketing", "code": "MKT" } }

Equipes

GET /teams

Lista todas as equipes.

POST /teams

Cria equipe.

Parâmetros do Body:

Campo Tipo Descrição
name string Nome da equipe
description string Descrição da equipe
GET /teams/:id/members

Lista membros da equipe.

POST /teams/:id/members

Adiciona membro à equipe.

Parâmetros do Body:

Campo Tipo Descrição
user_id string UUID do usuário
Create Team Request
{ "name": "Equipe de Desenvolvimento", "description": "Equipe responsável pelo desenvolvimento" }
List Teams (cURL)
curl -X GET https://smartproj.com.br/api/v1/teams \ -H "Authorization: Bearer {token}"
Add Member Request
{ "user_id": "550e8400-e29b-41d4-a716-446655440000" }
Response 200
{ "success": true, "data": { "id": "uuid-here", "name": "Equipe de Desenvolvimento" } }

Projetos

GET /projects

Lista projetos do usuário.

Query Parameters:

  • status - Filtrar por status (draft, active, paused, completed, cancelled)
GET /projects/:id

Obtém projeto específico com estatísticas.

POST /projects

Cria novo projeto (cria colunas Kanban padrão automaticamente).

Parâmetros do Body:

Campo Tipo Descrição
name string Nome do projeto
description string Descrição do projeto
status string Status: draft, active, paused, completed, cancelled
start_date date Data de início (YYYY-MM-DD)
end_date date Data de término (YYYY-MM-DD)
color string Cor do projeto (hex)
cost_center_id string UUID do centro de custo (opcional)
GET /projects/:id/kanban-columns

Lista colunas Kanban do projeto.

GET /projects/:id/gantt

Dados para visualização Gantt.

GET /projects/:id/calendar

Dados para visualização Calendário.

Create Project Request
{ "name": "Novo Projeto", "description": "Descrição do projeto", "status": "active", "start_date": "2025-01-01", "end_date": "2025-12-31", "color": "#DC143C", "cost_center_id": "uuid-opcional" }
List Projects (cURL)
curl -X GET https://smartproj.com.br/api/v1/projects?status=active \ -H "Authorization: Bearer {token}"
Get Kanban Columns (cURL)
curl -X GET https://smartproj.com.br/api/v1/projects/{id}/kanban-columns \ -H "Authorization: Bearer {token}"
Response 200
{ "success": true, "data": { "id": "uuid-here", "name": "Novo Projeto", "status": "active" } }

Tarefas

GET /tasks

Lista tarefas com filtros opcionais.

Query Parameters:

  • project_id - Filtrar por projeto
  • status - Filtrar por status
  • priority - Filtrar por prioridade
POST /tasks

Cria nova tarefa.

Parâmetros do Body:

Campo Tipo Descrição
project_id string UUID do projeto
title string Título da tarefa
description string Descrição da tarefa
status string Status: todo, in_progress, completed
priority string urgent, high, medium, low
due_date date Data de vencimento (YYYY-MM-DD)
budget decimal Orçamento previsto
kanban_column_id string UUID da coluna Kanban (opcional)
assignees array Array de UUIDs dos responsáveis
POST /tasks/:id/move

Move tarefa entre colunas Kanban.

Create Task Request
{ "project_id": "550e8400-e29b-41d4-a716-446655440000", "title": "Nova Tarefa", "description": "Descrição da tarefa", "status": "todo", "priority": "high", "due_date": "2025-01-15", "budget": 1000.00, "kanban_column_id": "uuid-opcional", "assignees": ["uuid-user1", "uuid-user2"] }
List Tasks (cURL)
curl -X GET https://smartproj.com.br/api/v1/tasks?project_id={id} \ -H "Authorization: Bearer {token}"
Move Task Request
{ "kanban_column_id": "550e8400-e29b-41d4-a716-446655440000" }
Response 200
{ "success": true, "data": { "id": "uuid-here", "title": "Nova Tarefa", "status": "todo" } }
Add Checklist Item
{ "title": "Item do checklist", "position": 0 }
Update Checklist Item
{ "title": "Item atualizado", "is_completed": true, "position": 1 }

Sub-recursos de Tarefas

GET /tasks/:id/subtasks

Lista subtarefas da tarefa.

GET /tasks/:id/items

Lista itens de checklist da tarefa (ordenados por posição).

POST /tasks/:id/items

Cria novo item de checklist na tarefa.

Parâmetros do Body:

Parâmetro Tipo Obrigatório Descrição
title string Sim Título do item
position integer Não Posição na lista
PUT /tasks/:id/items/:itemId

Atualiza item de checklist (título, status de conclusão ou posição).

DELETE /tasks/:id/items/:itemId

Exclui item de checklist da tarefa.

GET /tasks/:id/comments

Lista comentários da tarefa.

GET /tasks/:id/attachments

Lista anexos da tarefa.

GET /tasks/:id/reminders

Lista lembretes da tarefa.

GET /tasks/:id/assignees

Lista usuários atribuídos à tarefa.

Get Subtasks (cURL)
curl -X GET https://smartproj.com.br/api/v1/tasks/{id}/subtasks \ -H "Authorization: Bearer {token}"
Get Checklist Items (cURL)
curl -X GET https://smartproj.com.br/api/v1/tasks/{id}/items \ -H "Authorization: Bearer {token}"
Get Comments (cURL)
curl -X GET https://smartproj.com.br/api/v1/tasks/{id}/comments \ -H "Authorization: Bearer {token}"
Get Attachments (cURL)
curl -X GET https://smartproj.com.br/api/v1/tasks/{id}/attachments \ -H "Authorization: Bearer {token}"

Financeiro

GET /financial/entries

Lista entradas financeiras com filtros.

Query Parameters:

  • task_id - Filtrar por tarefa
  • project_id - Filtrar por projeto
  • type - expense ou budget
  • start_date - Data inicial (YYYY-MM-DD)
  • end_date - Data final (YYYY-MM-DD)
POST /financial/entries

Cria entrada financeira.

Parâmetros do Body:

Campo Tipo Descrição
task_id string UUID da tarefa
type string Tipo: expense (despesa) ou budget (orçamento)
amount decimal Valor da entrada
description string Descrição da entrada
entry_date date Data da entrada (YYYY-MM-DD)
GET /financial/projects/:projectId?summary=true

Resumo financeiro por projeto (total despesas, orçamento, diferença).

Create Financial Entry Request
{ "task_id": "550e8400-e29b-41d4-a716-446655440000", "type": "expense", "amount": 500.00, "description": "Despesa de marketing", "entry_date": "2025-01-15" }
List Entries (cURL)
curl -X GET https://smartproj.com.br/api/v1/financial/entries?type=expense \ -H "Authorization: Bearer {token}"
Project Summary (cURL)
curl -X GET https://smartproj.com.br/api/v1/financial/projects/{id}?summary=true \ -H "Authorization: Bearer {token}"
Response 200
{ "success": true, "data": { "total_budget": 10000.00, "total_expenses": 7500.50, "difference": 2499.50 } }

Relatórios

GET /reports/projects/progress

Progresso de projetos (total tarefas, concluídas, percentual).

GET /reports/tasks/status

Contagem de tarefas por status.

GET /reports/tasks/priority

Contagem de tarefas por prioridade.

Project Progress (cURL)
curl -X GET https://smartproj.com.br/api/v1/reports/projects/progress \ -H "Authorization: Bearer {token}"
Tasks by Status (cURL)
curl -X GET https://smartproj.com.br/api/v1/reports/tasks/status \ -H "Authorization: Bearer {token}"
Response 200 (Status)
{ "success": true, "data": { "todo": 15, "in_progress": 8, "completed": 42 } }
GET /reports/financial/summary

Resumo financeiro geral.

Query Parameters:

  • start_date - Data inicial (YYYY-MM-DD)
  • end_date - Data final (YYYY-MM-DD)
GET /reports/financial/by-project

Resumo financeiro agrupado por projeto.

GET /reports/users/activity

Atividade de usuários (tarefas criadas, comentários, entradas financeiras).

GET /reports/teams/performance

Performance de equipes (membros, projetos, tarefas, concluídas).

Estatísticas e Gráficos

Endpoints para obter dados estatísticos utilizados nos gráficos do Dashboard, Projetos e Tarefas.

GET /api/dashboard-stats.php

Retorna estatísticas completas do dashboard do usuário autenticado.

Query Parameters (Opcionais):

Parâmetro Tipo Padrão Descrição
statusPeriod string 30 Período em dias para tarefas por status (ou 'all')
productivityPeriod string 30 Período em dias para gráfico de produtividade
completionPeriod string 30 Período em dias para taxa de conclusão (ou 'all')
Os dados de tasksByStatus incluem as cores dinâmicas das colunas do Kanban.
Response 200
{ "success": true, "data": { "tasksByStatus": [ { "status_name": "Em Progresso", "color": "#3b82f6", "count": 12 } ], "productivity": [ { "date": "2024-11-20", "created": 5, "completed": 3, "overdue": 2 } ], "completionRate": { "total": 89, "completed": 54 } } }
cURL
curl -X GET \ "https://smartproj.com.br/api/dashboard-stats.php?statusPeriod=7" \ -H "Authorization: Bearer {token}"
GET /api/project-stats.php

Retorna estatísticas detalhadas de um projeto específico.

Query Parameters:

Parâmetro Tipo Obrigatório Descrição
project_id string (UUID) SIM ID do projeto
Response 200
{ "success": true, "data": { "progress": { "total": 25, "completed": 15, "in_progress": 8, "todo": 2 }, "tasksByStatus": [...], "timeline": [...], "tasksByPriority": [...], "productivity": [...] } }
cURL
curl -X GET \ "https://smartproj.com.br/api/project-stats.php?project_id={uuid}" \ -H "Authorization: Bearer {token}"
GET /api/task-stats.php

Retorna estatísticas detalhadas de uma tarefa específica.

Query Parameters:

Parâmetro Tipo Obrigatório Descrição
task_id string (UUID) SIM ID da tarefa
activity_days integer Não Período em dias (padrão: 7)
Use activity_days com valores como 7, 15, 30, 60 ou 90.
Response 200
{ "success": true, "data": { "checklistProgress": { "total": 4, "completed": 3 }, "activityHistory": [...], "attachmentsByType": [...], "taskTime": {...} } }
cURL
curl -X GET \ "https://smartproj.com.br/api/task-stats.php?task_id={uuid}&activity_days=30" \ -H "Authorization: Bearer {token}"

Exemplo de Uso

cURL
# Obter estatísticas do dashboard com filtro de 7 dias curl -X GET "https://smartproj.com.br/api/dashboard-stats.php?statusPeriod=7&productivityPeriod=7" \ -H "Authorization: Bearer {seu_token}" # Obter estatísticas de um projeto específico curl -X GET "https://smartproj.com.br/api/project-stats.php?project_id={uuid_do_projeto}" \ -H "Authorization: Bearer {seu_token}" # Obter estatísticas de uma tarefa (últimos 30 dias de atividades) curl -X GET "https://smartproj.com.br/api/task-stats.php?task_id={uuid_da_tarefa}&activity_days=30" \ -H "Authorization: Bearer {seu_token}"

Exemplos de Uso

JavaScript (Fetch API)

JavaScript
// Login async function login(email, password) { const response = await fetch('https://smartproj.com.br/api/v1/auth/login', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ email, password }) }); const data = await response.json(); if (data.success) { localStorage.setItem('api_token', data.data.token); return data.data.user; } } // Listar projetos async function getProjects() { const token = localStorage.getItem('api_token'); const response = await fetch('https://smartproj.com.br/api/v1/projects', { headers: { 'Authorization': `Bearer ${token}` } }); return await response.json(); } // Criar tarefa async function createTask(projectId, title) { const token = localStorage.getItem('api_token'); const response = await fetch('https://smartproj.com.br/api/v1/tasks', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': `Bearer ${token}` }, body: JSON.stringify({ project_id: projectId, title: title, priority: 'high' }) }); return await response.json(); }

cURL

cURL
# Login curl -X POST https://smartproj.com.br/api/v1/auth/login \ -H "Content-Type: application/json" \ -d '{"email":"[email protected]","password":"senha123"}' # Listar projetos curl -X GET https://smartproj.com.br/api/v1/projects \ -H "Authorization: Bearer {token}" # Criar tarefa curl -X POST https://smartproj.com.br/api/v1/tasks \ -H "Content-Type: application/json" \ -H "Authorization: Bearer {token}" \ -d '{ "project_id": "uuid", "title": "Nova Tarefa", "priority": "high" }'

Python (requests)

Python
import requests BASE_URL = "https://smartproj.com.br/api/v1" # Login response = requests.post(f"{BASE_URL}/auth/login", json={ "email": "[email protected]", "password": "senha123" }) data = response.json() token = data['data']['token'] # Listar projetos headers = {"Authorization": f"Bearer {token}"} projects = requests.get(f"{BASE_URL}/projects", headers=headers).json() # Criar tarefa task_data = { "project_id": "uuid", "title": "Nova Tarefa", "priority": "high" } new_task = requests.post( f"{BASE_URL}/tasks", json=task_data, headers=headers ).json()

Códigos de Status HTTP

Código Significado Quando Usar
200 OK Requisição bem-sucedida
201 Created Recurso criado com sucesso
204 No Content Exclusão bem-sucedida (sem conteúdo)
400 Bad Request Dados inválidos na requisição
401 Unauthorized Não autenticado
403 Forbidden Sem permissão para a ação
404 Not Found Recurso não encontrado
422 Unprocessable Entity Validação falhou (ex: email duplicado)
500 Internal Server Error Erro interno do servidor

Exemplos de Erros

400 - Bad Request

JSON
{ "success": false, "error": "Email e senha são obrigatórios" }

401 - Unauthorized

JSON
{ "success": false, "error": "Não autenticado" }

422 - Unprocessable Entity

JSON
{ "success": false, "error": "Este email já está cadastrado" }

SmartProj API v1.0 - Desenvolvido por Onsiite Tech

Aistem - Assistente IA

Tarefa

Projeto

Progresso da Checklist

Atividades

Mantenha Ctrl (ou Cmd) pressionado para selecionar múltiplos