{"id":21290006,"url":"https://github.com/guilhermecampellof/trybets-csharp","last_synced_at":"2025-03-15T16:12:04.874Z","repository":{"id":249175673,"uuid":"830263939","full_name":"GuilhermeCampelloF/trybets-csharp","owner":"GuilhermeCampelloF","description":"Aplicação back-end de um site de apostas, dividido em diferentes microsserviços de acordo com as funcionalidades. Projeto desenvolvido durante o curso de formação Full-Stack pela Trybe, na eletiva C#.","archived":false,"fork":false,"pushed_at":"2024-07-18T20:07:25.000Z","size":113,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-22T06:11:40.666Z","etag":null,"topics":["csharp","dockerfile","jwt-authentication","microservices"],"latest_commit_sha":null,"homepage":"","language":"C#","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/GuilhermeCampelloF.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-07-17T23:57:18.000Z","updated_at":"2024-07-18T20:11:22.000Z","dependencies_parsed_at":null,"dependency_job_id":"d728337f-a0bb-4354-82b0-f8124d0a99e4","html_url":"https://github.com/GuilhermeCampelloF/trybets-csharp","commit_stats":null,"previous_names":["guilhermecampellof/trybets-csharp"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GuilhermeCampelloF%2Ftrybets-csharp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GuilhermeCampelloF%2Ftrybets-csharp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GuilhermeCampelloF%2Ftrybets-csharp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GuilhermeCampelloF%2Ftrybets-csharp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GuilhermeCampelloF","download_url":"https://codeload.github.com/GuilhermeCampelloF/trybets-csharp/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243754094,"owners_count":20342542,"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":["csharp","dockerfile","jwt-authentication","microservices"],"created_at":"2024-11-21T12:44:20.684Z","updated_at":"2025-03-15T16:12:04.846Z","avatar_url":"https://github.com/GuilhermeCampelloF.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"## TRYBETS\n\nO projeto TryBets foi desenvolvido durante o curso de formação full-stack pela Trybe, na eletiva C#.\n\nA aplicação consiste no back-end de um site de apostas previamente implementado, no qual foram realizadas as divisões de certas funcionalidades em diferentes microsserviços, a depender de suas especificidades.\n\n- A entidade `Users` é responsável por armazenar os dados das pessoas usuárias;\n- A entidade `Teams` armazena os possíveis times que participarão de partidas;\n- A entidade `Matches` armazena cada uma das partidas com informações de data e horário, time A e time B (times que disputarão a partida), valor apostado em cada um dos times, se a partida foi finalizada e qual o time vencedor;\n- A entidade `Bets` por sua vez armazena informações das apostas realizadas com dados da pessoa usuária, a partida, o time apostado e o valor apostado;\n\nEsta `API` tem responsabilidade apenas de realizar o fluxo inicial de cadastrar novas pessoas usuárias, permitir que as mesmas se autentiquem, fornecer informações de times e partidas, realizar as apostas e atualizar as `odds` que são dinâmicas baseadas no valor apostado em cada time. Este site de apostas possui as `odds` (razão de ganho em uma aposta) atualizadas dinamicamente e não possui fins lucrativos, ou seja, o valor das apostas são inteiramente devolvidos às pessoas usuárias que apostaram.\n\nSegue abaixo o diagrama entidade-relacionamento:\n  \n![trybets-der](https://github.com/user-attachments/assets/89a9702f-6f01-42c7-905b-6355c27ba478)\n\nO banco de dados SQL Server dos microsserviços é o mesmo da aplicação monolítica, logo nenhuma alteração foi realizada nas models.\n\n## REQUISITOS:\n- Docker/Docker Compose\n- .NET SDK\n\nÉ possível testar todos os arquivos `Dockerfile` de uma vez executando o seguinte comando na raiz do projeto:\n\n```shell\ndocker compose -f \"docker-compose.microservices.yml\" up -d --build\n```\n\nPara conectar-se ao sistema de gerenciamento de banco de dados, utilize as seguintes credenciais:\n\n- `Server`: localhost\n- `User`: sa\n- `Password`: TryBets123456!\n- `Trust server certificate`: true\n\n⚠️ **Será necessário criar as migrations do seu banco de dados na aplicação monolítica e rodar a aplicação ao menos uma vez para que o seeder alimente a tabela Teams e Matches**\n\n## 📖 HABILIDADES TRABALHADAS 📖\n\n- Entendimento de uma arquitetura de microsserviços;\n- Interpretação de um código fonte já implementado;\n- Separação de responsabilidades de uma aplicação monolítica;\n- Criação de imagens docker de aplicações web;\n- Autenticação JWT;\n\n## IMPLEMENTAÇÕES REALIZADAS\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eMicrosserviço TryBets.Users\u003c/strong\u003e\u003c/summary\u003e\n\n- `TryBets.Users`: responsável pelo cadastro e login de pessoas usuárias\n    - `Fonte:` /src/TryBets.Users\n    - `Porta`: 5501\n    - `Rotas`:\n        - POST /user/signup\n        - POST /user/login\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eMicrosserviço TryBets.Matches\u003c/strong\u003e\u003c/summary\u003e\n\n- `TryBets.Matches`: responsável pela visualização de times e partidas\n    - `Fonte:` /src/TryBets.Matches\n    - `Porta`: 5502\n    - `Rotas`:\n        - GET /team\n        - GET /match/{finished}\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eMicrosserviço TryBets.Bets\u003c/strong\u003e\u003c/summary\u003e\n\n- `TryBets.Bets`: responsável pelo cadastro e visualização de apostas\n    - `Fonte:` /src/TryBets.Bets\n    - `Porta`: 5503\n    - `Rotas`:\n        - POST /bet\n        - GET /bet/{BetId}\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eMicrosserviço TryBets.Odds\u003c/strong\u003e\u003c/summary\u003e\n\n- `TryBets.Odds`: responsável pela atualização das odds de cada partida. Este microsserviço é novo e não é acessível ao site. Ele será utilizado pelo microsserviço TryBets.Bets e será chamado por este toda vez que uma nova aposta for cadastrada.\n    - `Fonte:` /src/TryBets.Odds\n    - `Porta`: 5504\n    - `Rotas`:\n        - PATCH /odd/{matchId}/{TeamId}/{BetValue}\n\u003c/details\u003e\n\n## ©️ DISCLAIMER\n\n\u003cdiv align=\"justify\"\u003e\nCom exceção das alterações destacadas acima no tópico \"implementações realizadas\", \u003cb\u003eTODOS OS DEMAIS ARQUIVOS\u003c/b\u003e foram desenvolvidos e estão sob responsabilidade da TRYBE, incluindo, mas não se limitando ao: código inicial pré-implementado, models, services, database, diagrama entidade-relacionamento do sistema e demais diretórios necessários para o funcionamento da aplicação.\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fguilhermecampellof%2Ftrybets-csharp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fguilhermecampellof%2Ftrybets-csharp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fguilhermecampellof%2Ftrybets-csharp/lists"}