{"id":25121310,"url":"https://github.com/felipeakira1/miau","last_synced_at":"2025-08-05T18:06:18.672Z","repository":{"id":275874605,"uuid":"881103529","full_name":"felipeakira1/Miau","owner":"felipeakira1","description":"API RESTful for a veterinary clinic","archived":false,"fork":false,"pushed_at":"2025-02-05T02:28:49.000Z","size":247,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-05T03:23:52.973Z","etag":null,"topics":["fastify","nodejs","postgresql","prisma-orm","testing"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/felipeakira1.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-30T23:04:54.000Z","updated_at":"2025-02-05T02:28:56.000Z","dependencies_parsed_at":"2025-02-05T03:34:07.153Z","dependency_job_id":null,"html_url":"https://github.com/felipeakira1/Miau","commit_stats":null,"previous_names":["felipeakira1/miau"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/felipeakira1%2FMiau","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/felipeakira1%2FMiau/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/felipeakira1%2FMiau/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/felipeakira1%2FMiau/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/felipeakira1","download_url":"https://codeload.github.com/felipeakira1/Miau/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246838092,"owners_count":20842000,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["fastify","nodejs","postgresql","prisma-orm","testing"],"created_at":"2025-02-08T06:17:43.931Z","updated_at":"2025-04-02T15:22:30.554Z","avatar_url":"https://github.com/felipeakira1.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Miau\n\n## Requisitos funcionais\n### Autenticação\n[X] Deve ser possível se autenticar como admin\u003c/br\u003e\n[X] Deve ser possível se autenticar como tutor\u003c/br\u003e\n[X] Deve ser possível se autenticar como veterinario\u003c/br\u003e\n\n### Animais\n[X] Deve ser possível cadastrar um animal\u003c/br\u003e\n[X] Deve ser possível atualizar os dados de um animal\u003c/br\u003e\n[] Deve ser possível excluir um animal\u003c/br\u003e\n[X] Deve ser possível visualizar todos os animais do sistema\u003c/br\u003e\n[ ] Deve ser possível visualizar todas as consultas de um animal \u003c/br\u003e \n\n### Tutores\n[X] Deve ser possível cadastrar um tutor\u003c/br\u003e\n[X] Deve ser possível atualizar os dados de um tutor\u003c/br\u003e\n[ ] Deve ser possível excluir um tutor\u003c/br\u003e\n[X] Deve ser possível visualizar todos os tutores do sistema\u003c/br\u003e\n[X] Deve ser possível visualizar todos os animais de um tutor\u003c/br\u003e\n[ ] Deve ser possível visualizar todas as consultas de um tutor\u003c/br\u003e \n\n### Veterinario\n[X] Deve ser possível cadastrar um veterinário\u003c/br\u003e\n[X] Deve ser possível atualizar os dados de um veterinário\u003c/br\u003e\n[] Deve ser possível excluir um veterinário\u003c/br\u003e\n[X] Deve ser possível visualizar todos os veterinarios do sistema\u003c/br\u003e\n[X] Deve ser possível visualizar todas as consutlas de um veterinario\u003c/br\u003e\n\n### Consultas\n[X] Deve ser possível que o tutor solicite uma consulta em um determinado dia e enviando três horários de disponibilidade\u003c/br\u003e\n[X] Deve ser possível que o veterinário aceite uma solicitação de consulta\u003c/br\u003e\n[] Deve ser possível que o veterinário recuse uma solicitação de consulta, dando uma justificativa para a recusa.\u003c/br\u003e\n[X] Deve ser possível que o veterinário finalize uma consulta\u003c/br\u003e\n[] Deve ser possível que o tutor cancele uma solicitação de consulta\u003c/br\u003e\n[] Deve ser possível que o tutor cancele uma consulta\u003c/br\u003e\n[] Deve ser possível que o veterinário visualize todas as consultas solicitadas para ele.\u003c/br\u003e\n[] Deve ser possível que o veterinário visualize todas as suas consultas em andamento.\u003c/br\u003e\n[] Deve ser possível que o veterinário visualize todas as consultas finalizadas.\u003c/br\u003e\n\n## Regras de negócio\n[] Somente o ADMIN pode cadastrar veterinarios\u003c/br\u003e\n[] O tutor pode se cadastrar\u003c/br\u003e\n[] Somente o ADMIN pode excluir tutores, veterinários e animais\u003c/br\u003e\n[] Se um animal for excluído, ele deve ser marcado como inativo para manter o histórico de consultas\n\n[] O tutor pode editar seus próprios dados e os de seus animais\u003c/br\u003e\n[] O veterinário pode editar suas próprias informações\u003c/br\u003e\n[] O veterinário pode editar as informações de qualquer animal e tutor\u003c/br\u003e\n\n[X] O tutor deve sugerir até 3 horários ao solicitar uma consulta.\u003c/br\u003e\n[] O veterinário pode aceitar um recusar uma solicitação de consulta, com justificativa predefinida ou personalizada.\u003c/br\u003e\n[] O veterinário deve marcar uma consulta como finalizada e adicionar observações.\u003c/br\u003e\n[] O tutor pode visualizar apenas suas consultas e as de seus animais.\u003c/br\u003e\n[X] O acesso ao sistema é baseado em roles (ADMIN, TUTOR, VETERINARIO)\u003c/br\u003e\n[] O admin tem acesso total e pode realizar qualquer operação no sistema.\u003c/br\u003e\n\n## Rotas\n### Users\n[X] POST /authenticate - Autenticação\u003c/br\u003e\n[X] GET /profile - Obter dados do usuário autenticado\u003c/br\u003e\n[X] GET /users - Obter todos os usuários\u003c/br\u003e\n[X] PATCH /token/refresh - Atualizar token de autenticação\u003c/br\u003e\n\n### Owners\n[X] POST /owners - Registrar um tutor\u003c/br\u003e\n[X] GET /owners - Obter todos os tutores\u003c/br\u003e\n[X] GET /owners/:id/animals - Obter todos os animais de um tutor\u003c/br\u003e\n[X] GET /owners/:id/appointments - Obter todas as consultas de um tutor\u003c/br\u003e\n[X] PUT /owners/me - Tutor atualiza seus próprios dados\u003c/br\u003e\n[X] PUT /owners/:id - Admin atualiza os dados de um tutor\u003c/br\u003e\n[] DELETE /owner/:id\u003c/br\u003e\n\n### Veterinarians\n[X] POST /veterinarians - Criar um veterinario\u003c/br\u003e\n[X] GET /veterinarians - Obter todos os veterinarios\u003c/br\u003e\n[] GET /veterinarians/:id/appointments - Obter todas as consultas de um tutor\u003c/br\u003e\n[X] PUT /veterinarians/me - Veterinario atualiza seus próprios dados\u003c/br\u003e\n[X] PUT /veterinarians/:id - Admin atualiza os dados de um veterinario\u003c/br\u003e\n[] DELETE /veterinarians/:id - Excluir um veterinario\u003c/br\u003e\n\n### Animals\n[X] POST /animals - Criar um animal\u003c/br\u003e\n[X] GET /animals - Obter todos os animais\u003c/br\u003e\n[X] GET /animals/:id/appointments - Obter todas as consultas de um animal\u003c/br\u003e\n[X] POST /animals/:id/upload - Atualizar a imagem de um animal\u003c/br\u003e\n[] PUT /animals/:id - Atualizar um animal\u003c/br\u003e\n[] DELETE /animals/:id - Excluir um animal\u003c/br\u003e\n\n### Consultas\n[X] POST /appointments - Solicitar uma consulta\u003c/br\u003e\n[X] GET /appointments/requested - Obter todas as consultas com status de Solicitado do veterinario autenticado\u003c/br\u003e\n[X] PATCH /appointments/:id/accept - Aceitar uma consulta\u003c/br\u003e\n[X] PATCH /appointments/:id/deny - Recusar uma consulta\u003c/br\u003e\n[X] PATCH /appointments/:id/finish - Finalizar uma consulta\u003c/br\u003e\n[X] PATCH /appointments/:id/update - Atualizar uma consulta\u003c/br\u003e\n\n## Fluxo\n1. Tutor solicita uma consulta, enviando três horários preferenciais\n2. Veterinario aceita um dos horários via PUT /appointments/:id/accept\n3. Se o veterinario não puder nos horários sugeridos, ele sugere um novo horário via PUT /appointments/suggest-date\n4. Tutor aceita via PUT /appointments/:id/accept\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffelipeakira1%2Fmiau","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffelipeakira1%2Fmiau","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffelipeakira1%2Fmiau/lists"}