Giter Club home page Giter Club logo

channel-package-service's Introduction

Sistema de Operadora de Canais

O Sistema de Operadora de Canais é uma aplicação desenvolvida para permitir aos usuários a gestão de contas, assinaturas de pacotes de canais, emissão de faturas, realização de pagamentos, assinatura de promoções por tempo determinado e requisição de visitas técnicas para instalação ou manutenção de equipamentos. Esse projeto foi desenvolvido com arquitetura de micro serviço na qual cada um tem sua responsabilidade, este serviços são pacotes, assinaturas, fatura, pagamento, visita técnica e promoções;

  1. Microserviço de Pacotes (este repositório se trata desse serviço) Este microserviço lida com a gestão dos pacotes de canais oferecidos pela operadora.

Funcionalidades

  • 🪙 Visualização de Pacotes: Os usuários podem visualizar os pacotes disponíveis, detalhando os canais incluídos, preços e condições.
  • 🔒 Criar pacotes com canais selecionados.
  • 📦 Conversar com o micro serviço de faturas para fornecer os valores dos canais.

Pré-requisitos

Antes de iniciar, certifique-se de ter as seguintes dependências instaladas:

  • Java Development Kit (JDK) - Versão 17 ou superior.
  • Maven

Configuração

  1. Criar um fork do repositorio: obs: É importante que você faça o "fork" do projeto e não um "clone", se estiver com dúvidas sobre fork leia aqui.

print fork

O objetivo do Fork é criar uma cópia do repositório na sua conta do GitHub, permitindo que você trabalhe nele sem afetar o projeto principal. É importante lembrar que você nunca deve enviar Pull Requests diretamente para o repositório principal do projeto, pois isso não é permitido pelo sistema. Após o Fork, você terá um repositório com o seguinte nome: seu_nome_de_usuario/Channel-Package-Service.

  1. Agora que você fez o fork do repositório, é hora de cloná-lo para sua máquina local. Para fazer isso, vá para o seu repositório recém-criado na sua conta GitHub (lembre-se de que ele deve ter o seu_nome_de_usuario/Channel-Package-Service). Em seguida, clique no botão "Code" e copie o link do repositório usando o botão "Copy" ao lado.

Clonar um repositório significa baixa-lo para a sua máquina mantendo uma conexão com o GitHub

  git clone https://github.com/seu_nome_de_usuario/Channel-Package-Service
  cd Channel-Package-Service
  1. Subir os container necessário:
  docker-compose up
  1. Hora do pull request, após dar o git push, ao abrir o seu repositório fork na página do GitHub, você notará que existe uma mensagem logo no topo assim como essa:

Vendo isso, clique no botão "Compare & pull request", isso começara o processo de abertura de uma PR(Pull Request) e lembre se de apontar sempre para a branch dev do projeto Channerl Package Service.

Lembre se de colocar o título conforme o tipo da tarefa, uma mensagem que descreva o que você fez.

Tecnologias Utilizadas

  • 💻 Linguagem de Programação: Java 17
  • 💻 Framework: Spring Boot
  • 💻 Banco de dados: mySql

Maiores Desafios

  • Manipular dados;
  • Aplicação de design SOLID;

Grupo

  • Renara Secchim
  • Camila Cerqueira
  • Luciana Mendes
  • Felicianne Nogueira
  • Carol Thiengo

channel-package-service's People

Contributors

ar3secchim avatar camicerqueira avatar

Watchers

 avatar

channel-package-service's Issues

Comunicação entre Microserviço de Promoção

Descrição:
Esta task visa estabelecer uma comunicação entre o microserviço de promoção. O objetivo é permitir que o microserviço de pacotes consulte o microserviço de promoção para determinar se há promoções em andamento que possam afetar o valor a ser processado.

Tarefas Específicas:

  • Conversa com o Squad do Microserviço de Promoção:
    Iniciar uma conversa com o squad do microserviço de promoção para entender como o serviço opera, quais informações são necessárias e como a comunicação pode ser otimizada.

  • Elaboração do Contrato:
    Desenvolver um contrato detalhado que defina os parâmetros da comunicação entre o microserviço de promoção. Isso inclui o formato da request, os dados a serem enviados, o endpoint utilizado, e o formato esperado na response.

  • Definir Mecanismo de Comunicação:
    Determinar como a comunicação será realizada entre os dois serviços. Isso pode envolver uma abordagem baseada em requisições HTTP, mensageria assíncrona, ou outro método, dependendo dos requisitos e das preferências técnicas das equipes envolvidas.

Listagem de Canais de um Pacote Específico

Obs: essa tasks é uma comunicação de assinatura e pacotes

Descrição:
Estas tasks têm como objetivo desenvolver a funcionalidade de listar os canais associados a um pacote específico no sistema.

