
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 pelosControllers
; - Utilize as
Resources
para formatar os dados retornados pelosControllers
; - 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 daSenha
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 👋
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 pelosControllers
; - Utilize as
Resources
para formatar os dados retornados pelosControllers
; - 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 daSenha
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