Este projeto é o back-end de um sistema de cadastro e gerenciamento de gatos famosos para uma agência de modelos. A aplicação foi desenvolvida como parte do Desafio Técnico e utiliza tecnologias como Node.js, Express, Joi, Bcrypt, e PostgreSQL.
https://catwalk-api.onrender.com
O projeto oferece endpoints para:
- Cadastro de usuários na agência.
- Autenticação de usuários.
- Cadastro e gerenciamento de modelos de gatos.
- Consulta de modelos disponíveis.
- Atualização de informações do usuário autenticado.
Usuário:
json { "id": 1, "createdAt": "2023-12-01T12:00:00.000Z", "updatedAt": "2023-12-01T12:00:00.000Z", "name": "Nome do Usuário", "cpf": "123.456.789-00", "telephone": "(99) 99999-9999", "email": "usuario@email.com", "picture": "https://example.com/picture.jpg", "description": "Descrição do usuário" }
Modelo de pet
json { "id": 1, "createdAt": "2023-12-01T12:00:00.000Z", "updatedAt": "2023-12-01T12:00:00.000Z", "name": "Nome do Pet", "description": "Descrição do Pet", "picture": "https://example.com/pet.jpg", "pictureUserPet": "https://example.com/user_pet.jpg", "available": true, "userId": 1 }
A API oferece os seguintes endpoints:
-
POST /signup: Cadastra um novo usuário na agência.
-
POST /signin: Autentica um usuário.
-
GET /user/info: Obtém as informações do usuário autenticado.
-
PUT /user/info: Atualiza as informações do usuário autenticado.
-
POST /model: Cria um novo modelo de pet.
-
GET /models: Obtém todos os modelos disponíveis.
-
GET /models/me: Obtém os modelos cadastrados pelo usuário autenticado.
-
GET /models/:id: Obtém informações detalhadas sobre um modelo específico.
-
PUT /models/:id: Atualiza a disponibilidade de um modelo.
Para esse projeto, foram utilizadas:
- Node.js (versão 18.17.0)
- Express
- PostgreSQL
- Bcrypt
- Joi
-
Clone o repositório.
-
Instale as dependências com o comando: npm install.
-
Crie o arquivo .env com base no .env.example e configure as variáveis necessárias.
-
Execute o comando para criar o banco de dados e as tabelas necessárias: npx sequelize db:migrate.
-
Execute o comando para rodar o projeto em desenvolvimento: npm start.
-
A API estará disponível em http://localhost:5000.
Testes manuais podem ser feitos através de ferramentas como Thunder Client ou Postman.