{"id":20314251,"url":"https://github.com/samuel-ricardo/bolao-da-copa_api","last_synced_at":"2026-05-07T21:48:07.296Z","repository":{"id":153372342,"uuid":"565215253","full_name":"Samuel-Ricardo/bolao-da-copa_api","owner":"Samuel-Ricardo","description":null,"archived":false,"fork":false,"pushed_at":"2023-03-18T13:01:45.000Z","size":231,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-14T12:45:04.131Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Samuel-Ricardo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2022-11-12T17:37:47.000Z","updated_at":"2022-11-13T14:11:14.000Z","dependencies_parsed_at":null,"dependency_job_id":"d93e30e1-2fba-4179-ba56-3729d30342f6","html_url":"https://github.com/Samuel-Ricardo/bolao-da-copa_api","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Samuel-Ricardo%2Fbolao-da-copa_api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Samuel-Ricardo%2Fbolao-da-copa_api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Samuel-Ricardo%2Fbolao-da-copa_api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Samuel-Ricardo%2Fbolao-da-copa_api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Samuel-Ricardo","download_url":"https://codeload.github.com/Samuel-Ricardo/bolao-da-copa_api/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241818842,"owners_count":20025208,"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":[],"created_at":"2024-11-14T18:14:34.757Z","updated_at":"2026-05-07T21:48:07.241Z","avatar_url":"https://github.com/Samuel-Ricardo.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Bolão da Copa - [API]\n\n\u003cp align=\"center\"\u003e \n  \u003ca target=\"_blank\" href=\"https://www.rocketseat.com.br/\"\u003e\n    \u003cimg width=\"auto\" src=\"https://media.discordapp.net/attachments/1084951017264783441/1084951190615359559/image.png?width=1064\u0026height=599\"/\u003e\n  \u003c/a\u003e \n\u003c/p\u003e\n\n\u003ch4 align=\"center\" \u003e🚀 🟪 Next Level Week - Copa 2022 🟪 🚀\u003c/h4\u003e\n\n\n\n\u003ch4 align=\"center\"\u003e\n  Application developed during a Full Stack Event, the \u003ca target=\"_blank\" style=\"color: #8a4af3;\" href=\"https://github.com/topics/next-level-week\"\u003eNext Level Week #10\u003c/a\u003e promoted by \u003ca target=\"_blank\" style=\"color: #8a4af3;\" href=\"https://www.rocketseat.com.br/\"\u003e@Rocketseat\u003c/a\u003e\n\u003c/h4\u003e\n\n#\n\n\u003cbr\u003e\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://github.com/rocketseat-education/nlw-copa-ignite/raw/main/.github/logo.svg\"/\u003e\u003c/p\u003e\n\n\n#\n\u003cp align=\"center\"\u003e\n  |\u0026nbsp;\u0026nbsp;\n  \u003ca style=\"color: #8a4af3;\" href=\"#project\"\u003eProject\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;|\u0026nbsp;\u0026nbsp;\u0026nbsp;\n  \u003ca style=\"color: #8a4af3;\" href=\"#techs\"\u003eTechnologies\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;|\u0026nbsp;\u0026nbsp;\u0026nbsp;\n  \u003ca style=\"color: #8a4af3;\" href=\"#routes\"\u003eRoutes\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;|\u0026nbsp;\u0026nbsp;\n  \u003ca style=\"color: #8a4af3;\" href=\"#run-project\"\u003eRun\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;|\u0026nbsp;\u0026nbsp;\n  \u003ca style=\"color: #8a4af3;\" href=\"#author\"\u003eAuthor\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;|\u0026nbsp;\u0026nbsp;\u0026nbsp;\n\u003c/p\u003e\n\n#\n\n\u003ch1 align=\"center\"\u003e\n  \n  \u003ca target=\"_blank\" href=\"https://github.com/Samuel-Ricardo\"\u003e\n    \u003cimg src=\"https://img.shields.io/static/v1?label=\u0026message=Samuel%20Ricardo\u0026color=black\u0026style=for-the-badge\u0026logo=GITHUB\"/\u003e\n  \u003c/a\u003e\n\n  \u003ca target=\"_blank\" herf=\"https://www.instagram.com/samuel_ricardo.ex/\"\u003e\n    \u003cimg src='https://img.shields.io/static/v1?label=\u0026message=Samuel.ex\u0026color=black\u0026style=for-the-badge\u0026logo=instagram'/\u003e \n  \u003c/a\u003e\n\n  \u003ca target=\"_blank\" herf='https://www.linkedin.com/in/samuel-ricardo/'\u003e\n    \u003cimg src='https://img.shields.io/static/v1?label=\u0026message=Samuel%20Ricardo\u0026color=black\u0026style=for-the-badge\u0026logo=LinkedIn'/\u003e \n  \u003c/a\u003e\n\n  \u003ca target=\"_blank\" herf='https://www.linkedin.com/in/samuel-ricardo/'\u003e\n    \u003cimg width=\"64px\" src='https://seeklogo.com/images/R/rocketseat-logo-666CE4B396-seeklogo.com.png'/\u003e \n  \u003c/a\u003e\n\n\u003c/h1\u003e\n\n\u003cbr\u003e\n\n\u003cp id=\"project\"/\u003e\n\n\u003ch2\u003e  | :artificial_satellite: About:  \u003c/h2\u003e\n\n\u003cp align=\"justfy\"\u003e\n This is an API that uses the NestJS framework, it aims to serve all applications of this project (Web \u0026 Mobile). This app uses the Google Auth API to login with a Google account and JWT to keep the authentication for a while and provide a security authentication, making sure you are the right user without having to log in all the time.\n\u003c/p\u003e\n\n\u003cp align=\"justfy\"\u003e\n  For database management we chose Prisma which abstracts all the hard work and lets us focus on the creative and structural part, with a safe migrations scheme (like a .git history but for database changes) it provides a solid system and compatible with many databases. For the server Fastify was used instead of express or other.\n\u003c/p\u003e\n\n#\n\n- Hosted on: \u003ca  style=\"color: #8a4af3;\" href=\"https://bolao-da-copa-nlw.onrender.com\"\u003eBolão da Copa - [API] \u003c/a\u003e \n\n - Repo: [Front-end] - \u003ca style=\"color: #8a4af3;\" href=\"https://github.com/Samuel-Ricardo/bolao-da-copa\"\u003eBolão Da Copa - [Landing Page]\u003c/a\u003e\n - Repo: [Mobile] - \u003ca style=\"color: #8a4af3;\" href=\"https://github.com/Samuel-Ricardo/bolao-da-copa_mobile\"\u003eBolão Da Copa - [APP]\u003c/a\u003e\n  \n #\n \u003cbr\u003e\n\n- This API is hosted on \u003ca target=\"_blank\" style=\"color: #8a4af3;\" href='https://render.com/'\u003e Render \u003c/a\u003e \n- Current Version \u003cb\u003e 1.0.0 \u003c/b\u003e\n\n#\n\n\u003cp id=\"routes\"/\u003e\n\n##  :construction: API Routes:\n\n\u003ch3\u003e\u003cb\u003e Base URL - https://bolao-da-copa-nlw.onrender.com \u003c/b\u003e\u003c/h3\u003e\n\n\u003cbr\u003e\n\n- \u003cb\u003e Users Routes - /users \u003c/b\u003e\n\n  \u003cp\u003e - Count - [GET]: /count  \u003c/p\u003e\n\n#\n\n- \u003cb\u003e Auth Routes - / \u003c/b\u003e\n\n  \u003cp\u003e - Auth - [GET]: /me  \u003c/p\u003e\n  \u003cp\u003e - Register - [POST]: /users  \u003c/p\u003e\n\n# \n\n- \u003cb\u003e Betting groups Routes - / \u003c/b\u003e\n\n  \u003cp\u003e - Count - [GET]: /pool/count' \u003c/p\u003e\n  \u003cp\u003e - Get Pools - [POST]: /pools  \u003c/p\u003e\n\n#\n\n- \u003cb\u003e Games Routes - /pools \u003c/b\u003e\n\n  \u003cp\u003e - Get games - [GET]: /:id/games' \u003c/p\u003e\n  \n#\n\n- \u003cb\u003e Guesses Routes - / \u003c/b\u003e\n\n  \u003cp\u003e - Count  - [GET]: /guesses/count' \u003c/p\u003e\n  \u003cp\u003e - Get Guesses - [POST]: /pools/:poolId/games/:gameId/guesses  \u003c/p\u003e\n\n#\n\n\u003cp align=\"justfy\"\u003e\n\tAll routes have error coverage, some are accessible only to authenticated users.\n\u003c/p\u003e\n  \n#\n\n\u003ch2 id=\"techs\"\u003e\n  💻 | Technologies:  \n\u003c/h2\u003e\n\n  \u003e \u003ca href='https://nestjs.com/'\u003e \u003cimg width='40px' src='https://d33wubrfki0l68.cloudfront.net/e937e774cbbe23635999615ad5d7732decad182a/26072/logo-small.ede75a6b.svg'\u003e \u003c/a\u003e\n\n  \u003cbr\u003e\n\n\u003cp\u003e - Google APIs\u003c/p\u003e\n\u003cp\u003e - Google Auth\u003c/p\u003e\n\u003cp\u003e - JavaScript\u003c/p\u003e  \n\u003cp\u003e - TypeScript\u003c/p\u003e\n\u003cp\u003e - NodeJS\u003c/p\u003e\n\u003cp\u003e - NestJS\u003c/p\u003e\n\u003cp\u003e - Prisma\u003c/p\u003e\n\u003cp\u003e - Fastfy\u003c/p\u003e\n\u003cp\u003e - CORS\u003c/p\u003e\n\u003cp\u003e - JWT\u003c/p\u003e\n\u003cp\u003e - zod\u003c/p\u003e\n\u003cp\u003e - short-unique-id\u003c/p\u003e  \n\u003cp\u003e - .env variables\u003c/p\u003e\n\n\u003cbr\u003e\n\u003e Among Others...\n\n#\n\n\u003ch2 id=\"run-project\"\u003e \n   👨‍💻 | How to use\n\u003c/h2\u003e\n\n### Open your Git Terminal and clone this repository\n\n```git\n  $ git clone \"git@github.com:Samuel-Ricardo/bolao-da-copa_api.git\"\n```\n\n### Make Pull\n\n```git\n  $ git pull \"git@github.com:Samuel-Ricardo/bolao-da-copa_api.git\"\n```\n\n\nYou need to have `NodeJS` on your machine and a package manager (`npm`, `yarn`, or other...) to interpret the code and install the dependecies.\n\n\u003e \u003ca target=\"_blank\" href=\"https://nodejs.org/en/\"\u003e \u003cimg width=\"48px\" src=\"https://cdn.jsdelivr.net/gh/devicons/devicon/icons/nodejs/nodejs-original.svg\" /\u003e \u003c/a\u003e\n\n\n```bash\n  \n  # To install all the dependencies \n  $ yarn  \n  $ npm install\n\n  # To run the project\n  $ yarn run dev\n  $ npm run dev\n\n```\n\n#\n\n\u003ch2 id=\"autor\"\u003e\n  :octocat: | Author:  \n\u003c/h2\u003e\n\n\u003e \u003ca target=\"_blank\" href=\"https://www.linkedin.com/in/samuel-ricardo/\"\u003e \u003cimg width=\"350px\" src=\"https://github.com/Samuel-Ricardo/bolao-da-copa/raw/main/readme_files/IMG_20220904_220148_188.jpg\"/\u003e \u003cbr\u003e \u003cp\u003e \u003cb\u003e - Samuel Ricardo\u003c/b\u003e \u003c/p\u003e\u003c/a\u003e\n\n\u003ch1\u003e\n  \u003ca herf='https://github.com/Samuel-Ricardo'\u003e\n    \u003cimg src='https://img.shields.io/static/v1?label=\u0026message=Samuel%20Ricardo\u0026color=black\u0026style=for-the-badge\u0026logo=GITHUB'\u003e \n  \u003c/a\u003e\n  \n  \u003ca herf='https://www.instagram.com/samuel_ricardo.ex/'\u003e\n    \u003cimg src='https://img.shields.io/static/v1?label=\u0026message=Samuel.ex\u0026color=black\u0026style=for-the-badge\u0026logo=instagram'\u003e \n  \u003c/a\u003e\n  \n  \u003ca herf='https://twitter.com/SamuelR84144340'\u003e\n    \u003cimg src='https://img.shields.io/static/v1?label=\u0026message=Samuel%20Ricardo\u0026color=black\u0026style=for-the-badge\u0026logo=twitter'\u003e \n  \u003c/a\u003e\n  \n   \u003ca herf='https://www.linkedin.com/in/samuel-ricardo/'\u003e\n    \u003cimg src='https://img.shields.io/static/v1?label=\u0026message=Samuel%20Ricardo\u0026color=black\u0026style=for-the-badge\u0026logo=LinkedIn'\u003e \n  \u003c/a\u003e\n\u003c/h1\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsamuel-ricardo%2Fbolao-da-copa_api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsamuel-ricardo%2Fbolao-da-copa_api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsamuel-ricardo%2Fbolao-da-copa_api/lists"}