Este é um projeto onde usuários podem ter um gerenciador de projetos, que permite aos usuários criar, editar e gerenciar projetos e tarefas.
Documentação do front-end: readme
- Angular v18
- Typescript
- RxJS
- PrimeNG
- PrimeFlex
- PrimeIcons
Documentação do back-end: readme
- Fastify
- Prisma ORM
- Typescript
- Fastify Type Provider Zod
- JWT (Json Web Token)
- Nodemailer
- Zod
- Bcript
- Dayjs
- Dotenv
- Tsx
Tem uma colletion com todos os endpoints da aplicação disponíveis. Postman Collection
Tabelas: Users, Projects, UsersOnProjects, Tasks, UserInvitation, TaskStatus, TaskPriority, Role.
- O Users salva os usuários cadastrados no sistema que finalizaram o cadastro.
- O UsersOnProjects associa um usuário a um projeto e tem informações únicas para esse relacionamento.
- O Projects salva os projetos e tem associado zero ou mais tarefas.
- A Tasks salva as tarefas e está associado a somente um projeto
- A UserInvitation salva os usuários que foram convidados por outros usuários e que precisam finalizar o cadastro
- A TaskStatus são associadas as tarefas para definir o status.
- A TaskPriority são associadas as tarefas para definir a prioridade.
- A Role são associadas aos usuários e usersOnProjects (definir o acesso a um projeto).
diagrama da modelagem: diagrama
- O sistema deve permitir que os usuários se cadastrem, façam login e logout.
- O usuário deve poder redefinir a senha através de e-mail.
- O usuário deve ser capaz de criar, editar e excluir projetos.
- Cada projeto deve ter um nome, descrição e data de início e término.
- O usuário deve ser capaz de criar, editar, excluir e visualizar tarefas dentro de cada projeto.
- As tarefas devem ter título, descrição, prazo, status (por fazer, em andamento, concluída) e prioridade (baixa, média, alta).
- As tarefas devem poder ser atribuídas a diferentes usuários dentro do projeto.
- Notificações (e-mail ou dentro do sistema) devem ser enviadas quando uma tarefa for atribuída ou modificada.
- Os usuários devem poder comentar em cada tarefa para discutir detalhes ou atualizações.
- O sistema deve mostrar o progresso do projeto com base nas tarefas concluídas (ex: gráfico de progresso ou barra de status).
- O usuário deve poder filtrar as tarefas por status, prioridade ou prazo.
- Deve existir uma função de pesquisa para encontrar tarefas ou projetos rapidamente.
- O sistema deve fornecer uma visão geral dos projetos e tarefas no dashboard, com visualização de prazos críticos e tarefas atrasadas.
- Deve ser possível gerar relatórios de progresso de um projeto (quantas tarefas foram concluídas, quantas estão atrasadas, etc.).