{"id":28827985,"url":"https://github.com/pereirar3/test-rota-oeste-backend","last_synced_at":"2026-02-04T07:38:18.777Z","repository":{"id":261862167,"uuid":"855465637","full_name":"pereiraR3/Test-Rota-Oeste-BackEnd","owner":"pereiraR3","description":"Proposta de solução Back-End para o Desafio Prático","archived":false,"fork":false,"pushed_at":"2024-11-08T22:34:27.000Z","size":23182,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-19T04:38:34.680Z","etag":null,"topics":["api-rest","back-end-development","csharp","dotnet-core","oauth2"],"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/pereiraR3.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-09-10T23:05:24.000Z","updated_at":"2025-06-05T18:00:48.000Z","dependencies_parsed_at":"2025-01-21T01:40:34.362Z","dependency_job_id":"f0437a1b-1ff0-46ac-a90e-226bb45c2d5b","html_url":"https://github.com/pereiraR3/Test-Rota-Oeste-BackEnd","commit_stats":null,"previous_names":["pereirar3/rota-oeste-backend"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/pereiraR3/Test-Rota-Oeste-BackEnd","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pereiraR3%2FTest-Rota-Oeste-BackEnd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pereiraR3%2FTest-Rota-Oeste-BackEnd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pereiraR3%2FTest-Rota-Oeste-BackEnd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pereiraR3%2FTest-Rota-Oeste-BackEnd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pereiraR3","download_url":"https://codeload.github.com/pereiraR3/Test-Rota-Oeste-BackEnd/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pereiraR3%2FTest-Rota-Oeste-BackEnd/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265436811,"owners_count":23765038,"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":["api-rest","back-end-development","csharp","dotnet-core","oauth2"],"created_at":"2025-06-19T04:32:15.024Z","updated_at":"2026-02-04T07:38:18.751Z","avatar_url":"https://github.com/pereiraR3.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Rota-Oeste-BackEnd\n\n## Visão Geral\n\nEste projeto é o backend da solução integrada de comunicação para a empresa Rota Oeste. Desenvolvido em **.NET Core**, o sistema oferece uma API robusta para gerenciamento de checklists e comunicação via WhatsApp, permitindo que a Rota Oeste interaja com clientes e parceiros de forma eficiente e centralizada. Integrado com a **API WhatsApp do Twilio** e conectado ao banco de dados **SQL Server**, o sistema garante alta escalabilidade, segurança e confiabilidade.\n\n## Proposta do Projeto\n\nO backend foi desenvolvido para atender às necessidades de comunicação e controle da Rota Oeste. As principais funcionalidades incluem:\n\n- **Gestão de checklists e interações**: Possibilita a criação, edição e exclusão de checklists, permitindo monitoramento de atividades.\n- **Integração com WhatsApp via Twilio API**: Facilita o envio e recebimento de mensagens para comunicação direta com clientes.\n- **Geração de relatórios e insights**: Oferece dados detalhados sobre interações, ajudando na análise de desempenho e na tomada de decisões.\n\n## Tecnologias Utilizadas\n\n| Tecnologia      | Descrição                                                                                       |\n|-----------------|-------------------------------------------------------------------------------------------------|\n| .NET Core       | Framework de backend utilizado para criar uma API RESTful segura e de alto desempenho.          |\n| SQL Server      | Sistema de Gerenciamento de Banco de Dados Relacional, garantindo segurança e integridade dos dados. |\n| API Twilio WhatsApp | Protocolo de comunicação para envio e recebimento de mensagens via WhatsApp.                  |\n\n## Arquitetura do Sistema\n\nO projeto adota o padrão de arquitetura **Model-View-Controller (MVC)**, que facilita a manutenção e escalabilidade, separando a lógica de negócios da interface de usuário. A arquitetura é reforçada com o uso de **OAuth 2.0** para autenticação e **CORS** para segurança da API, garantindo que somente usuários autorizados tenham acesso.\n\n## Funcionalidades Principais\n\n- **Gestão de Checklists**: Criação, edição e exclusão de checklists para monitoramento e controle de atividades.\n- **Gerenciamento de Interações**: Registro de todas as interações via WhatsApp, permitindo o acompanhamento do status de cada checklist.\n- **Geração de Relatórios**: Relatórios detalhados para análise das interações, identificando tendências e padrões para suporte em decisões estratégicas.\n\n## Regras de Negócio e Requisitos\n\n1. **Controle de Acesso**: Sistema com níveis de acesso (Administrador e Usuário Geral), onde o Administrador tem acesso completo e o Usuário Geral possui permissões restritas.\n2. **Gerenciamento de Interações e Checklists**: Todas as interações com os checklists são registradas para controle de status e continuidade, evitando duplicidade e garantindo histórico.\n3. **Segurança e Auditoria**: Logs de auditoria ativados no SQL Server para rastrear operações realizadas e garantir a segurança e integridade das informações.\n\n## Estrutura do Banco de Dados\n\nO banco de dados SQL Server foi projetado para suportar as operações do sistema de forma eficiente e segura. As principais tabelas incluem:\n\n1. **Usuário**: Gerencia informações dos administradores e usuários.\n2. **Cliente**: Representa entidades que interagem com o sistema via WhatsApp.\n3. **Checklist**: Documentos de controle criados pelos usuários para monitoramento de atividades.\n4. **Interação**: Registro das comunicações e status das respostas dos clientes aos checklists.\n5. **Questão e Resposta**: Representam as perguntas e respostas associadas aos checklists, permitindo um sistema de coleta de dados detalhado.\n\nPara mais detalhes sobre a estrutura do banco de dados e os relacionamentos entre as tabelas, consulte o [Dicionário de Dados](https://pt.overleaf.com/read/vdwdjvqvtwwr#5cba88).\n\n## DIAGRAMA ENTIDADE RELACIONAMENTO (DER)\n\n![der](assets/der.jpg)\n\n## Repositório Público\n\nO repositório público [Rota-Oeste-BackEnd](https://github.com/pereiraR3/Rota-Oeste-BackEnd) inclui:\n\n- **Código-fonte da API**: Código organizado por módulos, com camadas de controle, serviços e repositórios para manipulação de dados.\n- **Scripts de Banco de Dados**: Scripts SQL para criação das tabelas e estruturas necessárias no SQL Server.\n- **Configurações do Docker**: Arquivo Dockerfile e docker-compose configurados para facilitar o deploy e execução do sistema em contêineres, incluindo configuração do SQL Server e Twilio API.\n- **Exemplos de Uso da API**: Documentação sobre como utilizar as principais rotas da API para operações de CRUD nos checklists, interações e geração de relatórios.\n- **Testes Automatizados**: Testes unitários e de integração para validar a funcionalidade e a segurança da API, garantindo uma cobertura de código consistente.\n\n## Metodologia de Desenvolvimento\n\nO projeto segue a metodologia **Agile Scrum**, com entregas iterativas e incrementais. Cada sprint inclui desenvolvimento, testes e revisão das funcionalidades para garantir que o projeto atenda aos requisitos e mantenha a qualidade esperada.\n\n## Testes e Homologação\n\nPara garantir a qualidade e a confiabilidade do backend, foram implementados diversos testes:\n\n- **Testes Unitários**: Validam funções e métodos individualmente.\n- **Testes de Integração**: Verificam a interação entre diferentes partes do sistema e o banco de dados.\n- **Testes de Performance**: Avaliam a resposta da API sob condições de carga, garantindo que o sistema seja escalável.\n- **Testes de API**: Testam os endpoints para garantir que a API funcione conforme esperado.\n\n### Ferramentas de Teste\n\n- **Postman**: Utilizado para testes manuais de endpoints da API.\n- **xUnit**: Framework para testes automatizados no .NET, garantindo a consistência das funcionalidades.\n\n## Equipe de Desenvolvimento\n\nA equipe de backend foi responsável pela implementação do núcleo do sistema, incluindo lógica de negócios, integração com o banco de dados e configuração de segurança. Cada membro contribuiu para garantir a funcionalidade e confiabilidade do sistema.\n\n| Membro        | Função                | Contribuições                                           | Foto                                  |\n|---------------|-----------------------|---------------------------------------------------------|----------------------------------------|\n| André         | Back-End + DBA        | Estrutura do banco de dados, implementação da lógica de negócios e configuração de segurança do sistema. | ![André](equipe/andre.png)           |\n| Anthony       | Product Owner + Back-End + DBA | Coordenação do projeto, implementação da lógica de negócios central da API, Implementação de integrações com o Twilio e estrutura do banco de dados. | ![Anthony](equipe/anthony.png)       |\n| Vinícius      | Back-End + DBA        | Implementação de integrações com o Twilio, implementação da lógica de negócios e estrutura do banco de dados. | ![Vinícius](equipe/vinicius.png)     |\n\n## Links Úteis\n\n### Documentações\n\n- [Engenharia de Requisitos](https://pt.overleaf.com/read/frtcrbrscwgs#5915a5)\n- [Modelagem de Banco de Dados](https://pt.overleaf.com/read/vdwdjvqvtwwr#5cba88)\n- [Figma - Prototipagem](https://www.figma.com/design/nwaVccYxXjauVKnK2g10S5/Prototipagem---Desafio-da-Rota-Oeste?node-id=0-1\u0026t=mXpimYtfWCtENctq-1)\n\n---\n\nEsse README oferece uma visão completa e detalhada do backend, com informações sobre as contribuições específicas de cada membro da equipe, além dos recursos disponíveis no repositório público. Essa estrutura facilita o entendimento do sistema e da participação de cada colaborador no projeto.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpereirar3%2Ftest-rota-oeste-backend","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpereirar3%2Ftest-rota-oeste-backend","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpereirar3%2Ftest-rota-oeste-backend/lists"}