Migração e Separação de Arquitetura – Backend Php para Node.js, Nes...


$500.00

Migração de um sistema legado em PHP para uma nova arquitetura baseada em Node.js e Next.js. O objetivo é separar a aplicação monolítica em um front-end e um back-end comunicando via API RESTful, utilizando NestJS com TypeORM como estruturação principal do backend. Buscamos um freelancer experiente para desenvolver e otimizar essa nova camada de API, garantindo escalabilidade, segurança e performance. Requisitos Técnicos - PHP 7/8 Avançado: Domínio em desenvolvimento nativo, sem frameworks, para integrar e refletir a estrutura atual do sistema legado. - MySQL: Experiência sólida na criação e otimização de queries e stored procedures, garantindo integridade e desempenho. - APIs RESTful: Sólidos conhecimentos na criação e consumo de APIs, utilizando boas práticas e padrões como Swagger/OpenAPI 3.0 para documentação. - NestJS & TypeORM: Utilização do NestJS para estruturar o backend e do TypeORM para gerenciar a conexão e operações com o banco de dados. - Testes Automatizados: Experiência com testes unitários e de integração para assegurar a qualidade da solução. - Ferramentas de Validação: Uso de class-validator e class-transformer para garantir a integridade dos DTOs. - Segurança de Aplicações: Práticas de proteção contra sql injection, validação de inputs, rate limiting, configuração de cors e gerenciamento de dados sensíveis. - Versionamento com Git: Conhecimento em sistemas de versionamento e integração contínua (ci/cd). Responsabilidades - Desenvolvimento da API RESTful: Criar endpoints seguros com autenticação JWT e estruturados com NestJS, integrando o TypeORM para operações com MySQL. - Gerenciamento de Sessões: Implantar estratégia stateless com JWT, onde cada usuário autenticado recebe um token com validade de 24 horas. Em caso de “lembrar de mim”, o token será revalidado, seja renovado com nova validade ou, se necessário, forçado a novo login. - Otimização de Queries: Desenvolver e otimizar queries para o MySQL, considerando a performance e segurança. - Tratamento de Erros e Logs: Implementar um sistema centralizado de logs capaz de integrar informações de todos os microserviços. Entre as soluções possíveis, destacam-se o uso de websocket com sistema de fila ou ferramentas como Sentry e Kibana. - Retry Connection no Banco de Dados: Configurar o TypeORM para adotar uma estratégia de retry com 5 tentativas e 3 segundos de delay entre cada tentativa. - Validações e Segurança dos DTOs: Utilizar class-validator e class-transformer para realizar uma validação robusta das requisições. - Migração Segura de Hashes: Ajustar a migração atual para refletir o uso de HASH com bcrypt, substituindo a instalação anterior de SHA1. A migração do trigger MD5 foi removida, uma vez que a criptografia agora ocorre na camada da aplicação. - Gestão de Dados Sensíveis: Manter a compatibilidade das senhas herdadas, implementando uma estratégia para solicitar a redefinição de senha (fluxo “esqueci minha senha”) ou, se necessário, um middleware que valide a lógica antiga e force a alteração para o novo padrão. - Implementação de Throttler: Configurar rate limiting para proteger os endpoints: Limite global de 10 requisições por minuto. Login limitado a 5 requisições por minuto. Registro limitado a 3 requisições por minuto. Retornar erro 429 quando o limite for atingido. - Documentação: Manter a documentação interativa dos endpoints utilizando Swagger/OpenAPI 3.0 e garantir que toda a documentação esteja atualizada e clara para o consumo do front-end. - Testes Automatizados: Desenvolver uma suíte de testes completa, abrangendo testes unitários e de integração para assegurar a confiabilidade da aplicação. Diferenciais - Experiência com Docker e containers - Familiaridade com pipelines de ci/cd e versionamento avançado com git - conhecimento em monitoramento e logging centralizado - experiência anterior com sistemas distribuídos e arquitetura de microserviços arquitetura e integração dos microserviços nossa solução é composta por diversos microserviços, cada um responsável por partes específicas do sistema: - system-gateway: atua como orquestrador, reunindo todos os serviços e expondo uma única api rest para acesso externo. Todos os pontos de acesso relacionados a HTTP ficam concentrados aqui. - System-auth: Microserviço responsável por toda a lógica de autenticação e validação de tokens. Conecta-se diretamente, via socket, ao serviço de usuários para buscar informações necessárias, sem reter lógicas de negócio da entidade usuário. - System-users: Gerencia o cadastro, edição, remoção e consulta de usuários. Responsável pelas migrations, entidades e controllers, permitindo que o módulo de usuários opere de forma independente. - System-shared: Biblioteca de código compartilhado para reunir utilitários e informações gerais que podem ser reutilizadas por outros serviços. Publicação e Integração: Em produção, os pacotes de cada microserviço poderão ser publicados em um npm registry privado, facilitando o acesso a tipos, funções e outros recursos de maneira modulada. Enquanto o gateway implementa controles como throttler, os demais serviços mantém suas lógicas de negócio descritivas e puras.Category: IT & ProgrammingSubcategory: Web developmentWhat is the scope of the project?: Medium-sized changeIs this a project or a position?: ProjectI currently have: I have specificationsRequired availability: As neededAPI Integrations: Other (Other APIs)Roles needed: Developer

Keyword: Docker

Price: $500.0

Secondary Price: $1000.0

MySQL PHP API

 

Adicionar diretório compartilhado no Azuracast

Olá! Estou testando o painel de streaming host Azuracast, que é open source. Preciso acrescentar uma função simples nele: um diretório compartilhado que só o administrador possa alterar. Ou seja, o usuário comum só poderá visualizar os arquivos mp3 e programar em sua pl...

View Job
Data Migration Between Databases with Docker and Python

Perform data migration from a PostgreSQL database to MySQL using Docker Compose to set up containers. Develop ETL scripts in Python to manage the extraction, transformation, and loading (ETL) process, including data cleaning to handle missing, duplicate, and inconsisten...

View Job
Desenvolvimento de Mvp para Fintech - Plataforma de simulação de cr...

Estamos buscando um desenvolvedor experiente para criar o MVP (Produto Mínimo Viável) da UseJusto, uma fintech inovadora focada em crédito justo para sub-bancarizados e microempreendedores. O projeto inclui o desenvolvimento do frontend, backend, APIs e infraestrutura, ...

View Job