T-Love

Objetivo#

Criar uma plataforma onde os usuários possam cadastrar suas fotos e informações de relacionamento para que, no dia do aniversário de namoro, a plataforma envie automaticamente uma imagem emoldurada e personalizada com um texto apropriado.

Dica: Não existe uma forma certa ou errada de resolver o desafio! Vamos avaliar aspectos como a qualidade do seu código, a clareza e organização do projeto, quantidade e qualidade dos testes, e preocupação com segurança. ;)

Requisitos da aplicação#

  • O usuário deve poder se cadastrar na plataforma utilizando e-mail.

  • O usuário deve poder realizar login e acessar seu perfil.

  • O usuário deve poder cadastrar informações do relacionamento, incluindo:

    • Nome do casal
    • Data do início do namoro
    • Fotos do casal
    • Mensagem personalizada (opcional)
  • O sistema deve armazenar e associar as fotos enviadas ao perfil do casal.

  • No dia do aniversário de namoro, a plataforma deve gerar automaticamente uma imagem emoldurada contendo:

    • Uma ou mais fotos do casal
    • A data do aniversário de namoro
    • Um texto comemorativo (gerado automaticamente ou informado pelo usuário)
  • A plataforma deve enviar essa imagem por e-mail.

  • A plataforma deve salvar as imagens em um banco de dados apropriado para armazenar imagens.

  • O envio de e-mails deve ser automatizado.

  • A interface do usuário deve ser intuitiva e responsiva para dispositivos móveis e desktops:

    • Para dispositivos móveis, crie um app utilizando o React Native.
    • Para dispositivos desktop, crie um site utilizando o Next.js.

Fluxo da aplicação#

  1. Login/Cadastro do usuário

    • O usuário acessa a plataforma com uma conta de e-mail.
    • Caso não esteja registrado, a plataforma cria um novo cadastro com base no e-mail informado.
  2. Configuração do relacionamento

    • O usuário insere as informações do relacionamento (nome do casal, data do início do namoro, fotos e mensagem personalizada).
  3. Armazenamento e processamento das informações

    • As informações são salvas no banco de dados.
    • As fotos enviadas são armazenadas de forma segura em um banco de dados apropriado para imagens.
  4. Geração e envio da imagem comemorativa

    • No dia do aniversário de namoro, um processo automático é ativado.
    • O sistema seleciona as fotos cadastradas e gera uma moldura personalizada.
    • Um texto comemorativo é adicionado à imagem (com base em um template pré-definido ou na mensagem personalizada do usuário).
    • A imagem final é gerada e salva temporariamente.
  5. Envio do e-mail

    • O sistema envia a imagem por e-mail para o usuário.
    • Uma notificação de envio é registrada.

Observações#

  • Stack recomendada para o projeto:

    1. Backend: PHP com Laravel

      • Recomendável utilizar Docker.
    2. Web: TypeScript com Next.js

      • Publicar o projeto na cloud da Vercel.
    3. Mobile: TypeScript com React Native

      • Não é necessário publicar o app para apresentar o projeto.
  • Para construir o layout da aplicação, tanto para web quanto para mobile, recomenda-se se inspirar em projetos do Dribbble ou páginas no Instagram focadas em apresentação de layouts.