O objetivo desse repositório é criar uma jornada para mentoria e treinamento de um desenvolvedor Back end Júnior.
A idéia inicial é que um desenvolvedor back-end júnior encontre um mentor (não obrigatório) e aplique os passos aqui definidos para desenvolver um projeto inicial que atenda aos requisitos propostos, como uma forma de treinamento, estudo e preparação para entrevistas técnicas.
Quando disponível, o papel do mentor é o de auxiliar nas etapas de desenvolvimento inicial (1) code review e correções (2) e de implementação de alguns padrões de design (3).
1 - Desenvolver o desafio individualmente, buscando consultar na internet ou ao mentor em caso de dúvidas
2 - Revisão do código desenvolvido para encontrar erros ou pontos de melhoria que devem ser implementados
3 - Implementar alguns padrões de design mais avançados utilizados no mercado
- Cadastro de Clientes: Desenvolva uma aplicação que permita cadastrar e gerenciar clientes. Os usuários podem fazer login, adicionar novos clientes fornecendo informações básicas, como nome, endereço, telefone, e-mail, etc. Ao inserir o CEP do cliente, a aplicação deve fazer uma chamada à API de busca de endereço por CEP para preencher automaticamente o restante das informações de endereço, como rua, bairro, cidade e estado.
- Autenticação de usuários na aplicação (acesso somente após login): Implementar um sistema de autenticação seguro que exija que os usuários façam login para acessar a aplicação. Garantir que apenas usuários autenticados tenham permissão para utilizar a aplicação.
- CRUD com diversos tipos de relacionamentos (1:1, 1:N, N:N): Desenvolver operações CRUD (Create, Read, Update, Delete) que abranjam diferentes tipos de relacionamentos entre entidades, como relacionamentos um-para-um, um-para-muitos e muitos-para-muitos.
- Responsividade (compatibilidade com desktop e mobile): Criar uma interface responsiva que funcione de forma adequada tanto em dispositivos desktop quanto em dispositivos móveis, garantindo uma experiência de uso consistente em diferentes telas.
- Validação de dados no front-end e no back-end: Implementar mecanismos de validação para os dados fornecidos pelos usuários, tanto no lado do cliente (front-end) quanto no lado do servidor (back-end), a fim de garantir a integridade e a consistência dos dados.
- Categorização / agrupamento de itens: Criar recursos que permitam aos usuários categorizar ou agrupar itens dentro da aplicação, facilitando a organização e a navegação dos dados.
- Sugestão de pesquisa: Adicionar um recurso de sugestão de pesquisa que auxilie os usuários a encontrar informações relevantes de maneira mais eficiente. Ao digitar termos de pesquisa, a aplicação deve fornecer sugestões de palavras ou frases relacionadas para melhorar a precisão dos resultados.
- Integração via API com algum serviço externo: Realizar integração com um serviço externo por meio de APIs, permitindo que a aplicação interaja com outras plataformas ou serviços para ampliar suas funcionalidades e recursos.
- Os projetos são agnósticos de linguagem, qualquer linguagem / framework com foco em back-end pode ser utilizado a depender das skills do mentor / mentorado.
- Não hesite em fazer perguntas em qualquer etapa da jornada. O papel do seu mentor é te ajudar.
- Se você não conseguir atender a algum requisito, não se sinta culpado. Peça ajuda ou entregue o que conseguir realizar.
- Pratique e aprimore seu "Google-Fu" - suas habilidades de pesquisa online - para encontrar soluções e informações relevantes.
- Pratique o conceito de "Don't ask to ask, just ask" (Não peça para perguntar, apenas pergunte).
- É importante definir prazos para cada etapa da jornada, garantindo um melhor aproveitamento do processo como um todo.