Commit graph

33 commits

Author SHA1 Message Date
Gabriel Santana de Menezes
2d14ae480d feat: criar landing page pública com endpoint de estatísticas
Backend:
- Adicionar métodos de contagem/agregação aos repositórios (UserRepository, OrganizationRepository, TaskRepository)
- Implementar nova use case PublicStatsUseCase que retorna estatísticas públicas (usuários, organizações, tarefas completas, horas registradas)
- Criar novo controller público GET /public/stats sem autenticação
- Configurar CDI factory PublicStatsUseCaseConfig

Frontend:
- Criar nova landing page pública (LandingPage.tsx) com seções:
  * Hero com CTAs (Começar grátis / Ver demo)
  * 4 cards de funcionalidades principais (dashboard, produtividade, rastreamento, Kanban)
  * Seção "Como funciona" com 3 passos
  * Showcase visual do dashboard com leaderboard fake
  * Estatísticas reais da plataforma (consumidas do backend)
  * CTA final e footer
- Criar serviço publicStatsService para consumir o endpoint público
- Adicionar rota /landing na router
- Design alinhado com o sistema de cores e tipografia existente (Plus Jakarta Sans, Tailwind v4)

Stats reais são animadas ao fazer scroll (Framer Motion counter).
2026-05-16 17:14:42 -04:00
Gabriel Santana de Menezes
5c53379568 fix: centralizar OnboardingModal em /organizations e evitar reabertura (#15)
O modal de onboarding era disparado tanto na LoginPage quanto no AppShell
com navegação conflitante, fazendo ele fechar e reabrir ao escolher uma
opção. Agora o login sem org redireciona para /organizations, o AppShell
redireciona usuários sem org para lá, e o modal é exibido uma única vez
pela OrganizationsPage.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-16 10:58:21 -04:00
Gabriel Santana de Menezes
2fdb375462 feat: adicionar categorias para tasks (#23)
Adiciona conceito de Categoria por organização (nome, cor e ícone lucide),
com CRUD restrito a OWNER/ADMIN. Tasks ganham categoria opcional, filtros
multiselect de status e categoria nas listagens, badges nos cards, e
gráficos de pizza de tempo por categoria nos dashboards pessoal, da
organização e no modal de detalhes do membro.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-15 16:18:41 -04:00
Gabriel Santana de Menezes
db463551e6 feat: filtros de busca nas listagens de tasks (#26)
Backend: adiciona ListMyTasksInput, ListMyTasksRequest (@BeanParam) com
parâmetros text, projectId e status; novo método findTasksByUserFiltered
no repositório com query dinâmica via Panache; mapper atualizado;
CLAUDE.md documenta regra de DTO Request para 3+ parâmetros.

Frontend: componente reutilizável TaskFilterBar (texto, projeto, status)
integrado em TaskListPage e TaskBoardPage; getMyTasks() aceita filtros
repassados como query params ao backend.

closes #26

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-14 22:12:05 -04:00
Gabriel Santana de Menezes
0ab12e0583 fix: build fix 2026-05-12 20:06:44 -04:00
Gabriel Santana de Menezes
96e35dc21d feat: restructure navbar and fix dead-end navigation across pages
Restructure the AppShell navbar for better UX grouping: rename
"Organizações" to "Equipe", consolidate Org Dashboard and admin
items inside the Equipe dropdown, add a persistent "+ Nova Tarefa"
CTA button, and replace the isolated logout button with an avatar
dropdown showing user name and email. Add "Buscar Organização"
to the Equipe dropdown for all roles. Mobile nav simplified to
Dashboard · Tarefas · + · Equipe.

Per-page fixes: remove non-functional chevron and dead links from
ProjectsPage; replace the PDF export button in DashboardPage with
a working "Copiar Relatório" clipboard button; remove dead info
links from OrganizationsPage; remove the broken support link from
LoginPage; add Lista/Quadro view toggle to TaskListPage header.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-12 20:06:44 -04:00
Gabriel Santana de Menezes
6e77f7b194 feat: add hover tooltips to all charts and increase project legend font
- PieChart (org dashboard): tooltip on hover shows project name, time and %
- BarChart (member detail): tooltip on hover shows period label and value
- MiniPieChart (member detail): tooltip on hover shows project name, time and %
- Increase project stats legend font from text-[10px] to text-xs (12px)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-12 20:06:44 -04:00
Gabriel Santana de Menezes
92847f4095 feat: reduce org dashboard top tasks from 5 to 3
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-12 20:06:44 -04:00
Gabriel Santana de Menezes
20c69bcb7e fix: include projectless tasks in org dashboard and member detail stats
Tasks with no associated project were being excluded from org dashboard
calculations because the query filtered by project.organization.id.
Now fetches tasks by active member emails, so all tasks are counted.
Tasks and history items with no project are grouped under "Geral" in
project-specific charts and calculations.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-12 20:06:44 -04:00
Gabriel Santana de Menezes
824d33f283 chore: removing unecessary lines
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-12 20:06:44 -04:00
Gabriel Santana de Menezes
90bd08ba39 feat: add member detail modal on org dashboard
Closes #5

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-12 20:06:26 -04:00
Gabriel Santana de Menezes
397e84ae17 fix: return project as object with id and name in task response
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-12 20:06:26 -04:00
Gabriel Santana de Menezes
faf4bed682 feat: dashboard da organização para admin/owner
Adiciona tela de analytics organizacional acessível apenas por OWNER e ADMIN,
com gráfico de pizza por projeto, top 5 tarefas e ranking de membros por tempo trabalhado.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-12 20:05:20 -04:00
Gabriel Santana de Menezes
6800688284 listagem apenas das minhas tasks 2026-05-12 20:04:45 -04:00
Gabriel Santana de Menezes
b7803fef05 melhorando o codigo de restricao de acesso 2026-05-12 20:04:45 -04:00
Gabriel Santana de Menezes
e0a3697e5b ajustes que nao lembro mais 2026-05-12 20:04:45 -04:00
Gabriel Santana de Menezes
4582663fc8 editar task 2026-05-12 20:04:45 -04:00
Gabriel Santana de Menezes
880d72d5d6 imports nao usados 2026-05-12 20:04:45 -04:00
Gabriel Santana de Menezes
1688cf092e dashboard 2026-05-12 20:04:45 -04:00
Gabriel Santana de Menezes
14b9b6985a Novo modal de criacao de organizzacao 2026-05-12 20:04:45 -04:00
Gabriel Santana de Menezes
da18ab77ad novo projetos 2026-05-12 20:04:45 -04:00
Gabriel Santana de Menezes
734e5d19a7 organizacoes 2026-05-12 20:04:45 -04:00
Gabriel Santana de Menezes
e78c15898f Criando tarefa com projeto 2026-05-12 20:04:45 -04:00
Gabriel Santana de Menezes
23b2fa4e1a criando projetos 2026-05-12 20:04:45 -04:00
Gabriel Santana de Menezes
211cc1ba6b mostrando minhas solicitgacoes 2026-05-12 20:04:45 -04:00
Gabriel Santana de Menezes
b8237e43ec voltar ou fechar modal de buscar empresa 2026-05-12 20:04:45 -04:00
Gabriel Santana de Menezes
495984e1a4 banco persistente no h2 e nao obrigatorio a entrar ou criar org 2026-05-12 20:04:45 -04:00
Gabriel Santana de Menezes
56f0d20b06 fix: error when no content response 2026-05-12 20:04:45 -04:00
Gabriel Santana de Menezes
e99e1cd586 Modal do primeiro acesso 2026-05-12 20:04:45 -04:00
Gabriel Santana de Menezes
829ef310a5 login no frontend 2026-05-12 20:04:45 -04:00
Gabriel Santana de Menezes
985311211a removendo contador cards 2026-04-30 14:50:30 -04:00
Gabriel Santana de Menezes
251362852d listagem e board 2026-04-30 14:31:39 -04:00
Gabriel Santana de Menezes
3312f2276c criar task 2026-04-30 11:09:18 -04:00