Appearance
Tecnologias
Esta seção apresenta as principais tecnologias e plataformas adotadas no desenvolvimento e na operação do sistema Rentake. A seleção tecnológica visa atender aos requisitos funcionais e não funcionais, bem como facilitar a manutenção e evolução futura do sistema:
Front-end (Interface do Usuário)
Desenvolvido em Vue.js utilizando o framework Nuxt 3.x (framework web para criação de aplicações universais/SPA). Isso fornece uma interface dinâmica, responsiva e de fácil navegação aos usuários.
Estilização e UI
Tecnologias web padrão HTML5 e CSS3 (com uso de pre-processadores ou bibliotecas de UI conforme necessário) para garantir compatibilidade e acessibilidade. Design responsivo implementado com CSS flexbox/grid e media queries, eventualmente complementado por frameworks de CSS.
Back-end (Lógica de Aplicação)
Construído em Node.js usando o framework NestJS 10.x (arquitetura modular e suporte nativo a TypeScript). A linguagem primária do back-end é TypeScript 5.x, garantindo tipagem estática e maior robustez no desenvolvimento.
Banco de Dados
Sistema de gerenciamento de banco de dados PostgreSQL (versão 14 ou superior), escolhido por sua confiabilidade, recursos avançados (transações, procedures) e conformidade ACID, adequados para armazenar dados financeiros e cadastrais sensíveis. O modelo de dados é relacional, estruturado conforme as necessidades do negócio (ver seção Modelo de Dados).
ORM e Acesso a Dados
Utilização do Prisma ORM (v4.x) para interagir com o banco de dados de forma segura e produtiva, fornecendo mapeamento objeto-relacional, migrações de esquema versionadas e construção de consultas usando linguagem de alto nível.
APIs e Comunicação
O sistema expõe e consome APIs RESTful para as funcionalidades do back-end. A comunicação entre front-end e back-end se dá via HTTP/HTTPS em formato JSON. As integrações com serviços externos (pagamentos, e-mails) também são feitas via chamadas de API REST ou bibliotecas especializadas.
Autenticação e Autorização
Implementadas usando JWT (JSON Web Tokens) para autenticação stateless entre cliente e servidor. Cada usuário autenticado recebe um token que codifica suas credenciais/papéis, permitindo acesso às rotas autorizadas conforme seu perfil (RBAC).
Serviços Externos
Integração com serviços de terceiros para funcionalidades complementares: serviço de e-mail (SMTP ou API de envio de e-mails) para notificações e recuperação de senha; serviços de pagamento/Pix para geração de cobranças e confirmação de pagamentos (detalhado em APIs Externas).
DevOps e Implantação
Utilização de Docker (containers) para padronizar ambientes de execução (tanto desenvolvimento quanto produção), garantindo portabilidade. O controle de versão do código fonte é feito com Git (repositório GitHub), permitindo trabalho colaborativo e integração contínua.
Aplicativos Mobile e Desktop
A arquitetura web será complementada com portabilidade para outras plataformas: prevê-se o uso do Capacitor (ou similar) para empacotar a aplicação web em aplicativos móveis nativos (Android/iOS) e Electron para disponibilizar uma versão desktop, garantindo assim acesso multiplataforma aos usuários. Essas tecnologias reutilizam o front-end web, mantendo uma base de código unificada.
Em resumo, o stack tecnológico do Rentake privilegia tecnologias modernas, de código aberto e amplamente suportadas pela comunidade, equilibrando desempenho, segurança e facilidade de desenvolvimento. Essa configuração busca atender aos requisitos estabelecidos neste documento e permitir a evolução contínua do produto.