Open
Conversation
…s, and IDE configurations
Configured initial backend structure using NestJS and Prisma. Added .env.example with JWT and database settings. Created multi-stage Dockerfile. Set up ESLint and Prettier for code standardization. Defined Prisma schema with User, Project, Column, and Task models. Implemented authentication module with JWT, registration, and login. Organized modules for users, projects, columns, and tasks. Added initial tests for authentication and columns services.
…ponents Set up initial Angular project with configuration files, package.json, and Dockerfile. Implemented core components, routing, and services for authentication and project management. Configured global styling with SCSS and built a responsive layout structure.
Added a Makefile to simplify development and environment management. Included commands for starting Docker, backend, and frontend services. Provided shortcuts for running unit and integration tests. Centralized common workflows to streamline project execution.
Added docker-compose.yml to provision a PostgreSQL database service. Configured environment variables for database credentials. Defined a volume to ensure data persistence. Set up network configuration for integration with other project services.
Updated README to present KanbanField as a Kanban-based project management system. Added project overview, deployment link, and organized index. Detailed core functionalities, frameworks, and tools used. Improved structure and clarity for better documentation and user understanding.
Removed PULL_REQUEST_TEMPLATE.md. Deleted unused image files from the assets directory. Cleaned up unnecessary files to keep the repository organized and maintainable.
Signed-off-by: Gabrieldevreis <121496060+Gabrieldevreis@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
📋 KanbanField
Sistema de gerenciamento de projetos baseado em quadros Kanban com NestJS e Angular.
🌐 Deploy
https://kanbanfield.up.railway.app/login
📑 Índice
🎯 Sobre o Projeto
KanbanField é uma aplicação full-stack para gerenciamento de projetos com metodologia Kanban. Permite criar projetos, organizar tarefas em colunas personalizáveis e acompanhar o progresso visualmente.
Funcionalidades principais:
🛠️ Framework, Linguagem e Ferramentas
Backend
Frontend
DevOps
🤔 Escolhas Tecnológicas
NestJS
Escolhi NestJS por:
Angular
Escolhi Angular por:
Prisma
Escolhi Prisma por:
PostgreSQL
Escolhi PostgreSQL por:
📐 Princípios de Software
SOLID
Outros Princípios
🚧 Desafios e Problemas
1. Drag-and-Drop entre Colunas
Desafio: Implementar movimentação fluida de tarefas entre colunas com atualização de ordem.
Solução: Utilizei Angular CDK com eventos
cdkDropListDropped. Criei lógica para detectar mudança de coluna, recalcular ordem e atualizar backend mantendo UI sincronizada.2. Autenticação JWT
Desafio: Sistema seguro com proteção de rotas no backend e frontend.
Solução: Implementei Passport JWT Strategy + Guards no NestJS. No frontend, criei AuthGuard com interceptor HTTP que adiciona token automaticamente e redireciona ao expirar.
3. Relacionamentos Cascata
Desafio: Deletar projeto e remover todas colunas/tarefas automaticamente.
Solução: Configurei
onDelete: Cascadeno schema Prisma para propagar deleções automaticamente.4. Validação e Tratamento de Erros
Desafio: Feedback claro de erros para o usuário.
Solução: Usei
class-validatorno backend, exception filters customizados e toasts no frontend com códigos HTTP apropriados.5. Testes Unitários e de Integração
Desafio: Garantir qualidade de código com cobertura completa de testes no backend, isolando dependências e testando fluxos E2E.
Solução:
jest.fn()e mocks customizados para isolar dependências externas (PrismaService, JwtService, bcrypt).🚀 Melhorias e Próximas Implementações
Funcionalidades
🎥 Vídeo de Apresentação
🎬 https://jam.dev/c/2c647d5e-5d73-45ec-a25f-9049e7d1db4a
🚀 Como Rodar
Pré-requisitos
Instalação Rápida
A aplicação estará rodando em:
Variáveis de Ambiente (.env)
Comandos Úteis
Instalação Manual
👤 Sobre Mim
Me chamo Gabriel Reis, tenho 25 anos e moro em Ibirá (SP). Atualmente curso Análise e Desenvolvimento de Sistemas (ADS) na UNINTER, polo de São José do Rio Preto.
Iniciei minha jornada na programação em 2022, começando meus estudos com HTML, CSS e JavaScript. Desde o início, busquei evoluir não apenas tecnicamente, mas também através do networking, participando de comunidades de desenvolvedores que contribuíram significativamente para meu crescimento profissional.
Com o tempo, conheci os frameworks como React e Angular. Tive a oportunidade de trabalhar em um SaaS cuja stack principal era Angular, experiência que foi fundamental para meu desenvolvimento nesse framework. Durante esse período, também conheci o NestJS, especialmente ao participar do desafio da FieldControl, o que despertou meu interesse pelo desenvolvimento back-end.
Atualmente, sigo aprimorando meus conhecimentos em Angular, estudando também conceitos de UI e UX para desenvolver interfaces mais intuitivas e eficientes. Além disso, estou me aprofundando em NestJS, aprendendo Ionic para desenvolvimento mobile e explorando WebSockets para implementação de funcionalidades em tempo real.
Estou em constante evolução, sempre buscando novos desafios e oportunidades para crescer como desenvolvedor.
📞 Contato