Conclusão do Desafio - Lucas Vinícios #472
Open
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.
Envio de solução
Gostariamos de entender como você pensa e as decisões que você tomou durante o desenvolvimento, detalhe um pouco mais sobre:
Bom, eu não tenho experiência na área ainda, FOI MÚITO DÍFICIL PRA INICIAR O PROJETO,até que eu tinha um norte(começar pelo mais difícl, que seria o backend e depois o frontend,que seria um pouco mais fácil), mas eu não sabia mesmo assim por onde começar, declarando as classes, montar as entidades que seriam ser utilizadas no projeto, qual banco de dados usar,foi muito louco,porém divertido.
Como sou uma pessoa inexperiente na área, foi bem difícil
Framework, linguagem e ferramentas
Descreva ferramentas e bibliotecas (libraries, framework, tools etc) você usou.
No FrontEnd:
Angular 17 Framework principal utilizado com a arquitetura de Standalone Components (sem módulos excessivos).
Angular CDK (Component Dev Kit): Biblioteca essencial utilizada para implementar a funcionalidade complexa de Drag and Drop (arrastar e soltar) de forma fluida e acessível.
TypeScript: Superconjunto do JavaScript que adiciona tipagem estática, garantindo um código mais seguro e fácil de manter.
HTML5 & CSS3: Utilização de Flexbox e CSS Grid para layout responsivo, além de variáveis CSS para manter a consistência visual.
No BackEnd:
NestJS: Framework Node.js progressivo e modular, utilizado para construir a API RESTful.
TypeORM: ORM (Object-Relational Mapper) utilizado para manipular o banco de dados usando classes e objetos TypeScript, facilitando o CRUD e as relações entre tabelas.
Node.js: O ambiente de execução JavaScript no lado do servidor.
Banco de Dados
PostgreSQL: Banco de dados relacional robusto utilizado para persistir as colunas e os cards do sistema, hospedado na nuvem em um site chamado Supabase.
Técnologias X e Y
Justifique porque você optou pela tecnologia X e não a Y?
Em vez de utilizar o JavaScript para o desenvolvimento do projeto, utilizei TypeScript por facilidade de uso de decorators, linguagem nativa de ambos os frameworks(eu tentei realizar este projeto em JavaScript puro, porém estava com muitos problemas de configurações),
Utilizei TypeORM para a facilitação de manipulação de dados das colunas e cards, em vez de escrever SQL puro no projeto.
Princípios de software
Quais princípios da engenharia de software que você usou?
Separação de Responsabilidades (SoC): Backend (API) e Frontend (Client) totalmente desacoplados.
Arquitetura em Camadas: Uso de Controllers, Services e Repositories no NestJS.
Injeção de Dependência (DI): Gerenciamento de instâncias provido pelos frameworks Angular e NestJS.
Repository Pattern: Abstração da camada de dados com TypeORM.
SOLID: Aplicação de princípios como Responsabilidade Única (SRP) e Inversão de Dependência (DIP).
Desafios e problemas
Conte um pouco sobre os desafios e problemas que você enfrentou e como você resolveu.
Bom tive o problemas sobre a configuração do JavaScript no projeto, iria realizar este projeto utilizando o JavaScript, porém gastou muito do meu tempo para realizar o projeto, portanto, eu tive que trocar para o TypeScript.
Tive problemas também sobre o TypeORM, não sabia muito sobre este recurso, tive que pesquisar na internet de como funciona e como utilizar no projeto.
A maioria foi no backend os problemas, já no frontend foi bem fácil e molezinha de construir
Melhorias e próximas implementações
O que você entende que pode ser melhorado e como isso pode ser feito?
Analisando o projeto, eu não gostei muito do layout, eu estava sem criatividade para desenvolver um layout descente, mas é funcinal pelo menos :/, eu queria trazer mais funcinalidades neste projeto, com páginas de cadastros e login, com os boards criados pelo usuário.
Vídeo de apresentação
Grave um vídeo do seu projeto rodando e envie o link:
https://jam.dev/c/e4f8bef0-2bf6-4677-ad2e-53381026a3d4
Sobre Mim
Queremos te conhecer um pouco melhor, conte um pouco sobre você.
Vamos lá, meu nome é Lucas Vinícios, 19 anos, atualmente, estudo Análise e Desenvolvimento de Sistemas na UNIP, moro próximo de Rio Preto, num sítio chamado Sítio São João, perto do SetValley, não nasci aqui, sou de São José do Rio Claro/MG (irônico né? Foi de Rio Claro pra Rio Preto), mudei pro Estado de São Paulo em 2010, morei em 6 cidades diferentes(está é a 6ª), pretendo ficar aqui em Rio Preto mesmo, tive e tenho muitas oportunidades aqui, trabalhei no setor de vendas, numa empresa chamada EnergySky(já faliu), realizando consulta, cobranças num ramo de painéis solares da empresa(eles realizavam orçamento de painéis solares e venda do plano Sky) e, trabalhei numa empresa de engenharia chamada Astec Engenharia, fazia parte de um escritório da empresa que presta consultoria para o DER(Departamento de Estradas e Rodovias), minhas atividades diárias envolve validação das sinalizações de transito e realizo algumas análises no BI.
Ai vocês me perguntam: "Como eu me envolvi em programação?", meu irmão era Universitário na UNIP realizando o mesmo curso, ele chegou um dia pra mim e falou: "Eu comprei um curso de Python, você vai estudar" e fiquei tipo: "Bacana😀", eu não queria fazer, mas ele me forçou a fazer, SÓ QUE, no decorrer do curso, eu fui aprendendo e começando a gostar de Python, foi ali que surgiu a ideia de seguir com a carreira, pesquisei outros cursos no Youtube, conheci o canal CursoEmVídeo, Fiz os cursos de HTML, CSS, SQL, mas foi ali que decidi construir minha carreira na área de desenvolvimento.
Outros detalhes
Se quiser enviar alguma informação adicional sobre o desafio.
Foi um desafio bem difícil para mim, porém com a dedicação que eu coloquei nesse projeto, tempo e foco, café, consegui finalizar o projeto, fico muito feliz por ter participado desse desafio, foi muito bom para meu desenvolvimento na carreira.
Ah, deixe seu e-mail ou telefone para entrarmos em contato com você :)
lvinicios365@gmail.com
017997630577
Sinto muito pela Informalidade desse texto, porém, eu preciso ser eu mesmo para ser avaliado neste texto :D
E por favor, caso for entrar em contato cmg, seja por email, fui viajar agora no final do ano, e meu celular foi de F