Clean Architecture | SOLID | DDD | RBAC
Sobre • Desenvolvimento • Funcionalidades • Arquitetura • Instalação • Documentação
O Agiliza constitui uma solução full-stack destinada ao gerenciamento de projetos e tarefas, concebida com ênfase na qualidade arquitetural e na escalabilidade do sistema. A plataforma possibilita que equipes organizem seus fluxos de trabalho por meio de quadros Kanban, implementando um controle rigoroso de permissões e assegurando a rastreabilidade das ações executadas.
O desenvolvimento deste projeto obedeceu a um ciclo de vida completo de engenharia de software, abrangendo desde o levantamento inicial de requisitos e regras de negócio até a implementação do Produto Mínimo Viável (MVP) e a elaboração da documentação arquitetural.
A estruturação do projeto seguiu um cronograma progressivo de cinco semanas, conforme detalhado a seguir:
- Levantamento e registro das Regras de Negócio (RN).
- Mapeamento dos usuários potenciais e definição dos papéis da equipe (Administrador, Gestor, Colaborador).
- Configuração do GitHub Projects para o gerenciamento ágil das atividades.
- Detalhamento dos Requisitos Funcionais, organizados em Épicos e Histórias de Usuário.
- Definição dos Requisitos Não Funcionais, com foco em segurança, desempenho e internacionalização (i18n).
- Elaboração dos diagramas arquiteturais utilizando o Modelo C4.
- Modelagem do Banco de Dados Relacional.
- Definição da Stack Tecnológica a ser utilizada.
- Implementação do Backend seguindo os princípios da Clean Architecture.
- Implementação do Frontend como uma Single Page Application (SPA) em React.
- Execução de testes e integração dos componentes.
O sistema contempla mais de cinco funcionalidades completas, abrangendo todas as camadas da aplicação, conforme descrito abaixo:
- Implementação de login e registro seguros utilizando JWT e Bcrypt.
- Administrador: Permissão para o gerenciamento integral de usuários e do sistema.
- Gestor: Permissão para a criação e gestão de projetos e equipes.
- Colaborador: Permissão para a gestão de tarefas próprias e interação nas mesmas.
- Operações CRUD (Create, Read, Update, Delete) completas para projetos.
- Definição de prazos e monitoramento de status (Atrasado/Urgente).
- Associação de gestores responsáveis por cada projeto.
- Criação e edição de tarefas com atribuição de prioridades.
- Quadro Kanban Interativo: Funcionalidade de drag-and-drop para alteração de status (A Fazer, Em Progresso, Concluído, Bloqueado).
- Registro histórico automático das alterações de status.
- Sistema de Comentários em tempo real nas tarefas.
- Upload de Anexos (arquivos e imagens) vinculado às tarefas específicas.
- Filtragem dinâmica por Status, Prioridade e Projeto.
- Busca textual por título e descrição da tarefa.
- Internacionalização (i18n): Suporte integral aos idiomas Português (BR) e Inglês (EN).
O projeto adota estritamente a Clean Architecture, segmentando o backend em camadas desacopladas:
- Enterprise Business Rules (Domain): Entidades puras (Task, User, Project).
- Application Business Rules (Use Cases/Services): Lógica de aplicação e regras de negócio.
- Interface Adapters (Controllers, Repositories): Mecanismos de conversão de dados.
- Frameworks & Drivers (Infrastructure): Banco de dados, Servidor Web e ferramentas externas.
- Modelo C4: Contexto, Contêiner e Componentes.
- Modelo ER: Diagrama de Entidade-Relacionamento do banco de dados PostgreSQL.
| Camada | Tecnologia | Detalhes |
|---|---|---|
| Backend | Node.js + TypeScript | Express, tsyringe (Injeção de Dependência), Multer |
| Banco de Dados | PostgreSQL | ORM Sequelize, Migrations, Seeds |
| Frontend | React 18 | Vite, TypeScript, TailwindCSS, Context API |
| DevOps | Docker | Docker Compose para orquestração de contêineres |
| Testes | Jest | Testes unitários e de integração |
- Docker e Docker Compose instalados no ambiente de execução.
- Clonar o repositório:
git clone https://github.com/oguarni/status-point.git
cd status-point- Inicializar o ambiente com Docker:
docker compose up --build -d- Popular o banco de dados (Seeds): Criação de usuários padrão e inserção de dados de teste.
docker compose exec backend npm run db:seed:all- Acessar a aplicação:
- Frontend: http://localhost:3000
- Backend API: http://localhost:3001
| Papel | Senha | |
|---|---|---|
| Administrador | admin@taskmanager.com | admin123 |
| Gestor | gestor@taskmanager.com | gestor123 |
| Colaborador | colaborador@taskmanager.com | colaborador123 |
- Documentação de Desenvolvimento: Consultar CLAUDE.md
- Diagramas de Arquitetura: Disponíveis no diretório
docs/diagrams/
Este projeto foi desenvolvido como requisito final da disciplina de Arquitetura de Software (AS27S), do curso de Engenharia de Software da Universidade Tecnológica Federal do Paraná (UTFPR), campus Dois Vizinhos.
- Aurélio Antonio Brites de Miranda
- Gabriel Felipe Guarnieri
Este projeto está licenciado sob a licença Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) - veja o arquivo LICENSE para detalhes.
