About this project
it-programming / web-development
Open
Project overview
Estrutura do Projeto A estrutura do projeto utiliza divisão de módulos em projetos separados. Cada módulo utiliza a estrutura microsserviço usando DDD. Mais informações da estrutura na documentação oficial da microsoft: https://docs.microsoft.com/pt-br/dotnet/architecture/microservices/microservice-ddd-cqrs-patterns/ddd-oriented-microservice . Tecnologias 💻 • SQL Server • C# • ASP .NET/.NET Core • Node-JS • Bootstrap 4 • JQuery Fluxograma fluxograma_jetcontrol.png Banco SQL Server 💾 Os bancos são divididos entre 2 databases, sendo eles: Autentica – Fica todas a informações referentes a login, autenticação, permissões, inquilinos e usuários. Sistema – O restante do sistema fica nesse banco. Os dois bancos quase nunca interagem entre si com algumas exceções como ao criar inquilino no Autentica ele insere um inquilino na tabela AB00 do Sistema. A conexão entre eles é feita utilizando External Data Source devido a limitações de segurança do Azure. A lógica do sistema fica primariamente no banco de dados, sendo a maior parte da lógica de negócio realizada em procedures. As procedures seguem o padrão de nomenclatura “sp_TABELA_funcionalidade”. Micro Serviço Autenticador 🔒 Único micro serviço que se comunica com o banco de autenticação por questões de segurança. Basicamente todas as requisições que necessitem validar o token passarão por essa camada. É Responsável pela criação e administração de usuários, inquilinos e permissões. Permite o login do usuário e retorna um token, esse token contém todas as informações sobre o usuário incluindo acessos e identificação de qual inquilino este usuário pertence. Fornece uma api rest que interage com o orquestrador. Utiliza ASP.NET Core 3.2 com a estrutura DDD. Micro Serviço de Módulos 📁 Essa categoria inclui todos os micros serviços de módulos do sistema sendo bem similar ao micro serviço do autenticador. Também fornece uma interface de api rest para interagir com o orquestrador. Esses microsserviços não tem conhecimento algum sobre autenticação ou autorização, isso é lidado na camada de orquestrador. Tem contato com apenas o banco de sistema, tem como propósito ser uma API para cada módulo. Um micro serviço de módulo não deve influenciar outro, sendo possível aplicar atualizações sem influenciar o restante do sistema. Orquestrador 🚦 O orquestrador tem o proposito de agrupar todos os EndPoints dos micros serviços e disponibilizar uma interface REST das funcionalidades do sistema. Ele faz a ponte entre os micros serviços e o front end. Ele é responsável por fazer a distinção de inquilinos com base no token bearer recebido. Também é responsável por validar o token. Todas as APIs (Micro Serviços e Orquestrador) só podem ser acessadas pelo front end por questões de segurança. Aplicação Front End 🌐 Aplicação em node do front end. Responsável por armazenar o token do usuário utilizando sessões, não exibindo o token do usuário para o cliente final. É Responsável por renderizar os acessos que o usuário tem. Faz o roteamento da aplicação verificando se o usuário tem acesso a página acessada. Todas requisições feitas ao orquestrador são realizadas nessa camada. Client Side Front End 👨 Funciona em conjunto com a aplicação do front end porém é o que roda do lado do navegador do usuário. Não tem acesso a nenhuma informação sensível como token do usuário e faz requisições apenas a aplicação em node, não tendo contato algum com o orquestrador e micro serviços.
Category IT & Programming
Subcategory Web development
What is the scope of the project? Small change or bug
Is this a project or a position? Project
I currently have Not applicable
Required availability As needed
Roles needed Developer
Delivery term: July 01, 2023
Skills needed