IAGO BRAGA BRAGA DA SILVA MANOEL JOSÉ DA SILVA JUNIOR
XXXX XXXXX XXXXX XX XXXXX XXXXXX XXXX XX XXXXX XXXXXX
DESENVOLVIMENTO DA PLATAFORMA WEB CONTRATO FEITO PARA GERAÇÃO DE CONTRATOS PARITÁRIOS ATÍPICOS
Ji-Paraná 2022
XXXX XXXXX XX XXXXX XXXXXX XXXX XX XXXXX XXXXXX
DESENVOLVIMENTO DA PLATAFORMA WEB CONTRATO FEITO PARA GERAÇÃO DE CONTRATOS PARITÁRIOS ATÍPICOS
Trabalho de Conclusão de Curso apresentado à Banca Examinadora do Centro Universitário São Lucas, Como requisito de aprovação para obtenção do Título de Bacharel em Sistemas de Informação.
Orientador: Prof. Esp. Xxxxxxx Xxxxxxxx Xxxxxxxx
Ji-Paraná 2022
AGRADECIMENTOS
Eu, Xxxx, sou grato aos meus pais, minha irmã e minha esposa que sempre me apoiaram, incentivaram e estiveram comigo durante essa trajetória, me cedendo a estrutura necessária para essa jornada.
Eu, Xxxxxx, agradeço a Deus por ter me ajudado e confortado nos momentos mais difíceis no decorrer desta formação, aos meus pais que incentivaram e apoiaram o início desta trajetória e aos professores que buscaram transpor o conhecimento imprescindível para a carreira profissional.
Ademais, agradecemos também ao nosso orientador, coordenador e ao professor especialista Xxxx Xxxxxxx Xxxxxxxxxx Xxxxxx, que tiveram paciência e disposição para nos auxiliar durante o percurso desse projeto para que fosse concluído com êxito, nos guiando sempre na direção correta.
Por fim, somos gratos a todos que participaram de alguma forma desse momento único de nossas vidas.
RESUMO
Esse presente trabalho tem como intento expor um projeto de plataforma Web em que é possível o usuário gerar contratos paritários atípicos pré-definidos com a finalidade de agilizar o andamento de uma negociação contratual e a realização do preenchimento de seus dados de uma forma mais acessível, sem a necessidade do usuário ter conhecimentos na área jurídica ou precisar de uma assessoria. Sendo assim, o site foi criado com base em diagramas de ferramentas de modelagem de software, tais como: o Astah Community e o BrModelo, com a tríade da web: HTML, CSS e JavaScript, na linguagem de script PHP e composer para gerenciamento dos pacotes, o framework Laravel, bem como o versionamento do código fonte na plataforma Github, a ferramenta Office 365 como provedor de e-mail, o plugin nicedit para a edição de texto e a conversão de documentos para arquivos pdf e docx com DOMpdf e PHPWord, além dos dados armazenados no banco de dados MySQL e a estilização das páginas serem formatadas pelo framework Bootstrap. Tudo isso para que se possa oferecer bons recursos e templates aos contratos específicos nos termos do trabalho abaixo. Outrossim, o funcionamento do site está descrito conforme as figuras ilustrativas ao decorrer do projeto revelando a sua usabilidade e a ação do usuário frente às suas necessidades. Ao utilizador, é desnecessário seu registro e autenticação na aplicação, solicitando o mínimo de informações pessoais precisas para a formalização do documento e seu envio através do seu endereço de e-mail, possibilitando assim, uma maior versatilidade.
Palavras-Chave: Contrato. Desenvolvimento. Modelagem de software. Laravel. Aplicação web.
ABSTRACT
This present work intends to presents a Web platform project in which is possible for the user to generate pre-defined atypical parity contracts with the purpose of expediting the progress of a contractual negotiation and filling in their data in a more accessible way, without the need for the user to have knowledge in the legal area or advice. Therefore, the site was created based on diagrams of software modeling tools, such as: Astah Community and BrModelo, with the web triad: HTML, CSS and JavaScript, in the script language PHP and composer for managing the packages, the Laravel framework, as well as source code versioning on the Github platform, the Office 365 tool as an email provider, the nicedit plugin for text editing and document conversion to PDF and docx files with DOMpdf and PHPWord , in addition to the data stored in the MySQL database and the styling of the pages being formatted by the Bootstrap framework. All of this to offer good resources and templates to specific contracts in the terms of the work below. Furthermore, the functioning of the site is described according to the illustrative figures during the course of the project, revealing its usability and the user's action in view of their needs. It is unnecessary for the user to register and authenticate in the application, requesting a minimum of accurate personal information to formalize the document and send it through their email address, thus allowing greater versatility.
Keywords: Contract. Development. Software modeling. Laravel. Web application.
LISTA DE FIGURAS
Figura 1 - Diagrama de Caso de Uso… 29
Figura 2 - Diagrama de Classes. 30
Figura 3 - Diagrama de Entidade e Relacionamento. 31
Figura 4 - Diagrama de Sequência de Eventos Gerar Contratos. 32
Figura 5 - Diagrama de Sequência de Eventos Registrar Tags. 32
Figura 6 - Diagrama de Sequência de Eventos Cadastrar Contratos. 33
Figura 7 - Tela da Página Inicial. 35
Figura 8 - Barra de menu do usuário convidado. 35
Figura 9 - Barra de menu do administrador 36
Figura 10 - Seção Pesquisar Contrato. 36
Figura 11 - Tela Registrar Administrador 37
Figura 12 - Tela Validar Usuário. 37
Figura 13 - Tela de Cadastro de Tags. 38
Figura 14 - Tela da Primeira Etapa do Cadastro de Contratos. 39
Figura 15 - Tela da Segunda Etapa do Cadastro de Contratos. 39
Figura 16 - Tela da Terceira Etapa do Cadastro de Contratos. 40
Figura 17 - Campo de Pesquisar Contrato para Edição. 40
Figura 18 - Tela Gerar Contratos. 41
Figura 19 - Modal para Informar o E-mail. 42
Figura 20 - Retorno de Sucesso na Tela de Mensagens. 43
Figura 21 - Retorno de Erro na Tela de Mensagens. 43
SUMÁRIO
INTRODUÇÃO 10
1. OBJETIVOS 12
1.1. OBJETIVO GERAL 12
1.2. OBJETIVOS ESPECÍFICOS 12
2. JUSTIFICATIVA 13
3. REFERENCIAL TEÓRICO 14
3.1. PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE 14
3.2. FERRAMENTAS DE MODELAGEM 14
3.2.1. Astah Community 14
3.2.2. Br Modelo 15
3.3. LINGUAGENS DE DESENVOLVIMENTO WEB 15
3.3.1. HTML 15
3.3.2. PHP 15
3.3.3. CSS 16
3.3.4. JavaScript 16
3.4. BIBLIOTECAS, EXTENSÕES E FRAMEWORKS 17
3.4.1. Bootstrap 17
3.4.2. JQuery 18
3.4.3. Laravel 18
3.4.4. Eloquent 19
3.4.5. Xdebug 19
3.4.6. DOMPdf 19
3.4.7. PHPWord 19
3.4.8. NicEdit 19
3.4.9. JetStream 20
3.4.10. Livewire 20
3.5. XAMPP 20
3.6. NODE.JS 21
3.7. COMPOSER 21
3.8. VISUAL STUDIO CODE 21
3.9. MYSQL 22
3.10. GITHUB 22
3.11. TAIGA 23
3.11.1. Kanban 23
3.12. PROVEDOR DE EMAIL OFFICE365 23
3.13. CACERT 23
3.14. PÚBLICO-ALVO 24
3.15. LEGISLAÇÃO DE CONTRATOS 24
3.15.1. Contrato e suas classificações 24
3.15.2. Contrato Paritário 25
3.15.3. Contrato Atípico 26
3.15.4. Contratos paritários mais utilizados 26
4. MATERIAIS E MÉTODOS 27
4.1. REQUISITOS FUNCIONAIS (RF) 27
4.2. REQUISITOS NÃO FUNCIONAIS (RNF) 27
4.3. DIAGRAMA DE CASO DE USO 28
4.4. DIAGRAMA DE CLASSES 29
4.5. DIAGRAMA DE ENTIDADE E RELACIONAMENTO 31
4.6. DIAGRAMA DE SEQUÊNCIA DE EVENTOS 31
5. RESULTADOS 34
5.1. SOBRE O SITE CONTRATO FEITO 34
5.2. INTERFACE DA PÁGINA INICIAL 35
5.2.1. Barra de menu da Tela Inicial 35
5.2.2. Filtro de Contratos na Tela Inicial 36
5.3. INTERFACE DE REGISTRO E LOGIN 36
5.4. INTERFACE DE CADASTRO DE TAGS 38
5.5. INTERFACE DE CADASTRO DE CONTRATOS 38
5.5.1. Tela para cadastrar contrato 39
5.5.2. Tela para pesquisar contrato 40
5.6. INTERFACE GERAR CONTRATOS 41
5.6.1. Gerar contratos 41
5.6.2. Mensagens 42
CONSIDERAÇÕES FINAIS 44
REFERÊNCIAS 45
GLOSSÁRIO 49
INTRODUÇÃO
Segundo Pamplona Filho (2005), “Todo cidadão, em cada momento de sua vida, celebra contratos, mesmo sem perceber-se disso, muitas vezes [...] Contratar, portanto, é uma conduta socialmente difundida e esperada.”
O presente trabalho apresenta a elaboração de uma ferramenta, ou seja, plataforma na Web que oferece uma solução para modelos prontos de contratos paritários atípicos. De acordo com Xxxxxxxx (2014), contratos paritários é o que se forma por elementos pares para estabelecer igualdade e os atípicos os quais definidos por Sanches (2004) como inominados, se afastam dos modelos legais, pois não são expressos diretamente pelo Código Civil e pelo Código Comercial, contudo, são permitidos juridicamente, em casos que respeitem, a lei e os bons costumes.
Os contratos também são definidos por Tartuce (2014) como “ato jurídico bilateral, dependente de pelo menos duas declarações de vontade, cujo objetivo é a criação, a alteração ou até mesmo a extinção de direitos e deveres de conteúdo patrimonial” (p. 18) e estes são muito presentes, no mundo das negociações, entre pessoas que precisam firmar compromissos com outras, mas com respaldo na lei.
Diante da busca pela solução para otimização do tempo nas relações sociais e comerciais, e que nos deparamos com diversas lacunas e escassez de ferramentas confiáveis para resoluções de problemas cotidianos, principalmente no meio jurídico que é tão requisitado e extremamente importante para vida em sociedade, entretanto carente de conteúdo sólido, claro e acessível às pessoas que desejam firmar contratos paritários.
A fim de contribuir com o corpo social, é de grande importância que esteja à disposição, uma ferramenta eficaz que atende a essa nova demanda sob um custo baixo, onde as pessoas inexperientes no ramo jurídico, poderão ter acesso a modelos pré-prontos de contratos específicos importantes para relações pessoais.
Com a plataforma, o usuário que não possui conhecimentos jurídicos , e não dispõe da assistência de um profissional especializado, poderá ter acesso facilmente
ao banco de contratos, com esse recurso, usá-lo para atender os objetivos dos envolvidos na negociação e tendo como base os princípios gerais do direito resguardados por lei.
1. OBJETIVOS
A seguir, serão listados os objetivos geral e específico proposto no trabalho.
1.1. OBJETIVO GERAL
Este trabalho de conclusão de curso tem como objetivo, desenvolver uma plataforma web, de fácil acesso, automatizada, e atualizada, capaz de fornecer uma solução a pessoas que desejam consolidar um acordo, e estabelecer vínculos de direitos e deveres expostos em contratos paritários atípicos prontos, com base no ordenamento jurídico, ainda que as partes não possuam conhecimento técnico ou legal para redigir os próprios documentos corretamente ou que demandem uma alternativa mais rápida e flexível aos métodos tradicionais.
1.2. OBJETIVOS ESPECÍFICOS
● Ampliar a usabilidade da interface do projeto, ao público inexperiente;
● Promover uma ferramenta de baixo custo ao utilizador;
● Propiciar um modo de preenchimento das informações mais eficiente;
● Fornecer contratos automatizados ao usuário;
● Identificar os contratos mais utilizados;
2. JUSTIFICATIVA
De acordo com Xxxxx, F. E. (2020), no meio jurídico existe a crescente necessidade de melhorar a produtividade e isso se torna um gargalo para a gestão desse setor. Devido ao alto acúmulo de processos e demandas, a eficácia dos procedimentos é reduzida. Em conformidade, Bombassaro (2019), defende que é visível a necessidade de ter ferramentas digitais para apoiar a gestão de documentos jurídicos devido à evolução da tecnologia, e “a aprovação legal do arquivamento e das assinaturas no ambiente online” a respeito da digitalização de documentos.
Além disso, Curi (2011) aduz que “a desigualdade sócio-econômica” traz dificuldades para parcela da população, que não desfruta de recursos econômicos, para “arcar com as despesas oriundas da demanda jurisdicional” ao acesso da justiça, e também, é importante, para superação destas desigualdades que impedem seu acesso.
Sendo assim, é essencial um sistema, na internet, que forneça ferramentas acessíveis e claros, no meio jurídico, para a formulação de contratos à pessoas leigas, sem conhecimento da área do direito, ou manipular instrumento de edição de texto e também auxiliar aos profissionais dessa área, que desejam agilidade e ganho de tempo.
3. REFERENCIAL TEÓRICO
Para o desenvolvimento da plataforma Web Contrato Feito foi necessário a utilização de vários recursos, que envolvem a definição de requisitos, projeto, implementação e implantação do site. Nesta seção é apresentado os métodos, ferramentas, plugins, extensões, bibliotecas e frameworks que contribuíram para a conclusão dos processos de desenvolvimento de software.
3.1. PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE
Todo processo tem como conceito uma sequência de ações que buscam alcançar alguma meta. Dessa forma, o mesmo pode ser usado para projetar, transformar, manter, criar, entre outros. Ou seja, aquilo que abrange algo relacionado à execução, na maioria das situações é considerado um procedimento (ENGHOLM, 2010).
Xxxxxxx Xxxxx, B. C. C (2006), a norma IEEE 1219 lista as seguintes fases que compõem o processo de desenvolvimento de software: Identificação, onde os requisitos são coletados e é definido as prioridades; Análise, que é feito um estudo de viabilidade das funcionalidades; Projeto, fase de modelagem do programa e do banco de dados; Implementação, desenvolvimento do código fonte com base na projeção; Testes, período de verificação de falhas e aceitação do cliente; Entrega, etapa de implantação do sistema.
3.2. FERRAMENTAS DE MODELAGEM
Nesta seção serão descritos as ferramentas que foram utilizadas, que estão presentes na fase de planejamento da plataforma web Contrato Feito, para a construção de modelos que representam a interação do usuário com o sistema, relacionamentos entre objetos, estrutura da definição do banco de dados e o comportamento das funcionalidades presentes no software.
3.2.1. Astah Community
Astah Community é uma ferramenta de modelagem de softwares UML (Unified Modeling Language) que surgiu a partir da necessidade de uma aplicação
mais “intuitiva”, capaz de ajudar os desenvolvedores a serem mais “produtivos”, inovando a forma de trabalho destes profissionais, organizando a estrutura lógica das aplicações em formatos visuais facilmente compreendidos. Desenvolvido pela empresa japonesa Change Vision, gerenciada pelo CTO Xxxxx Xxxxxxxx, engenheiro de software há mais de 20 anos (HIRANABE, 2022).
3.2.2. Br Modelo
Br Modelo é um software desenvolvido para o ensino de modelagem de banco de dados no Modelo Entidade Relacionamento, para bancos relacional, desenvolvida em 2005, totalmente gratuita e de código aberto (CANDIDO e MELLO, 2017).
3.3. LINGUAGENS DE DESENVOLVIMENTO WEB
Nesta seção é apresentado conceitos referentes às linguagens utilizadas para a criação da aplicação web, presentes na fase de implementação, que possuem diferentes propósitos dentro do código fonte. Para Xxxxxxxxx, M. C. (2021, p. 11): “Qualquer linguagem que o leitor possa vir a imaginar provavelmente já foi usada comercialmente para o desenvolvimento de sites em algum projeto”.
3.3.1. HTML
O HTML se tornou um padrão utilizado em toda a criação de páginas da internet, acompanhado das ferramentas CSS e JavaScript, em que é possível através de tags informar aos navegadores cada elemento do site para que pudessem o renderizar. Ele permite a criação de documentos estruturados em títulos, parágrafos, listas, links, tabelas, formulários e em muitos outros elementos nos quais podem ser incorporadas imagens e objetos como, por exemplo, uma animação ou vídeo (FLATSCHART, 2011, p. 9).
3.3.2. PHP
O PHP é uma linguagem de script open source (código aberto), desenvolvido em C, sendo destinada diretamente à programação web. Ele surgiu da necessidade de Xxxxxx xxxxxxx de monitorar os acessos a sua página pessoal. O script PHP foi
utilizado em uma aplicação cliente-servidor, sendo utilizado dentro do HTML da página web. Rasmus disponibilizou o código fonte da linguagem PHP, permitindo que outros programadores pudessem realizar modificações e implementações para constantes melhorias do pré-processador de hipertexto (CONVERSE, 2003, p. 2).
3.3.3. CSS
Segundo Eis, (2006), o CSS é o acrônimo de Cascading Style Sheets, que em sua tradução para o português seria “Folha de Estilo em Cascatas”, essa ferramenta permite ao desenvolvedor WEB estilizar a aparência das páginas de modo a melhorar a apresentação para os usuários da aplicação. Sua ideia foi propagada ainda no ano de 1994, por Hakon Lie, que visava facilitar a programação de sites, pois era necessário muito código em HTML para que pudesse chegar ao mesmo resultado do CSS. Desenvolvido pela W3C no ano de 1995, o CSS começou a ganhar forma, e entre 1997 e 1999 já estava sendo utilizado por muitos desenvolvedores da época.
Sua popularidade se deve, pela possibilidade de separar a estrutura de uma página do seu estilo em arquivos diferentes do código principal, essa característica possibilita que alterações na visualização sejam executadas sem risco de comprometer o conteúdo, protegendo o conteúdo do mesmo e afetando apenas a aparência. Sua integração ao HTML permite também que menos código seja utilizado, pois é possível referenciar num mesmo arquivo CSS várias tags por nome ou por classe, por exemplo (EIS, 2006).
3.3.4. JavaScript
JavaScript é uma linguagem de programação de alto nível, tipagem estática e fraca, mas que é muito poderosa utilizada em praticamente todos os sites existentes. Criada inicialmente pela empresa NetScape, adquirida posteriormente por outra empresa chamada Sun MicroSystem especificamente para a web (Silva, M. S., 2013).
É uma linguagem amplamente utilizada na web, pois está presente em todos os navegadores modernos que incluem o interpretador JavaScript, com o seu
desenvolvimento, se tornou uma linguagem de programação de uso geral, robusta e eficiente. Ela faz parte da tríade de tecnologias para desenvolvimento web: HTML, CSS, JavaScript (FLANAGAN, 2011).
"JavaScript é uma linguagem desenvolvida para rodar no lado do cliente, isto é, a interpretação e o funcionamento da linguagem dependem de funcionalidades hospedadas no navegador do usuário. Isso é possível porque existe um interpretador JavaScript hospedado no navegador.” (XXXXX, 2010, p. 23).
3.4. BIBLIOTECAS, EXTENSÕES E FRAMEWORKS
Além das linguagens de desenvolvimento web, foi essencial o uso de recursos que favorecem o processo de implementação, trazendo uma melhor qualidade da aplicação, redução de custos e tempo de produção.
Dessa forma, foram utilizados os seguintes recursos para contribuir na programação: Bibliotecas, conjunto de códigos para resolver problemas específicos; Extensões, estruturas usadas para criação de funções, que são classificadas como core, quando pertence a própria linguagem, bundled, que possui suporte pela linguagem e é habilitável, External, códigos que há dependências externas para utilização; Frameworks, coleção de ferramentas que formam modelos que servem de estrutura básica para a criação do software (BARRO, 2022; DIAS, 2022; HANASHIRO, 2020).
3.4.1. Bootstrap
Segundo a página oficial do Bootstrap (2022), o Bootstrap é considerado um framework CSS gratuito e de código aberto mais famoso para o desenvolvimento de websites. Quanto ao lançamento desse framework é afirmado que:
“Foi criado no Twitter em meados de 2010 por mdo e fat. Antes de ser uma estrutura de código aberto, o Bootstrap era conhecido como Twitter Blueprint. Após alguns meses de desenvolvimento, o Twitter realizou sua primeira Hack Week e o projeto explodiu à medida que desenvolvedores de todos os níveis de habilidade entraram sem nenhuma orientação externa. Ele serviu como guia de estilo para o desenvolvimento de ferramentas internas na empresa por mais de um ano antes de seu lançamento público e continua a fazê-lo hoje.” (BOOTSTRAP, 2022).
Esse framework, teve duas grandes versões em que foi reestruturado nas
versões v2 e v3 em que na versão 2 foram adicionados a responsividade opcionalmente, que é quando o site se adapta a resolução da janela e na versão 3 a responsividade foi implementada por padrão a abordagem mobile first (BOOTSTRAP, 2022).
3.4.2. JQuery
Xxxxxxx Xxxxx, M. S. (2013) JQuery é uma biblioteca muito utilizada por programadores JavaScript. Foi desenvolvida por Xxxx Xxxxx redigida sob a licença de Massachusetts Institute of Technology (MIT) e General Public License (GNU), dando a oportunidade de que o código pudesse ser disponibilizado para uso comercial ou pessoal de forma gratuita.
“Simplicidade é a palavra-chave que resume e norteia o desenvolvimento com jQuery. Linhas e mais linhas de programação JavaScript escritas para obter um simples efeito em um objeto são substituídas por apenas algumas, escritas com sintaxe jQuery. Intrincados e às vezes confusos códigos JavaScript destinados a selecionar um determinado elemento HTML componente da árvore do documento são substituídos por um simples método jQuery.” (v, 2013, p. 26)
3.4.3. Laravel
Laravel é um framework completo para PHP utilizado para facilitar a codificação e agilizar o desenvolvimento das aplicações WEB. Laravel é definido em seu site oficial como sendo “um framework de aplicação web com sintaxe expressiva e elegante. Nós já lançamos as bases - liberando você para criar sem se preocupar com as pequenas coisas” (LARAVEL, 2022b).
Construído sobre a filosofia MVC de programação, para melhor organização de seus códigos e manutenção. O Framework Laravel oferece muitos recursos como telas prontas e funcionais em que podemos modificar e adaptar ao nosso projeto de maneira simplificada. Laravel é uma ótima ferramenta para o desenvolvimento web de qualidade e em tempo reduzido com uma boa documentação e suporte de sua comunidade (GABARDO, 2017, p. 12).
3.4.4. Eloquent
A documentação oficial do framework Laravel, apresenta o Eloquent como um ORM (Object-Relational Mapping) que é uma camada de abstração usada para facilitar a interação com o banco de dados utilizando models para atuar nas tabelas. É um recurso muito popular do framework Laravel. Através dele é possível realizar consultas completas ao banco de dados de maneira simples com o mínimo de codificação (LARAVEL, 2022a).
3.4.5. Xdebug
Xdebug é uma ferramenta utilizada para realizar a depuração de um código fonte para mitigar erros ou problemas derivados do desenvolvimento da aplicação. Trata-se de uma extensão do PHP voltado para projetos web (XDEBUG, 2022).
3.4.6. DOMPdf
A documentação oficial da ferramenta DOMPdf o define como sendo um layout HTML compatível com CSS 2.1 e mecanismo de renderização escrito em PHP que renderiza documentos de folha de estilo de fontes externas, tags de estilo inline e os atributos de estilo de elementos HTML individuais. Ele também suporta a maioria dos atributos HTML de apresentação (GITHUB, 2022a).
3.4.7. PHPWord
PHPWord é uma biblioteca escrita em PHP puro para projetos desta linguagem. Sua usabilidade consiste em facilitar a leitura e escrita de diferentes formatos de arquivos de documentos, como OOXML, ODF, RTF, HTML, e PDF através de classes PHP prontas. O projeto é de código aberto segundo a licença LGPL versão 3, e está disponível para uso em seu repositório oficial do GitHub, na versão v1.0.0, e foi publicado pela primeira vez em 12 de fevereiro de 2014 na versão v0.7.0 (XXXXXXX, 2018).
3.4.8. NicEdit
De acordo com o site e documentação oficial, XxxXxxx é um editor de textos, simples, rápido e leve, para aplicações web, multiplataforma e que pode ser
embutido no código fonte da página. É uma ferramenta para que desenvolvedores possam incluir em seu projeto, sem a necessidade de desenvolver uma ferramenta para que seus usuários possam escrever textos em seu site. NicEdit pode ser atribuído diretamente ou referenciado por link da internet. (NICEDIT, 2022)
3.4.9. JetStream
Jetstream é um pacote que permite a construção de uma aplicação web com muitas funcionalidades já inclusas, é um pacote de código fonte aberto e mantido e gerenciado pela equipe do framework Laravel, que pode ser utilizado em seu esqueleto base outras duas ferramentas que são o Livewire e o Inertia (JETSTREAM, 2022).
3.4.10. Livewire
A documentação oficial da ferramenta Livewire, o expõe como um framework pertencente à ferramenta Laravel, capaz de transformar o processo de desenvolvimento das interfaces gráficas mais eficientes, simples e elegantes. Seu foco é tirar o trabalho que existe ao desenvolver interfaces sem utilizar as ferramentas complexas como o Vue e transformar em algo simples sem perder o conforto do Laravel (LIVEWIRE, 2022).
3.5. XAMPP
Conforme o site oficial, o XAMPP, é a junção de várias ferramentas para laboratório web. Possui tecnologias conhecidas como o apache server, MySQL ou MariaDB e PHP disponíveis para vários sistemas operacionais. sua ideologia se baseia em juntar as ferramentas necessárias para o desenvolvimento das aplicações web localmente, de modo a agilizar a preparação do ambiente, pois os métodos antigos consistem na instalação individual de cada utilitário, inclusive sua configuração, o que além de tornar retardar o processo de construção do produto, tiraria o foco do projeto em questão. Funciona como um painel, onde se pode gerenciar os serviços das aplicações, além de atalhos para configurá-las. Com foco na produção, sem a complicação e desgaste de configurar todo o ambiente de desenvolvimento. (XAMPP, 2022)
3.6. NODE.JS
De acordo com Xxxxxxx (2015). Node.js é um runtime para a linguagem JavaScript que é muito utilizada no meio web. Desenvolvido por Xxxx Xxxx no ano de 2009, o Node.Js se destaca por ter a característica de requisições, feitas pelo usuário, não sejam bloqueantes, ou seja, seu tempo de execução é assíncrono orientado a eventos que permite que um processo não seja paralisado enquanto se utiliza um i/o no servidor, isso permite criar, com certa facilidade, aplicações de rede escaláveis.
Do mesmo modo, Xxxxxxx (2015) aduz que, no modelo mais clássico, bloqueante, presentes em outras linguagens de programação, os processos são enfileirados e executados sucessivamente e não podem ser processados simultaneamente e isso resulta em perda de performance no servidor, mantendo essa fila de requisições ociosas até que sejam processadas. Uma desvantagem é criada ao utilizar esse modelo, pois cria a necessidade de um upgrade de hardware para suprir a demanda quando há um aumento significativo nos acessos. O Node.Xx nasceu para combater esses problemas, visando a performance em relação ao uso de memória e processamento das requisições com seu modelo não bloqueante (Pereira, 2015).
3.7. COMPOSER
Composer é uma ferramenta de gerenciamento de dependências para a linguagem de programação PHP. Diferentemente dos gerenciadores de pacotes, como o pip ou npm, o composer, em sua documentação oficial, apenas gerencia as dependências no projeto, instalando ou atualizando, porém não globalmente, ou seja, por padrão, as dependências são instaladas somente no projeto em desenvolvimento. (COMPOSER, 2022)
3.8. VISUAL STUDIO CODE
Segundo a documentação oficial da ferramenta Visual Studio Code, conhecido também por VS Code, é um poderoso editor de códigos desenvolvido
pela Microsoft, multiplataforma, de código aberto e distribuído gratuitamente. O VS Code se enquadra na categoria IDE's, que são plataformas integradas para desenvolvimento que auxiliam os profissionais dessa área e facilitam a codificação dos softwares. Ele pode ser customizado com a instalação de plugins que permite o desenvolvimento para muitas linguagens de programação existentes, além de recursos extras para produtividade. Possui uma interface amigável e bonita, além de um visual mais limpo (VISUAL STUDIO CODE, 2022).
3.9. MYSQL
O banco de dados MySQL foi imprescindível para o armazenamento de informações pertinentes ao gerenciamento de contratos. Milani (2006, p.22) explica que:
MySQL é um servidor e gerenciador de banco de dados (SGBD) relacional, de licença dupla (sendo delas de software livre), projetado inicialmente para trabalhar com aplicações de pequeno e médio portes, mas hoje atendendo a aplicações de grande porte e com mais vantagens do que seus concorrentes. Possui todas as características que um banco de dados de grande porte precisa, sendo reconhecido por algumas entidades como o banco de dados open source com maior capacidade para concorrer com programas similares de código fechado, tais como SQL Server (da Microsoft) e Oracle.
O MySQL foi desenvolvido por Xxxxx Xxxxxx, Xxxxx Xxxxxxx e Xxxxxxx "Xxxxx" Xxxxxxxx na década de 1994. A empresa MySQL AB criadora do banco de dados MySQL foi adquirida no ano de 2008 pela Sun Microsystem. (MILANI, 2006)
3.10. GITHUB
Segundo a documentação oficial do GitHub (2022), “é uma plataforma de hospedagem de código para controle de versão e colaboração”, conta com mais de 94 milhões de desenvolvedores, mais de 4 milhões de organizações e 330 milhões de repositórios ativos. Nela é possível gerenciar o desenvolvimento do projeto, através de modificações que outros colaboradores podem sugerir ao desenvolvimento principal. Possui a confiança das organizações líderes mundiais, com o Pinterest, Stripe, KPMG, Mercedes-Benz, P&G e Telus (GITHUB, 2022).
3.11. TAIGA
O Taiga é uma aplicação web utilizada para a gestão de projetos, possuindo recursos que estão presentes no Scrum (metodologia de desenvolvimento ágil) e Kanban. Considerada a melhor ferramenta agile em 2015, na mesma é possível ter vários fluxos de trabalho, listar problemas do projeto, criar definições para a equipe no dicionário, gerenciar o progresso das tarefas, fazer importação de projeto feito em outras ferramentas, entre outras características (XXXXX.XX, 2022]).
3.11.1. Kanban
Para o gerenciamento do projeto, foi empregado o método kanban, disponibilizado na ferramenta Taiga. Segundo a TOTVS (2022), o Kanban é uma metodologia que melhora o fluxo das tarefas, que consequentemente passa a ter mais eficiência durante o desenvolvimento do trabalho.
O Kanban é representado por um quadro, onde normalmente possui três divisões, identificadas como “a começar”, “em andamento” e “finalizado”. Para representar o processo de uma atividade é utilizado um post-it que deve ser fixado de acordo com o estado da tarefa referente (TOTVS, 2022).
3.12. PROVEDOR DE EMAIL OFFICE365
É importante, para uma aplicação web, a utilização de um provedor de e-mail para o fornecimento de e-mails para seus clientes, com o office 365 é possível usar Outlook para ler e enviar emails do Yahoo, Gmail, Hotmail e outras contas de email além de permitir adicionar manualmente outra conta de email Outlook, em uma configuração mais avançada (MICROSOFT, 2022).
3.13. CACERT
Cacert é um certificado da função curl necessário para o envio de requisições fora do site do projeto, que utiliza criptografía ssl, para que a confiabilidade neles seja reconhecida e aceita, como por exemplo um envio de e-mail (STENBERG, 2022).
3.14. PÚBLICO-ALVO
No entendimento de Xxxxx, X. (2021), o público-alvo é considerado um conjunto de consumidores que possuem perfis semelhantes, tendo demandas e desejos que estão dentro de uma oferta atendida por determinada empresa. A especificação do público-alvo é imprescindível para que o empreendimento tenha bons resultados.
Segundo Xxxxx et al. (2021), o mercado eletrônico tem um público-alvo em permanente crescimento, devido a redução de custos nas compras e vendas de produtos e serviços. Ainda, o autor afirma que a seguridade proporcionada nas transações é outro estímulo para o aumento desse comércio.
O perfil de pessoas que fazem compras pela internet é definido da seguinte forma: Consumidores masculinos e femininos bem divididos; Em relação ao faturamento, representam 8% clientes que possuem até 24 anos, 23% são pessoas entre 25 e 34 anos, 38% aqueles entre 35 e 49 anos e 31% são compradores com mais de 50 anos; Quanto a região, o sudeste do Brasil detém mais que 62% das negociações; A maior parte dos clientes (33,4%) chegam a uma renda familiar de até 3 mil reais mensais (SANTOS, 2022).
3.15. LEGISLAÇÃO DE CONTRATOS
Nesta seção secundária, são apresentados conceitos e definições referentes aos contratos adequados para serem disponibilizados pela plataforma para geração de documentos pertinentes a negociações.
3.15.1. Contrato e suas classificações
Segundo o Instituto Brasileiro de Defesa do Consumidor (2011), um contrato é considerado a negociação firmada entre dois ou mais indivíduos, podendo estabelecer, alterar ou anular direitos. Um contrato escrito oferece efetiva seguridade do acordo feito pelas partes envolvidas, indicando os responsáveis e quais são seus deveres e obrigações.
Os contratos possuem várias classificações que identificam fatores que
caracterizam a formação do acordo, separados conforme a seguir: Qual parte é responsável pelos direitos e deveres estabelecidos; Qual lado é beneficiado; Quando ocorre o aperfeiçoamento do contrato; Quanto a forma que deve ocorrer a celebração; Quanto a possibilidade de negociação; Quanto ao seguimento de esboços determinados por lei; Quanto a dependência de outro documento; Quanto a capacidade de definir os efeitos do acordo; E em qual momento deve ser cumprido (XXXXXX, W. e XXXXXX, A. P., 2018).
Por meio de análises feitas através das definições apontadas por Xxxxxx, X. e Xxxxxx, A. P. (2018), foi possível concluir que a plataforma web Contrato Feito pode ser utilizada em quase todas as atribuições que classificam os contratos. Todavia, quanto à possibilidade de negociação é recomendado um contrato paritário, podendo ser discutido por todas as partes envolvidas, enquanto o outro tipo é mais utilizado por empresas. Além disso, a aplicação web favorece a administração de contratos atípicos, quanto ao regramento legal (esboço determinado), pois possibilita maior flexibilidade na determinação de regras.
3.15.2. Contrato Paritário
O contrato paritário consiste num instrumento particular bilateral em que as partes estão em condições de igualdade de negociação, assim, elas poderão estabelecer livremente as cláusulas contratuais, ou seja, fixar os pontos acordados que irão reger toda a relação pactuada entre eles. (PAMPLONA FILHO, 2005)
Ao passo que, Diniz (2010), aduz que os contratos paritários são aqueles em que as partes interessadas estão em pé de igualdade, ante o princípio da autonomia da vontade, por isso, discutem os termos do ato negocial, dessa maneira, eliminando os pontos divergentes mediante transigência mútua (DINIZ, 2010, p. 86).
Como se vê, os contratos do tipo clássico ou paritário são importantes por apresentar um período preliminar no qual as partes integrantes do negócio jurídico possam ajustar os termos do contrato no intuito de atender aos interesses deles (SALVATORI, 2014, p. 199).
3.15.3. Contrato Atípico
Segundo Xxxxxxx (2004), os contratos atípicos, também chamados de inominados, são aqueles que se afastam dos modelos legais, pois não são disciplinados ou regulamentados expressamente pelo Código Civil, ou pelo Código Comercial ou por qualquer lei específica. Entretanto, são permitidos juridicamente, desde que não contrariem a lei, os bons costumes e os princípios gerais de direito, dessa forma, as partes interessadas estarão em pé de igualdade, discutindo os termos do ato negocial, e eliminando os pontos divergentes mediante consentimento mútuo.
Assim também, elucida que os contratos atípicos decorrem da necessidade das partes na atividade negocial, já que impossível seria a regulamentação de todas as formas de relações intersubjetivas. Em decorrência disso, é certa a assertiva antes formulada de que os contratos atípicos decorrem da autonomia da vontade privada.
3.15.4. Contratos paritários mais utilizados
Segundo Xxxxxx (2019), os contratos paritários são previstos na legislação do Código Civil de 2002, presentes nos artigos 113 e 442, que estabelece princípios necessários para a formalização contratual. Os incisos dos artigos destacam que deve ser atribuído o sentido de boa-fé, honestidade, informação, lealdade, entre outros.
Esse tipo de contrato têm vários modelos de negociações que envolvem a compra e venda de produtos e serviços, dentre os mais utilizados estão: Aluguel de imóvel, considerado como uma locação; Prestação de serviços, considerado intangível e inseparável por ser produzido e usado em momentos iguais; Compra e venda de imóveis; Comodato, empréstimo gratuito de um bem não substituível; União estável, considera-se uma entidade familiar assim como no casamento, mas não altera o estado civil (ARAÚJO, 2019; XXXXXXX, 2021; XXXXXXX, 2021; SERENO, [s. d.]).
4. MATERIAIS E MÉTODOS
Esta seção apresenta os conceitos, objetivos e elaboração de diagramas que especificam a interação do usuário e dos objetos, definição das entidades e comportamento das funcionalidades que o software deve atender, auxiliando na fase de implementação.
4.1. REQUISITOS FUNCIONAIS (RF)
O Requisito Funcional tem por objetivo especificar os pedidos que foram solicitados pelos usuários e os levantamentos feitos pelas demais partes envolvidas no projeto, sendo descrito funcionalidades e recursos que o sistema tem que fornecer ao cliente (CANGUÇU, 2021).
A seguir é apresentado os requisitos funcionais que a plataforma web deve atender aos usuários convidados e administradores:
● RF1: A aplicação tem que possuir autenticação para validar acesso a conta de administração do site.
● RF2: A aplicação deve permitir ao administrador cadastrar novos usuários que terão permissões para gerenciar a plataforma web Contrato Feito;
● RF3: A aplicação deve permitir ao administrador cadastrar, pesquisar, atualizar e excluir tags de elemento HTML, que representam os campos de preenchimento dos contratos;
● RF4: A aplicação deverá permitir ao administrador cadastrar, pesquisar, atualizar e excluir modelos de contratos;
● RF5: A aplicação tem que possuir uma tela para gerar documentos através de algum modelo de contrato selecionado pelo usuário convidado (final);
4.2. REQUISITOS NÃO FUNCIONAIS (RNF)
Segundo Canguçu (2021), os Requisitos Não Funcionais especificam o comportamento que o sistema deve atender de acordo com os atributos de qualidade, que possuem regras e características como medidas que precisam ser consideradas no desenvolvimento do software. Ainda, esse tipo de requisito é levantado através das exigências que não são alcançadas pelas funcionalidades do
programa.
A seguir é demonstrado os requisitos não funcionais que devem ser atendidos no desenvolvimento da plataforma web:
● RNF1: A aplicação deve verificar se tem usuário autenticado para liberar acesso às telas administrativas;
● RNF2: A senha do usuário deve possuir criptografia;
● RNF3: A aplicação deve verificar as entradas, que especificam as tags do contrato a ser cadastrado, gerando um aviso caso tenha campos vazios ou alguma tag inexistente;
● RNF4: A aplicação tem que ter tratamento de falhas em todas as requisições submetidas pelos usuários;
● RNF5: Quando algum usuário clicar no contrato que deseja gerar, a plataforma deve fazer a leitura dos elementos informados no documento e depois adicioná-los dinamicamente na tela;
● RNF6: O local de preenchimento do contrato a ser gerado tem que ficar sublinhado quando o campo referente entrar em foco, ajudando a compreender a finalidade da tag que deve ser preenchida;
● RNF7: O contrato deve ser enviado ao email do usuário para que tenha um histórico de envios;
● RNF8: Todas as interfaces da plataforma web devem possuir responsividade, ajustando os elementos HTML de acordo com o tamanho da tela do dispositivo;
4.3. DIAGRAMA DE CASO DE USO
Segundo Xxxxxxxx (2011), o Diagrama de Caso de Uso (DCU) é importante para a compreensão das funcionalidades atendidas para um determinado ator, assim, é representado os comportamentos a serem executados com a solicitação do usuário.
De acordo com as funcionalidades disponíveis para o usuário final, não há necessidade de autenticação. Quando acessar a página inicial, o mesmo escolhe o contrato que pretende gerar e preenche os parâmetros solicitados pelo site.
O Caso de Uso do site desenvolvido atende conforme a Figura 1.
Figura 1 - Diagrama de Caso de Uso.
Fonte: Próprio autor, 2022.
A ilustração anterior apresenta elementos que formam o Caso de Uso, sendo definidos como: Atores, que cumprem a função de usuários ou entidades externas que interagem com o sistema; Associações, que são especificadas como: Inclusão, indicando uma obrigatoriedade de execução; Extensão, que tem como objetivo de apontar relações de uso facultativo; Herança, quando um ator herda o papel de outros personagens (XXXXXXXX, 2019).
4.4. DIAGRAMA DE CLASSES
O diagrama de classes é a modelagem referente à estrutura estática do software projetado, que representa os objetos relevantes que o constituem. O
mesmo ajuda a analisar as informações que definem o problema, identificando os componentes imprescindíveis para o desenvolvimento da aplicação (IBM, [s.d.]). A Figura 2 representa o diagrama de classes da plataforma Contrato Feito.
Figura 2 - Diagrama de Classes.
Fonte: Próprio autor, 2022.
4.5. DIAGRAMA DE ENTIDADE E RELACIONAMENTO
O Diagrama de Entidade e Relacionamento tem o objetivo de ilustrar as definições do banco de dados, sendo representado graficamente com as entidades, relacionamentos e atributos pertinentes para a solução proposta (LIBA, 2011).
A criação do Diagrama de Entidade e Relacionamento é representada a seguir na Figura 3.
Figura 3 - Diagrama de Entidade e Relacionamento.
Fonte: Próprio autor, 2022.
4.6. DIAGRAMA DE SEQUÊNCIA DE EVENTOS
Segundo Rezende (2006), o diagrama de sequência de eventos representa a interação entre os objetos, seguindo sequências de mensagens enviadas e recebidas durante a execução de uma funcionalidade. As Figuras 4, 5 e 6 demonstram os diagramas de sequência que ilustram os comportamentos das funcionalidades de gerar contratos, cadastrar tags e contratos, respectivamente.
Figura 4 - Diagrama de Sequência de Eventos Gerar Contratos.
Fonte: Próprio autor, 2022.
Figura 5 - Diagrama de Sequência de Eventos Registrar Tags.
Fonte: Próprio autor, 2022.
Figura 6 - Diagrama de Sequência de Eventos Cadastrar Contratos.
Fonte: Próprio autor, 2022.
5. RESULTADOS
5.1. SOBRE O SITE CONTRATO FEITO
A plataforma web Contrato Feito surgiu após ser observado uma escassez de ferramentas eficientes para a geração de contrato sem o intermédio de uma assessoria ou advocacia. Além disso, percebe-se a dificuldade na elaboração de um documento para firmar o cumprimento do serviço por meio das partes envolvidas, conforme a definição das diretrizes acordadas durante a negociação. Com isso, os responsáveis teriam um custo maior para a formalização do contrato.
O Contrato Feito foi projetado e desenvolvido visando atender atributos de qualidades que garantem a satisfação do usuário na utilização do site. Conforme Xxxxxxxxx, A. A. e Xxxxx (2012), os atributos de qualidade de um software estão presentes na ISO/IEC 9126, que intenta atender a confiabilidade, usabilidade, eficiência, portabilidade e manutenibilidade.
A plataforma web possui dois tipos de usuários que desempenham as seguintes funções: O administrador, sendo responsável pelo gerenciamento do contrato, onde primeiro tem que cadastrar as Tags excepcionais que não estão registradas. Depois disso, o mesmo pode informar o contrato com referência aos campos que devem ser preenchidos pelo usuário que vai gerar o documento. Na última etapa, devem ser informadas as propriedades que caracterizam o contrato. Nesse caso, há eficiência na gestão do documento e baixa de manutenção do código fonte; O usuário final, que não possui login, faz o preenchimento dos campos construídos de acordo com as Tags do contrato e depois submete para o envio dos anexos ao E-mail.
A principal razão para o produto ser desenvolvido em web é a acessibilidade proporcionada aos usuários, simplificando a aquisição e utilização da plataforma. Feito com responsividade, o site favorece sua usabilidade em vários tipos de dispositivos, podendo ser computador, notebook, tablet, celular ou qualquer outro dispositivo que tenha um navegador com suporte ao HTML5. Segundo Veloso (2010), em testes de compatibilidade dos navegadores, o Google Chrome é o mais recomendado para a navegação em sites com HTML5.
5.2. INTERFACE DA PÁGINA INICIAL
Com um dispositivo conectado à internet, o usuário pode entrar na plataforma através de um domínio hospedado em um provedor. Ao requisitar acesso ao site, é exibido a Página Inicial, onde há os acessos de acordo com o usuário convidado ou administrador. Na Figura 7 é demonstrado a tela mencionada.
Figura 7 - Tela da Página Inicial.
Fonte: Próprio autor, 2022.
5.2.1. Barra de menu da Tela Inicial
Quando o acesso a aplicação web não possuir administrador autenticado, os usuários finais, considerados convidados, não possuem direitos a funcionalidades de gestão da plataforma Contrato Feito. As opções liberadas são especificadas como: Sobre, que descreve o propósito da plataforma; Pesquisar, localizar um modelo específico; Formação, é enumerado os processos que constituem a formação do contrato; Vantagens, diferenciais que favorecem a utilização da plataforma; Conceito, definição de modelo de contrato; Contratos, caixa de combinação com todos contratos que podem ser gerados; Login, usado para autenticação do administrador. A Figura 8 exibe o menu do usuário convidado.
Figura 8 - Barra de menu do usuário convidado.
Fonte: Próprio autor, 2022.
Quando efetuado login, o administrador, herdeiro do usuário convidado, têm acessos administrativos e as mesmas opções mencionadas anteriormente. Esse usuário pode gerenciar tags, contratos e cadastrar novos usuários, conforme é apresentado na Figura 9.
Figura 9 - Barra de menu do administrador.
Fonte: Próprio autor, 2022.
5.2.2. Filtro de Contratos na Tela Inicial
Além da caixa de combinação na barra de menu, a opção Pesquisar é outra alternativa para encontrar o modelo de contrato adequado. Em uma seção na Página Inicial, todos os contratos estão listados e podem ser filtrados pelo campo de busca, como demonstra a Figura 10.
Figura 10 - Seção Pesquisar Contrato.
Fonte: Próprio autor, 2022.
5.3. INTERFACE DE REGISTRO E LOGIN
A autenticação do administrador foi implementada com o pacote Jetstream, que possui código fonte para login, validação de E-mail, registro, gerenciamento de
sessão, entre outros recursos. Novos administradores podem ser cadastrados pela tela de registro de usuários, conforme apresentado na Figura 11.
Figura 11 - Tela Registrar Administrador.
Fonte: Próprio autor, 2022.
Na Figura 12 é apresentada a tela de validação para o administrador entrar em uma sessão de usuário com direitos administrativos.
Figura 12 - Tela Validar Usuário.
Fonte: Próprio autor, 2022.
Depois que o usuário efetuar a validação, todas as funções administrativas
são liberadas. Além disso, é possível cadastrar novos administradores para ajudarem na gestão da plataforma.
No Jetstream, o registro é liberado apenas quando não há usuário autenticado. No entanto, o mesmo possui licença de código aberto, permitindo alteração no redirecionamento de rotas. Então foi possível alterar o acesso ao cadastro de usuários, para que apenas administradores tenham autorização para inserir outros editores.
5.4. INTERFACE DE CADASTRO DE TAGS
Antes de cadastrar um contrato, o responsável pelo site deve verificar se todas as informações preenchíveis do documento possuem as tags referentes. Em casos de ausência, é indispensável o cadastro da tag de acordo com os atributos necessários para a validação da informação preenchida no campo. Esse procedimento ocorre na interface de cadastro de tags, conforme é exibido na Figura 13.
Figura 13 - Tela de Cadastro de Tags.
Fonte: Próprio autor, 2022.
5.5. INTERFACE DE CADASTRO DE CONTRATOS
Posteriormente, para registrar um contrato é obrigatório seguir três etapas que são imprescindíveis para finalizar o cadastro do documento corretamente. Depois de cadastrado, o administrador pode atualizar as propriedades ou excluir o registro posicionado.
5.5.1. Tela para cadastrar contrato
Na primeira etapa tem uma área de texto para inserir o contrato, o mesmo deve conter o identificador “wyz” para indicar os locais que vão ser preenchidos pelos usuários convidados, à exemplo da Figura 14.
Figura 14 - Tela da Primeira Etapa do Cadastro de Contratos.
Fonte: Próprio autor, 2022.
Na segunda etapa, o site vai gerar as caixas de combinação com uma lista de tags, onde deve ser informado quais são os campos referentes a cada preenchimento. Antes da submissão, a plataforma verifica se todos os parâmetros estão informados e valida a existência das Tags digitadas. Na Figura 15, é exemplificado a vinculação das Tags no documento.
Figura 15 - Tela da Segunda Etapa do Cadastro de Contratos.
Fonte: Próprio autor, 2022.
Na última etapa, o administrador insere as informações referentes às propriedades que definem o contrato. O nome do documento é considerado único e obrigatório, e a imagem possui um arquivo padrão, caso outra ilustração não tenha sido informada pelo usuário. Na Figura 16, é demonstrado a finalização do contrato.
Figura 16 - Tela da Terceira Etapa do Cadastro de Contratos.
Fonte: Próprio autor, 2022.
5.5.2. Tela para pesquisar contrato
Na tela da primeira etapa do cadastro de contratos, tem um campo de pesquisa com sugestões de registros para buscar. Quando é selecionado e apertado “Enter” a plataforma direciona para a edição ou exclusão do contrato pesquisado. O site identifica que há um registro posicionado e habilita os botões para atualizar e excluir o documento. O campo de pesquisa é apresentado conforme exposto na Figura 17.
Figura 17 - Campo de Pesquisar Contrato para Edição.
Fonte: Próprio autor, 2022.
5.6. INTERFACE GERAR CONTRATOS
5.6.1. Gerar contratos
Depois que o usuário convidado clicar no modelo de contrato adequado para a sua necessidade, o site detecta o nome do documento e encaminha uma requisição para o controlador responsável por gerar os contratos.
Com a requisição recebida, a classe efetua uma consulta dos dados do contrato, identifica as tags presentes no documento, gera os elementos de acordo com as propriedades de cada tag, e cria uma variável auxiliar que adequa o texto do contrato para facilitar a compreensão do campo na tela. Por último, a página é redirecionada para a tela “Gerar Contratos”.
Quando chamada, a tela faz a leitura dos parâmetros passados pelo controlador e exibe os elementos em HTML. O documento é mostrado na página, e o local a ser preenchido é sublinhado no momento que um campo entra em foco, bem como é retratado na Figura 18.
Figura 18 - Tela Gerar Contratos.
Fonte: Próprio autor, 2022.
Antes de enviar o formulário, a plataforma verifica se todos os campos
obrigatórios estão preenchidos, caso contrário, é retornado um aviso pedindo para inserir a informação. Outros tipos de validações também são tratadas de acordo com os atributos definidos na Tag, assim como tipo de entrada, tamanho mínimo e máximo, casas decimais, somente leitura, entre outros.
Por fim, o usuário informa o E-mail que deseja receber os anexos e depois clica em enviar, bem como é retratado na Figura 19.
Figura 19 - Modal para Informar o E-mail.
Fonte: Próprio autor, 2022.
Ao receber a submissão, em uma repetição condicional, o controlador percorre os valores do formulário fazendo as seguintes ações: verifica o tipo de atributo e armazena numa variável auxiliar; Identifica se o valor é referente a um preenchimento automático (data, hora ou número por extenso), caso sim, através do tipo de informação, uma função inclui no contrato o conteúdo gerado de acordo a última variável atribuída.
Após o documento ser completado, as bibliotecas Dompdf e PHPWord fazem a leitura dos elementos HTML e salvam no servidor o contrato como PDF e Word, respectivamente. Por último, o site tenta enviar os arquivos ao E-mail do destinatário.
5.6.2. Mensagens
Em sequência, o controlador analisa se o envio dos anexos foi bem sucedido, caso seja assertivo, os arquivos vão permanecer no servidor por três meses, e o usuário é direcionado para a tela de mensagens. Nessa página, é informado que o contrato foi finalizado e enviado com sucesso, assim como é exibido na Figura 20.
Figura 20 - Retorno de Sucesso na Tela de Mensagens.
Fonte: Próprio autor, 2022.
Todavia, podem ocorrer falhas intermitentes que impedem o envio desses anexos, visto que é utilizado um servidor de entrada do provedor de Email. Segundo Xxxxxxxxx et al (2013), as falhas em sistemas distribuídos são classificadas como: Falha por queda, o servidor parou de funcionar; Omissão de recebimento ou envio, pois não foi possível responder a requisição, receber ou enviar a mensagem; Temporização, o retorno ultrapassou o intervalo de espera; Falha de resposta, que representa o recebimento de um resultado incorreto; Falha arbitrária, onde há situações em que o retorno não é planejado e reconhecido como erro.
Diante disso, a exceção é ativada logo que uma falha impede o envio dos arquivos, como é demonstrado na Figura 21.
Figura 21 - Retorno de Erro na Tela de Mensagens.
Fonte: Próprio autor, 2022.
CONSIDERAÇÕES FINAIS
Desde o seu surgimento, o contrato formaliza e assegura o cumprimento de obrigações estabelecidas na negociação (PRETTI, 2002). Dentre os seus processos, a fase contratual é onde ocorre a oficialização do contrato (MATOS, 2020). Nessa etapa, nota-se a escassez de ferramentas eficientes, atendendo atributos de qualidade, que auxiliam na elaboração desse documento. sendo assim, o corolário disso é o aumento de custos com empresas que assessoram negociações, maior trâmite de procedimentos para a formalização e que demanda mais tempo para a sua conclusão.
Devido a isso, foi mister o desenvolvimento de uma aplicação para ajudar no estágio de produção do contrato, assim firmando o entendimento entre as partes envolvidas. A plataforma web Contrato Feito tem o objetivo de atender pessoas que possuem essa demanda, podendo gerar o contrato num documento em formato portável e em outro arquivo que permite modificações em editores de texto.
Outrossim, a execução de todas as etapas do processo de desenvolvimento de sistemas corroborou para que os atributos de qualidade software fossem atendidos, favorecendo o resultado de acordo com as necessidades e expectativas do público alvo. Em meio a isso, vários recursos foram utilizados durante a implementação com finalidade de contribuir para que a aplicação web tivesse um desenvolvimento mais produtivo, seguro e com menos custos de produção.
Com este trabalho de conclusão de curso é exequível o conhecimento de tecnologias que podem ser exploradas para a construção de uma plataforma web, aplicando conceitos que envolvem planejamento, implementação e funcionamento da aplicação. Também, a solução desenvolvida foi concluída e está funcional, podendo ser implantada em uma hospedagem para que os usuários possam acessá-la pelo navegador.
REFERÊNCIAS
ARAÚJO, I. S. Contratos de Adesão e Contratos Paritários: Qual a melhor opção?, 2019. Disponível em: <xxxxx://xxxxxxxxxxxxxxx.xxxxxxxxx.xxx.xx/xxxxxxx
/732565658/contratos-de-adesao-e-contratos-paritarios-qual-a-melhor-opcao#:~:text
=Esse%20tipo%20contratual%20ocorre%2C%20por,a%20import%C3%A2ncia%20d esse%20tipo%20contratual>. Acesso em: 29 nov. 2022.
BARRO, B. B. O Que São Frameworks e Quais os Mais Utilizados, 2022. Disponível em: <xxxxx://xxx.xxxxxxxxx.xxx.xx/xxxxxxxxx/xxxxxxxxxx#X_xxx_xxx_ Frameworks>. Acesso em: 20 nov. 2022.
BOOTSTRAP. About: Bootstrap v5.2, 2022. Disponível em: <xxxxx://xxxxxxxxxxxx. com/docs/5.2/about/overview/>. Acesso em: 12 out. 2022.
XXXXXXXXXX, Xxxxxxx. O impacto da era digital na gestão de contratos. Revista Jus Navigandi, ISSN 1518-4862, Teresina, ano 24, n. 6018, 23 dez. 2019. Disponível em: xxxxx://xxx.xxx.xx/xxxxxxx/00000. Acesso em: 30 nov. 2022.
XXXXXXX, X. X.; XXXXX, R. S. Ferramenta de Modelagem de Bancos de Dados Relacionais brModelo v3, 2017. Disponível em: <xxxxx://xxx.xxx0.xxx/xxXxxxxx
/brModelo.pdf>. Acesso em: 28 ago. 2022.
XXXXXXX, X. Requisitos funcionais e requisitos não funcionais, o que são?, fev. 2021. Disponível em: <xxxxx://xxxxxxxxx.xxx.xx/xxxxxxxxxx-xxxxxxxxxx-xxx-xxxxxx nais/>. Acesso em: 23 nov. 2022.
XXXXXXX, Xxxxxxx. Escrevendo arquivos de textos com PHPWord. 2018. Disponível em: <xxxxx://xxxxxxxx.xxx.xx/xxxx-xxx/xxxxxxxxxx-xxxxxxxx-xx-xxxxx
-com-o-phpword>. Acesso em: 30 nov. 2022.
XXXXXXXXX, X. et al. Sistemas Distribuídos - 5ed: Conceitos e Projeto. Bookman Editora, 2013.
XXXXXXXX, X.; XXXX, X. PHP: a bíblia. [s.l.] Gulf Professional Publishing, 2003. COMPOSER. Introduction, 2022. Disponível em: <xxxxx://xxxxxxxxxxx.xxx/xxx
/00-xxxxx.xx>. Acesso em: 12 out. 2022.
XXXX, Xxxxxxx Xxxxxx Xxxxx. O acesso à Justiça no Brasil: a necessidade de advogado, a capacidade econômica dos jurisdicionados e a demora na prestação jurisdicional. Revista Jus Navigandi, ISSN 1518-4862, Teresina, ano 16, n. 3061, 18 nov. 2011. Disponível em: <xxxxx://xxx.xxx.xx/xxxxxxx/00000>. Acesso em: 30 nov.
2022.
XXXX, X. Extensões PHP. 2022. Disponível em: <xxxxx://xxxx.xxx/0000-00-00-xxxxx soes-php/>. Acesso em: 20 nov. 2022.
XXXXX, Xxxxx Xxxxxx. Curso de Direito Civil Brasileiro: Teoria das Obrigações Contratuais e Extracontratuais. 26º Edição. São Paulo: Editora Saraiva, 2010.
XXX, Xxxxx. Uma breve história do CSS, 2006. Disponível em: <xxxxx://xxxxxxxxx. xxx.xx/xxx-xxxxx-xxxxxxxx-xx-xxx/>. Acesso em: 25 nov. 2022.
XXXXXXX, X. Engenharia de Software na Prática. Brasil, Novatec Editora, 2010. XXXXXXX, X. Comodato: saiba tudo sobre esse tipo de contrato, set. 2021.
Disponível em: <xxxxx://xxx.xxxxxxxx.xxx.xx/xxxx/xxxxxxxx-xx-xxxxxxxx/>. Acesso em: 29 nov. 2022.
XXXXXXXXXX, X. HTML 5 - Embarque Imediato. [s.l.] Brasport, 2011.
XXXXXXXX, X. JavaScript: o guia Definitivo. 6. ed. Porto Alegre: Bookman, 2013.
XXXXX, X. X. et al. Direito Digital: Direito Privado e Internet. Brasil, Editora Foco, 2021.
XXXXXXXXX, X. X. Linguagens de servidor: uma abordagem prática com PHP, p.
11. São Paulo: Senac São Paulo, 2021.
XXXXXXXXX, X. X.; XXXXX, V. F. Implantando a Governança de TI - da
Estratégia à Gestão dos Processos e Serviços (3a edição). Brazil, Editora Brasport, 2012.
XXXXXXX, X. X. Node.js: Aplicações web real-time com Node.js. 1. ed. São Paulo: Casa do Código, 2014.
XXXXXXX, X. X. Xxxxxxx para ninjas. 1. ed. São Paulo: Novatec, 2017.
XXXXXX, X., XXXXXX, A. P. Como passar em concursos CESPE: 3.955 questões comentadas. Brazil: Editora Foco, 2018.
GITHUB. Home · dompdf/dompdf Wiki · GitHub, 2022a. Disponível em: <https:// xxxxxx.xxx/xxxxxx/xxxxxx/xxxx>. Acesso em 14 nov. 2022.
GITHUB. Sobre o Git - Documentação do GitHub, 2022b. Disponível em: <https:// xxxx.xxxxxx.xxx/xx/xxx-xxxxxxx/xxxxx-xxx/xxxxx-xxx>. Acesso em 12 nov. 2022.
XXXXXXXXX, X. Qual a diferença entre Framework e Biblioteca?, 2020 Disponível em: <xxxxx://xxx.xxxxxxxxx.xxx.xx/xxxx/xxxx-x-xxxxxxxxx-xxxxx-xxxxx work-e-biblioteca>. Acesso em: 19 nov. 2022.
XXXXXXXX, X. About Astah & Change Vision, Inc: Make software design more productive, rich and fun. Disponível em: <xxxxx://xxxxx.xxx/xxxxx>. Acesso em: 26 ago. 2022.
IBM. Diagramas de Classes, [s. d.] Disponível em: <xxxxx://xxx.xxx.xxx/xxxx/ pt-br/rsas/7.5.0?topic=structure-class-diagrams>. Acesso em: 17 nov. 2022.
INSTITUTO BRASILEIRO DE DEFESA DO CONSUMIDOR. Entenda a definição
de contrato. Brasil, 2011. Disponível em: <xxxxx://xxxx.xxx.xx/xxxxxxxxx/xxxxx-x-xxx eitos/entenda-a-definicao-de-contrato>. Acesso em: 27 nov. 2022
JETSTREAM, Introduction | Laravel Jetstream, 2022. Disponível em: <xxxxx://xxxx
xxxxx.xxxxxxx.xxx/0.x/xxxxxxxxxxxx.xxxx>. Acesso em: 29 nov. 2022.
LARAVEL. Eloquent: Getting Started. 2022a.Disponível em: <xxxxx://xxxxxxx.xxx
/docs/9.x/eloquent#introduction>. Acesso em: 26 nov. 2022.
LARAVEL. The PHP Framework for Web Artisans. 2022b. Disponível em: <https:
//xxxxxxx.xxx>. Acesso em: 29 nov. 2022.
LIVEWIRE. Xxxxxxx Xxxxxxxx. [s. d]. Disponível em: <xxxxx://xxxxxxx-xxxxxxxx.xxx/>. Acesso em: 03 set. 2022.
XXXXXXX, X. O que é prestação de serviços? Conheça suas características e desafios, jan. 2021. Disponível em: <xxxxx://xxxx-xx.xxxxxxxxxxxxxx.xxx/xxxxxxxx
/#:~:text=O%20que%20significa%20presta%C3%A7%C3%A3o%20de,na%20posse
%20de%20um%20bem>. Acesso em: 29 nov. 2022.
XXXXX, X. X. Xxxxx do processo contratual em tópicos, 2020. Disponível em:
<xxxxx://xxxxxxxxxxx.xxxxxxxxx.xxx.xx/xxxxxxx/000000000/xxxxx-xx-xxxxxxxx-xxxxxxxxxx
-em-topicos>. Acesso em: 20 nov. 2022.
MICROSOFT. Configurações POP, IMAP e SMTP. Disponível em: <xxxxx://xxxxxxx. xxxxxxxxx.xxx/xx-xx/xxxxxx/xxxxxxxxx%X0%X0%X0%X0xx-xxx-xxxx-x-xxxx-0000x00 8-8af4-4e97-b147-6c6c4ac95353>. Acesso em: 17 nov. 2022.
XXXXXX, X. MySQL: Guia do Programador. 1. ed. São Paulo: Novatec, 2007.
XXXXXXX, XxxXxxx - WYSIWYG Content Editor, Inline Rich Text Application. 2022. Disponível em: <xxxxx://xxxxxxx.xxx>. Acesso em: 26 nov. 2022.
XXXXXXXX, X. X. X. Análise de sistemas. Brazil: Editora Senac São Paulo, 2019. PAMPLONA FILHO, Xxxxxxx. Esboçando uma Teoria Geral dos Contratos.
Revista Jus Navigandi, ISSN 1518-4862, Teresina, ano 10, n. 682, 18 mai. 2005. Disponível em: <xxxxx://xxx.xxx.xx/xxxxxxx/0000>. Acesso em: 28 nov. 2022.
XXXXXX, X. Contratos e sua evolução: A evolução dos contratos de consumo até o de adesão à luz do CDC, jul. 2002. Disponível em: <xxxxx://xxx.xxxxxxxxxx.xxx.xx/ artigos/exibir/827/Contratos-e-sua-evolucao#:~:text=O%20Contrato%20originou%2D se%20como,Gregos%2C%20%C3%A0%20%C3%A9poca%20de%20Cristo>.
Acesso em: 20 nov. 2022.
PROCÓPIO, Fábio. Diagrama de Caso de Uso. Disponível em: <xxxxx://xxxxxxx
.xxxx.xxx.xx/xxxxxxxxxxxxxx/xxxxxxxxxxx/xxxxxxxxxx-xx-xxxxxxxx-xxxxxxxxxxxx-xx-xxxxx matica/diagrama-de-caso-de-uso-tecnico>. Acesso em: 21 ago. 2022.
XXXXXXXXX, Xxxxxx Xxxxxxx X’Xxxx. Incidência dos princípios da boa-fé e da função social conforme os planos do negócio jurídico: Dissertação de mestrado. São Paulo, 2014. Disponível em: <xxxxx://xxx.xxxxx.xxx.xx/xxxxx/xxxxxxxxxxx/0/0000/ tde-11022015-123011/publico/Dissertacao_Incidencia_dos_Principios_da_Boa_fe.pd f>. Acesso em: 29 nov. 2022.
XXXXXXX, Xxxx Xxxxxxxxx Xxxxxxxx. Os contratos atípicos e sua disciplina no
Código Civil de 2002. Revista Jus Navigandi, ISSN 1518-4862, Teresina, ano 9, n. 456, 6 out. 2004. Disponível em: <xxxxx://xxx.xxx.xx/xxxxxxx/0000>. Acesso em: 27
nov. 2022.
XXXXXX, X. Qual é o perfil dos consumidores do Ecommerce?, 2022. Disponível em: <xxxxx://xxxxxxxxxxxxxxxxxx.xxx/xxxx/xxxxxx-xxx-xxxxxxxxxxxx-xx-xxxxxxxxx/
>. Acesso em: 28 nov. 2022.
XXXXXX, X. Diferenças entre casamento, união estável e namoro e as suas semelhanças, [s. d.]. Disponível em: <xxxxx://xxxxxxxxxxxxxxx.xxx.xx/xxxxxxxxxx-x ntre-casamento-e-uniao-estavel/>. Acesso em: 29 nov. 2022.
XXXXX, X. X. X. Processos e ferramentas para o desenvolvimento de software livre: Um estudo de caso. Tese - Mestrado em Informática, Universidade Federal do Espírito Santo, Vitória, 2006.
XXXXX, X. O que é público-alvo: confira o conceito, a importância e um passo a passo para definir o público-alvo do seu negócio, xxx. 2021. Disponível em:
<xxxxx://xxx.xxxxxxx.xxx.xx/xxxx/x-xxx-x-xxxxxxx-xxxx/>. Acesso em: 28 nov. 2022.
XXXXX, X. X. 6 ferramentas para gestores jurídicos serem mais eficientes | Xxxxx e Xxxxx. 2020. Disponível em: <xxxxx://xxx.xxxxxxxxxxxxxxxxxxxx.xxx.xx/0- ferramentas-para-gestores-juridicos-serem-mais-eficientes/>. Acesso em: 30 nov.
2022.
XXXXX, X. X. JavaScript - Guia do Programador: Guia Completo das Funcionalidades de Linguagem JavaScript. 1. ed. São Paulo: Novatec, 2010.
XXXXX, X. X. jQuery: A Biblioteca do Programador Javascript. 3. ed. São Paulo: Novatec, 2013.
STENBERG. D. et al. CA certificates extracted from Mozilla, out. 2022. Disponível em: <xxxxx://xxxx.xx/xxxx/xxxxxxxxx.xxxx>. Acesso em: 18 nov. 2022.
TARTUCE, Flávio. Teoria Geral dos Contratos e Contratos em Espécie. 9. ed. p.
18. São Paulo: Editora Método, 2014.
XXXXX.XX. Taiga: Your opensource agile project management software, 2022. Disponível em: xxxxx://xxx.xxxxx.xx/. Acesso em 23 nov. 2022.
TOTVS. Kanban: Conceito, como funciona, vantagens e implementação, out. 2022. Disponível em: <xxxxx://xxx.xxxxx.xxx/xxxx/xxxxxxxx/xxxxxx/>. Acesso em: 23 nov. 2022.
VISUAL STUDIO CODE. Documentation for Visual Studio Code. 2022. Disponível em: <xxxxx://xxxx.xxxxxxxxxxxx.xxx/xxxx>. Acesso em: 02 out. 2022.
XAMPP. About the XAMPP project, 2022. Disponível em: <xxxxx://xxx.xxxx xxxxxxxxx.xxx/xx_xx/xxxxx.xxxx>. Acesso em: 29 ago. 2022.
XDEBUG, Xdebug - Debugger and Profiler Tool for PHP. Disponível em: <https:
//xxxxxx.xxx>. Acesso em: 29 nov. 2022.
GLOSSÁRIO
Controlador - Camada MVC responsável por processar requisições e retornar respostas ao usuário.
CTO - Chief Technology Officer = Diretor de tecnologia.
Script - Uma série de instruções para que comandos sejam executados na aplicação.
Tag - Responsável por indicar a estrutura da página web.
W3C - World Wide Web Consortium = Consórcio World Wide Web