Campanha de Sorteio: Ingresso para Iniciantes na Carreira de Desenvolvimento

Estamos lançando uma campanha especial para sortear um ingresso entre aqueles que estão iniciando suas carreiras em desenvolvimento web! Se você tem entre 6 meses a 1 ano de experiência em estudos de desenvolvimento e deseja demonstrar suas habilidades, essa é a sua chance de brilhar!

Como participar: Envie seu CV e portfólio para o e-mail comunidaderh23@gmail.com. Junto com seu envio, você receberá um desafio técnico que deverá ser completado dentro de uma semana do dia 02/09/2024.

Desafio: Criar um Aplicativo de Lista de Tarefas Colaborativo

Objetivo: Desenvolver um aplicativo web de lista de tarefas (To-Do List) que permita aos usuários criar, editar e excluir tarefas. O aplicativo também deve suportar autenticação de usuário e permitir que diferentes usuários compartilhem listas de tarefas entre si. O backend será gerenciado pelo Firebase ou Supabase com PostgreSQL.

Requisitos do Desafio:

  1. Autenticação de Usuário:

    • Implementar autenticação de usuários utilizando Firebase Authentication ou Supabase Auth.
    • Permitir login e registro de novos usuários usando email e senha.
    • Implementar a função de reset de senha.
  2. Gerenciamento de Tarefas:

    • Os usuários devem poder criar, editar, marcar como concluídas, e excluir tarefas.
    • As tarefas devem ser armazenadas em uma base de dados no Firebase Firestore ou Supabase/PostgreSQL.
    • As tarefas devem ser exibidas em uma interface de usuário clara e organizada.
  3. Funcionalidade de Compartilhamento:

    • Os usuários devem poder compartilhar suas listas de tarefas com outros usuários.
    • Implementar permissões de leitura e escrita para listas compartilhadas, onde um usuário pode conceder acesso total ou apenas leitura a outros usuários.
  4. Interface de Usuário:

    • A interface deve ser responsiva e fácil de usar, com feedback visual para ações como adicionar, editar, e concluir tarefas.
    • Utilizar frameworks ou bibliotecas de JavaScript (por exemplo, React ou Vue.js) para construir a interface.
  5. Notificações em Tempo Real:

    • Implementar notificações em tempo real para alterações em listas compartilhadas (usando Firebase Realtime Database, Firestore com listeners, ou Supabase Realtime).
    • Notificar os usuários quando uma tarefa é adicionada ou modificada por outro usuário.
  6. Histórico de Alterações:

    • Manter um histórico básico de alterações para cada tarefa (quem criou, quem editou, quando foi feita a última alteração).
  7. Segurança e Validação:

    • Garantir que todas as operações no banco de dados estejam protegidas com regras de segurança adequadas (Firestore Rules ou Supabase Policies).
    • Validar todas as entradas do usuário para evitar erros e proteger contra ataques como SQL Injection (em Supabase).

Critérios de Avaliação:

O processo de avaliação será dividido em duas partes:

  1. Avaliação Técnica pelo Líder Técnico:

    • Funcionalidade: O aplicativo atende a todos os requisitos funcionais descritos.
    • Código: O código é limpo, bem organizado, e documentado.
    • Segurança: A aplicação segue práticas de segurança adequadas, especialmente no que se refere a autenticação e permissões.
    • Usabilidade: A interface é intuitiva e fácil de usar.
    • Criatividade: Quaisquer funcionalidades extras ou melhorias feitas além dos requisitos básicos.
  2. Avaliação de Perfil pelo Tech Recruiter:

    • Currículo: Análise da trajetória acadêmica e experiência (mesmo que limitada, é importante que demonstre dedicação e interesse na área).
    • Portfólio: Avaliação da qualidade dos projetos anteriores, se disponíveis, e da capacidade de apresentar suas habilidades.
    • Adequação Cultural: Consideração de aspectos como a comunicação e o alinhamento com a cultura de aprendizado contínuo e inovação.

Entrega:

  • Código-Fonte: Disponibilizar o código em um repositório público no GitHub.
  • Documentação: Incluir um README detalhado explicando como configurar e executar o projeto, bem como uma descrição das funcionalidades implementadas.
  • Demonstração: Opcionalmente, fornecer uma URL para uma versão hospedada do aplicativo (por exemplo, usando Vercel ou Netlify).

Duração: Os participantes terão uma semana para completar o desafio.

Critérios de Elegibilidade:

  • Tempo de Estudo: Estudantes ou desenvolvedores com 6 meses a 1 ano de experiência em estudos de desenvolvimento web.
  • Participação: Enviar o CV e portfólio para o e-mail comunidaderh23@gmail.com antes de iniciar o desafio.

Aproveite esta oportunidade para mostrar suas habilidades e, quem sabe, ganhar um ingresso para um evento que pode mudar sua carreira!