Skip to content
Adding index authored by Cecilia's avatar Cecilia
......@@ -19,6 +19,7 @@
| 20/06/2017 | 1.5 | Adição da Licença | Cecilia Dib |
| 22/06/2017 | 1.6 | Adição da documentação | Danilo Barros, Gabriel Climaco |
| 23/06/2017 | 1.7 | Adição do Diagrama de Pacotes v3 | Thiago, Maria, Vitor |
| 23/06/2017 | 1.8 | Adição do Índice e ajustes | Cecilia |
<p align="center"><a href="#" target="_blank"><img width="180"src="/uploads/ab17516a69d0d6cdbfee25653b811168/ID2.png"></a></p>
......@@ -33,6 +34,62 @@
</p>
-------
# Índice
[1. Introdução](#1-introdução)
[2. Contexto](#2-contexto)
&emsp;&emsp;[2.1. Oportunidade de Negócio](#21-oportunidade-de-negócio)
&emsp;&emsp;[2.2. Nicho de Aplicação - GAP Tecnológico](#22-nicho-de-aplicação---gap-tecnológico)
[3. O que é o Inter Database](#3-o-que-é-o-inter-database)
&emsp;&emsp;[3.1. Conexão com o Banco](#31-conexão-com-o-banco)
&emsp;&emsp;[3.2. Configuração de um Novo Banco](#32-configuração-de-um-novo-banco)
[4. Arquitetura](#4-arquitetura)
&emsp;&emsp;[4.1. Estilos Arquiteturais](#41-estilos-arquiteturais)
&emsp;&emsp;[4.2. Diagrama de Classes](#42-diagrama-de-classes)
&emsp;&emsp;[4.3. Diagrama de Pacotes](#43-diagrama-de-pacotes)
[5. Especificação do Framework](#5-especificação-do-framework)
&emsp;&emsp;[5.1. Hot Spots](#51-hot-spots)
&emsp;&emsp;[5.2. Frozen Spots](#52-frozen-spots)
&emsp;&emsp;[5.3. Padrões de Projeto](#53-padrões-de-projeto)
&emsp;&emsp;&emsp;&emsp;[5.3.1. Strategy 1](#531-strategy-1)
&emsp;&emsp;&emsp;&emsp;[5.3.2. Strategy 2](#532-strategy-2)
[6. Embasamento Tecnológico](#6-embasamento-tecnológico)
&emsp;&emsp;[6.1. Tecnologias Utilizadas](#61-tecnologias-utilizadas)
&emsp;&emsp;&emsp;&emsp;[6.1.1. Node.js](#611-nodejs)
&emsp;&emsp;&emsp;&emsp;[6.1.2. SQL Server](#612-sql-server)
&emsp;&emsp;&emsp;&emsp;[6.1.3. PostgreSQL](#613-postgresql)
&emsp;&emsp;&emsp;&emsp;[6.1.4. MySQL](#614-mysql)
[7. Documentação](#7-documentação)
[8. Licença](#8-licença)
--------------
# 1. Introdução
<p align="justify">&emsp;&emsp;Este artefato visa mostrar e descrever as principais características do <i>Framework</i> proposto como projeto final da disciplina de Desenho e Arquitetura de Software da Universidade de Brasília. Consiste em trazer uma visão geral sobre o completo funcionamento do mesmo e qual o problema e oportunidade de negócio que ele procura solucionar.</p>
......@@ -43,14 +100,14 @@
<p align="justify">&emsp;&emsp;No desenvolvimento de Software, é muito comum ferramentas que automatizem o trabalho dos desenvolvedores, diminuindo seu esforço para fazer tarefas não muito triviais para dar continuidade à programação dos projetos. Com essa ideia em mente e a problemática encontrada no desenvolvimento do Trabalho 01, a equipe viu uma oportunidade desenvolver uma solução que facilite a configuração e conexão com diversos tipos de bases de dados e SGBDs, tanto relacionais quanto não-relacionais, utilizando a tecnologia Node.js.</p>
## 2.2. Nicho de Aplicação/GAP Tecnológico
## 2.2. Nicho de Aplicação - GAP Tecnológico
<p align="justify">&emsp;&emsp;Muitas vezes, principalmente para os iniciantes dessa tecnologia, a configuração e conexão com bancos de dados não é algo fácil de ser realizado, principalmente que muitas delas utilizam módulos as vezes não conhecidos e/ou não triviais de serem integrados/utilizados. No Trabalho 01 da disciplina a equipe se deparou com esse mesmo problema, onde a conexão com o SQLServer da Microsoft que está sendo utilizado gerou diversos problemas de configuração devido a sua complexidade. À partir disso, a equipe viu que não era um problema encontrado apenas por eles, mas sim por diversos outros desenvolvedores ao redor do mundo que fazem o uso da tecnologia Node.js para seus projetos.</p>
<p align="justify">&emsp;&emsp;Com isso, a equipe decidiu propor um <i>Framework</i> para facilitar a conexão e configuração dessas bases de dados para a tecnologia utilizada, visando diminuir o esforço dos programadores nessas características e permiti-los focar nas funcionalidades específicas do Software, sem se preocupar com sitanxe dos diferentes bancos, utilizando comandos mais simples e diretos.</p>
# 3. O que é o Inter Database?
<p align="justify">&emsp;&emsp;O Inter Database é um <i>framework</i> que visa facilitar a comunicação entre uma aplicação em Node.js e um Banco de Dados. Essa comunicação inclui toda a parte de configuração do Banco, no âmbito da conexão, que é uma das dificuldades encontradas pela maioria dos desenvolvedores mais inexperientes, e inclui também a parte das querys, onde através de um simples método, o desenvolvedor pode realizar uma operação extremamente complexa no banco. </p>
<p align="justify">&emsp;&emsp;O Inter Database é um <i>framework</i> que visa facilitar a comunicação entre uma aplicação em Node.js e um Banco de Dados. Essa comunicação inclui toda a parte de configuração do Banco, no âmbito da conexão, que é uma das dificuldades encontradas pela maioria dos desenvolvedores mais inexperientes, e inclui também a parte das queries, onde através de um simples método, o desenvolvedor pode realizar uma operação extremamente complexa no banco. </p>
<p align="justify">&emsp;&emsp;Além disto, o Inter Database também serve como uma forma de unificar a comunicação entre vários Bancos de Dados e uma aplicação, onde o desenvolvedor não necessita saber a sintaxe específica de cada banco para realizar comandos nos SGBDs.</p>
......@@ -129,10 +186,10 @@
![Inter_Database_FW_st2](/uploads/564eaa00087e8715ec1e4f8ae6662dd9/Inter_Database_FW_st2.png)
# 5. Embasamento Tecnológico
## 5.1. Tecnologias Utilizadas
# 6. Embasamento Tecnológico
## 6.1. Tecnologias Utilizadas
### 5.1.1. Node.js
### 6.1.1. Node.js
<p align="center"><a href="#" target="_blank"><img width="300"src="https://upload.wikimedia.org/wikipedia/commons/thumb/d/d9/Node.js_logo.svg/1200px-Node.js_logo.svg.png"></a></p>
......@@ -144,7 +201,7 @@
* **Versão:** v6.11.0
* O download do Node.js pode ser realizado em seu [site oficial](https://nodejs.org/en/download/).
### 5.1.2. SQL Server
### 6.1.2. SQL Server
<p align="center"><a href="#" target="_blank"><img width="300"src="http://3.bp.blogspot.com/-sSO8x0sX56Y/UfV7femeJhI/AAAAAAAABhE/RyLvuPy9CZw/s1600/Microsoft-SQL-Server.png"></a></p>
......@@ -159,7 +216,7 @@
$ npm install --save mssql
```
### 5.1.3. PostgreSQL
### 6.1.3. PostgreSQL
<p align="center"><a href="#" target="_blank"><img width="300"src="http://www.redetivha.com.br/wp-content/uploads/2017/05/postgresql-logo.png"></a></p>
......@@ -174,7 +231,7 @@ $ npm install --save mssql
$ npm install --save pg
```
### 5.1.4 MySQL
### 6.1.4 MySQL
<p align="center"><a href="#" target="_blank"><img width="300"src="https://upload.wikimedia.org/wikipedia/en/thumb/6/62/MySQL.svg/1200px-MySQL.svg.png"></a></p>
<p align="justify">&emsp;&emsp;Uma outra tecnologia a ser utilizada e é bastante comum no âmbito de sistemas gerenciadores de bancos de dados Relacionais é o MySQL, que nada mais é do que um servidor de banco de dados SQL (Structured Query Language) rápido, multi-tarefas ou <i>multi-threared</i> e robusto. O MySQL é um <i>trademark</i> que pertence atualmente à Oracle Corporation e foi criado na Suécia por David Axmark, Allan Larsson e Michael Widenius. É um dos SGBDs mais conhecidos mundialmente e o seu uso/desenvolvimento/manutenção empregam mais de 400 mil pessoas ao redor do mundo, onde sua plataforma já foi baixada mais de 10 milhões de vezes desde o seu lançamento.</p>
......@@ -189,10 +246,10 @@ A versão 5.7 a ser utilizada no projeto trouxe algumas melhorias em relação
$ npm install --save mysql
```
# [6. Documentação](https://inter-database-documentation.herokuapp.com)
# [7. Documentação](https://inter-database-documentation.herokuapp.com)
<p align="justify">&emsp;&emsp;A documentação do código foi gerada com a ferramenta <i>ESDoc</i> pode ser encontrada <a href="https://inter-database-documentation.herokuapp.com">nessa página</a>.</p>
# 7. Licença
# 8. Licença
<p align="justify">&emsp;&emsp; A <b>Licença MIT</b> é similar às condições da licença BSD, sendo a diferença desta segunda de conter um aviso proibindo o uso promocional do nome do autor sob <i>copyright</i>. Já a licença MIT usa de forma explícita os direitos do usuário final, incluindo o direito ao uso, cópia, modificação, fusão, distribuição, "sublicenciamento" e/ou venda de software.</p>
......
......