{"info":{"_postman_id":"460711b9-f29e-4b19-80fa-b604f97116ea","name":"Ponto Seguro - API","description":"<html><head></head><body><h1 id=\"api-ponto-seguro\">API - Ponto Seguro 🆘</h1>\n<p>Bem-vindo à documentação oficial da API do Ponto Seguro, um sistema desenhado para gerenciar abrigos e conectar famílias a pessoas desaparecidas em cenários de emergência.</p>\n<h3 id=\"fluxo-de-autenticação\">Fluxo de Autenticação</h3>\n<ol>\n<li><p>Crie um usuário em <code>Register User</code>.</p>\n</li>\n<li><p>Faça o login em <code>Authenticate (Login)</code>.</p>\n</li>\n</ol>\n<p><em>Obs: O Postman capturará o seu token automaticamente e o injetará nas rotas protegidas.</em></p>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[{"content":"API - Ponto Seguro 🆘","slug":"api-ponto-seguro"}],"owner":"42447767","collectionId":"460711b9-f29e-4b19-80fa-b604f97116ea","publishedId":"2sBXqJJL6q","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"publishDate":"2026-04-27T23:49:40.000Z"},"item":[{"name":"Authentication","item":[{"name":"Register User","id":"0030d789-bb83-402b-a8e8-70e06374836c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"name\": \"Danylo Henrique\",\n    \"email\": \"danylo@example.com\",\n    \"password\": \"123456\"\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:3333/users","description":"<p>Cria um novo usuário no sistema.</p>\n<h3 id=\"parâmetros-body\">Parâmetros (Body)</h3>\n<ul>\n<li><code>name</code> (string): Nome completo do usuário.</li>\n<li><code>email</code> (string): E-mail válido e único.</li>\n<li><code>password</code> (string): Senha em texto plano (será hasheada no banco).</li>\n</ul>\n<h3 id=\"retorno-esperado\">Retorno Esperado</h3>\n<ul>\n<li><strong>201 Created</strong>: Usuário criado com sucesso.</li>\n<li><strong>409 Conflict</strong>: E-mail já cadastrado.</li>\n</ul>\n","urlObject":{"path":["users"],"host":["http://localhost:3333"],"query":[],"variable":[]}},"response":[],"_postman_id":"0030d789-bb83-402b-a8e8-70e06374836c"},{"name":"Authenticate (Login)","event":[{"listen":"test","script":{"id":"f15041ca-823d-4f07-92f4-034443368d93","exec":["const response = pm.response.json();","if (response.token) {","    pm.collectionVariables.set(\"token\", response.token);","}"],"type":"text/javascript","packages":{},"requests":{}}}],"id":"20b966ee-320f-41fd-9f43-36cea788f02e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"email\": \"danylo@example.com\",\n    \"password\": \"123456\"\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:3333/sessions","description":"<p>Gera o Token JWT para acessar rotas protegidas.</p>\n<h3 id=\"retorno-esperado\">Retorno Esperado</h3>\n<ul>\n<li><strong>200 OK</strong>: Retorna o payload com o Token.</li>\n<li><strong>401 Unauthorized</strong>: Credenciais inválidas.</li>\n</ul>\n","urlObject":{"path":["sessions"],"host":["http://localhost:3333"],"query":[],"variable":[]}},"response":[],"_postman_id":"20b966ee-320f-41fd-9f43-36cea788f02e"}],"id":"2019b1b1-5004-4edc-9eb2-4e0b305a70e4","description":"<p>Módulo responsável por gerenciar a criação e o acesso dos voluntários/administradores do sistema.</p>\n","_postman_id":"2019b1b1-5004-4edc-9eb2-4e0b305a70e4"},{"name":"Missing Persons","item":[{"name":"Search Person","id":"9c5a04c5-1431-4ad6-b9fa-4cbaaedf22a9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[],"url":"http://localhost:3333/missing-peoples?name=teste&dateBirth=2001-01-01","description":"<p>Busca uma pessoa desaparecida com base no cruzamento exato de nome e data de nascimento.</p>\n<h3 id=\"parâmetros-query\">Parâmetros (Query)</h3>\n<ul>\n<li><code>name</code> (string): Nome exato da pessoa.</li>\n<li><code>dateBirth</code> (string: YYYY-MM-DD): Data de nascimento.</li>\n</ul>\n<h3 id=\"retorno-esperado\">Retorno Esperado</h3>\n<ul>\n<li><strong>200 OK</strong>: Retorna os dados do desaparecido.</li>\n<li><strong>404 Not Found</strong>: Pessoa não encontrada.</li>\n</ul>\n","urlObject":{"path":["missing-peoples"],"host":["http://localhost:3333"],"query":[{"key":"name","value":"teste"},{"key":"dateBirth","value":"2001-01-01"}],"variable":[]}},"response":[],"_postman_id":"9c5a04c5-1431-4ad6-b9fa-4cbaaedf22a9"},{"name":"Register Missing Person","id":"f8eb9f2d-fa69-4cda-8021-79684d7acfc0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"name\": \"teste 2\",\n    \"dateBirth\": \"2001-01-01\",\n    \"lastSeenLocation\": \"Realengo - RJ\",\n    \"contactName\": \"Barbie Girl\",\n    \"contactPhone\": \"21999999999\",\n    \"physicalDescription\": \"Cabelo castanho, 1.75m\",\n    \"clothesDescription\": \"Camisa azul e bermuda preta\"\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:3333/missing-peoples","description":"<p>Cadastra um boletim de uma pessoa desaparecida.</p>\n<p><em>(Nota: O <code>userId</code> é capturado automaticamente via token JWT).</em></p>\n","urlObject":{"path":["missing-peoples"],"host":["http://localhost:3333"],"query":[],"variable":[]}},"response":[],"_postman_id":"f8eb9f2d-fa69-4cda-8021-79684d7acfc0"},{"name":"Fetch User Missing Persons","id":"91092887-2d84-4319-97b2-35f28d54c03f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[],"url":"http://localhost:3333/missing-peoples/me","urlObject":{"path":["missing-peoples","me"],"host":["http://localhost:3333"],"query":[],"variable":[]}},"response":[],"_postman_id":"91092887-2d84-4319-97b2-35f28d54c03f"}],"id":"640f1b16-4934-49fd-8e64-dc9b922e2cd1","description":"<p>Módulo de busca e cadastro de pessoas declaradas como desaparecidas pelas famílias.</p>\n","_postman_id":"640f1b16-4934-49fd-8e64-dc9b922e2cd1"},{"name":"Shelters","item":[{"name":"Fetch Nearby Shelters","id":"72da86bc-0245-49f4-996b-4bac820e834d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://localhost:3333/shelters/nearby?latitude=-22.9060&longitude=-43.1720","description":"<p>Lista os abrigos disponíveis em um raio próximo à coordenada fornecida. Ideal para a interface do mapa no front-end.</p>\n","urlObject":{"path":["shelters","nearby"],"host":["http://localhost:3333"],"query":[{"key":"latitude","value":"-22.9060"},{"key":"longitude","value":"-43.1720"}],"variable":[]}},"response":[],"_postman_id":"72da86bc-0245-49f4-996b-4bac820e834d"},{"name":"Register Shelter","id":"545766d1-6713-4e16-aa46-54f5a0f66754","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"name\": \"Igreja Nossa Senhora da Conceição\",\r\n  \"address\": \"Av. Santa Cruz, 1125 - Realengo, Rio de Janeiro - RJ\",\r\n  \"latitude\": -22.8765,\r\n  \"longitude\": -43.4321,\r\n  \"capacity_max\": 80,\r\n  \"capacity_current\": 0\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:3333/shelters","description":"<p>Cria um novo abrigo no sistema. O usuário que faz a requisição é atrelado como administrador daquele abrigo.</p>\n","urlObject":{"path":["shelters"],"host":["http://localhost:3333"],"query":[],"variable":[]}},"response":[],"_postman_id":"545766d1-6713-4e16-aa46-54f5a0f66754"},{"name":"Fetch Shelters","id":"3ae9f1c7-fbdd-421a-976b-f7b4d47a91fc","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://localhost:3333/shelters/search?query=e316c6d3-10c7-43ff-a182-7f2d89520677&page=1","urlObject":{"path":["shelters","search"],"host":["http://localhost:3333"],"query":[{"key":"query","value":"e316c6d3-10c7-43ff-a182-7f2d89520677"},{"key":"page","value":"1"}],"variable":[]}},"response":[],"_postman_id":"3ae9f1c7-fbdd-421a-976b-f7b4d47a91fc"},{"name":"Get Shelter","id":"6807616f-d1ed-46c5-b836-4a7e598a2f57","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://localhost:3333/shelters/02ee77f0-2d6a-4759-bdb3-23259513b1c1","urlObject":{"path":["shelters","02ee77f0-2d6a-4759-bdb3-23259513b1c1"],"host":["http://localhost:3333"],"query":[],"variable":[]}},"response":[],"_postman_id":"6807616f-d1ed-46c5-b836-4a7e598a2f57"},{"name":"Get User Shelter","id":"209cac55-f2c9-4a6b-95f5-6cb59074eb7b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[],"url":"http://localhost:3333/shelters/me","urlObject":{"path":["shelters","me"],"host":["http://localhost:3333"],"query":[],"variable":[]}},"response":[],"_postman_id":"209cac55-f2c9-4a6b-95f5-6cb59074eb7b"}],"id":"59802552-e34b-49e6-a2c4-7129a73c6d66","description":"<p>Gerenciamento de abrigos, capacidades e localização geográfica.</p>\n","_postman_id":"59802552-e34b-49e6-a2c4-7129a73c6d66"},{"name":"Check-ins","item":[{"name":"Check-in at Shelter","id":"001e37cf-fd1e-46d0-9207-a49bc5e332c0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"personName\": \"teste 2\",\n    \"dateBirth\": \"2001-01-01\",\n    \"shelterId\": \"02ee77f0-2d6a-4759-bdb3-23259513b1c1\"\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:3333/check-ins","description":"<p>Registra a entrada de uma pessoa no abrigo e <strong>dispara a lógica de Match</strong>.</p>\n<p>Se os dados baterem com alguém na tabela de Desaparecidos, a API retornará os dados de contato do familiar na chave <code>contactPerson</code>.</p>\n","urlObject":{"path":["check-ins"],"host":["http://localhost:3333"],"query":[],"variable":[]}},"response":[],"_postman_id":"001e37cf-fd1e-46d0-9207-a49bc5e332c0"}],"id":"b16f446a-6e89-4cc5-bf88-981dc777fcf8","description":"<p>O coração do sistema: relaciona a entrada de pessoas nos abrigos com o banco de desaparecidos.</p>\n","_postman_id":"b16f446a-6e89-4cc5-bf88-981dc777fcf8"}],"variable":[{"key":"baseUrl","value":"http://localhost:3333","type":"string"},{"key":"token","value":"","type":"string"}]}