Tarefas Específicas:

  • Implementação da Lógica no Microserviço de Pacotes:
    Desenvolver a lógica no microserviço de pacotes para processar a requisição de listagem de canais de um pacote específico. Isso inclui a recuperação das informações dos canais associados ao pacote.

Criação de Tabelas no Banco de Dados

Descrição:
Estas tasks têm como objetivo criar as tabelas necessárias no banco de dados para suportar as entidades definidas no desenvolvimento do microserviço de pacotes.

Tarefas Específicas:

  • Task: Criar Tabela de Pacotes
    Esta task tem como objetivo criar a tabela que armazenará as informações dos pacotes oferecidos pela operadora.
    Comando SQL:
CREATE TABLE Pacote (
    IDPacote VARCHAR(255) PRIMARY KEY,
    Nome VARCHAR(255),
    -- Outros campos conforme necessário
);
  • Task: Criar Tabela de Canais
    Esta task tem como objetivo criar a tabela que armazenará as informações dos canais oferecidos pela operadora.

Comando SQL:

CREATE TABLE Canal (
    IDCanal VARCHAR(255) PRIMARY KEY,
    Nome VARCHAR(255),
    Categoria VARCHAR(255),
    -- Outros campos conforme necessário
);

Criação de um Pacote

Descrição:
Estas tasks têm como objetivo desenvolver a funcionalidade de criação de um pacote no sistema. Isso envolve a definição de requisitos e a garantia de que a criação seja refletida de maneira consistente em todo o ecossistema.

  • Definição de Requisitos para o Novo Pacote:
    Estabelecer os requisitos específicos para a criação de um novo pacote, incluindo informações sobre canais associados, preço, e qualquer condição especial.

  • Conversa com o Canais:
    Canais para entender como as informações sobre canais são gerenciadas e como podem ser associadas a um novo pacote.

  • Comunicação com Outros Microserviços:
    Se necessário, estabelecer a comunicação com outros microserviços, como o de faturas, para garantir que a criação do pacote seja refletida corretamente em outros processos do sistema.

Definição de Entidades

Descrição:
Esta task tem como objetivo criar as entidades necessárias para suportar os comportamentos iniciais do microserviço de pacotes.

Tarefas Específicas:

  • Entidade de Pacote:
    Definir uma entidade que represente as características essenciais de um pacote, incluindo informações sobre canais associados, preço, condições especiais, e qualquer outra propriedade relevante.

  • Entidade de Canal:
    Estabelecer uma entidade que represente informações sobre os canais oferecidos pela operadora, incluindo nome, categoria e outras características relevantes.

  • Contratos e Relacionamentos:
    Determinar os relacionamentos entre as entidades, garantindo que a associação entre pacotes e canais seja eficiente e represente corretamente a estrutura do serviço.

Modelagem de Entidades:
Entidade de Pacote:

- ID: string (identificador único do pacote) para db
- Sku: identificador de DTO
- Nome: string (nome descritivo do pacote)
- Canais: lista de Canais (canais associados ao pacote)
- Preço: bigDecimal (valor do pacote)
- Condições Especiais: string (informações sobre condições especiais, se aplicável)
- ... (outros campos conforme necessário)

Entidade de Canal:

- ID: string (identificador único do canal)
- Sku: identificador de DTO
- Nome: string (nome descritivo do canal)
- Categoria: string (categoria à qual o canal pertence, ex.: esportes, entretenimento, etc.)
- ... (outros campos conforme necessário)

Contrato entre Microserviço de Fatura

Descrição:
Esta task tem como objetivo estabelecer um contrato o microserviço de pacotes e o microserviço de fatura. A comunicação entre esses dois serviços será realizada por meio de uma request, na qual o microserviço de pacotes receberá uma lista de pacotes enviada pelo microserviço de fatura. A resposta deve incluir uma lista de valores associados a esses pacotes, considerando também se algum pacote está atualmente em promoção.

  • Conversa com o Squad do Microserviço de Fatura
    Iniciar uma conversa com o squad do microserviço de fatura para compreender os requisitos específicos e garantir que ambas as equipes estejam alinhadas quanto à comunicação entre os serviços.

  • Elaboração do Contrato:
    Desenvolver um contrato detalhado que defina os parâmetros da comunicação entre o microserviço de pacotes e o microserviço de fatura. Isso deve incluir a estrutura da request, os dados a serem enviados e os formatos esperados na resposta.
    Possível contrato:

A ideia é ser uma chamada REST assíncrona.
image

  • Integração com o Microserviço de Promoções: #3
    Conversar com o squad do microserviço de promoções para garantir que a resposta do microserviço de pacotes inclua informações sobre promoções atuais, se aplicável.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.