Este mini-projeto é uma aplicação web para organizar um evento de amigo secreto. Os usuários podem se cadastrar, fazer login e participar de um sorteio para descobrir quem será seu amigo secreto. Vamos usar Next.js com Supabase para a autenticação e o banco de dados. Para enviar os emails vamos usar o Resend. Os estilos e componentes serão feitos com shadcn/ui e TailwindCSS.
Certifique-se de ter o Node.js instalado em sua máquina. Use o create-next-app
para criar o projeto com a versão mais atualizada do framework.
npx create-next-app@latest
Siga o tutorial do Supabase para integrar o seu projeto Next.js com o Supabase.
- Implemente a tela de login e a funcionalidade de login/cadastro com magic link
- Recomendamos usar o Supabase Auth para implementar a autenticação
- Utilize a documentação do Supabase para auxiliar na implementação
- Implemente o header com a logo, um link para a página
Meus grupos
e um botão para criar um novo grupo
- Implemente a tela de cadastro de grupo
- O grupo deve ter um nome e uma data de cadastro. A data pode ser inserida automaticamente pelo backend
- O grupo deverá ter participantes
- Cada participante deve ter um nome e um email
- O primeiro participante do grupo obrigatoriamente deve ser o usuário logado
- O usuário logado não pode ser removido do grupo
-
Ao criar o grupo, o sistema deve sortear os amigos secretos de cada participante
-
O sistema deve enviar um email para cada participante com o nome do seu amigo secreto
- Recomendamos que você utilize o Resend para enviar os emails
👀 Dica: Você precisa de um domínio para enviar os emails. Caso não tenha, você pode usar o domínio de testes do Resend. Procure sobre ele na documentação.
- Implemente a tela do grupo
- A tela deve ter o nome do grupo e a lista de participantes
- A tela deve exibir o nome do amigo secreto da pessoa logada
- Deixe o nome do amigo escondido e só revele quando o usuário passar o mouse por cima
- Implemente a tela de grupos
- A tela deve ter a lista de grupos do usuário logado
- Cada grupo deve ter o nome e a data de criação
- Ao clicar em um grupo, o usuário deve ser redirecionado para a tela do grupo
- Implemente a opção de adicionar uma lista de presentes para cada participante
- Implemente a opção de editar o grupo e fazer o sorteio novamente
Temos uma sugestão de design no Figma. Entretanto, fique à vontade para montar a aplicação conforme a sua criatividade.
- Criação de rotas
- Criação de componentes
- Criação de server components e server actions
- Gerenciamento de autenticação com Supabase
- Gerenciamento de dados com Supabase
- Instalação e configuração
- Utilização de componentes
- Customização de temas
- Autenticação com Supabase
- Autenticação com magic link
- Gerenciamento de dados com Supabase
- Conexão com um app Next.js
- Criação de conta
- Configuração e integração com Next.js
- Envio de emails com Resend
- Conhecimento básico de React e TailwindCSS.
- Familiaridade com o uso de APIs e autenticação.