{"id":24299140,"url":"https://github.com/adairjuneo/gym-pass-api-solid","last_synced_at":"2026-05-06T19:08:44.194Z","repository":{"id":270613369,"uuid":"910920469","full_name":"adairjuneo/gym-pass-api-solid","owner":"adairjuneo","description":"This repository is part of my practical studies about software engineering and development.","archived":false,"fork":false,"pushed_at":"2025-01-15T01:40:16.000Z","size":514,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-01T03:02:32.932Z","etag":null,"topics":["docker","fastify","nodejs","prisma-orm","solid","solid-principles"],"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/adairjuneo.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":"2025-01-01T19:41:51.000Z","updated_at":"2025-01-15T01:40:18.000Z","dependencies_parsed_at":"2025-01-10T01:31:22.077Z","dependency_job_id":"aecc73c6-aa5d-4515-a7d7-957906d05cf9","html_url":"https://github.com/adairjuneo/gym-pass-api-solid","commit_stats":null,"previous_names":["adairjuneoaf/gym-pass-api-solid","adairjuneo/gym-pass-api-solid"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/adairjuneo/gym-pass-api-solid","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adairjuneo%2Fgym-pass-api-solid","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adairjuneo%2Fgym-pass-api-solid/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adairjuneo%2Fgym-pass-api-solid/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adairjuneo%2Fgym-pass-api-solid/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/adairjuneo","download_url":"https://codeload.github.com/adairjuneo/gym-pass-api-solid/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adairjuneo%2Fgym-pass-api-solid/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262887158,"owners_count":23379766,"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":["docker","fastify","nodejs","prisma-orm","solid","solid-principles"],"created_at":"2025-01-16T21:18:54.188Z","updated_at":"2026-05-06T19:08:39.172Z","avatar_url":"https://github.com/adairjuneo.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GymPass Api 🏋️💪 - Software Design\n\nGymPass api with SOLID principles.\n\n## RFs (Requisitos Funcionais)\n\nOque o usuário pode ou não fazer na aplicação ou funcionalidades da aplicação. Esses requisitos podem\nser facilmente definidos quando ocorre a conversa com o cliente ou equipe que idealiza o produto caso\nsoftware nasça dentro de uma empresa. **Deve ser possível...**\n\n- [x] Deve ser possível se cadastrar;\n- [x] Deve ser possível se autenticar;\n- [x] Deve ser possível cadastrar uma academia;\n- [x] Deve ser possível obter o perfil de um usuário logado;\n- [x] Deve ser possível obter o número de check-ins realizados pelo usuário logado;\n- [x] Deve ser possível o usuário obter seu histórico de check-ins;\n- [x] Deve ser possível o usuário buscar academias próximas (até 10km);\n- [x] Deve ser possível o usuário buscar academias pelo nome;\n- [x] Deve ser possível o usuário realizar check-ins em uma academia;\n- [x] Deve ser possível validar o check-in de um usuário;\n\n## RNs (Regras de Negócio)\n\nCaminhos que cada requisito funcional pode seguir, determinando sobre quais condições aquele\nrequisito funcional pode ou não ser executado. **O usuário não pode/deve...** ou **A \"entidade\" não pode/deve...**\n\n- [x] O usuário não deve poder se cadastrar com um e-mail duplicado;\n- [x] O usuário não pode fazer 2 check-ins no mesmo dia;\n- [x] O usuário não pode fazer check-ins se não estiver perto(100m) da academia;\n- [x] Academias só podem ser cadastradas por administradores;\n- [x] O check-in só pode ser validado até 20 minutos após criado;\n- [x] O check-in só pode ser validado por administradores;\n\n## RNFs (Requisitos não-funcionais)\n\nSão \"regras\" mais técnicas do que a nível de funcionalidades, determinando mais patters e métodos\npara serem aplicados no desenvolvimento.\n\n- [x] A senha do usuário precisa estar criptografada;\n- [x] Os dados da aplicação precisam estar persistidos em um banco de dados PostgreSQL;\n- [x] Todas as listas de dados precisam estar paginadas com 20 itens por página;\n- [x] O usuário deve ser identificado por um JWT(JSON Web Token);\n- [x] 🆕 Implementado metodologia de refresh-token para auxiliar o front-end;\n\n_This repository is part of my practical studies about software engineering and development._\n[dev-juneo](https://github.com/adairjuneo)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadairjuneo%2Fgym-pass-api-solid","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fadairjuneo%2Fgym-pass-api-solid","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadairjuneo%2Fgym-pass-api-solid/lists"}