TeamUP!

Plataforma fullstack de gerenciamento de projetos e atividades, desenvolvida para explorar o ecossistema Laravel com autenticação, controle de acesso, relacionamentos Eloquent e tarefas agendadas.

Principais pontos
  • API REST estruturada com Laravel 12
  • Autenticação baseada em tokens com Laravel Sanctum
  • Controle de acesso por função com middleware
  • Relacionamentos Eloquent com eager loading
  • Agendamento automático para expiração de atividades
  • SPA em React + TypeScript integrada à API
  • Gerenciamento de projetos, membros e atividades
Tecnologias utilizadas
Screenshot de capa de TeamUP!

Visão geral

O TeamUP é uma plataforma fullstack de gerenciamento de projetos e atividades criada para aprofundar o estudo do ecossistema Laravel.

O projeto combina uma API REST desenvolvida com Laravel 12 e um frontend em React + TypeScript, permitindo trabalhar desde autenticação e autorização até modelagem relacional, filtros e tarefas agendadas.

O backend utiliza convenções e recursos nativos do Laravel, enquanto o frontend funciona como uma SPA consumindo a API através do Axios.

Como funciona

O usuário realiza autenticação através da API Laravel e recebe um token do Sanctum.

As requisições protegidas enviam esse token no header Authorization. O backend verifica a autenticação e, quando necessário, aplica as regras de acesso por função.

Projetos podem possuir membros e atividades atribuídas aos usuários. Cada projeto também possui um token próprio utilizado para permitir que outros usuários entrem nele.

As atividades possuem diferentes estados e podem ser filtradas por status, responsável e situação do projeto.

Arquitetura

A aplicação é dividida entre um backend Laravel e um frontend React.

No backend, a API utiliza controllers, middleware, models Eloquent, Form Requests e comandos agendados. O controle de acesso é aplicado através de middleware de função.

No frontend, a aplicação é organizada em páginas, componentes, serviços, tipos, rotas protegidas e um store persistido de autenticação com Zustand.

O projeto também utiliza uma estrutura relacional envolvendo usuários, projetos, membros e atividades.

Funcionalidades

Entre as principais funcionalidades estão:

  • Cadastro e login de usuários
  • Controle de acesso por função
  • Criação e gerenciamento de projetos
  • Entrada em projetos através de token
  • Gerenciamento de membros
  • Criação e atribuição de atividades
  • Filtros de atividades
  • Alteração de status
  • Conclusão e desatribuição de atividades
  • Expiração automática de atividades atrasadas
  • Dashboard com estatísticas do usuário

Decisões técnicas

O projeto foi estruturado principalmente para explorar recursos importantes do Laravel.

Sanctum foi utilizado para autenticação baseada em tokens, enquanto o Eloquent concentra o relacionamento entre usuários, projetos e atividades.

O eager loading é utilizado nos endpoints relevantes para carregar relacionamentos necessários de forma mais eficiente.

A separação entre controllers, services do frontend, models e middleware também ajudou a manter as responsabilidades organizadas.

Screenshots

Interface da plataforma de gerenciamento de projetos e atividades.

TeamUP! • 1 de 4
TeamUP! - Captura de tela 1
TeamUP! • 2 de 4
TeamUP! - Captura de tela 2
TeamUP! • 3 de 4
TeamUP! - Captura de tela 3
TeamUP! • 4 de 4
TeamUP! - Captura de tela 4

Aprendizados

O principal objetivo do projeto foi aprofundar o conhecimento em Laravel, especialmente Sanctum, Eloquent, middleware, Form Requests, controllers e Scheduler.

Também permitiu trabalhar com modelagem relacional, tabelas pivot, eager loading, filtros e integração entre uma API Laravel e uma aplicação React.