Render: https://cookenu-2.onrender.com
Documentação: https://documenter.getpostman.com/view/22376814/2s93CPqCVL
Esse produto nada mais é do que uma rede social, na qual os usuários podem dividir informações relevantes sobre comidas e receitas que tenham experimentado. Ela possui todas as funcionalidades mais comuns em redes sociais:
🥄 1. Cadastro / Criar Pessoa Usuária
O usuário só precisa informar: o e-mail, nome a sua senha para realizar o cadastro. A senha tem uma regra: ela deve conter, no mínimo, 6 caracteres.
🥄 2. Login
Basta informar o email e a senha corretamente que o usuário poderá se logar na aplicação. Os endpoints de login e cadastro devem retornar um token.
🥄 3. Informações do próprio perfil
A partir do token de autenticação fornecido no login, o usuário deve ser capaz de ver as suas informações salvas no banco (id, nome e email)
🥄 4. Criar receitas
O usuário poderá criar uma receita. A receita deve ter os seguintes atributos: título, descrição-modo de preparo- e data de criação
🥄 5. Seguir usuário
Um usuário poderá seguir outros usuários. Para isso, ele deve fornecer o id do usuário que deseja seguir. Atente-se que essa funcionalidade se assemelha ao do instagram: um usuário seguir outro, não significa que "esse outro" está seguindo o primeiro.
🥄 6. Feed
Um usuário poderá visualizar as receitas criadas pelos usuários que ele segue. As receitas devem estar ordenadas pela data de criação.
-
Método: POST
Path:/signupEntradas:
Body{ "name": "Alice", "email": "alice@lbn.com", "password": "123456" }Saídas
Body{ "access_token": "token de acesso" }🔎 Observações:
- O programa deve validar se os três campos estão completos (ou seja se não foram enviados ou se não estão vazios) e retornar um erro caso não estejam válidos
- O código deve gerar o id do usuário
-
Método: POST
Path:/loginEntradas:
Body{ "email": "alice@lbn.com", "password": "123456" }Saídas
Body{ "access_token": "token de acesso" }🔎 Observações:
- O código deve validar se os dois campos estão completos (ou seja se não foram enviados ou se não estão vazios) e retornar um erro caso não estejam válidos
-
Método: GET
Path:/user/profileEntradas:
HeadersAuthorization: "token de autenticação"Saídas
Body{ "id": "id do usuário", "name": "Alice", "email": "alice@lbn.com" }Método: GET
Path:/user/:idEntradas:
Path Paramid: "id do usuário"Headers
Authorization: "token de autenticação"Saídas
Body{ "id": "id do usuário", "name": "Alice", "email": "alice@lbn.com" }Método: POST
Path:/recipeEntradas:
HeadersAuthorization: "token de autenticação"Body
{ "title": "título da receita", "description": "descrição da receita" }🔎 Observações:
- Perceba que, no banco de dados, deverá ser guardadado a data de criação da receita, mas o usuário não envia. O programa deve assumir que a receita foi criada no momento em que o usuário bate nessa requisição
Método: GET
Path:/recipe/:idEntradas:
Path Param
id: "id da receita"Headers
Authorization: "token de autenticação"Saídas
Body{ "id": "id da receita", "title": "Ovo Frito", "description": "Pega o ovo, põe na frigideira e reza!" "cratedAt": "31/12/2020" }Abaixo segue uma lista de implementaçõpes para dar mais funcionalidade ao projeto
-
Método: POST
Path:/user/followEntradas:
HeadersAuthorization: "token de autenticação"Body
{ "userToFollowId": "id do usuário que se deseja seguir" }Saídas
Body{ "message": "Followed successfully" }🔎 Observações:
Você deve verificar se o id do usuário é válido (se não está vazio ou se não foi enviado)
-
Método: POST
Path:/user/unfollowEntradas:
Headers
Authorization: "token de autenticação"Body
{ "userToUnfollowId": "id do usuário que se deseja deixar de seguir" }Saídas
Body{ "message": "Unfollowed successfully" }Saídas
Body{ "message": "Unfollowed successfully" }
🔎Observações:
O programa deve verificar se o id do usuário é válido (se não está vazio ou se não foi enviado)
Este endpoint deve trazer todas as receitas criadas por pessoas que a pessoa logada (o id que está no token) segue.
Método: GET
Path:/user/feedEntradas:
HeadersAuthorization: "token de autenticação"Saídas
Body{ "recipes": [{ "id": "id da receita", "title": "título da receita", "description": "descrição da receita", "createdAt": "31/12/2020", "userId": "id do usuário que criou a receita", "userName": "nome do usuário que criou a receita" }] }
-
-
Editar receita
Um usuário "normal" deve ser capaz de editar uma receita própria dele.
O programa deve retornar um erro se a receita não for dele
-
Deletar receita
Um usuário "normal" deve ser capaz de deletar uma receita própria dele.
O programa deve retornar um erro se a receita não for dele
Agora, se o usuário que tentar acessar essa receita for um admin, o programa deve permitir que ele delete qualquer post que ele passar.
-
Deletar conta
Um usuário "admin" deve ser capaz de deletar a conta de qualquer usuário.
O programa deve retornar um erro se o usuário que acessou essa funcionalidade não for um admin.
Quando for deletar o usuário, lembre-se que programa deve deletar todas as relações do MySQL com a qual ele esteja envolvido: receita e usuários que segue
-
Esqueci a senha
O programa possui a funcionalidade de recuperação de senha enviando um e-mail para alteração de senha do usuário.
-
Typescript
-
Node.js
-
MySQL
-
Express.js
-
Knex.js
-
Para Rodar o projeto foi utilizado a biblioteca NPM install.
-

