Rocketseat

Gerenciando um site de receitas

Gerenciando um site de receitas

Conheça o projeto

Nesse módulo, você vai desenvolver uma API em PHP com Laravel para gerenciar um site de receitas, onde será possível criar contas, fazer login, cadastrar novas receitas e interagir com elas por meio de likes e deslikes. Além disso, os usuários poderão visualizar, editar e excluir suas contas, e ao final, será possível gerar relatórios enviados via e-mail.

Recursos

Materiais para você usar como base para o desenvolvimento

Instruções

Estrutura, regras e requisitos do projeto

1. Requisitos

Autenticação e Contas de Usuário

  • Crie as rotas para:
    • Cadastro de usuário;
    • Login;
    • Logout.
  • Garanta que apenas usuários autenticados possam acessar rotas protegidas;
  • Implemente o CRUD para usuários:
    • Visualizar dados do usuário;
    • Editar dados do usuário;
    • Excluir conta do usuário;
  • As senhas devem ser criptografadas automaticamente.

Receitas

  • Deve ser possível criar uma receita com os campos:
    • Título da receita;
    • Descrição;
    • Ingredientes;
    • Modo de preparo;
    • Tempo de preparo;
    • Rendimento (porções);
    • Categoria;
    • URL da imagem;
    • Usuário criador;
    • Data de criação;
    • Data de atualização.
  • Implemente as rotas para:
    • Criar uma receita;
    • Listar receitas públicas com paginação;
    • Visualizar receita pelo ID;
    • Editar receita (somente pelo dono);
    • Excluir receita (somente pelo dono).

Relatórios

  • Baseado no que foi visto em aula, configure os relatórios que vão ser enviados por e-mail:
    • Relatório 01: Semanalmente, todos os usuários irão receber o mesmo relatório: um e-mail com as 10 receitas mais visualizadas da semana.
    • Relatório 02: Semanalmente, cada usuário irá receber um e-mail com as suas 5 receitas mais vistas na semana e as 5 mais curtidas.

👉 Caso precise de ajuda, você pode se basear nesse projeto desenvolvido ao longo das aulas: Habit Tracker API 💜


💡Dicas

  • Utilize o Laravel Sanctum para lidar com as autenticações;
  • Utilize o método apiResource para padronizar e facilitar a criação de novas rotas;
  • Utilize as Requests para validar os dados recebidos pelos Controllers;
  • Utilize as Resources para formatar os dados retornados pelos Controllers;
  • Utilize as Notifications para criar os e-mails que serão enviados para os Usuários**;**
  • Utilize as Policies para gerenciar as permissões do projeto;
  • Utilize os Providers para definir as validações da Senha e outras configurações, se necessário;
  • Utilize o Postman para gerenciar suas rotas e facilitar na hora de fazer alguns teses;
  • Utilize o LaraDumps para debugar o seu código durante o desenvolvimento!

2. Desenvolvendo o projeto

Para desenvolver esse projeto, recomendamos utilizar as principais tecnologias que utilizamos durante o desenvolvimento do primeiro módulo da formação.

Caso você tenha alguma dificuldade você pode ir no nosso fórum e deixar sua dúvida por lá!

Após terminar o desafio, caso você queira, você pode tentar dar o próximo passo e deixar a aplicação com a sua cara. Tente mudar o layout, cores, ou até adicionar novas funcionalidades para ir além! 🚀


3. Entrega

Após concluir o desafio, você deve enviar a URL do seu código no Github.

Além disso, que tal fazer um post no LinkedIn compartilhando o seu aprendizado e contando como foi a experiência? É uma excelente forma de demonstrar seus conhecimentos e atrair novas oportunidades!

Obs: Se você se sentir à vontade, pode postar um print do resultado final e nos marcar! Vai ser incrível acompanhar a sua evolução! 💜


4. Considerações finais

Lembre-se que o intuito de um desafio é te impulsionar, por isso, dependendo do desafio, pode ser que você precise ir além do que foi discutido em sala de aula. Mas isso não é algo ruim: ter autonomia para buscar informações extras é uma habilidade muito valiosa e vai ser ótimo pra você treinar ela aqui com a gente!

E lembre-se: tenha calma! Enfrentar desafios faz parte do seu processo de aprendizado!

Se precisar de alguma orientação ou suporte, estamos aqui com você! Bons estudos e boa prática! 💜


Feito com 💜 por Rocketseat 👋

Tarefas

Use este checklist para ajudar a organizar a sua entrega

Projetos relacionados